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.
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:
urn:emsinterop:resource-id name no document and stay URNs deliberately.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.
| Gap | What is open | What we do | Retires when |
|---|---|---|---|
mapping-table-emptyverified 2026-08-13 | NEMSIS-Mapping.html leaves the FHIR-path column empty on 440 of 449 element rows (98%). The nine populated rows are all dAgency.* -> Organization.identifier/name/address; every clinical panel is empty. 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-sectionsverified 2026-08-13 | The Medical Summary Composition profile defines FOUR section slices — Problems, Allergies, Medications and Payers — with open slicing, and none for vitals, procedures, EMS course or narrative. (An earlier reading of this register said three and omitted Payers; the assembler always knew about it, the register did not.) source | Emit the IG's four sections, plus additional LOINC-coded ones the IG does not define (Vital Signs 8716-3, Procedures 47519-4, EMS Narrative 28568-4, EMS Course 46240-8). The profile's slicing is OPEN, so the additions 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-placeholdersverified 2026-08-13 | CodeSystem-NEMSIS still contains placeholder concepts whose displays read 'TODO: JFM do not know', 'TODO: JFM did not know either' and 'TODO: JFM completely clueless', including the malformed codes 99270235, C7 and todo1 (all three re-confirmed present). 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-qoreverified 2026-08-13 | eOutcome.01/.02/.03 rows delegate to the QRPH 'QORE' profile. 'QORE' appears as bare text with no link, binding or profile reference anywhere in the IG, and those rows carry no FHIR path. 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-flagverified 2026-08-13 | The eVitals.02 row ("Obtained Prior to this Unit's EMS Care", R [1..1]) has both mapping columns empty. FHIR has no element for the distinction and the IG proposes none, so it is lost on every vital sign unless carried some other way. 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. |
city-is-a-gnis-codeverified 2026-08-14 | NEMSIS stores a city as a GNIS feature id (CityGnisCode, a bare xs:positiveInteger) wherever an address appears — ePatient.06, eScene.17, eDisposition.04, dContact.06. FHIR's Address.city is "Name of city, town etc." and C-CDA's <city> likewise wants a name. Neither standard has a coded city slot. source | Never write the code into Address.city — a receiving system displays it verbatim, so a clinician reads "1454997" as the town. The name is populated only when a caller supplies a gazetteer, and the GNIS id rides in an extension so the NEMSIS round trip stays exact rather than the value being dropped. | FHIR or US Core defines a coded-city representation, or this project ships a GNIS gazetteer and populates the name directly. Either way the extension is dropped. |
no-source-version-pinverified 2026-08-13 | No NEMSIS version is declared anywhere on the mapping page — zero occurrences of any 'NEMSIS 3.x' string — 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-looseverified 2026-08-13 | EMS-Overall names no ITI transaction numbers at all — zero occurrences of any 'ITI-nn' string on the index; 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. |