CII eNotifications (future)¶
DOES NOT NEED TO BE SUPPORTED AT THIS TIME
Retrieval, acknowledge, dedup, route¶
- polling interface by EMR vendor - retrieve all notifications for vendor
- well/oscar not in vendor list - what name do we use?
-
POST acknowledgement
-
notifications last 14 days. vendor needs to de-dup (either with UUID or some set of fields)
-
need to process Update and Cancel messages
-
need to route to MedPlum project - based on org id retrieved from eNotification
- but the only orgId we send to CII is not even in EMR database, but maintained in an app-state by the CII app -
- which is per-project.
How to integrate into EMR¶
(think about what Cancel means in this context)
create message in provider inbox?¶
could create an encounter note?¶
Not super useful other than maybe the date/time and human text? - Note Metadata - Encounter ID (string): EN14 Visit ID — unique hospital visit identifier - Note Timestamp (datetime): Communication.sent — when the notification was sent (use as note creation time)
- Patient Demographics
- Patient Identifier (string): EN09 Client Identifier — patient’s PHN/ULI
- Patient Birthdate (date): EN31 CPAR Client Birthdate — patient’s date of birth
-
Patient Gender (code): EN30 CPAR Client Gender — patient’s gender
-
Admission Details
- Admission DateTime (datetime): EN20 Admit Date Time — when patient was admitted
- Discharge DateTime (datetime): EN21 Discharge Date Time — when patient was discharged
- Admission Reason Code (string): EN22 Admission Reason — coded reason for admission
-
Admission Reason Text (string): EN23 Admission Text — free-text description of admission reason
-
Facility
- Facility Identifier (string): EN45 FacilityIdentifier — AH facility code where event occurred
-
Facility Type (string): EN45 FacilityIdentifierType — type of facility identifier (e.g., AHWFACID)
-
Providers
- Attending Provider Name (string): EN16/EN17 — attending provider’s first and last name
-
Referring Provider Name (string): EN18/EN19 — referring provider’s first and last name
-
Panel & Submission
- Submission Source (string): EN40 CPAR Submission Source — how panel was submitted (e.g., AUTO)
- Panel Number (string): EN41 CPAR Panel Number — CPAR’s panel identifier
-
Panel Name (string): EN42 CPAR Panel Name — name of the CPAR panel
-
Notification Metadata
-
Notification Status (code): EN50 Notification Message Status — F=First, U=Update, C=Cancel
-
Content
- Human-Readable Text (array of strings): contentStringArray — the lines of the notification text
ADT Message Header Elements¶
- EN01 — Sending Application
- Type:
valueString - Description: System or application that generated the ADT event
- FHIR Mapping:
Communication.extensionwhereurl=EN01_Sending_Application
- Type:
- EN02 — Sending Facility
- Type:
valueString - Description: Facility code that sent the original ADT message
- FHIR Mapping:
Communication.extensionwhereurl=EN02_Sending_Facility
- Type:
- EN03 — Sending Facility Description
- Type:
valueString - Description: Human-readable name/description of sending facility
- FHIR Mapping:
Communication.extensionwhereurl=EN03_Sending_Facility_Description
- Type:
- EN04 — ADT Message DateTime
- Type:
valueDateTime - Description: Timestamp when the ADT event was generated
- FHIR Mapping:
Communication.sent
- Type:
- EN05 — Message Type
- Type:
valueCode - Description: HL7 message type (e.g., “ADT”)
- FHIR Mapping:
Communication.category.codingor extensionurl=EN05_Message_Type
- Type:
- EN06 — Trigger Event
- Type:
valueCode - Description: HL7 trigger event code (e.g., “A01”, “A03”)
- FHIR Mapping:
Communication.reasonCodeor extensionurl=EN06_Trigger_Event
- Type:
Visit / Encounter Elements¶
- EN14 — Visit ID
- Type:
valueString - Description: Unique identifier for this hospital visit
- FHIR Mapping:
Encounter.identifier
- Type:
- EN15 — Patient Class
- Type:
valueCode - Description: Patient class (e.g., “inpatient”, “emergency”)
- FHIR Mapping:
Encounter.class.coding
- Type:
- EN20 — Admit Date Time
- Type:
valueDateTime - Description: When patient was admitted
- FHIR Mapping:
Encounter.period.start
- Type:
- EN21 — Discharge Date Time
- Type:
valueDateTime - Description: When patient was discharged
- FHIR Mapping:
Encounter.period.end
- Type:
- EN22 — Admission Reason
- Type:
valueString - Description: Code or short text for admit reason
- FHIR Mapping:
Encounter.reasonCode.text
- Type:
- EN23 — Admission Text
- Type:
valueString - Description: Free-text description of admission reason
- FHIR Mapping:
Encounter.hospitalization.admissionDiagnosis[0].condition.text
- Type:
Patient Identifiers & Alternative IDs¶
- EN09 — Client Identifier
- Type:
valueString - Description: Alberta ULI/PHN
- FHIR Mapping:
Patient.identifier(use=usual)
- Type:
- EN10 — Client Identifier Type
- Type:
valueCode - Description: Type of primary identifier (e.g., ULI)
- FHIR Mapping:
Patient.identifier.type.coding
- Type:
- EN11 — Client Identifier Assigning Authority
- Type:
valueCode - Description: Authority (e.g., “ABH”)
- FHIR Mapping:
Patient.identifier.assigner.display
- Type:
- EN24 — CPAR Client Identifier
- Type:
valueString - Description: CPAR’s client ID
- FHIR Mapping:
Patient.identifier(system=CPAR URI, use=official)
- Type:
- EN25 — CPAR Client Identifier Type
- Type:
valueCode - Description: Type of CPAR client ID
- FHIR Mapping:
Patient.identifier.type.coding(system=CPAR URI)
- Type:
- EN26 — CPAR Client Identifier Assigning Authority
- Type:
valueCode - Description: Authority for CPAR ID
- FHIR Mapping:
Patient.identifier.assigner.reference
- Type:
- EN32 — CPAR Client Alternative ID
- Type:
valueString - Description: Alternative client ID (e.g., JHN)
- FHIR Mapping:
Patient.identifier(use=secondary)
- Type:
- EN33 — CPAR Client Alternative Identifier Type
- Type:
valueCode - Description: Type of alternate ID
- FHIR Mapping:
Patient.identifier.type.coding
- Type:
- EN34 — CPAR Client Alternative Assigning Authority
- Type:
valueCode - Description: Authority for alternative ID
- FHIR Mapping:
Patient.identifier.assigner.reference
- Type:
Patient Demographics¶
- EN30 — CPAR Client Gender
- Type:
valueCode - Description: Client’s gender
- FHIR Mapping:
Patient.gender
- Type:
- EN31 — CPAR Client Birthdate
- Type:
valueDate - Description: Client’s date of birth
- FHIR Mapping:
Patient.birthDate
- Type:
- EN57 — Client Date of Death
- Type:
valueDate - Description: Date of death (if deceased)
- FHIR Mapping:
Patient.deceasedDateTime
- Type:
- EN58 — Client Death Indicator
- Type:
valueBoolean - Description: Indicates if client is deceased
- FHIR Mapping:
Patient.deceasedBoolean
- Type:
CPAR Submission & Panel Metadata¶
- EN35 — Submitting Site Identifier
- Type:
valueString - Description: Clinic/site ID in CPAR
- FHIR Mapping:
Organization.identifier
- Type:
- EN36 — Submitting Site Name
- Type:
valueString - Description: Clinic/site name
- FHIR Mapping:
Organization.name
- Type:
- EN37 — Submitting EMR Vendor Name
- Type:
valueString - Description: Vendor name that submitted panel
- FHIR Mapping:
Organization.extension(vendorName)
- Type:
- EN38 — Submitting EMR Product Name
- Type:
valueString - Description: EMR product name
- FHIR Mapping:
Organization.extension(productName)
- Type:
- EN39 — Submitting EMR Product Version
- Type:
valueString - Description: EMR product version
- FHIR Mapping:
Organization.extension(productVersion)
- Type:
- EN40 — CPAR Submission Source
- Type:
valueString - Description: How panel was submitted (e.g., AUTO)
- FHIR Mapping:
Basic.extensionwhereurl=EN40_CPAR_Submission_Source
- Type:
- EN41 — CPAR Panel Number
- Type:
valueString - Description: CPAR panel identifier
- FHIR Mapping:
Basic.extensionwhereurl=EN41_CPAR_Panel_Number
- Type:
- EN42 — CPAR Panel Name
- Type:
valueString - Description: Name of CPAR panel
- FHIR Mapping:
Basic.extensionwhereurl=EN42_CPAR_Panel_Name
- Type:
- EN43 — CPAR Confirmation Date
- Type:
valueDate - Description: Date CPAR confirmed your panel
- FHIR Mapping:
Basic.extensionwhereurl=EN43_CPAR_Confirmation_Date
- Type:
- EN44 — CPAR Last Visit Date
- Type:
valueDate - Description: Date of last visit captured in CPAR
- FHIR Mapping:
Basic.extensionwhereurl=EN44_CPAR_Last_Visit_Date
- Type:
- EN45 — CPAR Facility IDs
- Type:
valueArrayof{FacilityIdentifier, FacilityIdentifierType} - Description: Array of facility codes and types
- FHIR Mapping:
Encounter.location.location→Location.identifier
- Type:
- EN46 — CPAR Provider Identifier
- Type:
valueString - Description: Provider’s CPAR ID
- FHIR Mapping:
Practitioner.identifier
- Type:
- EN47 — CPAR Provider Identifier Type
- Type:
valueCode - Description: Type of provider identifier
- FHIR Mapping:
Practitioner.identifier.type.coding
- Type:
- EN48 — CPAR Provider Name
- Type:
valueArrayof strings - Description: Name(s) of provider(s) notified
- FHIR Mapping:
Practitioner.name
- Type:
Notification Metadata¶
- EN50 — Notification Message Status
- Type:
valueCode - Description: F=First, U=Update, C=Cancel
- FHIR Mapping:
Communication.extensionwhereurl=EN50_Notification_Message_Status
- Type:
- EN51 — Notification Shared Across Clinics
- Type:
valueCode - Description: “Yes”/“No” if shared across clinics
- FHIR Mapping:
Communication.extensionwhereurl=EN51_Notification_Shared_Across_Clinics
- Type:
- EN52 — Notification Identifier
- Type:
valueString - Description: Unique notification UUID
- FHIR Mapping:
Communication.identifier
- Type:
- EN53 — Notification Category Code
- Type:
valueCode - Description: Category (e.g., Encounter_Notification)
- FHIR Mapping:
Communication.category.coding
- Type:
- EN56 — Notification PDD Version
- Type:
valueString - Description: Version of the PDD used (e.g., “0.9”)
- FHIR Mapping:
Communication.meta.versionIdor extensionurl=EN56_Notification_PDD_Version
- Type:
- EN57 — Client Date of Death
- Type:
valueDate - Description: Date of death (if present)
- FHIR Mapping:
Patient.deceasedDateTime
- Type:
- EN58 — Client Death Indicator
- Type:
valueBoolean - Description: Boolean flag if the client is deceased
- FHIR Mapping:
Patient.deceasedBoolean
- Type: