DICOM / HL7 FHIR Interoperability Roadmap — EPPA¶
Interop is out of scope for v1 — but must be on the roadmap
EPPA v1 (research-use phase) does not implement DICOM or FHIR
integrations. The non-claim in 01-intended-use-statement.md §8
is explicit: "EPPA is not interoperable with PACS / EHR systems in the
research-use phase". This document defines the target architecture for
EPPA's interoperability story, so that the v1 data model can avoid
decisions that would later block FHIR/DICOM mapping.
1. Document identity¶
| Field | Value |
|---|---|
| Document title | DICOM / HL7 FHIR Interoperability Roadmap — EPPA |
| Document ID | EPPA-INTEROP-001 |
| Version | 0.1 (draft) |
| Status | Draft — not approved |
| Effective date | n/a |
| Owner | LABIS UCA — Software lead (pending) |
| Linked documents | 00-overview.md, 01-intended-use-statement.md, 11-iec-62304-lifecycle.md, 90-roadmap.md |
2. Standards anchors¶
- DICOM PS 3 — Digital Imaging and Communications in Medicine, in particular PS 3.3 (information object definitions), PS 3.4 (service class specifications), PS 3.10 (media storage and file format) and PS 3.20 (transformation of DICOM to/from HL7 standards).
- HL7 FHIR R4 — the current normative release, with successor R5 (2023) for forward compatibility.
- IHE PCC — Integrating the Healthcare Enterprise, Patient Care Coordination profiles.
- IHE PaLM — Pathology and Laboratory Medicine profiles (some apply beyond pathology).
- IHE Radiology — XDS-I.b, Mammography Acquisition Workflow, etc.
- ISO/HL7 27931:2009 — HL7 v2.5 messaging (relevant in legacy integration).
- WADO-RS / STOW-RS / QIDO-RS — DICOMweb services (PS 3.18).
3. Why DICOM might still be relevant despite the photographic nature¶
EPPA captures consumer-grade photographs of standing patients, not radiological images. Naively, DICOM does not apply. However:
- Many PACS and VNA systems accept non-radiology images via the
Visible Light family of DICOM IODs:
- VL Photographic Image IOD (PS 3.3 § A.32.4).
- VL Photographic Image Storage SOP Class (UID
1.2.840.10008.5.1.4.1.1.77.1.4).
- The Modality Worklist flow allows EPPA to acquire orders from a hospital's RIS, eliminating the need for manual patient entry.
- Hospital VNA contracts often require all clinical images to be archived through DICOM, regardless of modality.
Therefore, while EPPA does not need to produce DICOM internally, an EPPA DICOM gateway is on the roadmap for hospital deployments.
4. DICOM integration scope (Phase 4 roadmap)¶
4.1 Storage SCP / SCU¶
EPPA acts as a Storage SCU pushing VL Photographic Images to a hospital PACS Storage SCP. Required IODs and SOP classes:
| Direction | SOP class | UID |
|---|---|---|
| EPPA → PACS | VL Photographic Image Storage | 1.2.840.10008.5.1.4.1.1.77.1.4 |
| EPPA → PACS | Secondary Capture Image Storage (annotated views) | 1.2.840.10008.5.1.4.1.1.7 |
| EPPA → PACS | Grayscale Softcopy Presentation State Storage (for marker overlays) | 1.2.840.10008.5.1.4.1.1.11.1 |
| EPPA → PACS | Structured Report Storage (analysis result) | 1.2.840.10008.5.1.4.1.1.88.11 |
4.2 Modality Worklist (MWL)¶
EPPA acts as an MWL SCU querying a RIS for scheduled procedure steps. The Worklist response provides:
- Patient demographics (
PatientName,PatientID,PatientBirthDate,PatientSex). - Accession number (
AccessionNumber). - Scheduled procedure step ID.
- Procedure code (clinic-specific).
EPPA's intake form is pre-filled from the MWL response, eliminating
manual data entry — a meaningful patient-safety control (mitigating H6 in
12-iso-14971-risk.md).
4.3 Modality Performed Procedure Step (MPPS)¶
After capture, EPPA reports a Modality Performed Procedure Step to the RIS,
closing the workflow loop. SOP class: 1.2.840.10008.3.1.2.3.3.
4.4 DICOMweb (PS 3.18)¶
For modern PACS, DICOMweb services are preferred over DIMSE:
- STOW-RS — store over RESTful services (analog of C-STORE).
- QIDO-RS — query (analog of C-FIND).
- WADO-RS — retrieve (analog of C-GET / C-MOVE).
DICOMweb is the recommended target for any new integration; DIMSE is maintained for legacy PACS support only.
5. HL7 FHIR R4 resource set¶
The FHIR mapping is the load-bearing interop track. EPPA must produce and consume the following resources.
5.1 Resources EPPA produces (write or push)¶
| FHIR R4 resource | EPPA mapping | Notes |
|---|---|---|
Patient |
EPPA's Patient entity |
Patient.identifier carries the EPPA UUID; Patient.name and Patient.birthDate only when retrieved from RIS via MWL or set by the clinic |
Practitioner |
EPPA's User (clinician) |
Linked to professional registration via Practitioner.qualification |
Organization |
LABIS UCA / clinic | Organization.identifier carries the institutional identifier |
Observation (per measurement) |
Each numeric metric (segment angle, alignment offset) | LOINC or SNOMED CT code in Observation.code; numeric value in Observation.valueQuantity |
DiagnosticReport |
Per view (anterior, posterior, lateral-L, lateral-R) | DiagnosticReport.result references the relevant Observations; DiagnosticReport.conclusion carries the qualitative classification with the non-device disclaimer header |
ImagingStudy |
Per session | One ImagingStudy per visit; one ImagingStudy.series per view; ImagingStudy.endpoint carries the WADO-RS URL when DICOM is in scope |
Media |
Each photographic frame (when DICOM is out of scope) | Media.type = photo; Media.content is a base64-encoded JPEG or an external URL |
Bundle |
The complete export for one session | Bundle.type = document for static reports or transaction for write operations |
Consent |
Patient consent for processing | Consent.scope = patient-privacy or research; references the controller and processor |
AuditEvent |
EPPA audit log entries (Epic E3) | Aligned with FHIR audit profile and IHE ATNA |
Provenance |
Authorship of each marker / analysis | Captures the responsible clinician and timestamp |
5.2 Resources EPPA consumes (read or pull)¶
| FHIR R4 resource | Use case |
|---|---|
Patient |
When a hospital EHR sends the patient context (FHIR $everything or a CDS Hooks invocation) |
Practitioner |
To resolve the operating clinician from the hospital identity provider |
Organization |
To resolve the deploying clinic / hospital |
ServiceRequest |
When EPPA is invoked from an EHR's order-entry workflow (replaces an MWL flow with FHIR semantics) |
Encounter |
To anchor an EPPA session to a clinical encounter |
Schedule / Slot / Appointment |
If EPPA participates in scheduling |
5.3 Terminology¶
| Concept | Code system |
|---|---|
| Postural measurements | LOINC (where coded) — verify per measurement |
| Postural conditions (qualitative) | SNOMED CT — body site + finding |
| Body site (left, right, midline) | SNOMED CT body site axis |
| Method | SNOMED CT or LOINC method axis |
| Reference range | LOINC + units of measure (UCUM) |
EPPA must publish its CodeSystem (for internal codes that do not yet have
LOINC / SNOMED equivalents) and its ValueSet declarations as part of the
FHIR conformance package.
5.4 Profiles¶
EPPA must publish a StructureDefinition per resource in the previous
table, profiling FHIR R4 to:
- Constrain cardinalities (e.g.
Observation.code1..1). - Bind value sets (e.g.
Observation.codeto the EPPA postural-metrics value set). - Add
mustSupportflags on EPPA-specific elements. - Pin extensions for EPPA-only data (e.g. cm/px scale factor used in the computation).
The profiles are published on a Simplifier or comparable registry.
6. IHE profiles relevant to EPPA¶
| Profile | Domain | EPPA relevance |
|---|---|---|
| XDS-I.b — Cross-Enterprise Document Sharing for Imaging | Radiology | Could be used to share EPPA reports across enterprises, treating the EPPA report as an XDS-I document |
| PCC — Patient Care Coordination | Cross-domain | Various profiles for cross-care-team data sharing |
| PaLM — Pathology and Laboratory Medicine | Lab | Tangentially relevant; the Observation/DiagnosticReport mapping borrows from PaLM patterns |
| ITI-41 — Provide and Register Document Set-b | Cross-enterprise document sharing | The mechanism by which an EPPA report becomes an XDS document |
| ATNA — Audit Trail and Node Authentication | Security | EPPA's audit log must align with ATNA when the hospital uses an ATNA repository |
| CT — Consistent Time | Security | EPPA clocks synchronised to a hospital NTP source (or RFC 5905) |
| EUA — Enterprise User Authentication | Identity | SAML or OIDC SSO with the hospital identity provider; EPPA acts as an EUA Authenticated Node |
7. VNA (Vendor Neutral Archive) considerations¶
Hospital VNAs (e.g. Hyland Acuo, Mach7, Sectra Enterprise Imaging) act as the long-term archive for all imaging across modalities. Integration considerations:
- DICOM-only intake — most VNAs accept DICOM only; EPPA's DICOM gateway is the entry point.
- Metadata enrichment — VNAs index DICOM metadata heavily; EPPA must
emit clean, consistent values for
Modality(XCfor external camera),Manufacturer,ManufacturerModelName,SoftwareVersions. - Tagless / pixel-only images are rejected — every emitted IOD must satisfy the SOP class' Type 1 attribute requirements.
- Patient identity reconciliation — VNAs typically rely on the MPI
(Master Patient Index) of the hospital; EPPA must accept and persist the
hospital
PatientIDalongside its own UUID, with a clear precedence rule.
8. Architecture sketch (target state, Phase 4)¶
┌────────────────────────────────────────┐
│ Hospital EHR / RIS │
│ (Cerner / Epic / Orion / hospital-OS) │
└───────────────────┬────────────────────┘
│ FHIR R4 (SMART on FHIR launch)
│ + DICOM Modality Worklist
▼
┌────────────────────────────────────────┐
│ EPPA Application │
│ ─ FHIR client (Patient, Practitioner) │
│ ─ DICOM SCU/SCP gateway │
│ ─ Capture + analysis kernel │
└───────────────────┬────────────────────┘
│ DICOM Storage SCU + MPPS
│ FHIR write (Observation, DiagnosticReport, ImagingStudy)
▼
┌────────────────────────────────────────┐
│ Hospital PACS / VNA + FHIR server │
└────────────────────────────────────────┘
9. Avoidance items for v1 (so v1 does not block v3)¶
To preserve future interop, the v1 data model must:
- Use UUIDs as the primary identifier, never the patient's name or NID.
- Allow
external_identifiercolumns onPatient,User,Organizationfor hospital-provided IDs. - Store measurements in a long-table (
measurement_type,value,unit) so each measurement is a single row that maps 1:1 to anObservation. - Time-stamp every record in UTC with ISO 8601 strings; render to local time only at the presentation layer.
- Make the analysis output a content-addressable artefact (hash of the
inputs + analysis-kernel version) so that re-running produces a
stable result for
DiagnosticReport.identifier. - Embed the non-device disclaimer in the
Bundle.textnarrative, so that any FHIR consumer surfaces it.
10. Open questions¶
- Profile authority — Simplifier vs HL7 IG Publisher vs custom registry.
- Code system gap — many postural measurements lack LOINC codes;
determine whether to request LOINC additions or publish an EPPA
CodeSystem. - MPI integration — required for any hospital deployment but out-of-scope for the clinic deployment.
- DICOMweb-first vs DIMSE-first — recommend DICOMweb-first with DIMSE fallback for legacy PACS.
- SMART on FHIR launch context — EHR-launched or standalone-launched.
References¶
- DICOM PS 3 — Digital Imaging and Communications in Medicine — https://www.dicomstandard.org/current
- DICOM PS 3.3 (Information Object Definitions) — https://dicom.nema.org/medical/dicom/current/output/html/part03.html
- DICOM PS 3.4 (Service Class Specifications) — https://dicom.nema.org/medical/dicom/current/output/html/part04.html
- DICOM PS 3.10 (Media Storage and File Format) — https://dicom.nema.org/medical/dicom/current/output/html/part10.html
- DICOM PS 3.18 (Web Services / DICOMweb) — https://dicom.nema.org/medical/dicom/current/output/html/part18.html
- DICOM PS 3.20 (Imaging Reports using HL7 CDA) — https://dicom.nema.org/medical/dicom/current/output/html/part20.html
- HL7 FHIR R4 — https://hl7.org/fhir/R4/
- HL7 FHIR R4
Patient— https://hl7.org/fhir/R4/patient.html - HL7 FHIR R4
Practitioner— https://hl7.org/fhir/R4/practitioner.html - HL7 FHIR R4
Organization— https://hl7.org/fhir/R4/organization.html - HL7 FHIR R4
Observation— https://hl7.org/fhir/R4/observation.html - HL7 FHIR R4
DiagnosticReport— https://hl7.org/fhir/R4/diagnosticreport.html - HL7 FHIR R4
ImagingStudy— https://hl7.org/fhir/R4/imagingstudy.html - HL7 FHIR R4
Bundle— https://hl7.org/fhir/R4/bundle.html - HL7 FHIR R4
Consent— https://hl7.org/fhir/R4/consent.html - HL7 FHIR R4
AuditEvent— https://hl7.org/fhir/R4/auditevent.html - IHE PCC Technical Framework — https://www.ihe.net/resources/technical_frameworks/#pcc
- IHE Radiology Technical Framework — https://www.ihe.net/resources/technical_frameworks/#radiology
- IHE ITI Technical Framework — https://www.ihe.net/resources/technical_frameworks/#ITI
- LOINC — https://loinc.org/
- SNOMED CT — https://www.snomed.org/snomed-ct
- UCUM — https://ucum.org/
- SMART on FHIR — https://docs.smarthealthit.org/