Skip to main content

Desktop Electron EHR — backlog (Jira-oriented)

Source specs: EHEALTH_DESKTOP_PLATFORM_REQUIREMENTS.md, SPEC.md, TECHNICAL_REQUIREMENTS.md.

Reading order

  1. EPICS.md — business outcomes and requirement rollups.
  2. UNIFIED_EPICS.md — baseline track + labels.
  3. USER_STORIES.md — narrative user stories.
  4. UNIFIED_USER_STORIES.md — flat table for import and traceability.
  5. LINKAGE.md — REQ-DESK / FR-DSK / TR-DSK → Epic → Story → module specs.
  6. IMPLEMENTATION_STATUS.md — per-story rollout status (fill from code audit).
  7. adf/ — Atlassian Document Format JSON for Jira Cloud description (ADF).

Jira contract

ItemValue
HierarchyEpic → Story only (no Feature tier).
ParentSet 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 keyGEHR (Jira project Ghasi Electronic Health Records).
Requirement refsCopy 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-472GEHR-482. Stories: DESK-US-001 … DESK-US-068 → GEHR-483GEHR-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.description when 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).