Introduction
Below are all of the segments that a DDS Publisher using the HL7 API can send. The definitions below are generic and hence are relatively permissive. In the context of a specific message the segment various segment definitions may be refined to take account of the data needed to complete the business function associated with the message. More detail can be found on the HL7 API messages page
MSA - Message acknowledgement
Overview
The MSA segment contains information sent whilst acknowledging an inbound message. The following rules govern the nature of the acknowledgement -
- If the message could not be saved to the DDS message store then an AR (failure occurred, retry) acknowledgement code is returned.
- If the message is malformed, or fails sender, recipient or message type checks, or is missing a message control ID, or fails for an unexpected reason, an AE (failure occurred, move to next message) acknowledgement code is returned.
- If the message passes the above checks and is saved to the message store, an AA (success) acknowledgement code is returned.
- If the message receiver fails to send an acknowledgement (e.g. network outage, hardware failure etc), it is expected the sender will automatically re attempt to send the message.
Definition
Field | Component | Data Type | Optionality | Repeating | Description | Example |
---|---|---|---|---|---|---|
MSA:1 - Acknowledgement code | MSH:1.1 | ID | R | N | Message type. Allowed values are from table DDS-HL7v2-AckCode | |
MSA:2 - Message control ID | MSH:1.1 | ST | R | N | Unique (to DDS) identifier assigned by DDS | |
MSA:3 - Text message | MSA:3.1 | ST | O | N | Further describes an error condition (may not always be provided by DDS) |
MSH - Message Header
Overview
The MSH segment defines the intent, source, destination, and some specifics of the syntax of a message
Definition
Field | Component | Data Type | Optionality | Repeating | Description | Example |
---|---|---|---|---|---|---|
MSH.1 - Field Separator | MSH:1.1 | ST | R | N | Defines the character to be used as the separator in the message | |
MSH.2 - Encoding characters | MSH:2.1 | ST | R | N | Contains (in the following order) component separator, repetition separator, escape character, and subcomponent separator | |
MSH:3 - Sending application | MSH:3.1 | ST | R | N | Sending application name | |
MSH:4 - Sending facility | MSH:4.1 | ST | R | N | Sending facility name | |
MSH:5 - Receiving application | MSH:5.1 | ST | R | N | Receiving application name | |
MSH:6 - Receiving facility | MSH:6.1 | ST | R | N | Receiving facility name | |
MSH:7 - Message timestamp | MSH:7.1 | DT | R | N | Datetime that the sending system created the message | |
MSH:9 - Message type | - | - | R | N | ||
MSH:9.1 | ID | R | N | Message type. Allowed values are from table DDS-HL7v2-MessageType | ||
MSH:9.2 | ID | R | N | Trigger event. Allowed values are from table DDS-HL7v2-EventType | ||
MSH:10 - Message control ID. | MSH:10.1 | ST | R | N | This must be unique for all messages sent to DDS by each publisher. However, DDS does not currently detect or reject duplicate messages based on this value, so it is important that each publisher enforces this themselves. | |
MSH:11 - Processing ID | MSH:11.1 | PT | O | N | In production MUST be "P" | |
MSH:12 - Message version | MSH:12.1 | ID | R | N | The version of HL7 that this message conforms to. MUST be "2.3" |
EVN - Event Type
Overview
The EVN segment is used to communicate trigger event information to receiving applications
Definition
Field | Component | Data Type | Optionality | Repeating | Description | Example |
---|---|---|---|---|---|---|
EVN:1 - Event Type Code | EVN:1.1 | ID | O | N | The value should be the same as theMSH:9.2 (trigger event) | |
EVN:2 - Recorded Date/Time | EVN:2.1 | TS | R | N | Timestamp of when the transaction was entered | |
EVN:3 - Date/Time planned event | EVN:3.1 | TS | O | N | Avoid populating this field. Instead use PV2 expected admit date and PV2 expected discharge date whenever possible. | |
EVN:4 - Event reason code | EVN:4.1 | CWE | O | N | The reason for this event. Allowed values are from table 0062-EventReason | |
EVN:5 - Operator ID | - | - | O | N | Operator ID. If provided, at least the family name must be given. | |
EVN:5.2 | ST | R | N | Family Name | ||
EVN:5.3 | ST | O | N | Given Name | ||
EVN:5.4 | ST | O | N | Middle Names | ||
EVN:5.6 | ST | O | N | Prefix | ||
EVN:6 - Event occured | EVN:6.1 | TS | O | N | This field contains the date/time that the event actually occurred. For example, on a transfer (A02 (transfer a patient)), this field would contain the date/time the patient was actually transferred. On a cancellation event, this field should contain the date/time that the event being canceled occurred. |
PID - Patient Identification
Overview
The PID segment is used as the main way of communicating patient identification information. The majority of patient identifying and demographic information held within the PID segment is not subject to frequent changes
Definition
Field | Component | Data Type | Optionality | Repeating | Description | Example |
---|---|---|---|---|---|---|
PID:2 - Patient ID | - | - | X | N | Not used. Instead please populate PID.3 Patient Identifier List | |
PID:3 - Patient Identifier List | - | - | R | N | Patient Identifier List. This list must include at least both of the following (in order) -
|
|
PID:3.1 | ST | R | Y | Patient ID | ||
PID:3.4 | ST | R | N | Assigning authority | ||
PID:3.5 | ST | O | N | Type code | ||
PID:5 - Patient Name | - | - | R | N | ||
PID:5.1 | ST | R | N | Family name | ||
PID:5.2 | ST | O | N | Given name | ||
PID:5.3 | ST | O | N | Middle names | ||
PID:5.5 | ST | O | N | Title | ||
PID:7 | PID:7.1 | TS | R | N | Date of birth | |
PID:8 | PID:8.1 | IS | R | N | Administrative sex. Allowed values are from table 0001-AdministrativeSex | |
PID:11 - Patient Address | - | - | O | N | ||
PID:11.1 | ST | O | N | Address line 1 | ||
PID:11.2 | ST | O | N | Address line 2 | ||
PID:11.3 | ST | O | N | City | ||
PID:11.5 | ST | O | N | Post code | ||
PID:11.6 | ID | O | N | Country. Allowed values are from table 0399-CountryCode | ||
PID:11.7 | ID | O | N | Address usage eg temporary address | ||
PID:11.9 | IS | O | N | County | ||
PID:13 - Home contact information | - | - | O | N | ||
PID:13.1 | TN | O | N | Contact value | ||
PID:13.2 | ID | O | N | Contact use code. Allowed values are from table 0201-TelecommunicationUseCode | ||
PID:13.4 | ST | O | N | Email address. When receiving data where PID:13.2 is "NET", DDS will pull the email address from PID:13.4. If this field is not provided, then PID:13.1 will be used as the email address instead. | ||
PID:14 - Work contact information | - | - | O | N | ||
PID:14.1 | TN | O | N | Contact value | ||
PID:14.2 | ID | O | N | Contact use code. Allowed values are from table 0201-TelecommunicationUseCode | ||
PID:14.4 | ST | O | N | Email address. When receiving data where PID:14.2 is "NET", DDS will pull the email address from PID:14.4. If this field is not provided, then PID:14.1 will be used as the email address instead. | ||
PID:15 - Primary language | - | - | O | N | Primary language. This should be the ISO 639-1 code. | |
PID:15.1 | ST | O | N | Primary language. Allowed values are from table 0296-PrimaryLanguage | ||
PID:15.3 | IS | C | N | Name of coding system. Required if PID:15.4 is present. Must be http://terminology.hl7.org/CodeSystem/iso639-1 | http://terminology.hl7.org/CodeSystem/iso639-1 | |
PID:15.4 | ST | O | N | Alternate Primary language. Allowed values are from table 0296-PrimaryLanguage | ||
PID:15.6 | IS | C | N | Name of alternate coding system. Required if PID:15.4 is present. Must be http://terminology.hl7.org/CodeSystem/iso639-1 | http://terminology.hl7.org/CodeSystem/iso639-1 | |
PID:17 - Religion | PID:17.1 | IS | O | N | Religion. Allowed values are from table DDS-Religion | |
PID:18 - Patient Account Number | PID:18.1 | ST | C | N | Though officially this field is intended to capture account number it has been repurposed in DDS. It is used to carry the identifier for the episode of care. Simplistically an episode of care encapsulates all of the encounters that a patient may have with a healthcare organisation from the point of referral to the point of discharge.
If the publisher does not have the concept of episode of care then instead this MUST be the same value as that found in PV1.19 - Visit number. If no PV1 segment accompanies this PID segment then PID:18 should not be populated |
|
PID:22 - Ethnic group | - | - | O | N | ||
PID:22.1 | ST | O | N | Ethnicity identifier. Allowed values are from table 0189-EthnicGroup | ||
PID:22.3 | IS | C | N | Name of coding system. Required if PID:22.1 is present. | ||
PID:29 - Patient Death Date and Time | PID:29.1 | TS | C | N | If PID.30:1 is not empty and PID:30.1 == "Y" then PID:29 is mandatory | |
PID:30 - Patient Death Indicator | PID:30.1 | ID | O | N | "Y" or "N" |
PD1 - Patient Additional Demographic
Overview
The PD1 segment contains demographic information about a patient that is likely to change. In the case of DDS is it used to carry GP data.
Definition
Field | Component | Data Type | Optionality | Repeating | Description | Example |
---|---|---|---|---|---|---|
PD1:3 - Patient Primary Facility | - | - | R | N | ||
PD1:3.1 | ST | R | N | name | ||
PD1:3.3 | ST | R | N | ODS code | ||
PD1:4 - Patient Primary Care Provider Name and ID No | - | - | R | N | ||
PD1:4.1 | ST | R | N | GMC code | ||
PD1:4.2 | FN | R | N | Family name | ||
PD1:4.3 | ST | R | N | Given name |
MRG - Merge Patient Information
Overview
The MRG segment is used by DDS to support merging of patient identifiers
Definition
Field | Component | Data Type | Optionality | Repeating | Description | Example |
---|---|---|---|---|---|---|
MRG:1 - Prior Patient Identifier List | CX | X | N | Ignored if supplied | ||
MRG:2 - Prior Alternate Patient ID | CX | X | N | Ignored if supplied | ||
MRG:3 - Prior Alternate Account Number | CX | X | N | Ignored if supplied | ||
MRG:4 - Prior Patient ID | - | R | N | Contains the prior patient identifier | ||
MRG:4.1 | ST | R | Y | Patient ID | ||
MRG:4.4 | ST | R | N | Assigning authority | ||
MRG:4.5 | ST | O | N | Type code | ||
MRG:5 - Prior Visit Number | CX | X | N | Ignored if supplied | ||
MRG:6 - Prior Alternate Visit ID | CX | X | N | Ignored if supplied | ||
MRG:7 - Prior Patient Name | - | XPN | X | N | Ignored if supplied |
PV1 - Patient Visit
Overview
The PV1 segment is used by Registration/Patient Administration applications to communicate information on a visit-specific basis.
Definition
Field | Component | Data Type | Optionality | Repeating | Description | Example |
---|---|---|---|---|---|---|
PV1:2 - Patient Class | PV1:2.1 | ID | R | N | Allowed values are from table 0004-PatientClass | |
PV1:3 - Assigned Patient Location | PV1:3.1 | IS | R | N | General patient location | |
PV1:4 - Admission Type | PV1:4.1 | ID | O | N | Allowed values are from table 0007-AdmissionType | |
PV1:6 - Prior Patient Location | PV1:6.9 | ST | O | N | Free text description of the location | |
PV1:7 - Attending Doctor | - | - | O | N | Attending doctor. If provided, at least the family name must be given. | |
PV1:7.2 | ST | R | N | Family Name | ||
PV1:7.3 | ST | O | N | Given Name | ||
PV1:7.4 | ST | O | N | Middle Names | ||
PV1:7.6 | ST | O | N | Prefix | ||
PV1:8 - Referring Doctor | - | - | O | N | Referring doctor. If provided, at least the family name must be given. | |
PV1:8.1 | ST | O | N | ID number | ||
PV1:8.2 | ST | O | N | Family Name | ||
PV1:8.3 | ST | O | N | Given Name | ||
PV1:8.4 | ST | O | N | Middle Names | ||
PV1:8.6 | ST | O | N | Prefix | ||
PV1:9 - Consulting Doctor | - | - | R | N | Consulting doctor. If provided, at least the family name must be given. | |
PV1:9.1 | ST | R | N | ID number | ||
PV1:9.2 | ST | R | N | Family Name | ||
PV1:9.3 | ST | O | N | Given Name | ||
PV1:9.4 | ST | O | N | Middle Names | ||
PV1:9.6 | ST | O | N | Prefix | ||
PV1:10 - Hospital Service | PV1:10.1 | IS | R | N | Allowed values are from table 0069-HospitalService | |
PV1:13 - Re-admission Indicator | PV1:13.1 | IS | O | N | Allowed values are from table 0092-Re-AdmissionIndicator | |
PV1:14 - Admit source | PV1:14.1 | IS | O | N | Allowed values are from table DDS-AdmissionSource | |
PV1:18 - Patient Type | PV1:18.1 | IS | R | N | Allowed values are from table HL7v3-EncounterType | |
PV1:19 - Visit Number | PV1:19.1 | CX | R | N | Visit ID. Should uniquely identify an Encounter from the DDS publisher. | |
PV1:36 - Discharge Disposition | PV1:36.1 | IS | O | N | Allowed values are from table 0112-DischargeDisposition | |
PV1:37 - Discharged to Location | PV1:37.1 | ID | O | N | Allowed values are from table 0113-DischargedToLocation | |
PV1:44 - Admit Date/Time | PV1:44.1 | TS | C | N | Admit timestamp | |
PV1:45 - Discharge Date/Time | PV1:45.1 | TS | O | N | Discharge timestamp |
NTE - Notes and Comments
Overview
The NTE segment is used to hold comments [TODO - are there any constraints on the size of an individual comment]
Definition
Field | Component | Data Type | Optionality | Repeating | Description | Example |
---|---|---|---|---|---|---|
NTE:3 - Comment | NTE:3.1 | FT | R | Y | Comment |
ORC - Common Order
Overview
The ORC segment is used to carry information that is common across an order
Definition
Field | Component | Data Type | Optionality | Repeating | Description | Example |
---|---|---|---|---|---|---|
ORC:3 - Filler Order number | ORC:3.1 | ST | O | N | This string must uniquely identify an order from other orders in the filling system | |
ORC:21 - Ordering Facility name | - | - | R | N | Used to differentiate between different sources of result data (eg GP vs acute settings) | |
ORC:21.1 | ST | O | N | Facility name | ||
ORC:21.3 | ST | R | N | Facility ID. Note that this MUST be the ODS code of the ordering facility | ||
ORC:21.7 | ID | R | N | Facility ID type. Allowed values are from table 0074-DiagnosticServiceSectionID |
OBR - Observation Request
Overview
DDS interprets an OBR as either representing a single textual laboratory report or a collection of individual test results. More information can be found in the ORU R01 - Unsolicited Observation definition.
Field | Component | Data Type | Optionality | Repeating | Description | Example |
---|---|---|---|---|---|---|
OBR:3 - Filler Order number | OBR:3.1 | ST | C | N | OBR:3-filler order number is identical to ORC:3-filler order number.
If the filler order number is not present in the ORC, it must be present in the associated OBR |
|
OBR:4 - Universal Service Identifier | - | - | R | N | ||
OBR:4.1 | ST | R | N | Service Identifier | ||
OBR:4.2 | ST | R | N | Service name | ||
OBR:4.3 | ID | R | N | Service coding system. Allowed values are [TODO] | ||
OBR:4.5 | ST | O | N | Alternative service name | ||
OBR:7 - Observation date/time | ORC:7.1 | TS | C | N | Observation timestamp. If this is not present, OBX:14 is used instead. It is an error for neither to be provided. | |
OBR:16 - Ordered by | O | N | If provided, at least the family name must be given. | |||
OBR:16.2 | ST | R | N | Family Name | ||
OBR:16.3 | ST | O | N | Given Name | ||
OBR:16.4 | ST | O | N | Middle Names | ||
OBR:16.6 | ST | O | N | Prefix | ||
OBR:24 - Discipline | OBR:24.1 | ID | O | N | This field is the section of the diagnostic service where the observation was performed.
If the study was performed by an outside service, the identification of that service should be recorded here. Allowed values are from table 0074-DiagnosticServiceSectionID |
|
OBR:25 - Result status | OBR:25.1 | ID | O | N | Only values of F and C will be processed. Values of I, O, P or X (which indicate pending or no results) are silently ignored, whilst any other values will cause an error. Allowed values are from table DDS-ResultStatus |
Definition
OBX - Observation or result
Overview
The OBX segment can carry an observation about the patient or it can also be used to carry test results.
Definition
Field | Component | Data Type | Optionality | Repeating | Description | Example | |
---|---|---|---|---|---|---|---|
OBX:1 - Set ID | OBX:1.1 | SI | R | N | Sequence number for OBX. Must be unique under its associated OBR segment | ||
OBX:2 - Value Type | OBX:2.1 | ID | R | N | Allowed values are from table 0125-ValueType | ||
OBX:3 - Observation Identifier | - | CWE | R | Y | If this is a textual report, this value will be overridden by OBR:4. Otherwise this value must be provided. | ||
OBX:3.1 | ST | R | N | Test ID. If this is a textual report, this value will be overridden by OBR:4.1. Otherwise this value must be provided. If a measurement is being provided, this ID must match one of the predefined values which DDS can accept. | |||
OBX:3.2 | ST | O | N | Test Name | |||
OBX:3.3 | ST | C | N | Test coding system. If this is a textual report, this value will be overridden by OBR:4.3. | |||
OBX:5 - Observation Value | OBX:5.1 | VARIES | R | N | Value. Type MUST match OBX:2.1 | ||
OBX:6 - Observation Units | - | - | O | N | |||
OBX:6.1 | ST | R | N | Unit ID | |||
OBX:6.2 | ST | O | N | Unit Name | |||
OBX:6.3 | ST | R | N | Unit coding system | |||
OBX:7 | OBX:7.1 | ST | O | N | Reference range. Can be used to convey low value, high value and normal value. DDS will parse the data into one or more of these categories depending upon how the reference range value is formatted
|
See table below for examples | |
OBX:8 - Abnormal flag | - | - | C | N | To flag the result as abnormal (e.g., High, Low) this flag MUST be sent in the message | ||
OBX:8.1 | R | N | Flag ID - allowed values are from http://terminology.hl7.org/ValueSet/v3-ObservationInterpretation | ||||
OBX:8.2 | O | Flag name | |||||
OBX:8.3 | O | N | Flag coding system - If present then MUST be "http://terminology.hl7.org/ValueSet/v3-ObservationInterpretation" | ||||
OBX:11 | ST | O | N | Result status | Result status. Only values of F and C will be processed. Values of I, O, P or X (which indicate pending or no results) are silently ignored, whilst any other values will cause an error. Allowed values are from table DDS-ResultStatus | ||
OBX:13 | ST | O | N | Custom access rules | Custom access rules for lab results. Currently supported: "{patientDelay:NUMBERdays}" with any whole number in place of "NUMBER" (no spaces). The patient will see that a lab result has arrived, but the result value will not be revealed until the set number of days past the date/time of observation have passed. If this field is not specified the patient will be able to see their results immediately. Note: if this OBR group is a textual report spanning multiple OBX segments, the delay must be provided in the first. | {patientDelay:3days} | |
OBX:14 | ST | C | N | Date/Time of the Observation | Observation timestamp. If this is not present, OBR:7 is used instead. It is an error for neither to be provided. | ||
OBX:16 - Responsible Observer | O | N | If provided, at least the family name must be given. | ||||
OBX:16.2 | ST | R | N | Family Name | |||
OBX:16.3 | ST | O | N | Given Name | |||
OBX:16.4 | ST | O | N | Middle Names | |||
OBX:16.6 | ST | O | N | Prefix |
Reference range
OBX:7 value | Low value | High value | Normal value |
---|---|---|---|
"3-4" | 3 | 4 | - |
"3--4" | 3 | -4 | - |
"-3-4" | -3 | 4 | - |
"3 - 4" | 3 | 4 | - |
" 5" | - | - | 5 |
">5" | - | - | ">5" |
"POS" | - | - | "POS" |
Each AL1 segment describes a single patient allergy.
Definition
Field | Component | Data Type | Optionality | Repeating | Description | Example |
---|---|---|---|---|---|---|
AL1:2 - Allergy type | AL1:2.1 | IS | O | N | Allowed values are from table 0127-AllergenType | |
AL1:3 - Allergy code/description | - | - | R | N | ||
AL1:3.1 | ST | O | N | Allergy ID. | ||
AL1:3.2 | ST | C | N | Allergy Name. If AL1:3.1 is not provided then Allergy name is required | ||
AL1:3.3 | ST | C | N | Allergy coding system. If AL1:3.1 is provided then Allergy coding system is required | ||
AL1:4 - Allergy severity | AL1:4.1 | IS | O | N | Allowed values are from table 0128-AllergySeverity | |
AL1:5 - Allergy reaction | AL1:5.1 | ST | O | N | ||
AL1:6 - Allergy identification date | AL1:6.1 | DT | O | N |
DG1 - Diagnosis
Overview
The DG1 segment contains patient diagnosis information of various types, for example, admitting, primary, etc. The DG1 segment is used to send multiple diagnoses (for example, for medical records encoding)
Definition
Field | Component | Data Type | Optionality | Repeating | Description | Example |
---|---|---|---|---|---|---|
DG1:3 - Diagnosis code | - | - | O | N | ||
DG1:3.1 | ST | O | N | Diagnosis ID. | ||
DG1:3.2 | ST | C | N | Diagnosis Name. If DG1:3.1 is not provided then Diagnosis name is required | ||
DG1:3.3 | ST | C | N | Diagnosis coding system. If DG1:3.1 is provided then Diagnosis coding system is required | ||
DG1:4 - Diagnosis description | DG1:4.1 | ST | C | N | If DG1:3 is not provided then DG1.4 is required | |
DG1:5 - Diagnosis date/time | DG1:5.1 | TS | O | N | Datetime of diagnosis | |
DG1:16 - Diagnosing Clinician | - | - | O | N | Diagnosing Clinician. If provided, at least the family name must be given. | |
DG1:16.2 | ST | R | N | Family Name | ||
DG1:16.3 | ST | O | N | Given Name | ||
DG1:16.4 | ST | O | N | Middle Names | ||
DG1:16.6 | ST | O | N | Prefix | ||
DG1:17 - Diagnosis classification | DG1:17.1 | IS | O | N | Allowed values are from table 0228-DiagnosisClassification |
PR1 - Procedures
Overview
The PR1 segment contains information relative to various types of procedures that can be performed on a patient.
Definition
Field | Component | Data Type | Optionality | Repeating | Description | Example |
---|---|---|---|---|---|---|
PR1:3 - Procedure code | - | - | O | N | ||
PR1:3.1 | ST | O | N | Procedure ID. | ||
PR1:3.2 | ST | C | N | Procedure Name. If PR1:3.1 is not provided then Procedure name is required | ||
PR1:3.3 | ST | C | N | Procedure coding system. If PR1:3.1 is provided then Procedure coding system is required | ||
PR1:4 - Procedure description | PR1:4.1 | ST | C | N | If PR1:3 is not provided then PR1.4 is required | |
PR1:5 - Procedure date/time | PR1:5.1 | TS | O | N | Datetime of procedure | |
PR1:6 - Procedure type | PR1:6.1 | IS | R | N | Allowed values are from table FHIR-ProcedureCode |