Desktop Electron EHR — backlog (Jira-oriented)
Source specs: EHEALTH_DESKTOP_PLATFORM_REQUIREMENTS.md, SPEC.md, TECHNICAL_REQUIREMENTS.md.
Reading order
- EPICS.md — business outcomes and requirement rollups.
- UNIFIED_EPICS.md — baseline track + labels.
- USER_STORIES.md — narrative user stories.
- UNIFIED_USER_STORIES.md — flat table for import and traceability.
- LINKAGE.md — REQ-DESK / FR-DSK / TR-DSK → Epic → Story → module specs.
- IMPLEMENTATION_STATUS.md — per-story rollout status (fill from code audit).
- adf/ — Atlassian Document Format JSON for Jira Cloud
description(ADF).
Jira contract
| Item | Value |
|---|---|
| Hierarchy | Epic → Story only (no Feature tier). |
| Parent | Set Story parent to the Epic issue key (or Epic link field per your Jira project). |
| Labels (baseline) | ehr-desktop |
| Labels (extended enhancements) | ehr-desktop-extended-enhancements |
| Project key | GEHR (Jira project Ghasi Electronic Health Records). |
| Requirement refs | Copy REQ-DESK-, FR-DSK-, TR-DSK-* into Story description from adf/ or UNIFIED_USER_STORIES.md. |
Imported Jira keys (desktop backlog)
Epics: DESK-EPIC-01 … DESK-EPIC-11 → GEHR-472 … GEHR-482. Stories: DESK-US-001 … DESK-US-068 → GEHR-483 … GEHR-550. Label on imported issues: ehr-desktop. The Jira Key column in UNIFIED_USER_STORIES.md matches this mapping.
Jira description sync (from this backlog)
Story Description fields in GEHR are aligned with UNIFIED_USER_STORIES.md: user story, context, acceptance criteria (bullets), traceability table, and repo path.
To regenerate the payload file after editing the unified table:
node specs/architecture/platform/desktop-electron/backlog/scripts/build-jira-description-payloads.mjs
Then update each GEHR story via Jira UI, REST, or Atlassian MCP (editJiraIssue) using the generated jira-description-payloads.json (gitignored).
ADF usage
Each file in adf/ is a root ADF document: { "type": "doc", "version": 1, "content": [...] }.
- Paste into Jira Cloud REST
fields.descriptionwhen creating/updating issues, or use automation that accepts ADF JSON. - Summary field: use plain-text title (match Story/Epic title in
UNIFIED_USER_STORIES/EPICS).
Regenerating ADF (optional)
Run from this directory:
node generate-adf.mjs
This overwrites adf/*.adf.json using the embedded epic/story definitions in generate-adf.mjs (keep in sync with UNIFIED_USER_STORIES.md when stories change).