Skip to content

OGC-1054 M4: complete safe analyzer result traffic - #4138

Open
pmanko wants to merge 19 commits into
codex/ogc-1054-m3-setup-qcfrom
codex/ogc-1054-m4-result-traffic
Open

OGC-1054 M4: complete safe analyzer result traffic#4138
pmanko wants to merge 19 commits into
codex/ogc-1054-m3-setup-qcfrom
codex/ogc-1054-m4-result-traffic

Conversation

@pmanko

@pmanko pmanko commented Aug 26, 2026

Copy link
Copy Markdown
Member

Scope

Review-ready M4 checkpoint for safe normalized analyzer result traffic, durable held results, catalog-safe resolution, visible attention, control routing, and removal of superseded OpenELIS analyzer runtime paths.

This PR is intentionally stacked on OpenELIS #4125.

Implemented

  • Consume normalized results only from an exact Bridge connection and pinned profile context.
  • Route known patient results to the analyzer results workflow and recognized controls to operational QC.
  • Hold unknown tests and unknown qualitative values durably without clinical posting or loss.
  • Surface analyzers with held results on the dashboard and route directly to their held-result review.
  • Resolve held qualitative values only to active Result Options belonging to the mapped OpenELIS Test.
  • Advance the existing held staging row when the next same-value analyzer message resolves successfully, so it appears once in normal review with Save, Retest, and Ignore actions.
  • Address outbound orders only by Bridge connection ID plus clinical order.
  • Remove superseded plugin routing/configuration and warnings, raw readers/importers, local Analyzer Type registry, old queues, one-time migration runtime, and obsolete schema.
  • Keep analyzer results routes usable with deterministic analyzer context and lab-number search.

Exact companions

Functional evidence

The assembled OpenELIS + Bridge + mock workflow has demonstrated through visible UI:

  • GeneXpert patient result received and saved through the results screen.
  • GeneXpert control result recognized by the pinned profile and shown in operational QC.
  • Unknown test held visibly with no clinical action.
  • Unknown qualitative value held and resolved through the catalog-backed mapping workflow.
  • A second real mock -> Bridge message for the resolved value appears once as actionable INDETERMINATE, with no repeated unknown-value alert.
  • The analyzer dashboard reports the real held-result count, names the affected analyzer, and opens its exact results review screen.
  • FluoroCycler XLSX written to the Bridge watch directory, imported with both values visible, and saved through OpenELIS.
  • Desktop and mobile screenshots show no horizontal overflow in the covered story.

Validation on the exact deployed build:

  • AnalyzerResultsServiceImplTest: 8 passed.
  • AnalyzerNormalizedResultImportServiceTest: 10 passed.
  • AnalyzerResultsControllerTest: 1 passed.
  • mvn spotless:check: passed.
  • Remote non-video harness-mvp: 2 passed (visible login plus assembled story).
  • Remote harness-demo-video: 2 passed (visible login plus assembled story).
  • Post-mapping visible UI check: passed; expected INDETERMINATE, normal action controls present, browser warning/error list empty.
  • Screenshots and trace inspected; trace contains no browser warnings or errors. The runner reported only requests canceled by normal route navigation.

Evidence bundle on the shared development machine:

  • /Users/pmanko/code/ogc-1054-evidence/2026-08-26-final-m4/
  • Code-qa bundle: /Users/pmanko/code/ogc-1054-evidence/2026-08-26-final-m4-bundle-complete/
  • Shareable zip: /Users/pmanko/code/ogc-1054-evidence/2026-08-26-final-m4-bundle-complete.zip
  • MP4: ogc-1054-m4-ui-story.mp4 (H.264, 1280x720, 20.28 seconds)
  • Main and post-mapping traces, screenshots, raw WebM recordings, result JSON, and inspected contact sheet are retained beside it.
  • digi-uw/code-qa alignment, meaningful-coverage, simplicity, companion, and evidence gates are recorded in code-qa-gates.md; all automated M4 gates pass and the named-human G0 gate remains open.

Remote acceptance target

  • Site: https://analyzers.openelis-global.org
  • Deployment: 20260826T165702Z-bf3f5c3b30e9-retry
  • OpenELIS: bf3f5c3b30e9066475f4285807ba1cc9c18e6e9b
  • Bridge: 995e1f47274212d6659ccd9371a5bb93da620242
  • Analyzer mock: b09767c90ea717d76480b27da4e6a2c87b2f2d98
  • Review tooling: 2ead2bbc7c1327f86c143c5e6bd03992c1971706
  • Grist checklist revision: 1399e6a49f4874067a7dca3c8fb7899e98f443661b0e1a1ff8b2d78a2211cc9f
  • Checklist: four stories and 17 required AN-MVP-* steps, served by the Review overlay.
  • After recording, analyzer-only demo data was reset and reseeded to the four priority connections plus initial known, held, control, and FILE traffic; the application build and checklist revision are unchanged.

Current status

M4 is [x] review-ready. G0 is [*] and remains incomplete until this unchanged deployment passes all 17 Grist steps under a named human product reviewer and the stacked PRs merge in strict order.

@pmanko
pmanko force-pushed the codex/ogc-1054-m4-result-traffic branch from caf9c70 to e4318a8 Compare August 26, 2026 18:32
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