Skip to content

Mapping profiles

The versioned EDFlow site mapping profile: encounter filters and identifiers, locations and beds, CTAS codes, roles and practitioner ids, dispositions, order and consult codes, NPO diet codes, result thresholds, privacy options, and unmapped-code governance.

Every source has a versioned mapping profile. Your engine's transformer (if you map at the engine) and EDFlow's HL7 and FHIR adapters use the same profile. Every event records the profile version that produced it.

Example

The values are illustrative, not real hospital codes.

{
  "profileId": "demo-epic",
  "version": 3,
  "siteCode": "demo-ed",
  "timezone": "America/Toronto",
  "defaultCharset": "UNICODE UTF-8",
  "encounterFilter": { "patientClass": ["E"], "pointOfCarePrefixes": ["ED"] },
  "encounterId": { "hl7Field": "PV1-19.1", "idSystem": "epic-csn" },
  "locations": {
    "EDWR": "waiting_room", "EDTRI": "triage", "EDACU": "treatment_space",
    "EDRES": "resuscitation", "EDFT": "fast_track", "EDIW": "internal_waiting",
    "EDHALL": "hallway", "RAD": "imaging"
  },
  "ctas": { "hl7ObxCodes": ["11283-9^LN"], "fhirObservationCodes": ["http://loinc.org|11283-9"] },
  "roles": {
    "ATND": "attending_physician", "RES": "resident_physician", "NP": "nurse_practitioner",
    "PA": "physician_assistant", "RN": "primary_nurse", "TRN": "triage_nurse", "CON": "consultant_physician"
  },
  "dispositions": {
    "01": "discharge", "02": "admit", "03": "transfer", "04": "observation",
    "LWBS": "left_without_being_seen", "AMA": "left_against_medical_advice"
  },
  "a11Semantics": "cancel",
  "piaSource": "attending_assigned",
  "orders": {
    "catalog": { "LAB123": "urinalysis", "LAB100": "cbc", "IMG4410": "ct-abdomen-pelvis" },
    "categoryBySection": { "LAB": "lab", "CT": "imaging", "US": "imaging", "RAD": "imaging", "EC": "cardiology" },
    "contrastPattern": "\\bW(ITH)?/? ?(IV )?CONTRAST\\b",
    "npoDietCodes": ["DIET_NPO"],
    "consultCodes": { "CONS_IM": "internal_medicine", "CONS_GS": "general_surgery" }
  },
  "resultComplete": { "lab": "resulted", "imaging": "preliminary", "cardiology": "performed" },
  "privacy": { "acceptChiefComplaint": false, "maskConfidentialNamesOnBoard": true }
}

Sections

SectionWhat it decides
encounterFilterWhich visits are ED visits (patient class and location prefixes). Filter the rest at the engine too
encounterIdWhere the visit identifier comes from and its id system
locationsLocation code → area (waiting room, triage, treatment space, resuscitation, fast track, internal waiting, hallway, imaging). Beds map to zones in the admin
ctasWhich OBX or Observation codes carry the triage level
rolesRole codes → care-team roles. Practitioner ids link to staff accounts through their EHR identities
dispositionsDisposition codes → decisions, including left before treatment complete and NACRS codes
a11SemanticsWhether an A11 means cancel or left without being seen
piaSourceNACRS PIA at the attending assignment or at the first explicit assessment (analytics only)
ordersOrder code catalogue, category by section, the contrast pattern, NPO diet codes, consult codes (with the sensitive flag from the consult catalogue)
resultCompleteWhen a test counts as "back": per category, and per imaging modality (preliminary by default; performed where ED physicians read their own films)
privacyWhether chief complaint is accepted (staff only), confidential masking
Care-flag mappingsEHR codes for must-not-leave, custody, isolation, fall risk
Reassessment mappingsSigned notes or procedure-area moves that count as a reassessment
defaultCharsetRequired when MSH-18 is empty

Versions

Every edit creates a new version with a diff against any earlier one, in Sources and keys. A replay after a profile change supersedes earlier results for the same event id.

Unmapped codes

A code not in the profile or catalogue doesn't block ingest: the patient sees "Other test" and the code lands in Unmapped codes. Go-live needs zero unmapped codes over the last 30 days of test traffic.

Unmapped codes: test and location codes the EHR sent that have no mapping yet, with suggested mappings to review.
WebCaptured from build 7c7f41f on September 27, 2026

Last updated on

Was this page helpful?

On this page