Skip to content

feat(OGC-1054): add safe Analyzer Type mapping - #4118

Open
pmanko wants to merge 96 commits into
codex/ogc-1054-m1-analyzer-typesfrom
codex/ogc-1054-m2-mapping
Open

feat(OGC-1054): add safe Analyzer Type mapping#4118
pmanko wants to merge 96 commits into
codex/ogc-1054-m1-analyzer-typesfrom
codex/ogc-1054-m2-mapping

Conversation

@pmanko

@pmanko pmanko commented Aug 23, 2026

Copy link
Copy Markdown
Member

Summary

Deliver OE-M2, the OpenELIS half of the OGC-1054 safe mapping checkpoint. Add
one reusable Analyzer Type mapping editor, catalog-safe test/result bindings,
auditable confirmation, and complete removal of superseded per-analyzer mapping
and classifier paths.

Scope

  • one linkable mapping editor under Analyzer Types; Verify returns to it and no
    per-analyzer editor remains
  • every profile source row remains visible with raw code, normalized identity,
    match state, catalog selection, and explicit exclusion where allowed
  • complete active Test search by name, code, or LOINC with unique suggestions
  • qualitative mappings accept only active Result Options owned by the selected
    Test; value and label are derived server-side and survive reload
  • separate confirmation of bindings and human-readable Bridge profile
    recognition with actor, time, row IDs, revision, and fingerprints
  • stale confirmation and affected-analyzer/update-available behavior after a
    shared revision or binding change
  • explicit Duplicate Profile and Update shared scope with no implicit analyzer
    movement
  • remove the duplicate field-mapping/custom-field admin UI and the complete
    AnalyzerQcRule runtime, schema, payload, readiness, and UI path
  • amend the Westgard specification so it retains operational QC without
    restoring an OpenELIS analyzer classifier or a narrow competing “MVP” label

Stack

Strict order is BR-M2 -> OE-M2. On publication, the roadmap moves M2 to [x]
and M3 to the sole [*] checkpoint.

TDD evidence

Service, persistence, migration, consumer-contract, removal-guard, RTL/router,
and UI-story behavior was introduced in red-green commits. The final
specification guard first failed on the obsolete per-analyzer QC story and then
passed after the source specification, plan, and tasks were amended.

Validation

  • OpenELIS analyzer/analyzer-import/QC suite: 898 passed, 0 failures/errors
  • focused M2 RTL: 8 files, 60 passed
  • full frontend suite: 1,210 passed, 8 skipped
  • UI-only isolated Playwright story: 4 passed; desktop/mobile captures and
    confirmation timestamp inspected; no application console errors
  • mvn spotless:check, full Prettier check, lint, production build, and both
    Playwright guards: passed
  • Bridge mvn verify: 632 passed, 3 skipped
  • analyzer-mock M2 profile-contract selection: 144 passed
  • openelis-work@main visual baseline refreshed at 5fc8963b; implementation
    preserves the mapping hierarchy and result-choice intent and remains usable on
    mobile where the prototype itself overflows beside its fixed sidebar

Known inherited gates

  • repository-wide TypeScript checking remains red: 1,754 errors versus 1,791 on
    OE-M1. M2 introduces no errors in its new files and removes the obsolete Copy
    Mappings declaration error; this PR does not claim that global gate is green.
  • retained QC listener tests include an old fixture that omits a DAO mock and
    logs caught null errors while passing. M3 linked operational-QC acceptance
    must correct and strengthen that fixture before claiming clean QC evidence.

Architecture guard

Bridge remains the profile and analyzer-runtime owner. OpenELIS owns local
clinical bindings, verification/audit, activation, and separate operational QC.
There is no copied profile authority, per-analyzer mapping override,
AnalyzerQcRule, QcRun, hidden classifier fallback, dual writer, duplicate
queue, or OpenELIS FILE poller.

pmanko added 30 commits August 22, 2026 01:15

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f9bb30a7e0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

1 participant