Test Catalog Management v2.5 — Delivery Plan (20 epics)

Test Catalog Management v2.5 — Delivery Plan (20 epics)

Test Catalog Management v2.5 — Delivery Plan

Updated: 2026-06-08
Author: Casey Iiams-Hauser
Status: Restructured to 1-mockup-per-epic shape (was 2 umbrella epics). Gallery PR merged. All 72 child stories filed (49 v1 + 23 v2).


TL;DR

The unified Test Catalog Management editor (v2.4 vision) is being delivered as 20 mockup-scoped epics + 1 sibling cross-feature story + 1 unified umbrella epic for tracking. Each epic owns one UI mockup. Sprint-sized work happens at the story level within each epic.

  • v1 wave (12 epics, 49 child stories): core editor + 9 functional sections + foundation work. Direct replacement for the legacy Test / Test Section / Panel / Method admin pages.

  • v2 wave (8 epics, 23 child stories): Labels, Reagents, Alerts, Reflex & Calc, Compliance + Sample Storage audit + Localization Hardening.

  • Sibling (1): Sample Storage info display propagation to Order Entry / Results / Validation screens (touches 3 non-catalog screens).

  • Umbrella for Mozzy: OGC-949 links to all 20 epics + sibling.

The 2 original umbrella epics (OGC-746 v1, OGC-759 v2) have been closed as superseded by this per-mockup shape.


v1 wave — 12 epics

When v1 ships, admins open Admin → Test Catalog Management and see a new list view with click-to-open rows, no Actions column, a collapsible filter bar (Section / Sample Type / Result Type / Status / Domain / AMR), URL-reflected state. Clicking any test opens a SideNav-routed editor with 9 sections (v2 entries are hidden until v2 ships). Legacy Test / Section / Panel / Method admin pages are decommissioned at v1 release. No feature flag.

Epic

Mockup

Children

Epic

Mockup

Children

OGC-747

Schema Migrations + Backend Foundation + Legacy Decommission

4

OGC-927

Editor Scaffold + Permissions + States (SideNav, breadcrumb, header with Save / Save as new test / Cancel)

5

OGC-928

Test List View + Filters + Pagination

4

OGC-748

Basic Info section (Domain + AMR + status flags)

4

OGC-749

Sample & Results section (multi-component + per-component accordion + Result Interpretations + inline-add Unit)

8

OGC-750

Methods section (link + inline create + shortcodes)

3

OGC-751

Ranges section (Structured + Table + Visual views + Coverage Validation + Activation Acknowledgment modal)

8

OGC-752

Sample Storage section

3

OGC-756

Display Order section (drag-drop within sample type)

3

OGC-753

Panels section (typeahead picker + expandable rows + drag-drop position)

3

OGC-754

Terminology Mappings section

2

OGC-755

Analyzers section (read-only display)

2

v1 total: 49 child stories. JQL: all v1 children

v1 sequencing

  • OGC-747 (schema migrations) must land first — everything else depends on it.

  • OGC-927 (editor scaffold) lands second — every section's UI mounts inside it.

  • OGC-928 (Test List View) is the entry surface for partners; lands alongside OGC-927.

  • OGC-749 (Sample & Results) unblocks OGC-751 (Ranges, via component_id) — best handled as a pair.

  • OGC-748 (Basic Info) is loosely coupled with OGC-751 (Ranges) via the Activation Acknowledgment modal — stub the gate, wire when OGC-751 lands.

  • OGC-750 / OGC-752 / OGC-753 / OGC-754 / OGC-755 / OGC-756 can all run in parallel after the foundation lands.


v2 wave — 8 epics, 23 child stories

Builds entirely on the v1 foundation; no schema rework beyond the v2 additions on OGC-760. The SideNav grows from 9 entries to 14 at v2 release.

Epic

Mockup

Child stories

Epic

Mockup

Child stories

OGC-760

Test-Reagent linkage (backend — must land first within v2)

OGC-986 schema + entity / OGC-987 REST endpoints + permission gating

OGC-761

Labels section (4 fixed system presets)

OGC-988 linked presets table / OGC-989 global override toggle + preview / OGC-990 Order Entry aggregation rules

OGC-762

Reagents section (blocked by OGC-760)

OGC-991 linked reagents table + stock / OGC-992 Link Reagent modal / OGC-993 per-link inline edit + unlink

OGC-763

Alerts section (authoring here; delivery via Test Notification system)

OGC-994 rules DataTable + inline-expansion add / OGC-995 trigger condition (5 types) + adaptive value field / OGC-996 channels + recipients (5 types) / OGC-997 per-rule ack_required toggle

OGC-764

Reflex & Calc section (read-only cross-links)

OGC-998 Reflex Tests sub-section / OGC-999 Calculated Results sub-section

OGC-765

Compliance section (blocked by OGC-528; ENV/VECTOR only)

OGC-1000 DataTable + Group By + domain visibility / OGC-1001 Standard ComboBox + adaptive fields / OGC-1002 inline add/edit + value/operator/severity / OGC-1003 breach flag emission + Alerts integration

OGC-766

Sample Storage audit history (activates audit-write triggers)

OGC-1004 audit write triggers / OGC-1005 View change history modal

OGC-767

Localization Hardening

OGC-1006 get_localized_test_field() + API contract / OGC-1007 UI fallback indicators / OGC-1008 Bulk translation CSV export/import

v2 total: 23 child stories. JQL: all v2 children

v2 sequencing

  • OGC-986 (test_reagent_link table) is the first OGC-760 ticket; OGC-987 can run in parallel once the entity is committed.

  • OGC-991/992/993 (Reagents) all depend on OGC-987 being merged.

  • OGC-996 (Alerts channels/recipients) is the dependency for OGC-1003 (Compliance breach → Alerts integration). Land Alerts before wiring Compliance's downstream alerting.

  • OGC-1000-1003 (Compliance) blocked by OGC-528 landing the compliance schema.

  • OGC-1006 (localization function + API) is the dependency for OGC-1007 (UI fallback indicators).

  • OGC-997 (per-rule acknowledgment) is no-op-until-built — the global Critical Result Acknowledgment workflow is a separate future feature, and the toggle exists as a hook.


Sibling cross-feature story

OGC-757 — Sample Storage info display propagation — Order Entry / Results entry / Validation screens (L)

Inherits the gap from closed OGC-48 (Sample Storage admin). Touches three non-catalog screens — Order Entry, Results entry, Validation — so it lives outside the Test Catalog Management editor epics. Spec'd as a shared "Sample Handling" card pattern with a snapshot-at-order-time data flow so historical orders don't change retroactively when admin updates a test's storage config.


Umbrella tracking epic

OGC-949 — Unified umbrella for Test Catalog Management v2.5. Assigned to Mozzy. Links to all 20 mockup epics + OGC-757 sibling. Use this for cross-wave reporting.


Closed during this work (with cross-reference comments)

Closed ticket

Why

Pointer

Closed ticket

Why

Pointer

OGC-746

Old v1 umbrella epic — superseded by the 12-per-mockup v1 epics

List of new epics in closing comment

OGC-759

Old v2 umbrella epic — superseded by the 8 v2 per-mockup epics

List of new epics in closing comment

OGC-929

Over-split during restructure — not a separate mockup

Merged back into OGC-747

OGC-930

Over-split — Result Interpretations is part of Sample & Results mockup

Merged back into OGC-749

OGC-931

Over-split — Activation Ack modal is part of Ranges mockup

Merged back into OGC-751

OGC-758

Over-split — Table + Visual views are alternative renderings of the Ranges mockup

Merged back into OGC-751

OGC-173

Old vertical-tab redesign epic (pre-v2.2)

Superseded by OGC-746 (now also closed → OGC-747 et al.)

OGC-174

Old vertical-tab editor shell

Superseded by OGC-927

OGC-206

Select List Results Management standalone

Folded into OGC-749

OGC-48

Old Sample Storage admin spec

Folded into OGC-752 + display gap → OGC-757


Design artifacts (gallery — PR merged 2026-06-08)

All artifacts are now registered in the design gallery. Each of the 20 active epics + sibling has a "Design artifacts" comment in Jira pointing to the relevant files + section reference.

Source-of-truth FRS files:

  • test-catalog-requirements-v2.4.md — full vision FRS (~3,275 lines)

  • test-catalog-requirements-v2.5.md — staging companion with v1/v2 tags + 11 health-check fixes (D-01 through D-11)

  • test-catalog-v2.5-design-critique.md — 18-item critique with all resolutions applied

  • test-catalog-v2.5-epic-restructure.md — the restructure plan that drove the current 20-epic shape

Mockup / visual preview:

  • test-catalog-preview-v2.5-v1.html — v1 visual preview; 9 sections functional; opens standalone in any browser. v2 sections will get their own previews when those epics enter sprint planning.

Historical references (kept for context):

  • test-catalog-v2.5-staging-review.md — original v1/v2 staging proposal

  • test-catalog-v2.5-v1-jira.md + test-catalog-v2.5-v2-jira.md — story breakdowns as initially filed under the old umbrella shape (now superseded by Jira itself)


Key design decisions worth remembering

  • No feature flag for v1. Direct replacement of legacy admin pages. Rollback is a release revert, not a runtime toggle.

  • v2 SideNav entries hidden in v1 (not "Coming Soon" stubs).

  • Coverage Validation: warn-and-acknowledge, not block. Activation Acknowledgment modal logs to test_activation_acknowledgment. Patient-safety preserved by required acknowledgment; clinics that don't see every demographic (e.g., senior center, no infants) can proceed consciously.

  • Alerts: authoring lives in Test Catalog, delivery via the shipped Test Notification system. No template/channel columns on test_alert_rule.

  • Analyzers tab is read-only — list derived from analyzer test-code mappings; edited at the analyzer's record.

  • Result Components FHIR mapping is locked — one Observation per component (not Observation.component[]).

  • Typeahead pickers everywhere (sample types, panels, units); drag-drop with keyboard alternatives everywhere reorder happens.

  • Save as new test… modal in the editor header handles the Duplicate workflow.


What's not in this delivery

  • Configurable Label Preset Management (custom dimensions, content fields, drag-drop reordering) — separate not-yet-written FRS. v2 Labels uses the 4 fixed system presets only.

  • Critical Result Acknowledgment workflow — separate global feature. Per-rule acknowledgment_required toggle exists in v2 Alerts (OGC-763 / OGC-997) but no-ops until the global workflow is built.

  • Cross-test analytics, recall workflows, batch reagent-QC integration — future epics that consume the new linkage table from OGC-760.

  • Standalone Master Lists admin for select-list groups / presets / favorites — deferred to a future Master Lists FRS (was in scope of closed OGC-206).