Skip to main content

Platform interoperability — traceability matrix

Document version: 1.1
Date: 2026-03-22
Status: Supplementary; module matrices are authoritative per service

Capability IDs in the tables below use a historical MVP2-* prefix. That prefix is a stable identifier only — not a delivery phase. Roadmap phases are not tracked in this repository.

Related documents:


1. Purpose

This matrix traces interoperability and add-on capabilities through to:

  • Service(s) responsible
  • REST and/or FHIR endpoints
  • Primary data entities
  • Events (NATS JetStream)
  • UI surfaces (apps/web)
  • Test coverage targets (unit + integration + E2E)

2. Abbreviations

AbbrevMeaning
FHIR-GWFHIR Gateway Service (fhir-gateway)
HL7HL7 v2 Interop Service (hl7v2-interop)
IMMImmunizations Service
CPCare Plans Service
MSGMessaging Service
PORTPatient Portal Service
LISLaboratory / LIS Service
PACSRadiology / PACS Service
BILLBilling / RCM Service
INSInsurance Service
CLMClaims Service
LICLicensing enforcement (module entitlements)

3. Capability traceability

3.1 Interoperability — FHIR Gateway

IDCapabilityModule CodeServiceEndpoint(s)Data EntityEvent(s)UI SurfaceTest Targets
MVP2-FHIR-001Consolidated /fhir/R4 entrypointehr.coreFHIR-GWGET /fhir/R4/metadatafhir.* (optional projections)Contract tests for CapabilityStatement
MVP2-FHIR-002Resource routing by ownershipehr.coreFHIR-GW + domain servicesGET/POST/PUT /fhir/R4/{Resource}Per resource owner DBCache invalidations as neededClinician app uses domain APIs; external uses FHIRIntegration tests for routing matrix
MVP2-FHIR-003Patient read/searchehr.registrationFHIR-GW + RegistrationGET /fhir/R4/Patient/{id}; GET /fhir/R4/Patient?...patientsregistration.patient.*Patient banner + portal identityFHIR read/search tests
MVP2-FHIR-004Results read/searchehr.results (+ diag.*)FHIR-GW + Results/LIS/PACSGET /fhir/R4/DiagnosticReport?...results* + LIS/PACSclinical.results.released, diag.*Results viewer (clinician + portal)Release-visibility tests

3.2 Interoperability — HL7 v2

IDCapabilityModule CodeServiceEndpoint(s)Data EntityEvent(s)UI SurfaceTest Targets
MVP2-HL7-001ADT inbound (A01/A04/A08/A40) → FHIR updatesehr.registrationHL7 + FHIR-GW + RegistrationMLLP listener; admin POST /v1/interop/connectorshl7_messages, hl7_connectorsinterop.hl7v2.adt.receivedAdmin console (optional)Parser + mapping tests
MVP2-HL7-002ORM/OML outbound for lab/rad ordersehr.orders + diag.*HL7 + Ordershl7_outboxclinical.orders.placed, interop.hl7v2.orm.sentOrder entryEvent-driven integration tests
MVP2-HL7-003ORU outbound for released resultsehr.results + diag.*HL7 + Results/LIS/PACShl7_outboxclinical.results.released, interop.hl7v2.oru.sentResults reviewRelease workflow tests
MVP2-HL7-004Message replay + DLQ managementehr.coreHL7GET/POST /v1/interop/messages/*hl7_messagesdlq.*Admin consoleRetry/DLQ tests

3.3 Clinical Add-ons

IDCapabilityModule CodeServiceEndpoint(s)Data EntityEvent(s)UI SurfaceTest Targets
MVP2-IMM-001Record immunization (administered)clinical.immunizationsIMM + FHIR-GWPOST /v1/immunizations; POST /fhir/R4/Immunizationimmunizations, immunization_lotsclinical.immunizations.recordedPatient Chart → ImmunizationsUnit + REST + FHIR mapping tests
MVP2-IMM-002Record refusalclinical.immunizationsIMMPOST /v1/immunizations/{id}/refuseimmunization_refusalsclinical.immunizations.refusedImmunizationsValidation + audit tests
MVP2-CP-001Create/update care planclinical.care-plansCP + FHIR-GWPOST/PUT /v1/care-plans/careplans; POST/PUT /fhir/R4/CarePlancare_plans, care_plan_goalsclinical.careplans.createdCare PlansState machine tests
MVP2-CP-002Review/sign workflowclinical.care-plansCPPOST /v1/care-plans/careplans/{id}/reviewcare_plan_reviewsclinical.careplans.reviewedCare PlansRole-gated tests

3.4 Engagement Add-ons

IDCapabilityModule CodeServiceEndpoint(s)Data EntityEvent(s)UI SurfaceTest Targets
MVP2-MSG-001Staff↔patient secure messaging threadsengage.messagingMSGPOST /v1/digital-communication/messaging/threadsthreads, participantsengage.messaging.*InboxE2E thread + RBAC tests
MVP2-MSG-002Send/read messagesengage.messagingMSGPOST /v1/digital-communication/messaging/threads/{id}/messages; POST .../threads/{id}/readmessages, receiptsengage.messaging.message.sent, .readInbox + portal messagesNotification tests
MVP2-PORT-001Portal identity + record summaryengage.patient-portalPORT (+ FHIR-GW)GET /v1/portal/me; GET /v1/portal/record/summaryportal_users (or IAM mapping)portal.notification.queuedPatient PortalE2E portal auth + summary
MVP2-PORT-002Portal results visibility rules (released-only)engage.patient-portalPORT + ResultsGET /v1/portal/resultsconsumes clinical.results.releasedPortal resultsPolicy + ABAC tests

3.5 Diagnostics Add-ons

IDCapabilityModule CodeServiceEndpoint(s)Data EntityEvent(s)UI SurfaceTest Targets
MVP2-LIS-001Accessioning + specimen lifecyclediag.laboratoryLISPOST /accessions, POST /specimens, POST /specimens/{id}/receive (no /v1 prefix; Kong)accessions, specimensghasi.lis.accessioned, ghasi.lis.specimen.collected, ghasi.lis.specimen.receivedLab worklistWorkflow tests
MVP2-LIS-002Result verify/release + chart ingestdiag.laboratory + ehr.resultsLIS + ResultsPOST /results/:id/verify; POST /results/:id/release; Results POST /internal/v1/results/lis-releaselab_results, resultsghasi.lis.result.released → Results ghasi.results.result.*Results + labIdempotent ingest tests
MVP2-LIS-003HL7 ORU/ORM → LIS domain applydiag.laboratoryHL7 + LISInbound MLLP; NATS handoff (see HL7V2_LIS_INTEGRATION.md)lab_resultsghasi.hl7v2.oru_message.received → (planned) LIS consumerGolden ORU + idempotency tests
MVP2-PACS-001Study availability + report signdiag.radiologyPACS + ResultsGET /v1/radiology/studies*; GET /v1/radiology/studies/{id}/reportimaging_studies, imaging_reportsdiag.radiology.study.available, .report.signedImaging viewer launchViewer launch + auth tests

3.6 Financial Add-ons

IDCapabilityModule CodeServiceEndpoint(s)Data EntityEvent(s)UI SurfaceTest Targets
MVP2-BILL-001Post charges from encounters/ordersbilling.rcmBILLPOST /v1/billing/chargescharges, charge_linksbilling.charge.postedBillingLedger tests
MVP2-INS-001Coverage capture + eligibility checkbilling.insuranceINSPOST /v1/insurance/coverage; /eligibility/checkcoverages, eligibility_checksinsurance.coverage.createdRegistration/BillingAdapter tests
MVP2-CLM-001Claim build/validate/submitbilling.claimsCLMPOST /v1/claims/from-encounter/{id}; /submitclaims, claim_linesclaims.submittedClaimsX12/non-X12 contract tests
MVP2-CLM-002Remittance ingest + postingbilling.claimsCLM + BILLPOST /v1/claims/remittances/importremittances, payment_postsclaims.remittance.receivedBillingReconciliation tests

4. Licensing Enforcement (Cross-cutting)

IDCapabilityModule Code(s)ServiceEnforcement PointEvent(s)UI SurfaceTest Targets
MVP2-LIC-001Module entitlement checks for add-onsclinical.immunizations, clinical.care-plans, engage.*, diag.*, billing.*All add-on servicesModuleEntitlementGuard + policy checks(optional) licensing.* auditsAll add-on pagesGuard unit tests + E2E “module disabled”

5. Notes on Test Implementation

Minimum test coverage expectations:

  • Contract tests for /fhir/R4 routing and OperationOutcome mapping
  • Integration tests for HL7 v2 parsing/mapping and message replay
  • E2E tests for portal results visibility and messaging thread flows