OpenMed v2.2 tested standards matrix¶
This release gate is an offline, synthetic integration proof. It records only the subsets exercised by the focused suite and is not certification by HL7, OHDSI, the EU, or any national authority.
Matrix schema: openmed.v22.coverage-matrix.v1 Matrix version: 1 Release: 2.2
Focused command¶
.venv/bin/python -m pytest tests/integration/test_v22_exchange_conformance.py tests/unit/release/test_v22_coverage_matrix.py -q
The command is intentionally small. GitHub Actions runs the repository-wide suite separately.
Declared coverage¶
| ID | Standard or profile | Version | Tested subset | Known gaps | Fixtures and SHA-256 | Source modules | Test nodes |
|---|---|---|---|---|---|---|---|
| form-deidentification-grounding | OpenMed clinical form review and ICD-10-CM grounding contract | form review v1; ICD-10-CM synthetic snapshot v22-synthetic-2026-08 | Synthetic OCR key/value fields with graph offsets and hash provenance Direct-identifier redaction before review serialization Exact local grounding of one Condition span to E11.9 | No OCR engine, remote terminology service, ambiguous coding, or real clinical document is exercised | tests/fixtures/v22/expected_reference_hashes.jsonsha256:34de044adc534ade16b725476f4bd8ba501d0c9ad7da56790232f726215681fdtests/fixtures/v22/grounding_vocabulary.jsonlsha256:9f3d2d3c7c23c9c9879389f43f0b0b45616ad65e51535de1779ba8d841bc5490tests/fixtures/v22/reference_form.jsonsha256:bdb8db8d2d37d02087026469caeaa2f26f4abd8661b8de426cdfb2b619a40bb8 | openmed.structured.formsopenmed.clinical.grounding.apiopenmed.eval.v22_conformance | tests/integration/test_v22_exchange_conformance.py::test_reference_exchange_flow_is_deterministic_offline_and_phi_free |
| fhir-r4-ips | HL7 FHIR R4 core and International Patient Summary | FHIR 4.0.1; IPS 2.0.1 | Document Bundle containing Composition, pseudonymous Patient, and grounded Condition Local profile validation and internal reference-integrity checks | No external validator, terminology expansion, signature, narrative, or full IPS section set is exercised | tests/fixtures/v22/expected_reference_hashes.jsonsha256:34de044adc534ade16b725476f4bd8ba501d0c9ad7da56790232f726215681fdtests/fixtures/v22/reference_form.jsonsha256:bdb8db8d2d37d02087026469caeaa2f26f4abd8661b8de426cdfb2b619a40bb8 | openmed.clinical.exporters.fhir.exchangeopenmed.clinical.exporters.fhir.groundedopenmed.interop.fhir.reference_integrityopenmed.eval.v22_conformance | tests/integration/test_v22_exchange_conformance.py::test_reference_exchange_flow_is_deterministic_offline_and_phi_free |
| fhir-r4-to-omop-5-4 | OpenMed FHIR R4 to OMOP CDM bridge | FHIR 4.0.1 input; OMOP CDM 5.4 output | Pseudonymous Patient and one ICD-10-CM Condition Caller-supplied synthetic vocabulary mapping, constraint validation, counts, hashes, and path-only information loss | FHIR Composition is excluded because it is outside the bridge's declared resource set No database writer, cohort query, vocabulary service, or reverse round trip is exercised | tests/fixtures/v22/expected_reference_hashes.jsonsha256:34de044adc534ade16b725476f4bd8ba501d0c9ad7da56790232f726215681fdtests/fixtures/v22/omop_vocabulary.jsonsha256:28911fa9de2f5b58b8d8d87e8548c983d6c795ccad803d2bbfcb4678aa60fc37 | openmed.interop.fhir_omopopenmed.interop.omop.cdm_loaderopenmed.eval.v22_conformance | tests/integration/test_v22_exchange_conformance.py::test_reference_exchange_flow_is_deterministic_offline_and_phi_free |
| fhir-r5-adapter-negative | OpenMed explicit FHIR cross-release adapter | FHIR R5 5.0.0 to FHIR R4 4.0.1 | Path-specific rejection of a non-representable Observation field | This fixture does not claim general R5-to-R4 conversion or validate every supported resource | tests/fixtures/v22/fhir_r5_negative.jsonsha256:b3cde1c0f152788417d2bace6f5e26eb8ea6caaea9722d261c7a58075ffd0613 | openmed.interop.fhir.versionsopenmed.eval.v22_conformance | tests/integration/test_v22_exchange_conformance.py::test_negative_conformance_fixtures_fail_at_safe_boundaries |
| fhir-bulk-resume-negative | FHIR Bulk Data local checkpoint compatibility boundary | OpenMed checkpoint manifest v1 | Digest-only page token, policy, endpoint scope, and aggregate progress Positive same-context resume and fail-closed endpoint-scope mismatch | No Bulk Data server, export kickoff, polling, file download, or complete protocol conformance is exercised | tests/fixtures/v22/bulk_resume_negative.jsonsha256:b88a29f2e574706edbe371b9ae95416e5fb7301d8a3f383cae56e20918d940ca | openmed.interop.fhir.bulk_checkpointopenmed.eval.v22_conformance | tests/integration/test_v22_exchange_conformance.py::test_negative_conformance_fixtures_fail_at_safe_boundaries |
| structured-privacy-negative | NIST SP 800-188-oriented OpenMed structured privacy lab | structured privacy artifact schema v1 | One unique synthetic record rejected by a zero-tolerance membership-inference threshold Aggregate, value-free privacy evidence serialization | The bounded self-test is not a universal re-identification bound, qualified-expert determination, or anonymity certification | tests/fixtures/v22/structured_privacy_negative.jsonsha256:cda409fee76e21e86a4dcadade0170fff112b1b8a705772fd8fb5e800984b048 | openmed.structured.privacy_labopenmed.eval.v22_conformance | tests/integration/test_v22_exchange_conformance.py::test_negative_conformance_fixtures_fail_at_safe_boundaries |
| mcp-authorization-negative | OpenMed MCP authorization conformance contract | openmed.mcp.authorization_conformance.v1 | Local mocked OAuth-style authorization flow rejects an unapproved state-changing tool call Public result contains only case id and failure category | No live identity provider, HTTP transport, token endpoint, Dynamic Client Registration, or MCP certification is exercised | tests/fixtures/v22/mcp_authorization_negative.jsonsha256:19890c8eb2825d3c16e2e9a4eed66674596ec92f6db3406eb2f73b5c218fdefd | openmed.mcp.authorization_conformanceopenmed.eval.v22_conformance | tests/integration/test_v22_exchange_conformance.py::test_negative_conformance_fixtures_fail_at_safe_boundaries |
Leakage and evidence boundary¶
The reference test requires zero exact occurrences of every synthetic direct identifier across review JSON, grounding audit output, serialized FHIR, the redacted OMOP report, captured errors and logs, generated evidence, and temporary artifact paths. Fixture data is synthetic and committed; no real-patient or DUA data is used.
FHIR Composition is deliberately excluded from the FHIR-to-OMOP input because the bridge declares only Patient, Encounter, Condition, Observation, Procedure, MedicationStatement, and MedicationRequest. Every other limitation is stated in the table rather than inferred as support.