emsInterop — FHIR conformance artifacts

Canonical definitions for the NEMSIS v3.5 → IHE-conformant FHIR R4 translation engine at github.com/fhirEMS/emsinterop. Everything here is authored by this project; nothing here redefines an identifier owned by HL7, IHE, SNOMED or LOINC.

What is ours and what is not

The IHE EMS profiles leave much of a working translator undecided, so this project decides — and says so. Those decisions are not conformance, and the difference is declared rather than blurred:

Gap register

Each entry records what the IHE profiles leave open, what this project does instead, and — the part usually missing — what makes the local decision go away. A decision with no retirement trigger is a permanent fork wearing a temporary label.

GapWhat is openWhat we doRetires when
mapping-table-empty
verified 2026-08-07
NEMSIS-Mapping.html leaves the FHIR-path column empty on ~90-95% of rows; only scattered entries such as Organization.identifier are populated.
source
Author the complete field-level mapping for all NEMSIS 3.5 national elements (ADR-005), dispositioning every element as Mapped/Seeded/Deferred rather than dropping any.IHE populates the FHIR-path column. Ours then becomes a conformance test against theirs rather than the source.
composition-sections
verified 2026-08-07
The Medical Summary Composition profile defines three mandatory sections (Problems, Allergies, Medications) with open slicing, and no section for vitals, procedures, EMS course or narrative.
source
Emit additional LOINC-coded sections (Vital Signs 8716-3, Procedures 47519-4, EMS Narrative 28568-4, EMS Course 46240-8). The profile's slicing is OPEN, so these are conformant, not a deviation — most clinical panels would otherwise have no home in the document at all.mPSC defines its own clinical sections. Ours align to the codes it picks; where they differ, theirs win.
nemsis-codesystem-placeholders
verified 2026-08-07
CodeSystem-NEMSIS contains 18 placeholder concepts with 'TODO: JFM' displays, including malformed codes 99270235, C7 and todo1.
source
Keep REFERENCING the mPSC canonical in coding.system so our data is conformant the day the IG is fixed, but publish our registry-derived CodeSystem (2,321 concepts, content=fragment) under our OWN canonical. Publishing ours at theirs would be two conflicting definitions of one identifier.IHE publishes a usable NEMSIS CodeSystem. We then drop ours and rely on theirs; no coding.system changes, because we never stopped pointing at it.
outcome-delegated-to-qore
verified 2026-08-07
eOutcome is delegated to the QRPH 'QORE' profile, which is named but not linked, bound or profiled anywhere in the IG.
source
Use the FHIR-native representation rather than inventing a shape: discharge disposition rides on Encounter.hospitalization.dischargeDisposition (NUBC-coded, the vocabulary eOutcome.01/.02 already speak) with hospitalization.destination for the receiving facility. The inbound loop (ADT^A03 / FHIR discharge summary) writes eOutcome back into NEMSIS for the state registry rather than modelling it a second time in FHIR. Nothing bespoke is emitted; what is missing is an IHE-blessed PROFILE to claim, not a place to put the data.QORE is published with a binding. We then claim it; the underlying elements are already the FHIR-native ones, so this is a claim to add rather than a model to replace.
prior-care-vitals-flag
verified 2026-08-07
NEMSIS eVitals.02 records whether a reading was obtained before this unit's care began. FHIR has no element for it and the IG proposes none, so the distinction is lost on every vital sign.
source
Carry it in a project extension. A reading taken by a prior crew is a materially different clinical claim from one this crew took, and silently flattening the two is the kind of loss this project exists to prevent.IHE or US Core defines an equivalent. Dual-carry for one minor release, then drop ours — the pattern ADR-006 already uses for US Core vs pcc-uv race/ethnicity.
no-source-version-pin
verified 2026-08-07
No NEMSIS version is declared anywhere on the mapping page, so the source scope is ambiguous between 3.4, 3.5.0 and 3.5.1.
source
Pin explicitly to NEMSIS 3.5.0 and handle 3.5.1 as declared deltas (ADR-007), rather than guessing what the table means.IHE pins a version. If it differs from 3.5.0, that is a scope change for this project, not a mapping tweak.
transport-binding-loose
verified 2026-08-07
EMS-Overall names no ITI transaction numbers; the transport binding is described narratively.
source
Treat transport as a pluggable interface with ITI-65 (MHD Provide Document Bundle) as the default binding (ADR-008), so a different binding is configuration rather than a rewrite.EMS-Overall names its transactions. The default changes to whatever it names; the interface does not.

CodeSystem 1

ConceptMap 7

StructureDefinition 6

StructureMap 5

ValueSet 205