Passer au contenu

Event reference

The EDFlow normalized event contract: the envelope, prohibited fields (the PHI tripwire), identifiers never allowed in ids, shared types, and every inbound event type with JSON Schemas to download.

Cette page n'est pas encore offerte en français; elle est affichée en anglais.

A normalized event asserts current state for one fact about one ED visit. The same contract is used by POST /v1/events, POST /v1/events/batch and the signed POST /ehr/v1/events, and it's what the FHIR and HL7 v2 adapters produce.

Envelope

FieldRequiredRules
specVersionyes"1.0"
idyesUnique per source and stable across retries: ^[A-Za-z0-9._:#/@-]{1,200}$. Never contains a patient identifier
typeyesOne of the types below
siteCodeyes, except system.heartbeatBound to your source
occurredAtyesWhen it happened. RFC 3339 with an offset. At most 10 minutes ahead and 90 days old
recordedAtnoWhen your system recorded it; defaults to occurredAt
sequencenoIncreasing number within the feed, a tie-breaker
modenolive (default) or backfill (never notifies anyone)
sourceyeskind (ehr, paging, simulator), system (epic, oracle-health, meditech, other), feed, and optional messageId, messageType, mappingProfile
encounterfor visit eventsexternalId (your visit identifier, hashed on receipt) and idSystem (epic-csn, oracle-fin, meditech-account, visit-number, …)
datayesThe schema for the type

Strings are at most 200 characters unless stated. Unknown fields are ignored and counted, except prohibited fields.

Prohibited fields

An event is rejected (prohibited_field) if any key, at any depth, matches one of these names (case-insensitive, ignoring _ and -). Nothing is stored beyond the rejection record.

CategoryKeys
Result contentvalue, valueQuantity, valueString, valueCodeableConcept, result, results, resultValue, interpretation, referenceRange, abnormalFlag, abnormalFlags, conclusion, conclusionCode, presentedForm, impression, finding, findings
Clinical narrativenote, notes, comment, comments, narrative, diagnosis, diagnoses, problem, problems, condition, medication, medications, allergy, allergies
Contact and government identifiershealthCardNumber, hcn, ohip, jhn, sin, ssn, address, addressLine, postalCode, phone, phoneNumber, telecom, email

chiefComplaint is accepted only when the site opts in, and shown to clinical staff only.

String values that survive the tripwire are also checked for health-card, phone, email, postal-code and record-number patterns; a match is replaced with [redacted] and reported as a warning.

Identifiers in ids

Event ids must be derived from source data (for example {sourceId}:{MSH-10}:{n}), never from patient identifiers. An id containing a health card number, a visit or record number pattern, or 7 or more digits equal to the message's patient or visit number is rejected.

Event types

Type d'événementRésuméPortéeHL7 v2FHIR R4
admission.status_changedBed flow for an admitted patient waiting in the ED.encounterADT^A07, ADT^A14, ADT^A27—
careteam.member_assignedOne care-team member was assigned.encounter——
careteam.member_releasedOne care-team member was released.encounter——
careteam.snapshotThe authoritative team asserted by this source, limited to rolesCovered.encounterADT^A04, ADT^A08Encounter, CareTeam
consult.status_changedA consult was requested, started, completed or cancelled.encounterORM^O01, OMG^O19, OML^O21, OMI^O23ServiceRequest
department.census_reportedAggregate department status with no identifiers.site——
department.code_calledAn emergency code was called.site——
department.code_clearedA code was cleared.site——
department.roster_reportedThe complete list of encounters active in the ED, for reconciliation.site——
encounter.arrivedRegistration or arrival at the ED.encounterADT^A04, ADT^A01Encounter
encounter.assessedThe physician initial assessment or a reassessment.encounter——
encounter.cancelledThe registration was voided.encounterADT^A11Encounter
encounter.departedThe patient physically left the ED.encounterADT^A02, ADT^A03, ADT^A11Encounter
encounter.departure_cancelledThe discharge was reversed.encounterADT^A13—
encounter.disposition_decidedA decision to discharge, admit, observe or transfer.encounterADT^A01, ADT^A08, ADT^A03, ADT^A06—
encounter.location_changedA bed or area move, leave of absence or return.encounterADT^A08, ADT^A02, ADT^A12, ADT^A21, ADT^A22Encounter
encounter.triagedTriage completed, or a re-triage.encounterADT^A04, ADT^A08Encounter, Observation
order.placedA test or diagnostic order (the full order asserted each time).encounterORM^O01, OMG^O19, OML^O21, OMI^O23ServiceRequest
order.results_reviewedA clinician acknowledged the results.encounter——
order.status_changedThe current status of an order, with every timestamp known so far.encounterORM^O01, OMG^O19, OML^O21, OMI^O23, ORU^R01, SIU^S12, SIU^S13, SIU^S14, SIU^S15ServiceRequest, Specimen, ImagingStudy, DiagnosticReport, Appointment, Task
patient.mergedTwo MRNs were merged.siteADT^A40, ADT^A34, ADT^A18—
patient.updatedA demographic or privacy correction.encounterADT^A08—
system.heartbeatFeed liveness.source——

Each type links to its page with the data fields, effects, an example and the JSON Schema.

Per-event results

StatusMeaning
acceptedApplied, or recorded as older than current state
duplicateSame id and payload already processed
supersededSame id, new payload after a mapping-profile change or a dead-letter replay
bufferedThe visit or order isn't known yet; held up to 6 hours
quarantinedA roster that would close too many visits, held for review
ignoredValid, deliberately not applied (for example an archived visit)
rejectedInvalid; see the error code and path

Dernière mise à jour le

Cette page vous a-t-elle été utile?

Sur cette page