Documentation
¶
Overview ¶
Package h220 contains the data structures for HL7 v2.2.
Index ¶
- Variables
- type ACC
- type ACK
- type AD
- type ADD
- type ADR_A19
- type ADR_A19_Insurance
- type ADR_A19_QueryResponse
- type ADT_A01
- type ADT_A01_Insurance
- type ADT_A02
- type ADT_A03
- type ADT_A04
- type ADT_A04_Insurance
- type ADT_A05
- type ADT_A05_Insurance
- type ADT_A06
- type ADT_A06_Insurance
- type ADT_A07
- type ADT_A07_Insurance
- type ADT_A08
- type ADT_A08_Insurance
- type ADT_A09
- type ADT_A10
- type ADT_A11
- type ADT_A12
- type ADT_A13
- type ADT_A13_Insurance
- type ADT_A14
- type ADT_A14_Insurance
- type ADT_A15
- type ADT_A16
- type ADT_A17
- type ADT_A18
- type ADT_A20
- type ADT_A21
- type ADT_A22
- type ADT_A23
- type ADT_A24
- type ADT_A25
- type ADT_A26
- type ADT_A27
- type ADT_A28
- type ADT_A28_Insurance
- type ADT_A29
- type ADT_A30
- type ADT_A31
- type ADT_A31_Insurance
- type ADT_A32
- type ADT_A33
- type ADT_A34
- type ADT_A35
- type ADT_A36
- type ADT_A37
- type AL1
- type BAR_P01
- type BAR_P01_Insurance
- type BAR_P01_Visit
- type BAR_P02
- type BAR_P02_Patient
- type BHS
- type BLG
- type BTS
- type CE
- type CK
- type CM_AUI
- type CM_BATCH_TOTAL
- type CM_CCD
- type CM_DDI
- type CM_DLD
- type CM_DTN
- type CM_EIP
- type CM_ELD
- type CM_FILLER
- type CM_FINANCE
- type CM_GROUP_ID
- type CM_INTERNAL_LOCATION
- type CM_JOB_CODE
- type CM_LA1
- type CM_LICENSE_NO
- type CM_MOC
- type CM_MSG
- type CM_NDL
- type CM_OCD
- type CM_OSD
- type CM_OSP
- type CM_PAT_ID
- type CM_PAT_ID_0192
- type CM_PCF
- type CM_PEN
- type CM_PLACER
- type CM_PRACTITIONER
- type CM_PRL
- type CM_PTA
- type CM_RI
- type CM_RMC
- type CM_SPS
- type CM_UVC
- type CM_VR
- type CN_PERSON
- type CN_PHYSICIAN
- type COMP_ID_DIGIT
- type CQ
- type DFT_P03
- type DG1
- type DSC
- type DSP
- type DSR_Q01
- type DSR_Q03
- type DSR_R03
- type DT
- type ERR
- type EVN
- type FHS
- type FT
- type FT1
- type FTS
- type GT1
- type HD
- type HL7Name
- type ID
- type IN1
- type IN2
- type IN3
- type IS
- type MCF
- type MFA
- type MFD_M01
- type MFD_M02
- type MFD_M03
- type MFE
- type MFI
- type MFN_M01
- type MFN_M01_Mf
- type MFN_M02
- type MFN_M02_Mfstaff
- type MFN_M03
- type MFN_M03_Mftest
- type MFQ_M01
- type MFQ_M02
- type MFQ_M03
- type MRG
- type MSA
- type MSH
- type NCK
- type NK1
- type NM
- type NMD_N01
- type NMD_N01_Appstats
- type NMD_N01_Appstatus
- type NMD_N01_Clock
- type NMD_N01_Clockandstatswithnotes
- type NMQ_N02
- type NMQ_N02_Clockandstatistics
- type NMQ_N02_Qrywithdetail
- type NMR_N02
- type NMR_N02_Response
- type NPU
- type NSC
- type NST
- type NTE
- type OBR
- type OBX
- type ODS
- type ODT
- type ORC
- type ORF_R04
- type ORF_R04_Observation
- type ORF_R04_Order
- type ORF_R04_Queryresponse
- type ORM_O01
- type ORM_O01_Observation
- type ORM_O01_Order
- type ORM_O01_OrderDetailSegment
- type ORM_O01_Orderdetail
- type ORM_O01_Patient
- type ORR_O02
- type ORR_O02_Order
- type ORR_O02_OrderDetailSegment
- type ORR_O02_Orderdetail
- type ORR_O02_Patient
- type ORU_R01
- type ORU_R01_Observation
- type ORU_R01_Orderobservation
- type ORU_R01_Patient
- type ORU_R01_Patientresult
- type PID
- type PL
- type PN
- type PR1
- type PV1
- type PV2
- type QRD
- type QRF
- type QRY_A19
- type QRY_P04
- type QRY_Q01
- type QRY_Q02
- type QRY_Q26
- type QRY_Q27
- type QRY_Q28
- type QRY_Q29
- type QRY_Q30
- type QRY_R02
- type RAR_RAR
- type RAR_RAR_Definition
- type RAR_RAR_Encoding
- type RAR_RAR_Order
- type RAR_RAR_Patient
- type RAS_O02
- type RAS_O02_Components
- type RAS_O02_Encoding
- type RAS_O02_Observation
- type RAS_O02_Order
- type RAS_O02_OrderDetail
- type RAS_O02_OrderDetailSupplement
- type RAS_O02_Patient
- type RDE_O01
- type RDE_O01_Component
- type RDE_O01_Observation
- type RDE_O01_Order
- type RDE_O01_Orderdetail
- type RDE_O01_Patient
- type RDR_RDR
- type RDR_RDR_Definition
- type RDR_RDR_Dispense
- type RDR_RDR_Encoding
- type RDR_RDR_Order
- type RDR_RDR_Patient
- type RDS_O01
- type RDS_O01_Component
- type RDS_O01_Encoding
- type RDS_O01_Observation
- type RDS_O01_Order
- type RDS_O01_OrderDetailSupplement
- type RDS_O01_Orderdetail
- type RDS_O01_Patient
- type RER_RER
- type RER_RER_Definition
- type RER_RER_Order
- type RER_RER_Patient
- type RGR_RGR
- type RGR_RGR_Definition
- type RGR_RGR_Encoding
- type RGR_RGR_Order
- type RGR_RGR_Patient
- type RGV_O01
- type RGV_O01_Component
- type RGV_O01_Encoding
- type RGV_O01_Give
- type RGV_O01_Observation
- type RGV_O01_Order
- type RGV_O01_OrderDetailSupplement
- type RGV_O01_Orderdetail
- type RGV_O01_Patient
- type ROR_ROR
- type ROR_ROR_Definition
- type ROR_ROR_Order
- type ROR_ROR_Patient
- type RQ1
- type RQD
- type RRA_O02
- type RRA_O02_Administration
- type RRA_O02_Order
- type RRA_O02_Patient
- type RRA_O02_Response
- type RRD_O02
- type RRD_O02_Order
- type RRD_O02_Orderdetail
- type RRD_O02_Patient
- type RRE_O02
- type RRE_O02_Order
- type RRE_O02_Orderdetail
- type RRE_O02_Patient
- type RRG_O02
- type RRG_O02_Order
- type RRG_O02_Orderdetail
- type RRG_O02_Patient
- type RXA
- type RXC
- type RXD
- type RXE
- type RXG
- type RXO
- type RXR
- type Row
- type SI
- type ST
- type TN
- type TQ
- type TS
- type TX
- type Table
- type UB1
- type UB2
- type UDM_Q05
- type URD
- type URS
- type VARIES
- type Zxx
Constants ¶
This section is empty.
Variables ¶
var ControlSegmentRegistry = map[string]any{ "BHS": BHS{}, "BTS": BTS{}, "FHS": FHS{}, "FTS": FTS{}, "DSC": DSC{}, "ADD": ADD{}, }
Segments specific to file and batch control.
var DataTypeRegistry = map[string]any{ "AD": *(new(AD)), "CE": *(new(CE)), "CK": *(new(CK)), "CM_AUI": *(new(CM_AUI)), "CM_BATCH_TOTAL": *(new(CM_BATCH_TOTAL)), "CM_CCD": *(new(CM_CCD)), "CM_DDI": *(new(CM_DDI)), "CM_DLD": *(new(CM_DLD)), "CM_DTN": *(new(CM_DTN)), "CM_EIP": *(new(CM_EIP)), "CM_ELD": *(new(CM_ELD)), "CM_FILLER": *(new(CM_FILLER)), "CM_FINANCE": *(new(CM_FINANCE)), "CM_GROUP_ID": *(new(CM_GROUP_ID)), "CM_INTERNAL_LOCATION": *(new(CM_INTERNAL_LOCATION)), "CM_JOB_CODE": *(new(CM_JOB_CODE)), "CM_LA1": *(new(CM_LA1)), "CM_LICENSE_NO": *(new(CM_LICENSE_NO)), "CM_MOC": *(new(CM_MOC)), "CM_MSG": *(new(CM_MSG)), "CM_NDL": *(new(CM_NDL)), "CM_OCD": *(new(CM_OCD)), "CM_OSD": *(new(CM_OSD)), "CM_OSP": *(new(CM_OSP)), "CM_PAT_ID": *(new(CM_PAT_ID)), "CM_PAT_ID_0192": *(new(CM_PAT_ID_0192)), "CM_PCF": *(new(CM_PCF)), "CM_PEN": *(new(CM_PEN)), "CM_PLACER": *(new(CM_PLACER)), "CM_PRACTITIONER": *(new(CM_PRACTITIONER)), "CM_PRL": *(new(CM_PRL)), "CM_PTA": *(new(CM_PTA)), "CM_RI": *(new(CM_RI)), "CM_RMC": *(new(CM_RMC)), "CM_SPS": *(new(CM_SPS)), "CM_UVC": *(new(CM_UVC)), "CM_VR": *(new(CM_VR)), "CN_PERSON": *(new(CN_PERSON)), "CN_PHYSICIAN": *(new(CN_PHYSICIAN)), "COMP_ID_DIGIT": *(new(COMP_ID_DIGIT)), "CQ": *(new(CQ)), "DT": *(new(DT)), "FT": *(new(FT)), "HD": *(new(HD)), "ID": *(new(ID)), "IS": *(new(IS)), "NM": *(new(NM)), "PL": *(new(PL)), "PN": *(new(PN)), "SI": *(new(SI)), "ST": *(new(ST)), "TN": *(new(TN)), "TQ": *(new(TQ)), "TS": *(new(TS)), "TX": *(new(TX)), "VARIES": *(new(VARIES)), }
Data Type lookup by ID.
var Registry = registry{}
Registry implements the required interface for unmarshalling data.
var SegmentRegistry = map[string]any{ "ACC": ACC{}, "ADD": ADD{}, "AL1": AL1{}, "BHS": BHS{}, "BLG": BLG{}, "BTS": BTS{}, "DG1": DG1{}, "DSC": DSC{}, "DSP": DSP{}, "ERR": ERR{}, "EVN": EVN{}, "FHS": FHS{}, "FT1": FT1{}, "FTS": FTS{}, "GT1": GT1{}, "IN1": IN1{}, "IN2": IN2{}, "IN3": IN3{}, "MFA": MFA{}, "MFE": MFE{}, "MFI": MFI{}, "MRG": MRG{}, "MSA": MSA{}, "MSH": MSH{}, "NCK": NCK{}, "NK1": NK1{}, "NPU": NPU{}, "NSC": NSC{}, "NST": NST{}, "NTE": NTE{}, "OBR": OBR{}, "OBX": OBX{}, "ODS": ODS{}, "ODT": ODT{}, "ORC": ORC{}, "PID": PID{}, "PR1": PR1{}, "PV1": PV1{}, "PV2": PV2{}, "QRD": QRD{}, "QRF": QRF{}, "RQ1": RQ1{}, "RQD": RQD{}, "RXA": RXA{}, "RXC": RXC{}, "RXD": RXD{}, "RXE": RXE{}, "RXG": RXG{}, "RXO": RXO{}, "RXR": RXR{}, "UB1": UB1{}, "UB2": UB2{}, "URD": URD{}, "URS": URS{}, "Zxx": Zxx{}, }
Segment lookup by ID.
var TableLookup = map[string]Table{}/* 141 elements not displayed */
TableLookup provides valid values for field types.
var TableValueLookup = map[string]map[string]bool{}/* 141 elements not displayed */
TableValueLookup may be used to validate a specific value.
var TriggerRegistry = map[string]any{ "ACK": ACK{}, "ADR_A19": ADR_A19{}, "ADT_A01": ADT_A01{}, "ADT_A02": ADT_A02{}, "ADT_A03": ADT_A03{}, "ADT_A04": ADT_A04{}, "ADT_A05": ADT_A05{}, "ADT_A06": ADT_A06{}, "ADT_A07": ADT_A07{}, "ADT_A08": ADT_A08{}, "ADT_A09": ADT_A09{}, "ADT_A10": ADT_A10{}, "ADT_A11": ADT_A11{}, "ADT_A12": ADT_A12{}, "ADT_A13": ADT_A13{}, "ADT_A14": ADT_A14{}, "ADT_A15": ADT_A15{}, "ADT_A16": ADT_A16{}, "ADT_A17": ADT_A17{}, "ADT_A18": ADT_A18{}, "ADT_A20": ADT_A20{}, "ADT_A21": ADT_A21{}, "ADT_A22": ADT_A22{}, "ADT_A23": ADT_A23{}, "ADT_A24": ADT_A24{}, "ADT_A25": ADT_A25{}, "ADT_A26": ADT_A26{}, "ADT_A27": ADT_A27{}, "ADT_A28": ADT_A28{}, "ADT_A29": ADT_A29{}, "ADT_A30": ADT_A30{}, "ADT_A31": ADT_A31{}, "ADT_A32": ADT_A32{}, "ADT_A33": ADT_A33{}, "ADT_A34": ADT_A34{}, "ADT_A35": ADT_A35{}, "ADT_A36": ADT_A36{}, "ADT_A37": ADT_A37{}, "BAR_P01": BAR_P01{}, "BAR_P02": BAR_P02{}, "DFT_P03": DFT_P03{}, "DSR_Q01": DSR_Q01{}, "DSR_Q03": DSR_Q03{}, "DSR_R03": DSR_R03{}, "MCF": MCF{}, "MFD_M01": MFD_M01{}, "MFD_M02": MFD_M02{}, "MFD_M03": MFD_M03{}, "MFN_M01": MFN_M01{}, "MFN_M02": MFN_M02{}, "MFN_M03": MFN_M03{}, "MFQ_M01": MFQ_M01{}, "MFQ_M02": MFQ_M02{}, "MFQ_M03": MFQ_M03{}, "NMD_N01": NMD_N01{}, "NMQ_N02": NMQ_N02{}, "NMR_N02": NMR_N02{}, "ORF_R04": ORF_R04{}, "ORM_O01": ORM_O01{}, "ORR_O02": ORR_O02{}, "ORU_R01": ORU_R01{}, "QRY_A19": QRY_A19{}, "QRY_P04": QRY_P04{}, "QRY_Q01": QRY_Q01{}, "QRY_Q02": QRY_Q02{}, "QRY_Q26": QRY_Q26{}, "QRY_Q27": QRY_Q27{}, "QRY_Q28": QRY_Q28{}, "QRY_Q29": QRY_Q29{}, "QRY_Q30": QRY_Q30{}, "QRY_R02": QRY_R02{}, "RAR_RAR": RAR_RAR{}, "RAS_O02": RAS_O02{}, "RDE_O01": RDE_O01{}, "RDR_RDR": RDR_RDR{}, "RDS_O01": RDS_O01{}, "RER_RER": RER_RER{}, "RGR_RGR": RGR_RGR{}, "RGV_O01": RGV_O01{}, "ROR_ROR": ROR_ROR{}, "RRA_O02": RRA_O02{}, "RRD_O02": RRD_O02{}, "RRE_O02": RRE_O02{}, "RRG_O02": RRG_O02{}, "UDM_Q05": UDM_Q05{}, }
Trigger lookup by ID.
var Version = `2.2`
Version of this HL7 package.
Functions ¶
This section is empty.
Types ¶
type ACC ¶
type ACC struct {
HL7 HL7Name `hl7:",name=ACC,type=s"`
AccidentDateTime TS `hl7:"1,len=26,format=YMDHMS,display=Accident Date / Time"`
AccidentCode ID `hl7:"2,len=2,table=0050,display=Accident Code"`
AccidentLocation ST `hl7:"3,len=25,display=Accident Location"`
}
Accident
The ACC segment contains patient information relative to an accidentin which the patient has been involved.
type ACK ¶
type ACK struct {
HL7 HL7Name `hl7:",name=ACK,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MSA *MSA `hl7:"2,required,display=Message Acknowledgment"`
ERR *ERR `hl7:"3,display=Error"`
}
General acknowledgement
The simple general acknowledgement (ACK) can be used where the application does not define a special application level acknowledgement message or where there has been an error that precludes application processing. It is also used for accept level acknowlegements.
type AD ¶
type AD struct {
HL7 HL7Name `hl7:",name=AD,len=0,type=d"`
StreetAddress ST `hl7:"1,display=Street Address"`
OtherDesignation ST `hl7:"2,display=Other Designation"`
City ST `hl7:"3,display=City"`
StateOrProvince ST `hl7:"4,display=State Or Province"`
ZipOrPostalCode ID `hl7:"5,display=Zip Or Postal Code"`
Country ID `hl7:"6,table=ISO3166,display=Country"`
Type ID `hl7:"7,table=0190,display=Type"`
OtherGeographicDesignation ST `hl7:"8,display=Other Geographic Designation"`
}
Address
All components are ST data type. The street or mailing address of a person or institution.
type ADD ¶
type ADD struct {
HL7 HL7Name `hl7:",name=ADD,type=s"`
AddendumContinuationPointer ST `hl7:"1,len=65536,display=Addendum Continuation Pointer"`
}
Addendum
The ADD segment is used to define the continuation of the prior segment in a continuation message
type ADR_A19 ¶
type ADR_A19 struct {
HL7 HL7Name `hl7:",name=ADR_A19,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MSA *MSA `hl7:"2,required,display=Message Acknowledgment"`
ERR *ERR `hl7:"3,display=Error"`
QRD *QRD `hl7:"4,required,display=Query Definition"`
QueryResponse []ADR_A19_QueryResponse `hl7:",required,display=Query Response"`
DSC *DSC `hl7:"21,display=Continuation Pointer"`
}
Patient query
The following trigger event is served by QRY (a query from another system) and ADR (a response from an Patient Administration system.)
Another application determines a need for Patient Administration data about a patient and sends a query to the Patient Administration system. The Who Filter in the QRD can identify the patient or account number upon which the query is defined and can contain a format code of “R” (record-oriented). If the query is based on the Patient ID and there are data associated with multiple accounts, the problem of which account data should be returned becomes an implementation issue. The ADT event-type segment, if included in the response, describes the last event for which the Patient Administration system initiated an unsolicited update
type ADR_A19_Insurance ¶
type ADR_A19_Insurance struct {
HL7 HL7Name `hl7:",name=ADR_A19_Insurance,type=tg"`
IN1 *IN1 `hl7:"15,required,display=Insurance"`
IN2 *IN2 `hl7:"16,display=Insurance Additional Info"`
IN3 *IN3 `hl7:"17,display=Insurance Additional Info-certification"`
}
Insurance
type ADR_A19_QueryResponse ¶
type ADR_A19_QueryResponse struct {
HL7 HL7Name `hl7:",name=ADR_A19_QueryResponse,type=tg"`
EVN *EVN `hl7:"5,display=Event Type"`
PID *PID `hl7:"6,required,display=Patient Identification"`
NK1 []NK1 `hl7:"7,display=Next Of Kin"`
PV1 *PV1 `hl7:"8,required,display=Patient Visit"`
PV2 *PV2 `hl7:"9,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"10,display=Observation Result"`
AL1 []AL1 `hl7:"11,display=Patient Allergy Information"`
DG1 []DG1 `hl7:"12,display=Diagnosis"`
PR1 []PR1 `hl7:"13,display=Procedures"`
GT1 []GT1 `hl7:"14,display=Guarantor"`
Insurance []ADR_A19_Insurance `hl7:",display=Insurance"`
ACC *ACC `hl7:"18,display=Accident"`
UB1 *UB1 `hl7:"19,display=Ub82 Data"`
UB2 *UB2 `hl7:"20,display=Ub92 Data"`
}
QueryResponse
type ADT_A01 ¶
type ADT_A01 struct {
HL7 HL7Name `hl7:",name=ADT_A01,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
NK1 []NK1 `hl7:"4,display=Next Of Kin"`
PV1 *PV1 `hl7:"5,required,display=Patient Visit"`
PV2 *PV2 `hl7:"6,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"7,display=Observation Result"`
AL1 []AL1 `hl7:"8,display=Patient Allergy Information"`
DG1 []DG1 `hl7:"9,display=Diagnosis"`
PR1 []PR1 `hl7:"10,display=Procedures"`
GT1 []GT1 `hl7:"11,display=Guarantor"`
Insurance []ADT_A01_Insurance `hl7:",display=Insurance"`
ACC *ACC `hl7:"15,display=Accident"`
UB1 *UB1 `hl7:"16,display=Ub82 Data"`
UB2 *UB2 `hl7:"17,display=Ub92 Data"`
}
Admit a Patient
Normally entered in the primary ADT system and broadcast to the nursing units and ancillary systems. Includes short-stay and John Doe admissions
type ADT_A01_Insurance ¶
type ADT_A01_Insurance struct {
HL7 HL7Name `hl7:",name=ADT_A01_Insurance,type=tg"`
IN1 *IN1 `hl7:"12,required,display=Insurance"`
IN2 *IN2 `hl7:"13,display=Insurance Additional Info"`
IN3 *IN3 `hl7:"14,display=Insurance Additional Info-certification"`
}
Insurance
type ADT_A02 ¶
type ADT_A02 struct {
HL7 HL7Name `hl7:",name=ADT_A02,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
}
Transfer a patient
A patient moves from one location to another
type ADT_A03 ¶
type ADT_A03 struct {
HL7 HL7Name `hl7:",name=ADT_A03,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
}
Discharge a patient
Refers to changing a patient's status from, for example, inpatient to discharged
type ADT_A04 ¶
type ADT_A04 struct {
HL7 HL7Name `hl7:",name=ADT_A04,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
NK1 []NK1 `hl7:"4,display=Next Of Kin"`
PV1 *PV1 `hl7:"5,required,display=Patient Visit"`
PV2 *PV2 `hl7:"6,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"7,display=Observation Result"`
AL1 []AL1 `hl7:"8,display=Patient Allergy Information"`
DG1 []DG1 `hl7:"9,display=Diagnosis"`
PR1 []PR1 `hl7:"10,display=Procedures"`
GT1 []GT1 `hl7:"11,display=Guarantor"`
Insurance []ADT_A04_Insurance `hl7:",display=Insurance"`
ACC *ACC `hl7:"15,display=Accident"`
UB1 *UB1 `hl7:"16,display=Ub82 Data"`
UB2 *UB2 `hl7:"17,display=Ub92 Data"`
}
Register a Patient
Includes emergency room patients and outpatients
type ADT_A04_Insurance ¶
type ADT_A04_Insurance struct {
HL7 HL7Name `hl7:",name=ADT_A04_Insurance,type=tg"`
IN1 *IN1 `hl7:"12,required,display=Insurance"`
IN2 *IN2 `hl7:"13,display=Insurance Additional Info"`
IN3 *IN3 `hl7:"14,display=Insurance Additional Info-certification"`
}
Insurance
type ADT_A05 ¶
type ADT_A05 struct {
HL7 HL7Name `hl7:",name=ADT_A05,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
NK1 []NK1 `hl7:"4,display=Next Of Kin"`
PV1 *PV1 `hl7:"5,required,display=Patient Visit"`
PV2 *PV2 `hl7:"6,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"7,display=Observation Result"`
AL1 []AL1 `hl7:"8,display=Patient Allergy Information"`
DG1 []DG1 `hl7:"9,display=Diagnosis"`
PR1 []PR1 `hl7:"10,display=Procedures"`
GT1 []GT1 `hl7:"11,display=Guarantor"`
Insurance []ADT_A05_Insurance `hl7:",display=Insurance"`
ACC *ACC `hl7:"15,display=Accident"`
UB1 *UB1 `hl7:"16,display=Ub82 Data"`
UB2 *UB2 `hl7:"17,display=Ub92 Data"`
}
Pre-admit a Patient
A patient may be pre-admitted for a variety of reasons; e.g., prior to surgery so that they will be able to receive tests administered in the lab. The data may be entered into the surgery scheduling system and passed to the ADT system
type ADT_A05_Insurance ¶
type ADT_A05_Insurance struct {
HL7 HL7Name `hl7:",name=ADT_A05_Insurance,type=tg"`
IN1 *IN1 `hl7:"12,required,display=Insurance"`
IN2 *IN2 `hl7:"13,display=Insurance Additional Info"`
IN3 *IN3 `hl7:"14,display=Insurance Additional Info-certification"`
}
Insurance
type ADT_A06 ¶
type ADT_A06 struct {
HL7 HL7Name `hl7:",name=ADT_A06,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
MRG *MRG `hl7:"4,display=Merge Patient Information"`
NK1 []NK1 `hl7:"5,display=Next Of Kin"`
PV1 *PV1 `hl7:"6,required,display=Patient Visit"`
PV2 *PV2 `hl7:"7,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"8,display=Observation Result"`
AL1 []AL1 `hl7:"9,display=Patient Allergy Information"`
DG1 []DG1 `hl7:"10,display=Diagnosis"`
PR1 []PR1 `hl7:"11,display=Procedures"`
GT1 []GT1 `hl7:"12,display=Guarantor"`
Insurance []ADT_A06_Insurance `hl7:",display=Insurance"`
ACC *ACC `hl7:"16,display=Accident"`
UB1 *UB1 `hl7:"17,display=Ub82 Data"`
UB2 *UB2 `hl7:"18,display=Ub92 Data"`
}
Transfer an Outpatient to Inpatient
type ADT_A06_Insurance ¶
type ADT_A06_Insurance struct {
HL7 HL7Name `hl7:",name=ADT_A06_Insurance,type=tg"`
IN1 *IN1 `hl7:"13,required,display=Insurance"`
IN2 *IN2 `hl7:"14,display=Insurance Additional Info"`
IN3 *IN3 `hl7:"15,display=Insurance Additional Info-certification"`
}
Insurance
type ADT_A07 ¶
type ADT_A07 struct {
HL7 HL7Name `hl7:",name=ADT_A07,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
MRG *MRG `hl7:"4,display=Merge Patient Information"`
NK1 []NK1 `hl7:"5,display=Next Of Kin"`
PV1 *PV1 `hl7:"6,required,display=Patient Visit"`
PV2 *PV2 `hl7:"7,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"8,display=Observation Result"`
AL1 []AL1 `hl7:"9,display=Patient Allergy Information"`
DG1 []DG1 `hl7:"10,display=Diagnosis"`
PR1 []PR1 `hl7:"11,display=Procedures"`
GT1 []GT1 `hl7:"12,display=Guarantor"`
Insurance []ADT_A07_Insurance `hl7:",display=Insurance"`
ACC *ACC `hl7:"16,display=Accident"`
UB1 *UB1 `hl7:"17,display=Ub82 Data"`
UB2 *UB2 `hl7:"18,display=Ub92 Data"`
}
Transfer an Inpatient to Outpatient
type ADT_A07_Insurance ¶
type ADT_A07_Insurance struct {
HL7 HL7Name `hl7:",name=ADT_A07_Insurance,type=tg"`
IN1 *IN1 `hl7:"13,required,display=Insurance"`
IN2 *IN2 `hl7:"14,display=Insurance Additional Info"`
IN3 *IN3 `hl7:"15,display=Insurance Additional Info-certification"`
}
Insurance
type ADT_A08 ¶
type ADT_A08 struct {
HL7 HL7Name `hl7:",name=ADT_A08,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
NK1 []NK1 `hl7:"4,display=Next Of Kin"`
PV1 *PV1 `hl7:"5,required,display=Patient Visit"`
PV2 *PV2 `hl7:"6,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"7,display=Observation Result"`
AL1 []AL1 `hl7:"8,display=Patient Allergy Information"`
DG1 []DG1 `hl7:"9,display=Diagnosis"`
PR1 []PR1 `hl7:"10,display=Procedures"`
GT1 []GT1 `hl7:"11,display=Guarantor"`
Insurance []ADT_A08_Insurance `hl7:",display=Insurance"`
ACC *ACC `hl7:"15,display=Accident"`
UB1 *UB1 `hl7:"16,display=Ub82 Data"`
UB2 *UB2 `hl7:"17,display=Ub92 Data"`
}
Update Patient Information
This trigger event is used when any patient information has changed, but no other trigger event has occurred
type ADT_A08_Insurance ¶
type ADT_A08_Insurance struct {
HL7 HL7Name `hl7:",name=ADT_A08_Insurance,type=tg"`
IN1 *IN1 `hl7:"12,required,display=Insurance"`
IN2 *IN2 `hl7:"13,display=Insurance Additional Info"`
IN3 *IN3 `hl7:"14,display=Insurance Additional Info-certification"`
}
Insurance
type ADT_A09 ¶
type ADT_A09 struct {
HL7 HL7Name `hl7:",name=ADT_A09,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
DG1 []DG1 `hl7:"7,display=Diagnosis"`
}
Patient Departing
A patient is being moved from his assigned location to a new location. For example, this can be used when the nursing system is not the same as the ADT system or to indicate a patient leaving an outpatient bed. The DG1 segment remains in this message for backwards compatibility only.
type ADT_A10 ¶
type ADT_A10 struct {
HL7 HL7Name `hl7:",name=ADT_A10,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
DG1 []DG1 `hl7:"7,display=Diagnosis"`
}
Patient Arriving
The patient arrives at his new assigned location
type ADT_A11 ¶
type ADT_A11 struct {
HL7 HL7Name `hl7:",name=ADT_A11,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
DG1 []DG1 `hl7:"7,display=Diagnosis"`
}
Cancel Admit
type ADT_A12 ¶
type ADT_A12 struct {
HL7 HL7Name `hl7:",name=ADT_A12,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
DG1 []DG1 `hl7:"7,display=Diagnosis"`
}
Cancel Transfer
New location must show the location of the patient prior to the transfer
type ADT_A13 ¶
type ADT_A13 struct {
HL7 HL7Name `hl7:",name=ADT_A13,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
NK1 []NK1 `hl7:"4,display=Next Of Kin"`
PV1 *PV1 `hl7:"5,required,display=Patient Visit"`
PV2 *PV2 `hl7:"6,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"7,display=Observation Result"`
AL1 []AL1 `hl7:"8,display=Patient Allergy Information"`
DG1 []DG1 `hl7:"9,display=Diagnosis"`
PR1 []PR1 `hl7:"10,display=Procedures"`
GT1 []GT1 `hl7:"11,display=Guarantor"`
Insurance []ADT_A13_Insurance `hl7:",display=Insurance"`
ACC *ACC `hl7:"15,display=Accident"`
UB1 *UB1 `hl7:"16,display=Ub82 Data"`
UB2 *UB2 `hl7:"17,display=Ub92 Data"`
}
Cancel Discharge
New location must show the location of the patient prior to the discharge
type ADT_A13_Insurance ¶
type ADT_A13_Insurance struct {
HL7 HL7Name `hl7:",name=ADT_A13_Insurance,type=tg"`
IN1 *IN1 `hl7:"12,required,display=Insurance"`
IN2 *IN2 `hl7:"13,display=Insurance Additional Info"`
IN3 *IN3 `hl7:"14,display=Insurance Additional Info-certification"`
}
Insurance
type ADT_A14 ¶
type ADT_A14 struct {
HL7 HL7Name `hl7:",name=ADT_A14,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
NK1 []NK1 `hl7:"4,display=Next Of Kin"`
PV1 *PV1 `hl7:"5,required,display=Patient Visit"`
PV2 *PV2 `hl7:"6,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"7,display=Observation Result"`
AL1 []AL1 `hl7:"8,display=Patient Allergy Information"`
DG1 []DG1 `hl7:"9,display=Diagnosis"`
PR1 []PR1 `hl7:"10,display=Procedures"`
GT1 []GT1 `hl7:"11,display=Guarantor"`
Insurance []ADT_A14_Insurance `hl7:",display=Insurance"`
ACC *ACC `hl7:"15,display=Accident"`
UB1 *UB1 `hl7:"16,display=Ub82 Data"`
UB2 *UB2 `hl7:"17,display=Ub92 Data"`
}
Pending Admit
Reservation or when patient admission is to occur imminently. Similar to a pre-admit
type ADT_A14_Insurance ¶
type ADT_A14_Insurance struct {
HL7 HL7Name `hl7:",name=ADT_A14_Insurance,type=tg"`
IN1 *IN1 `hl7:"12,required,display=Insurance"`
IN2 *IN2 `hl7:"13,display=Insurance Additional Info"`
IN3 *IN3 `hl7:"14,display=Insurance Additional Info-certification"`
}
Insurance
type ADT_A15 ¶
type ADT_A15 struct {
HL7 HL7Name `hl7:",name=ADT_A15,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
DG1 []DG1 `hl7:"7,display=Diagnosis"`
}
Pending Transfer
type ADT_A16 ¶
type ADT_A16 struct {
HL7 HL7Name `hl7:",name=ADT_A16,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
DG1 []DG1 `hl7:"7,display=Diagnosis"`
}
Pending Discharge
type ADT_A17 ¶
type ADT_A17 struct {
HL7 HL7Name `hl7:",name=ADT_A17,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
PID2 *PID `hl7:"7,required,display=Patient Identification"`
PV12 *PV1 `hl7:"8,required,display=Patient Visit"`
PV22 *PV2 `hl7:"9,display=Patient Visit - Additional Information"`
OBX2 []OBX `hl7:"10,display=Observation Result"`
}
Swap Patients
Used when it is decided that two patients will exchange beds. The patient ID and visit data are repeated for the two patients being swapped. See Section 3.5.1 for a discussion of issues related to implementing this trigger event.
type ADT_A18 ¶
type ADT_A18 struct {
HL7 HL7Name `hl7:",name=ADT_A18,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
MRG *MRG `hl7:"4,display=Merge Patient Information"`
PV1 *PV1 `hl7:"5,required,display=Patient Visit"`
}
Merge Patient Information
Used to merge current and previous patient identification numbers: patient ID - internal, patient ID - external, alternate patient ID and patient account number. This is required, for example, when a patient has previously been registered under a new patient identification number because of an error or because there was insufficient time to determine the actual patient identification number. The merge event occurs when the decision is made to combine the information under either the new or old identifier(s). It is recommended that events A34, A35 and A36 be utilized in place of the A18 event whenever possible. [Event A18 is being kept for backwards compatibility.]
The PID segment contains the surviving patient ID information. The MRG segment contains the non-surviving information.
type ADT_A20 ¶
type ADT_A20 struct {
HL7 HL7Name `hl7:",name=ADT_A20,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
NPU *NPU `hl7:"3,required,display=Bed Status Update"`
}
Bed Status Update
Certain nursing/census applications need to be able to update the ADT system's bed status. The following is the associated record layout
type ADT_A21 ¶
type ADT_A21 struct {
HL7 HL7Name `hl7:",name=ADT_A21,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
}
A Patient Goes On A "Leave Of Absence"
type ADT_A22 ¶
type ADT_A22 struct {
HL7 HL7Name `hl7:",name=ADT_A22,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
}
A Patient Returns From A "Leave Of Absence"
type ADT_A23 ¶
type ADT_A23 struct {
HL7 HL7Name `hl7:",name=ADT_A23,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
}
Delete a Patient Record
Delete visit specific information
type ADT_A24 ¶
type ADT_A24 struct {
HL7 HL7Name `hl7:",name=ADT_A24,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,display=Patient Visit"`
PID2 *PID `hl7:"5,required,display=Patient Identification"`
PV12 *PV1 `hl7:"6,display=Patient Visit"`
}
Link Patient Information
Where the first PID segment needs to be linked to the second PID segment. See Section 3.5.3 for a discussion of issues related to implementing patient link messages
type ADT_A25 ¶
type ADT_A25 struct {
HL7 HL7Name `hl7:",name=ADT_A25,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
}
Cancel Pending Discharge
type ADT_A26 ¶
type ADT_A26 struct {
HL7 HL7Name `hl7:",name=ADT_A26,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
}
Cancel Pending Transfer
type ADT_A27 ¶
type ADT_A27 struct {
HL7 HL7Name `hl7:",name=ADT_A27,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
}
Cancel Pending Admit
type ADT_A28 ¶
type ADT_A28 struct {
HL7 HL7Name `hl7:",name=ADT_A28,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
NK1 []NK1 `hl7:"4,display=Next Of Kin"`
PV1 *PV1 `hl7:"5,required,display=Patient Visit"`
PV2 *PV2 `hl7:"6,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"7,display=Observation Result"`
AL1 []AL1 `hl7:"8,display=Patient Allergy Information"`
DG1 []DG1 `hl7:"9,display=Diagnosis"`
PR1 []PR1 `hl7:"10,display=Procedures"`
GT1 []GT1 `hl7:"11,display=Guarantor"`
Insurance []ADT_A28_Insurance `hl7:",display=Insurance"`
ACC *ACC `hl7:"15,display=Accident"`
UB1 *UB1 `hl7:"16,display=Ub82 Data"`
UB2 *UB2 `hl7:"17,display=Ub92 Data"`
}
Add person information
The purpose of this message and the three following messages is to allow sites with multiple systems and respective master data bases to communicate activity related to a person between systems. Each system has an interest in the data base activity of the others in order to maintain data integrity across an institution. While defined within the ADT message set, these messages differ in that they are not patient specific.
type ADT_A28_Insurance ¶
type ADT_A28_Insurance struct {
HL7 HL7Name `hl7:",name=ADT_A28_Insurance,type=tg"`
IN1 *IN1 `hl7:"12,required,display=Insurance"`
IN2 *IN2 `hl7:"13,display=Insurance Additional Info"`
IN3 *IN3 `hl7:"14,display=Insurance Additional Info-certification"`
}
Insurance
type ADT_A29 ¶
type ADT_A29 struct {
HL7 HL7Name `hl7:",name=ADT_A29,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
}
Delete person information
Delete all demographic information related to this person
type ADT_A30 ¶
type ADT_A30 struct {
HL7 HL7Name `hl7:",name=ADT_A30,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
MRG *MRG `hl7:"4,required,display=Merge Patient Information"`
}
Merge Patient information
type ADT_A31 ¶
type ADT_A31 struct {
HL7 HL7Name `hl7:",name=ADT_A31,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
NK1 []NK1 `hl7:"4,display=Next Of Kin"`
PV1 *PV1 `hl7:"5,required,display=Patient Visit"`
PV2 *PV2 `hl7:"6,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"7,display=Observation Result"`
AL1 []AL1 `hl7:"8,display=Patient Allergy Information"`
DG1 []DG1 `hl7:"9,display=Diagnosis"`
PR1 []PR1 `hl7:"10,display=Procedures"`
GT1 []GT1 `hl7:"11,display=Guarantor"`
Insurance []ADT_A31_Insurance `hl7:",display=Insurance"`
ACC *ACC `hl7:"15,display=Accident"`
UB1 *UB1 `hl7:"16,display=Ub82 Data"`
UB2 *UB2 `hl7:"17,display=Ub92 Data"`
}
Update person information
type ADT_A31_Insurance ¶
type ADT_A31_Insurance struct {
HL7 HL7Name `hl7:",name=ADT_A31_Insurance,type=tg"`
IN1 *IN1 `hl7:"12,required,display=Insurance"`
IN2 *IN2 `hl7:"13,display=Insurance Additional Info"`
IN3 *IN3 `hl7:"14,display=Insurance Additional Info-certification"`
}
Insurance
type ADT_A32 ¶
type ADT_A32 struct {
HL7 HL7Name `hl7:",name=ADT_A32,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
}
Cancel patient arriving
type ADT_A33 ¶
type ADT_A33 struct {
HL7 HL7Name `hl7:",name=ADT_A33,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,required,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
}
Cancel patient departing
type ADT_A34 ¶
type ADT_A34 struct {
HL7 HL7Name `hl7:",name=ADT_A34,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
MRG *MRG `hl7:"4,required,display=Merge Patient Information"`
}
patient ID only
Only Patient Identification - Internal has changed as a result of the merge. See Section 3.5.2 for a discussion of issues related to implementing merge messages
type ADT_A35 ¶
type ADT_A35 struct {
HL7 HL7Name `hl7:",name=ADT_A35,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
MRG *MRG `hl7:"4,required,display=Merge Patient Information"`
}
account number only
Only Patient Account Number has changed as a result of the merge. See Section 3.5.2 for a discussion of issues related to implementing merge messages
type ADT_A36 ¶
type ADT_A36 struct {
HL7 HL7Name `hl7:",name=ADT_A36,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
MRG *MRG `hl7:"4,required,display=Merge Patient Information"`
}
pat ID and account number
Both Patient Identification - Internal and Patient Account Number have changed as a result of the merge. See Section 3.5.2 for a discussion of issues related to implementing merge messages
type ADT_A37 ¶
type ADT_A37 struct {
HL7 HL7Name `hl7:",name=ADT_A37,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,display=Patient Visit"`
PID2 *PID `hl7:"5,required,display=Patient Identification"`
PV12 *PV1 `hl7:"6,display=Patient Visit"`
}
unlink patient information
Unlinks two PID segments previously linked via an A24.
type AL1 ¶
type AL1 struct {
HL7 HL7Name `hl7:",name=AL1,type=s"`
SetIDAllergy SI `hl7:"1,required,len=4,display=Set Id - Allergy"`
AllergyType ID `hl7:"2,len=2,table=0127,display=Allergy Type"`
AllergyCodeMnemonicDescription CE `hl7:"3,required,len=60,display=Allergy Code / Mnemonic / Description"`
AllergySeverity ID `hl7:"4,len=2,table=0128,display=Allergy Severity"`
AllergyReaction ST `hl7:"5,len=15,display=Allergy Reaction"`
IdentificationDate DT `hl7:"6,len=8,format=YMD,display=Identification Date"`
}
Patient Allergy Information
The AL1 segment contains patient allergy information of various types. Most of this information will be derived from user-defined tables. Each AL1 segment describes a single patient allergy
type BAR_P01 ¶
type BAR_P01 struct {
HL7 HL7Name `hl7:",name=BAR_P01,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
Visit []BAR_P01_Visit `hl7:",required,display=Visit"`
}
Add and Update Patient Accounts
Data is sent from some application (usually a Registration or an ADT system) to the patient accounting system to establish an account for a patient's billing/accounts receivable record. Many of the segments associated with this event are optional. This optionality allows those systems needing these fields to set up transactions which fulfill their requirements yet satisfy the HL7 requirements. Sample event codes are in table 0003 - event type code.
type BAR_P01_Insurance ¶
type BAR_P01_Insurance struct {
HL7 HL7Name `hl7:",name=BAR_P01_Insurance,type=tg"`
IN1 *IN1 `hl7:"12,required,display=Insurance"`
IN2 *IN2 `hl7:"13,display=Insurance Additional Info"`
IN3 *IN3 `hl7:"14,display=Insurance Additional Info-certification"`
}
Insurance
type BAR_P01_Visit ¶
type BAR_P01_Visit struct {
HL7 HL7Name `hl7:",name=BAR_P01_Visit,type=tg"`
PV1 *PV1 `hl7:"4,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
AL1 []AL1 `hl7:"7,display=Patient Allergy Information"`
DG1 []DG1 `hl7:"8,display=Diagnosis"`
PR1 []PR1 `hl7:"9,display=Procedures"`
GT1 []GT1 `hl7:"10,display=Guarantor"`
NK1 []NK1 `hl7:"11,display=Next Of Kin"`
Insurance []BAR_P01_Insurance `hl7:",display=Insurance"`
ACC *ACC `hl7:"15,display=Accident"`
UB1 *UB1 `hl7:"16,display=Ub82 Data"`
UB2 *UB2 `hl7:"17,display=Ub92 Data"`
}
Visit
type BAR_P02 ¶
type BAR_P02 struct {
HL7 HL7Name `hl7:",name=BAR_P02,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
Patient []BAR_P02_Patient `hl7:",required,display=Patient"`
}
Purge Patient Accounts
Generally, the elimination of all billing/accounts receivable records will be an internal function controlled by the financial system. However, on occasion, there is a need to correct an account, or series of accounts, which may require a notice of account deletion to be sent from another sub-system and processed by the financial system. Although a series of accounts may be purged within this one event, it is recommended that only one PID segment per event be sent
type BAR_P02_Patient ¶
type BAR_P02_Patient struct {
HL7 HL7Name `hl7:",name=BAR_P02_Patient,type=tg"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,display=Patient Visit"`
}
Patient
type BHS ¶
type BHS struct {
HL7 HL7Name `hl7:",name=BHS,type=s"`
BatchFieldSeparator ST `hl7:"1,required,len=1,display=Batch Field Separator"`
BatchEncodingCharacters ST `hl7:"2,required,len=4,display=Batch Encoding Characters"`
BatchSendingApplication ST `hl7:"3,len=15,display=Batch Sending Application"`
BatchSendingFacility ST `hl7:"4,len=20,display=Batch Sending Facility"`
BatchReceivingApplication ST `hl7:"5,len=30,display=Batch Receiving Application"`
BatchReceivingFacility ST `hl7:"6,len=30,display=Batch Receiving Facility"`
BatchCreationDateTime TS `hl7:"7,len=26,format=YMDHMS,display=Batch Creation Date / Time"`
BatchSecurity ST `hl7:"8,len=40,display=Batch Security"`
BatchNameIDType ST `hl7:"9,len=20,display=Batch Name / Id / Type"`
BatchComment ST `hl7:"10,len=80,display=Batch Comment"`
BatchControlID ST `hl7:"11,len=20,display=Batch Control Id"`
ReferenceBatchControlID ST `hl7:"12,len=20,display=Reference Batch Control Id"`
}
Batch Header
The BHS segment defines the start of a batch
type BLG ¶
type BLG struct {
HL7 HL7Name `hl7:",name=BLG,type=s"`
WhenToCharge *CM_CCD `hl7:"1,len=15,display=When To Charge"`
ChargeType ID `hl7:"2,len=50,table=0122,display=Charge Type"`
AccountID *CK `hl7:"3,len=100,display=Account Id"`
}
Billing
The BLG segment is used to provide billing information, on the ordered service, to the filling application
type BTS ¶
type BTS struct {
HL7 HL7Name `hl7:",name=BTS,type=s"`
BatchMessageCount ST `hl7:"1,len=10,display=Batch Message Count"`
BatchComment ST `hl7:"2,len=80,display=Batch Comment"`
BatchTotals []CM_BATCH_TOTAL `hl7:"3,len=100,display=Batch Totals"`
}
Batch Trailer
The BTS segment defines the end of a batch.
type CE ¶
type CE struct {
HL7 HL7Name `hl7:",name=CE,len=0,type=d"`
Identifier ID `` /* 176-byte string literal not displayed */
Text ST `` /* 141-byte string literal not displayed */
NameOfCodingSystem ST `` /* 705-byte string literal not displayed */
AlternateIdentifier ST `` /* 378-byte string literal not displayed */
AlternateText ST `` /* 378-byte string literal not displayed */
NameOfAlternateCodingSystem ST `` /* 378-byte string literal not displayed */
}
Coded Element
This data type transmits codes and the text associated with the code.
Example: |54.21^Laparoscopy^I9^42112^^AS4|
type CK ¶
type CK struct {
HL7 HL7Name `hl7:",name=CK,len=0,type=d"`
IDNumber NM `hl7:"1,display=ID Number"`
CheckDigit NM `hl7:"2,display=Check Digit"`
CodeIdentifyingTheCheckDigitSchemeEmployed ID `hl7:"3,table=0061,display=The check digit scheme codes are defined in table 0061 - check digit scheme. "`
AssigningFacilityID ST `` /* 316-byte string literal not displayed */
}
Composite Id With Check Digit
This data type is used for certain fields that commonly contain check digits, e.g., PID-3-Patient ID (Internal ID). If a site is not using check-digits for a particular CK field, the second and third components are not valued.
Example: |128952^6^M11^ADT01|
type CM_AUI ¶
type CM_AUI struct {
HL7 HL7Name `hl7:",name=CM_AUI,len=0,type=d"`
AuthorizationNumber ST `hl7:"1,display=Authorization Number"`
Date DT `hl7:"2,format=YMD,display=Date"`
Source ST `hl7:"3,display=Source"`
}
Authorization Information
type CM_BATCH_TOTAL ¶
type CM_BATCH_TOTAL struct {
HL7 HL7Name `hl7:",name=CM_BATCH_TOTAL,len=0,type=d"`
BatchTotal NM `hl7:"1,display=Batch Total 1"`
BatchTotal2 NM `hl7:"2,display=Batch Total 2"`
Value NM `hl7:"3,display=..."`
}
Cm For Batch Totals
as many types of totals as needed for the batch may be carried by this field as separate components. Each component is an NM data type
type CM_CCD ¶
type CM_CCD struct {
HL7 HL7Name `hl7:",name=CM_CCD,len=0,type=d"`
WhenToCharge ID `hl7:"1,table=0100,display=When To Charge"`
DateTime TS `hl7:"2,format=YMDHMS,display=Date/Time"`
}
Charge Time
type CM_DDI ¶
type CM_DDI struct {
HL7 HL7Name `hl7:",name=CM_DDI,len=0,type=d"`
DelayDays ST `hl7:"1,display=Delay Days"`
Amount NM `hl7:"2,display=Amount"`
NumberOfDays NM `hl7:"3,display=Number Of Days"`
}
Daily Deductible
type CM_DLD ¶
type CM_DLD struct {
HL7 HL7Name `hl7:",name=CM_DLD,len=0,type=d"`
Code ID `hl7:"1,table=0113,display=Code"`
Description ST `hl7:"2,display=Description"`
}
Discharge Location
type CM_DTN ¶
type CM_DTN struct {
HL7 HL7Name `hl7:",name=CM_DTN,len=0,type=d"`
DayType ID `hl7:"1,table=0149,display=Day Type"`
NumberOfDays NM `hl7:"2,display=Number Of Days"`
}
Day Type And Number
type CM_EIP ¶
type CM_EIP struct {
HL7 HL7Name `hl7:",name=CM_EIP,len=0,type=d"`
ParentsPlacerOrderNumber ST `` /* 131-byte string literal not displayed */
ParentsFillerOrderNumber ST `hl7:"2,display=The second component contains the filler order number of the parent order."`
}
Parent Order
type CM_ELD ¶
type CM_ELD struct {
HL7 HL7Name `hl7:",name=CM_ELD,len=0,type=d"`
SegmentID ST `hl7:"1,display=Segment-id"`
Sequence NM `hl7:"2,display=Sequence"`
FieldPosition NM `hl7:"3,display=Field-position"`
CodeIdentifyingError *CE `hl7:"4,table=0060,display=Code Identifying Error"`
}
Error
type CM_FILLER ¶
type CM_FILLER struct {
HL7 HL7Name `hl7:",name=CM_FILLER,len=0,type=d"`
UniqueFillerID ID `` /* 396-byte string literal not displayed */
FillerApplicationID ID `` /* 312-byte string literal not displayed */
}
Number Of Processing Power Point
type CM_FINANCE ¶
type CM_FINANCE struct {
HL7 HL7Name `hl7:",name=CM_FINANCE,len=0,type=d"`
FinancialClassID ID `hl7:"1,table=0064,display=Financial Class Id"`
EffectiveDate TS `hl7:"2,format=YMDHMS,display=Effective Date"`
}
Cm Of Finance
type CM_GROUP_ID ¶
type CM_GROUP_ID struct {
HL7 HL7Name `hl7:",name=CM_GROUP_ID,len=0,type=d"`
UniqueGroupID ID `` /* 289-byte string literal not displayed */
PlacerApplicationID ID `` /* 254-byte string literal not displayed */
}
Order Group Number
type CM_INTERNAL_LOCATION ¶
type CM_INTERNAL_LOCATION struct {
HL7 HL7Name `hl7:",name=CM_INTERNAL_LOCATION,len=0,type=d"`
NurseUnitStation ID `hl7:"1,display=Nurse Unit (station)"`
Room ID `hl7:"2,display=Room"`
Bed ID `hl7:"3,display=Bed"`
FacilityID ID `hl7:"4,display=Facility Id"`
BedStatus ID `hl7:"5,display=Bed Status"`
}
Cm For Location Information In Hospital
type CM_JOB_CODE ¶
type CM_JOB_CODE struct {
HL7 HL7Name `hl7:",name=CM_JOB_CODE,len=0,type=d"`
JobCode ID `hl7:"1,display=Job Code"`
EmployeeClassification ID `hl7:"2,display=Employee Classification"`
}
Job Title
type CM_LA1 ¶
type CM_LA1 struct {
HL7 HL7Name `hl7:",name=CM_LA1,len=0,type=d"`
DispenseDeliverToLocation *CM_INTERNAL_LOCATION `hl7:"1,display=Dispense / Deliver To Location"`
Location *AD `` /* 174-byte string literal not displayed */
}
Location With Address Information
type CM_LICENSE_NO ¶
type CM_LICENSE_NO struct {
HL7 HL7Name `hl7:",name=CM_LICENSE_NO,len=0,type=d"`
LicenseNumber ST `hl7:"1,display=License Number"`
IssuingStateProvinceCountry ST `hl7:"2,display=Issuing State-province-country"`
}
Cm For Driving License
type CM_MOC ¶
type CM_MOC struct {
HL7 HL7Name `hl7:",name=CM_MOC,len=0,type=d"`
DollarAmount ST `hl7:"1,display=Dollar Amount"`
ChargeCode ST `hl7:"2,display=Charge Code"`
}
Charge To Practise
type CM_MSG ¶
type CM_MSG struct {
HL7 HL7Name `hl7:",name=CM_MSG,len=0,type=d"`
MessageType ID `hl7:"1,table=0076,display=Message Type"`
TriggerEvent ID `hl7:"2,table=0003,display=Trigger Event"`
}
Message Type
func (CM_MSG) MessageStructureID ¶
type CM_NDL ¶
type CM_NDL struct {
HL7 HL7Name `hl7:",name=CM_NDL,len=0,type=d"`
InterpreterTechnician *CN_PERSON `hl7:"1,display=Interpreter / Technician"`
StartDateTime TS `hl7:"2,format=YMDHMS,display=Start Date/Time"`
EndDateTime TS `hl7:"3,format=YMDHMS,display=End Date/Time"`
Location *CM_INTERNAL_LOCATION `hl7:"4,display=Location"`
}
Observing Practitioner
type CM_OCD ¶
type CM_OCD struct {
HL7 HL7Name `hl7:",name=CM_OCD,len=0,type=d"`
OccurrenceCode ID `hl7:"1,display=Occurrence Code"`
OccurrenceDate DT `hl7:"2,format=YMD,display=Occurrence Date"`
}
Occurence
type CM_OSD ¶
type CM_OSD struct {
HL7 HL7Name `hl7:",name=CM_OSD,len=0,type=d"`
SequenceResultsFlag ID `hl7:"1,display=S for sequence conditions; R is reserved for possible future use. "`
PlacerOrderNumberEntityIdentifier ST `hl7:"2,required,display=Uses two subcomponents since the placer order number has two components"`
PlacerOrderNumberNamespaceID IS `hl7:"3,display=Uses two subcomponents since the placer order number has two components"`
FillerOrderNumberEntityIdentifier ST `hl7:"4,required,display=Uses two subcomponents since the filler order number has two components"`
FillerOrderNumberNamespaceID IS `hl7:"5,display=Uses two subcomponents since the filler order number has two components"`
SequenceConditionValue ST `` /* 597-byte string literal not displayed */
MaximumNumberOfRepeats NM `` /* 219-byte string literal not displayed */
}
Order Sequence
type CM_OSP ¶
type CM_OSP struct {
HL7 HL7Name `hl7:",name=CM_OSP,len=0,type=d"`
OccurrenceSpanCode ID `hl7:"1,display=Occurrence Span Code"`
OccurrenceSpanStartDate DT `hl7:"2,format=YMD,display=Occurrence Span Start Date"`
OccurrenceSpanStopDate DT `hl7:"3,format=YMD,display=Occurrence Span Stop Date"`
}
Occurence Span
type CM_PAT_ID ¶
type CM_PAT_ID struct {
HL7 HL7Name `hl7:",name=CM_PAT_ID,len=0,type=d"`
PatientID ST `hl7:"1,display=Patient Id"`
CheckDigit NM `hl7:"2,display=Check Digit"`
CheckDigitScheme ID `hl7:"3,table=0061,display=Check Digit Scheme"`
FacilityID ID `hl7:"4,display=Facility Id"`
Type ID `hl7:"5,display=Type"`
}
Patient Id
type CM_PAT_ID_0192 ¶
type CM_PAT_ID_0192 struct {
HL7 HL7Name `hl7:",name=CM_PAT_ID_0192,len=0,type=d"`
PatientID ST `hl7:"1,display=Patient Id"`
CheckDigit NM `hl7:"2,display=Check Digit"`
CheckDigitScheme ID `hl7:"3,table=0061,display=Check Digit Scheme"`
FacilityID ID `hl7:"4,display=Facility Id"`
Type ID `hl7:"5,table=0192,display=Type"`
}
Patient Id With Table 0192
type CM_PCF ¶
type CM_PCF struct {
HL7 HL7Name `hl7:",name=CM_PCF,len=0,type=d"`
PreCertificationPatientType ID `hl7:"1,table=0150,display=Pre-certification Patient Type"`
PreCerticationRequired ID `hl7:"2,table=0136,display=Pre-certication Required"`
PreCertificationWindow TS `hl7:"3,format=YMDHMS,display=Pre-certification Window"`
}
Pre-certification Required
type CM_PEN ¶
type CM_PEN struct {
HL7 HL7Name `hl7:",name=CM_PEN,len=0,type=d"`
PenaltyID ID `hl7:"1,table=0148,display=Penalty Id"`
PenaltyAmount NM `hl7:"2,display=Penalty Amount"`
}
Penalty
type CM_PLACER ¶
type CM_PLACER struct {
HL7 HL7Name `hl7:",name=CM_PLACER,len=0,type=d"`
UniquePlacerID ST `` /* 270-byte string literal not displayed */
PlacerApplication ID `` /* 396-byte string literal not displayed */
}
Order Number Of The Client / The Contracting Authority
type CM_PRACTITIONER ¶
type CM_PRACTITIONER struct {
HL7 HL7Name `hl7:",name=CM_PRACTITIONER,len=0,type=d"`
ProcedurePractitionerID *CN_PERSON `hl7:"1,display=Procedure Practitioner Id"`
ProcedurePractitionerType ID `hl7:"2,display=Procedure Practitioner Type"`
}
Action Carried Out By
type CM_PRL ¶
type CM_PRL struct {
HL7 HL7Name `hl7:",name=CM_PRL,len=0,type=d"`
OBX3ObservationIdentifierOfParentResult ST `hl7:"1,display=OBX-3-observation identifier of parent result"`
OBX4SubIDOfParentResult ST `hl7:"2,display=OBX-4-sub-ID of parent result"`
OBX5ObservationResultsFromParent *CE `hl7:"3,display=OBX-5-observation results from parent"`
}
Parent Result Link
The third component may be used to record the name of the microorganism identified by the parent result directly. The organism in this case should be identified exactly as it is in the parent culture
type CM_PTA ¶
type CM_PTA struct {
HL7 HL7Name `hl7:",name=CM_PTA,len=0,type=d"`
PolicyType ID `hl7:"1,table=0147,display=Policy Type"`
AmountClass ID `hl7:"2,table=0193,display=Amount Class"`
Amount NM `hl7:"3,display=Amount"`
}
Policy Type
type CM_RI ¶
type CM_RI struct {
HL7 HL7Name `hl7:",name=CM_RI,len=0,type=d"`
RepeatPattern ST `hl7:"1,display=Repeat Pattern"`
ExplicitTimeIntevall ST `` /* 877-byte string literal not displayed */
}
Interval
type CM_RMC ¶
type CM_RMC struct {
HL7 HL7Name `hl7:",name=CM_RMC,len=0,type=d"`
RoomType ID `hl7:"1,table=0145,display=Room Type"`
AmountType ID `hl7:"2,table=0146,display=Amount Type"`
CoverageAmount NM `hl7:"3,display=Coverage Amount"`
}
Room Coverage
type CM_SPS ¶
type CM_SPS struct {
HL7 HL7Name `hl7:",name=CM_SPS,len=0,type=d"`
SpecimenSourceNameOrCode *CE `` /* 235-byte string literal not displayed */
Additives TX `` /* 128-byte string literal not displayed */
Freetext TX `` /* 242-byte string literal not displayed */
BodySite *CE `` /* 349-byte string literal not displayed */
SiteModifier *CE `hl7:"5,display=Site Modifier"`
}
Specimen Source
type CM_UVC ¶
type CM_UVC struct {
HL7 HL7Name `hl7:",name=CM_UVC,len=0,type=d"`
ValueCode ID `hl7:"1,table=0153,display=Value Code"`
ValueAmount NM `hl7:"2,display=Value Amount"`
}
Value Code And Amount
type CM_VR ¶
type CM_VR struct {
HL7 HL7Name `hl7:",name=CM_VR,len=0,type=d"`
FirstDataCodeValue ST `hl7:"1,display=First Data Code Value"`
LastDataCodeCalue ST `hl7:"2,display=Last Data Code Calue"`
}
Value Qualifier
type CN_PERSON ¶
type CN_PERSON struct {
HL7 HL7Name `hl7:",name=CN_PERSON,len=0,type=d"`
IDNumber ID `hl7:"1,display=Id Number"`
FamiliyName ST `hl7:"2,display=Familiy Name"`
GivenName ST `hl7:"3,display=Given Name"`
MiddleInitialOrName ST `hl7:"4,display=Middle Initial Or Name"`
Suffix ST `hl7:"5,display=Suffix (e.g. Jr Or Iii)"`
Prefix ST `hl7:"6,display=Prefix (e.g. Dr)"`
Degree ST `hl7:"7,display=Degree (e.g. Md)"`
SourceTableID ID `hl7:"8,display=Source Table Id"`
}
Cn For Person
A field identifying a person both as a coded value and with a text name. The first component is the coded ID according to a site-specific table. The second through the seventh components are the person's name as a PN field. The eighth component specifies the source table used for the first component. For specific fields, individual sites may elect to omit the ID or the name.
Example: |12372^RIGGINS^JOHN^""^""^""^MD^ADT1| |12372| |^RIGGINS^JOHN^""^""^""^MD|
type CN_PHYSICIAN ¶
type CN_PHYSICIAN struct {
HL7 HL7Name `hl7:",name=CN_PHYSICIAN,len=0,type=d"`
PhysicianID ID `hl7:"1,display=Physician Id"`
FamiliyName ST `hl7:"2,display=Familiy Name"`
GivenName ST `hl7:"3,display=Given Name"`
MiddleInitialOrName ST `hl7:"4,display=Middle Initial Or Name"`
Suffix ST `hl7:"5,display=Suffix (e.g. Jr Or Iii)"`
Prefix ST `hl7:"6,display=Prefix (e.g. Dr)"`
Degree ST `hl7:"7,display=Degree (e.g. Md)"`
SourceTableID ID `hl7:"8,display=Source Table Id"`
}
Cn For Physicians
type CQ ¶
type CQ struct {
HL7 HL7Name `hl7:",name=CQ,len=0,type=d"`
Quantity NM `hl7:"1,display=Quantity"`
Units ST `` /* 673-byte string literal not displayed */
}
Composite Quantity With Units
Quantity of the service that should be provided at each service interval. E.g, if two blood cultures to be obtained every 4 hours, the quantity would be 2. If three units of blood are to be typed and cross-matched, the quantity would be 3. The default value is 1. When units are required, they can be added, specified by a subcomponent delimiter.
In future versions, CQ fields should be avoided because the same data can usually be sent as two separate fields, one with the value and one with the units as a CE data type
Examples:
|123.7^kg| kilograms is an ISO unit |150^lb&&ANSI+| weight in pounds is a customary US unit defined within ANSI+
type DFT_P03 ¶
type DFT_P03 struct {
HL7 HL7Name `hl7:",name=DFT_P03,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
EVN *EVN `hl7:"2,required,display=Event Type"`
PID *PID `hl7:"3,required,display=Patient Identification"`
PV1 *PV1 `hl7:"4,display=Patient Visit"`
PV2 *PV2 `hl7:"5,display=Patient Visit - Additional Information"`
OBX []OBX `hl7:"6,display=Observation Result"`
FT1 []FT1 `hl7:"7,required,display=Financial Transaction"`
}
Post Detail Financial Transactions
The Detail Financial Transaction is used to describe a financial transaction transmitted between systems, ie., to HIS for ancillary charges, ADT to HIS for patient deposits, etc.
type DG1 ¶
type DG1 struct {
HL7 HL7Name `hl7:",name=DG1,type=s"`
SetIDDiagnosis SI `hl7:"1,required,len=4,display=Set Id - Diagnosis"`
DiagnosisCodingMethod ID `hl7:"2,required,len=2,table=0053,display=Diagnosis Coding Method"`
DiagnosisCode ID `hl7:"3,len=8,table=0051,display=Diagnosis Code"`
DiagnosisDescription ST `hl7:"4,len=40,display=Diagnosis Description"`
DiagnosisDateTime TS `hl7:"5,len=26,format=YMDHMS,display=Diagnosis Date / Time"`
DiagnosisDrgType ID `hl7:"6,required,len=2,table=0052,display=Diagnosis / Drg Type"`
MajorDiagnosticCategory *CE `hl7:"7,len=60,table=0118,display=Major Diagnostic Category"`
DiagnosticRelatedGroup ID `hl7:"8,len=4,table=0055,display=Diagnostic Related Group"`
DrgApprovalIndicator ID `hl7:"9,len=2,table=0136,display=Drg Approval Indicator"`
DrgGrouperReviewCode ID `hl7:"10,len=2,table=0056,display=Drg Grouper Review Code"`
OutlierType ID `hl7:"11,len=60,table=0083,display=Outlier Type"`
OutlierDays NM `hl7:"12,len=3,display=Outlier Days"`
OutlierCost NM `hl7:"13,len=12,display=Outlier Cost"`
GrouperVersionAndType ST `hl7:"14,len=4,display=Grouper Version And Type"`
DiagnosisDrgPriority NM `hl7:"15,len=2,display=Diagnosis / Drg Priority"`
DiagnosingClinician *CN_PERSON `hl7:"16,len=60,display=Diagnosing Clinician"`
}
Diagnosis
The DG1 segment contains patient diagnosis information of various types. For example: Admitting, Current, Primary, Final, etc. Coding methodologies are also defined
type DSC ¶
type DSC struct {
HL7 HL7Name `hl7:",name=DSC,type=s"`
ContinuationPointer ST `hl7:"1,len=180,display=Continuation Pointer"`
}
Continuation Pointer
The DSC segment is used in the continuation protocol.
type DSP ¶
type DSP struct {
HL7 HL7Name `hl7:",name=DSP,type=s"`
SetIDDisplayData SI `hl7:"1,len=4,display=Set Id - Display Data"`
DisplayLevel SI `hl7:"2,len=4,display=Display Level"`
DataLine TX `hl7:"3,required,len=300,display=Data Line"`
LogicalBreakPoint ST `hl7:"4,len=2,display=Logical Break Point"`
ResultID TX `hl7:"5,len=20,display=Result Id"`
}
Display Data
The DSP segment is used to contain data that has been preformatted by the sender for display. The semantic content of the data is lost; the data is simply treated as lines of text.
type DSR_Q01 ¶
type DSR_Q01 struct {
HL7 HL7Name `hl7:",name=DSR_Q01,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MFA *MFA `hl7:"2,required,display=Master File Acknowledgement"`
ERR *ERR `hl7:"3,display=Error"`
QRD *QRD `hl7:"4,required,display=Query Definition"`
QRF *QRF `hl7:"5,display=Query Filter"`
DSP []DSP `hl7:"6,required,display=Display Data"`
DSC *DSC `hl7:"7,display=Continuation Pointer"`
}
Display Response Message
When display data is involved, these trigger events are served by the Query (QRY) and Display Response (DSR) and General Acknowledgement (ACK) messages. When the query is for record-oriented data, the QRY message is used, but the response message is specific to a functional area. Record-oriented queries are described in other chapters. Display-oriented queries are described here.
type DSR_Q03 ¶
type DSR_Q03 struct {
HL7 HL7Name `hl7:",name=DSR_Q03,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MSA *MSA `hl7:"2,display=Message Acknowledgment"`
QRD *QRD `hl7:"3,required,display=Query Definition"`
QRF *QRF `hl7:"4,display=Query Filter"`
DSP []DSP `hl7:"5,required,display=Display Data"`
DSC *DSC `hl7:"6,display=Continuation Pointer"`
}
Deferred Response to A Query
For clarity, A is the system initiating the query and B is the system sending the responses. Multiple queries and responses are permitted within single messages. The responses to a given query may be broken into several separate DSR messages. A single DSR message may contain responses to more than one QRY
type DSR_R03 ¶
type DSR_R03 struct {
HL7 HL7Name `hl7:",name=DSR_R03,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MSA *MSA `hl7:"2,display=Message Acknowledgment"`
QRD *QRD `hl7:"3,required,display=Query Definition"`
QRF *QRF `hl7:"4,display=Query Filter"`
DSP []DSP `hl7:"5,required,display=Display Data"`
DSC *DSC `hl7:"6,display=Continuation Pointer"`
}
oriented results, query/unsol. update
type ERR ¶
type ERR struct {
HL7 HL7Name `hl7:",name=ERR,type=s"`
ErrorCodeAndLocation []CM_ELD `hl7:"1,required,len=80,display=Error Code And Location"`
}
Error
The ERR segment is used to add error comments to acknowledgement messages
type EVN ¶
type EVN struct {
HL7 HL7Name `hl7:",name=EVN,type=s"`
EventTypeCode ID `hl7:"1,required,len=3,table=0003,display=Event Type Code"`
DateTimeOfEvent TS `hl7:"2,required,len=26,format=YMDHMS,display=Date / Time Of Event"`
DateTimePlannedEvent TS `hl7:"3,len=26,format=YMDHMS,display=Date / Time Planned Event"`
EventReasonCode ID `hl7:"4,len=3,table=0062,display=Event Reason Code"`
OperatorID ID `hl7:"5,len=5,table=0188,display=Operator Id"`
}
Event Type
The EVN segment is used to communicate necessary trigger event information to receiving applications. Valid event types for all chapters are contained in table 0003 - event type code
type FHS ¶
type FHS struct {
HL7 HL7Name `hl7:",name=FHS,type=s"`
FileFieldSeparator ST `hl7:"1,required,len=1,display=File Field Separator"`
FileEncodingCharacters ST `hl7:"2,required,len=4,display=File Encoding Characters"`
FileSendingApplication ST `hl7:"3,len=15,display=File Sending Application"`
FileSendingFacility ST `hl7:"4,len=20,display=File Sending Facility"`
FileReceivingApplication ST `hl7:"5,len=30,display=File Receiving Application"`
FileReceivingFacility ST `hl7:"6,len=30,display=File Receiving Facility"`
FileCreationDateTime TS `hl7:"7,len=26,format=YMDHMS,display=File Creation Date / Time"`
FileSecurity ST `hl7:"8,len=40,display=File Security"`
FileNameID ST `hl7:"9,len=20,display=File Name / Id"`
FileHeaderComment ST `hl7:"10,len=80,display=File Header Comment"`
FileControlID ST `hl7:"11,len=20,display=File Control Id"`
ReferenceFileControlID ST `hl7:"12,len=20,display=Reference File Control Id"`
}
File Header
The FHS segment is used to head a file (group of batches) as defined in Section 2.9.3.
type FT ¶
type FT = string
Formatted Text Data
This data type is derived from the string data type by allowing the addition of embedded formatting instructions. These instructions are limited to those that are intrinsic and independent of the circumstances under which the field is being used. The actual instructions and their representation are described later in this chapter. The differences from a string data field and an FT field is of arbitrary length (up to 65k) and may contain formatting commands enclosed in escape characters.
Example: |\.sp\(skip one vertical line)|
type FT1 ¶
type FT1 struct {
HL7 HL7Name `hl7:",name=FT1,type=s"`
SetIDFinancialTransaction SI `hl7:"1,len=4,display=Set Id - Financial Transaction"`
TransactionID ST `hl7:"2,len=12,display=Transaction Id"`
TransactionBatchID ST `hl7:"3,len=10,display=Transaction Batch Id"`
TransactionDate DT `hl7:"4,required,len=8,format=YMD,display=Transaction Date"`
TransactionPostingDate DT `hl7:"5,len=8,format=YMD,display=Transaction Posting Date"`
TransactionType ID `hl7:"6,required,len=8,table=0017,display=Transaction Type"`
TransactionCode CE `hl7:"7,required,len=20,table=0132,display=Transaction Code"`
TransactionDescription ST `hl7:"8,len=40,display=Transaction Description"`
TransactionDescriptionAlternate ST `hl7:"9,len=40,display=Transaction Description - Alternate"`
TransactionQuantity NM `hl7:"10,len=4,display=Transaction Quantity"`
TransactionAmountExtended NM `hl7:"11,len=12,display=Transaction Amount - Extended"`
TransactionAmountUnit NM `hl7:"12,len=12,display=Transaction Amount - Unit"`
DepartmentCode *CE `hl7:"13,len=60,table=0049,display=Department Code"`
InsurancePlanID ID `hl7:"14,len=8,table=0072,display=Insurance Plan Id"`
InsuranceAmount NM `hl7:"15,len=12,display=Insurance Amount"`
AssignedPatientLocation *CM_INTERNAL_LOCATION `hl7:"16,len=12,table=0079,display=Assigned Patient Location"`
FeeSchedule ID `hl7:"17,len=1,table=0024,display=Fee Schedule"`
PatientType ID `hl7:"18,len=2,table=0018,display=Patient Type"`
DiagnosisCode []CE `hl7:"19,len=8,table=0051,display=Diagnosis Code"`
PerformedByCode *CN_PERSON `hl7:"20,len=60,table=0084,display=Performed By Code"`
OrderedByCode *CN_PERSON `hl7:"21,len=60,display=Ordered By Code"`
UnitCost NM `hl7:"22,len=12,display=Unit Cost"`
FillerOrderNumber *CM_FILLER `hl7:"23,conditional,len=75,display=Filler Order Number"`
}
Financial Transaction
The FT1 segment contains detail data necessary to post charges, payments, adjustments, etc. to patient accounting records.
type FTS ¶
type FTS struct {
HL7 HL7Name `hl7:",name=FTS,type=s"`
FileBatchCount NM `hl7:"1,len=10,display=File Batch Count"`
FileTrailerComment ST `hl7:"2,len=80,display=File Trailer Comment"`
}
File Trailer
The FTS segment defines the end of a file
type GT1 ¶
type GT1 struct {
HL7 HL7Name `hl7:",name=GT1,type=s"`
SetIDGuarantor SI `hl7:"1,required,len=4,display=Set Id - Guarantor"`
GuarantorNumber COMP_ID_DIGIT `hl7:"2,len=20,display=Guarantor Number"`
GuarantorName PN `hl7:"3,required,len=48,display=Guarantor Name"`
GuarantorSpouseName *PN `hl7:"4,len=48,display=Guarantor Spouse Name"`
GuarantorAddress *AD `hl7:"5,len=106,display=Guarantor Address"`
GuarantorPhoneNumberHome []TN `hl7:"6,max=3,len=40,display=Guarantor Phone Number - Home"`
GuarantorPhoneNumberBusiness []TN `hl7:"7,max=3,len=40,display=Guarantor Phone Number - Business"`
GuarantorDateOfBirth DT `hl7:"8,len=8,format=YMD,display=Guarantor Date Of Birth"`
GuarantorSex ID `hl7:"9,len=1,table=0001,display=Guarantor Sex"`
GuarantorType ID `hl7:"10,len=2,table=0068,display=Guarantor Type"`
GuarantorRelationship ID `hl7:"11,len=2,table=0063,display=Guarantor Relationship"`
GuarantorSocialSecurityNumber ST `hl7:"12,len=11,display=Guarantor Social Security Number"`
GuarantorDateBegin DT `hl7:"13,len=8,format=YMD,display=Guarantor Date - Begin"`
GuarantorDateEnd DT `hl7:"14,len=8,format=YMD,display=Guarantor Date - End"`
GuarantorPriority NM `hl7:"15,len=2,display=Guarantor Priority"`
GuarantorEmployerName ST `hl7:"16,len=45,display=Guarantor Employer Name"`
GuarantorEmployerAddress *AD `hl7:"17,len=106,display=Guarantor Employer Address"`
GuarantorEmployPhoneNumber []TN `hl7:"18,max=3,len=40,display=Guarantor Employ Phone Number"`
GuarantorEmployeeIDNumber ST `hl7:"19,len=20,display=Guarantor Employee Id Number"`
GuarantorEmploymentStatus ID `hl7:"20,len=2,table=0066,display=Guarantor Employment Status"`
GuarantorOrganization ST `hl7:"21,len=60,display=Guarantor Organization"`
}
Guarantor
The GT1 segment contains guarantor (e.g., person with financial responsibility for payment of a patient account) data for patient and insurance billing applications
type HD ¶
type HD struct {
HL7 HL7Name `hl7:",name=HD,len=0,type=d"`
NamespaceID IS `hl7:"1,display=Refer to user-defined table 0300 - Namespace ID for suggested values"`
UniversalID ST `` /* 526-byte string literal not displayed */
UniversalIDType ID `` /* 255-byte string literal not displayed */
}
Hierarchic Designator
The HD is designed to be a more powerful application identifier. It is also designed to be used either as a local version of a site-defined application identifier or a publicly-assigned UID. Syntactically, the HD is a group of two application identifiers: one defined by the first component, and one defined by the second and third components.
The HD allows any site to act as an assigning authority (on a local or user-defined basis), even if it technically does not have the right to issue new IDs within an identification scheme. HDs which have defined third components (defined UID types) must be unique within the series of ID’s defined by that component.
type IN1 ¶
type IN1 struct {
HL7 HL7Name `hl7:",name=IN1,type=s"`
SetIDInsurance SI `hl7:"1,required,len=4,display=Set Id - Insurance"`
InsurancePlanID ID `hl7:"2,required,len=8,table=0072,display=Insurance Plan Id"`
InsuranceCompanyID ST `hl7:"3,required,len=9,display=Insurance Company Id"`
InsuranceCompanyName ST `hl7:"4,len=45,display=Insurance Company Name"`
InsuranceCompanyAddress *AD `hl7:"5,len=106,display=Insurance Company Address"`
InsuranceCompanyContactPers *PN `hl7:"6,len=48,display=Insurance Company Contact Pers"`
InsuranceCompanyPhoneNumber []TN `hl7:"7,max=3,len=40,display=Insurance Company Phone Number"`
GroupNumber ST `hl7:"8,len=12,display=Group Number"`
GroupName ST `hl7:"9,len=35,display=Group Name"`
InsuredsGroupEmployerID ST `hl7:"10,len=12,display=Insured's Group Employer Id"`
InsuredsGroupEmployerName ST `hl7:"11,len=45,display=Insured's Group Employer Name"`
PlanEffectiveDate DT `hl7:"12,len=8,format=YMD,display=Plan Effective Date"`
PlanExpirationDate DT `hl7:"13,len=8,format=YMD,display=Plan Expiration Date"`
AuthorizationInformation *CM_AUI `hl7:"14,len=55,display=Authorization Information"`
PlanType ID `hl7:"15,len=5,table=0086,display=Plan Type"`
NameOfInsured *PN `hl7:"16,len=48,display=Name Of Insured"`
InsuredsRelationshipToPatient ID `hl7:"17,len=2,table=0063,display=Insured's Relationship To Patient"`
InsuredsDateOfBirth DT `hl7:"18,len=8,format=YMD,display=Insured's Date Of Birth"`
InsuredsAddress *AD `hl7:"19,len=106,display=Insured's Address"`
AssignmentOfBenefits ID `hl7:"20,len=2,table=0135,display=Assignment Of Benefits"`
CoordinationOfBenefits ID `hl7:"21,len=2,table=0173,display=Coordination Of Benefits"`
CoordinationOfBenefitsPriority ST `hl7:"22,len=2,display=Coordination Of Benefits - Priority"`
NoticeOfAdmissionCode ID `hl7:"23,len=2,table=0136,display=Notice Of Admission Code"`
NoticeOfAdmissionDate DT `hl7:"24,len=8,format=YMD,display=Notice Of Admission Date"`
ReportOfEligibilityCode ID `hl7:"25,len=4,table=0136,display=Report Of Eligibility Code"`
ReportOfEligibilityDate DT `hl7:"26,len=8,format=YMD,display=Report Of Eligibility Date"`
ReleaseInformationCode ID `hl7:"27,len=2,table=0093,display=Release Information Code"`
PreAdmitCertificationPac ST `hl7:"28,len=15,display=Pre-admit Certification (pac)"`
VerificationDateTime TS `hl7:"29,len=26,format=YMDHMS,display=Verification Date / Time"`
VerificationBy *CN_PERSON `hl7:"30,len=60,display=Verification By"`
TypeOfAgreementCode ID `hl7:"31,len=2,table=0098,display=Type Of Agreement Code"`
BillingStatus ID `hl7:"32,len=2,table=0022,display=Billing Status"`
LifetimeReserveDays NM `hl7:"33,len=4,display=Lifetime Reserve Days"`
DelayBeforeLifetimeReserveDays NM `hl7:"34,len=4,display=Delay Before Lifetime Reserve Days"`
CompanyPlanCode ID `hl7:"35,len=8,table=0042,display=Company Plan Code"`
PolicyNumber ST `hl7:"36,len=15,display=Policy Number"`
PolicyDeductible NM `hl7:"37,len=12,display=Policy Deductible"`
PolicyLimitAmount NM `hl7:"38,len=12,display=Policy Limit - Amount"`
PolicyLimitDays NM `hl7:"39,len=4,display=Policy Limit - Days"`
RoomRateSemiPrivate NM `hl7:"40,len=12,display=Room Rate - Semi-private"`
RoomRatePrivate NM `hl7:"41,len=12,display=Room Rate - Private"`
InsuredsEmploymentStatus *CE `hl7:"42,len=60,table=0066,display=Insured's Employment Status"`
InsuredsSex ID `hl7:"43,len=1,table=0001,display=Insured's Sex"`
InsuredsEmployerAddress *AD `hl7:"44,len=106,display=Insured's Employer Address"`
VerificationStatus ST `hl7:"45,len=2,display=Verification Status"`
PriorInsurancePlanID ID `hl7:"46,len=8,table=0072,display=Prior Insurance Plan Id"`
}
Insurance
The IN1 segment contains insurance policy coverage information necessary to produce properly pro-rated and patient and insurance bills.
type IN2 ¶
type IN2 struct {
HL7 HL7Name `hl7:",name=IN2,type=s"`
InsuredsEmployeeID ST `hl7:"1,len=15,display=Insured's Employee Id"`
InsuredsSocialSecurityNumber NM `hl7:"2,len=9,display=Insured's Social Security Number"`
InsuredsEmployerName *CN_PERSON `hl7:"3,len=60,display=Insured's Employer Name"`
EmployerInformationData ID `hl7:"4,len=1,table=0139,display=Employer Information Data"`
MailClaimParty ID `hl7:"5,len=1,table=0137,display=Mail Claim Party"`
MedicareHealthInsuranceCardNumber NM `hl7:"6,len=15,display=Medicare Health Insurance Card Number"`
MedicaidCaseName *PN `hl7:"7,len=48,display=Medicaid Case Name"`
MedicaidCaseNumber NM `hl7:"8,len=15,display=Medicaid Case Number"`
ChampusSponsorName *PN `hl7:"9,len=48,display=Champus Sponsor Name"`
ChampusIDNumber NM `hl7:"10,len=20,display=Champus Id Number"`
DependentOfChampusRecipient ID `hl7:"11,len=1,display=Dependent Of Champus Recipient"`
ChampusOrganization ST `hl7:"12,len=25,display=Champus Organization"`
ChampusStation ST `hl7:"13,len=25,display=Champus Station"`
ChampusService ID `hl7:"14,len=14,table=0140,display=Champus Service"`
ChampusRankGrade ID `hl7:"15,len=2,table=0141,display=Champus Rank / Grade"`
ChampusStatus ID `hl7:"16,len=3,table=0142,display=Champus Status"`
ChampusRetireDate DT `hl7:"17,len=8,format=YMD,display=Champus Retire Date"`
ChampusNonAvailabilityCertificationOnFile ID `hl7:"18,len=1,table=0136,display=Champus Non-availability Certification On File"`
BabyCoverage ID `hl7:"19,len=1,table=0136,display=Baby Coverage"`
CombineBabyBill ID `hl7:"20,len=1,table=0136,display=Combine Baby Bill"`
BloodDeductible NM `hl7:"21,len=1,display=Blood Deductible"`
SpecialCoverageApprovalName *PN `hl7:"22,len=48,display=Special Coverage Approval Name"`
SpecialCoverageApprovalTitle ST `hl7:"23,len=30,display=Special Coverage Approval Title"`
NonCoveredInsuranceCode []ID `hl7:"24,len=8,table=0143,display=Non-covered Insurance Code"`
PayorID ST `hl7:"25,len=6,display=Payor Id"`
PayorSubscriberID ST `hl7:"26,len=6,display=Payor Subscriber Id"`
EligibilitySource ID `hl7:"27,len=1,table=0144,display=Eligibility Source"`
RoomCoverageTypeAmount []CM_RMC `hl7:"28,len=25,display=Room Coverage Type / Amount"`
PolicyTypeAmount []CM_PTA `hl7:"29,len=25,display=Policy Type / Amount"`
DailyDeductible *CM_DDI `hl7:"30,len=25,display=Daily Deductible"`
}
Insurance Additional Info
The IN2 segment contains additional insurance policy coverage and benefit information necessary for proper billing and reimbursement. Fields used by this segment are defined by HICFA or other regulatory agencies.
type IN3 ¶
type IN3 struct {
HL7 HL7Name `hl7:",name=IN3,type=s"`
SetIDInsuranceCertification SI `hl7:"1,required,len=4,display=Set Id - Insurance Certification"`
CertificationNumber ST `hl7:"2,len=25,display=Certification Number"`
CertifiedBy *CN_PERSON `hl7:"3,len=60,display=Certified By"`
CertificationRequired ID `hl7:"4,len=1,table=0136,display=Certification Required"`
Penalty *CM_PEN `hl7:"5,len=10,display=Penalty"`
CertificationDateTime TS `hl7:"6,len=26,format=YMDHMS,display=Certification Date / Time"`
CertificationModifyDateTime TS `hl7:"7,len=26,format=YMDHMS,display=Certification Modify Date / Time"`
Operator *CN_PERSON `hl7:"8,len=60,display=Operator"`
CertificationBeginDate DT `hl7:"9,len=8,format=YMD,display=Certification Begin Date"`
CertificationEndDate DT `hl7:"10,len=8,format=YMD,display=Certification End Date"`
Days *CM_DTN `hl7:"11,len=3,display=Days"`
NonConcurCodeDescription *CE `hl7:"12,len=60,display=Non-concur Code / Description"`
NonConcurEffectiveDateTime TS `hl7:"13,len=26,format=YMDHMS,display=Non-concur Effective Date / Time"`
PhysicianReviewer *CN_PERSON `hl7:"14,len=60,display=Physician Reviewer"`
CertificationContact ST `hl7:"15,len=48,display=Certification Contact"`
CertificationContactPhoneNumber []TN `hl7:"16,max=3,len=40,display=Certification Contact Phone Number"`
AppealReason *CE `hl7:"17,len=60,display=Appeal Reason"`
CertificationAgency *CE `hl7:"18,len=60,display=Certification Agency"`
CertificationAgencyPhoneNumber []TN `hl7:"19,max=3,len=40,display=Certification Agency Phone Number"`
PreCertificationRequiredWindow []CM_PCF `hl7:"20,len=40,display=Pre-certification Required / Window"`
CaseManager ST `hl7:"21,len=48,display=Case Manager"`
SecondOpinionDate DT `hl7:"22,len=8,format=YMD,display=Second Opinion Date"`
SecondOpinionStatus ID `hl7:"23,len=1,table=0151,display=Second Opinion Status"`
SecondOpinionDocumentationReceived ID `hl7:"24,len=1,table=0152,display=Second Opinion Documentation Received"`
SecondOpinionPractitioner *CN_PERSON `hl7:"25,len=60,display=Second Opinion Practitioner"`
}
Insurance Additional Info-certification
The IN3 segment contains additional insurance information for certifying the need for patient care. Fields used by this segment are defined by HICFA or other regulatory agencies
type IS ¶
type IS = string
Coded value for user-defined tables
The value of such a field follows the formatting rules for an ST field except that it is drawn from a sitedefined (or user-defined) table of legal values. There shall be an HL7 table number associated with IS data types. An example of an IS field is the Event reason code defined in Section 3.3.1.4, “Event reason code.” This data type should be used only for user-defined tables (see Section 2.6.7, “ID number”). The reverse is not true, since in some circumstances, it is more appropriate to use the CE data type for user-defined tables
type MCF ¶
type MCF struct {
HL7 HL7Name `hl7:",name=MCF,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MFA *MFA `hl7:"2,required,display=Master File Acknowledgement"`
ERR *ERR `hl7:"3,display=Error"`
}
Delayed acknowledgement
This message remains in the specification only for reasons of backwards compatibility. It is used as part of the protocol which creates a generic form of an asynchronous application level acknowledgement, the MCF message.
type MFA ¶
type MFA struct {
HL7 HL7Name `hl7:",name=MFA,type=s"`
RecordLevelEventCode ID `hl7:"1,required,len=3,table=0180,display=Record-level Event Code"`
MfnControlID ST `hl7:"2,conditional,len=20,display=Mfn Control Id"`
EventCompletionDateTime TS `hl7:"3,conditional,len=26,format=YMDHMS,display=Event Completion Date / Time"`
ErrorReturnCodeAndOrText CE `hl7:"4,required,len=60,table=0181,display=Error Return Code And/Or Text"`
PrimaryKeyValue []CE `hl7:"5,required,len=60,display=Primary Key Value"`
}
Master File Acknowledgement
type MFD_M01 ¶
type MFD_M01 struct {
HL7 HL7Name `hl7:",name=MFD_M01,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MFI *MFI `hl7:"2,required,display=Master File Identification"`
MFA []MFA `hl7:"3,display=Master File Acknowledgement"`
}
Master files change not otherwise specified (for backwards comp.)
type MFD_M02 ¶
type MFD_M02 struct {
HL7 HL7Name `hl7:",name=MFD_M02,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MFI *MFI `hl7:"2,required,display=Master File Identification"`
MFA []MFA `hl7:"3,display=Master File Acknowledgement"`
}
Staff Practitioneer
type MFD_M03 ¶
type MFD_M03 struct {
HL7 HL7Name `hl7:",name=MFD_M03,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MFI *MFI `hl7:"2,required,display=Master File Identification"`
MFA []MFA `hl7:"3,display=Master File Acknowledgement"`
}
Test/Observation
type MFE ¶
type MFE struct {
HL7 HL7Name `hl7:",name=MFE,type=s"`
RecordLevelEventCode ID `hl7:"1,required,len=3,table=0180,display=Record-level Event Code"`
MfnControlID ST `hl7:"2,conditional,len=20,display=Mfn Control Id"`
EffectiveDateTime TS `hl7:"3,len=26,format=YMDHMS,display=Effective Date / Time"`
PrimaryKeyValue []CE `hl7:"4,required,len=60,display=Primary Key Value"`
}
Master File Entry
type MFI ¶
type MFI struct {
HL7 HL7Name `hl7:",name=MFI,type=s"`
MasterFileIdentifier CE `hl7:"1,required,len=60,table=0175,display=Master File Identifier"`
MasterFileApplicationIdentifier ID `hl7:"2,len=6,table=0176,display=Master File Application Identifier"`
FileLevelEventCode ID `hl7:"3,required,len=3,table=0178,display=File-level Event Code"`
EnteredDateTime TS `hl7:"4,len=26,format=YMDHMS,display=Entered Date / Time"`
EffectiveDateTime TS `hl7:"5,len=26,format=YMDHMS,display=Effective Date / Time"`
ResponseLevelCode ID `hl7:"6,required,len=2,table=0179,display=Response Level Code"`
}
Master File Identification
type MFN_M01 ¶
type MFN_M01 struct {
HL7 HL7Name `hl7:",name=MFN_M01,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MFI *MFI `hl7:"2,required,display=Master File Identification"`
Mf []MFN_M01_Mf `hl7:",required,display=Mf"`
}
Master files change not otherwise specified (for backwards comp.)
type MFN_M01_Mf ¶
type MFN_M01_Mf struct {
HL7 HL7Name `hl7:",name=MFN_M01_Mf,type=tg"`
MFE *MFE `hl7:"3,required,display=Master File Entry"`
Zxx *Zxx `hl7:"4,display=Any Z Segment"`
}
Mf
type MFN_M02 ¶
type MFN_M02 struct {
HL7 HL7Name `hl7:",name=MFN_M02,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MFI *MFI `hl7:"2,required,display=Master File Identification"`
Mfstaff []MFN_M02_Mfstaff `hl7:",required,display=Mf_staff"`
}
Staff Practitioneer
type MFN_M02_Mfstaff ¶
type MFN_M02_Mfstaff struct {
HL7 HL7Name `hl7:",name=MFN_M02_Mfstaff,type=tg"`
MFE *MFE `hl7:"3,required,display=Master File Entry"`
Zxx *Zxx `hl7:"4,display=Any Z Segment"`
}
Mfstaff
type MFN_M03 ¶
type MFN_M03 struct {
HL7 HL7Name `hl7:",name=MFN_M03,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MFI *MFI `hl7:"2,required,display=Master File Identification"`
Mftest []MFN_M03_Mftest `hl7:",required,display=Mf_test"`
}
Test/Observation
type MFN_M03_Mftest ¶
type MFN_M03_Mftest struct {
HL7 HL7Name `hl7:",name=MFN_M03_Mftest,type=tg"`
MFE *MFE `hl7:"3,required,display=Master File Entry"`
Zxx *Zxx `hl7:"4,display=Any Z Segment"`
}
Mftest
type MFQ_M01 ¶
type MFQ_M01 struct {
HL7 HL7Name `hl7:",name=MFQ_M01,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
QRD *QRD `hl7:"2,required,display=Query Definition"`
QRF *QRF `hl7:"3,display=Query Filter"`
DSC *DSC `hl7:"4,display=Continuation Pointer"`
}
Master files change not otherwise specified (for backwards comp.)
type MFQ_M02 ¶
type MFQ_M02 struct {
HL7 HL7Name `hl7:",name=MFQ_M02,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
QRD *QRD `hl7:"2,required,display=Query Definition"`
QRF *QRF `hl7:"3,display=Query Filter"`
DSC *DSC `hl7:"4,display=Continuation Pointer"`
}
Staff Practitioneer
type MFQ_M03 ¶
type MFQ_M03 struct {
HL7 HL7Name `hl7:",name=MFQ_M03,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
QRD *QRD `hl7:"2,required,display=Query Definition"`
QRF *QRF `hl7:"3,display=Query Filter"`
DSC *DSC `hl7:"4,display=Continuation Pointer"`
}
Test/Observation
type MRG ¶
type MRG struct {
HL7 HL7Name `hl7:",name=MRG,type=s"`
PriorPatientIDInternal CM_PAT_ID `hl7:"1,required,len=20,display=Prior Patient Id - Internal"`
PriorAlternatePatientID *CM_PAT_ID `hl7:"2,len=16,display=Prior Alternate Patient Id"`
PriorPatientAccountNumber *CK `hl7:"3,len=20,display=Prior Patient Account Number"`
PriorPatientIDExternal *CK `hl7:"4,len=16,display=Prior Patient Id - External"`
}
Merge Patient Information
The MRG segment provides receiving applications with information necessary to initiate the merging of patient data as well as groups of records. It is intended that this segment be used throughout the standard to allow the merging of registration, accounting, and clinical records within specific applications
type MSA ¶
type MSA struct {
HL7 HL7Name `hl7:",name=MSA,type=s"`
AcknowledgementCode ID `hl7:"1,required,len=2,table=0008,display=Acknowledgement Code"`
MessageControlID ST `hl7:"2,required,len=20,display=Message Control Id"`
TextMessage ST `hl7:"3,len=80,display=Text Message"`
ExpectedSequenceNumber NM `hl7:"4,len=15,display=Expected Sequence Number"`
DelayedAcknowledgementType ID `hl7:"5,len=1,table=0102,display=Delayed Acknowledgement Type"`
ErrorCondition *CE `hl7:"6,len=100,display=Error Condition"`
}
Message Acknowledgment
The MSA segment contains information sent while acknowledging another message
type MSH ¶
type MSH struct {
HL7 HL7Name `hl7:",name=MSH,type=s"`
FieldSeparator ST `hl7:"1,noescape,fieldsep,omit,required,len=1,display=Field Separator"`
EncodingCharacters ST `hl7:"2,noescape,fieldchars,required,len=4,display=Encoding Characters"`
SendingApplication ST `hl7:"3,len=15,display=Sending Application"`
SendingFacility ST `hl7:"4,len=20,display=Sending Facility"`
ReceivingApplication ST `hl7:"5,len=30,display=Receiving Application"`
ReceivingFacility ST `hl7:"6,len=30,display=Receiving Facility"`
DateTimeOfMessage TS `hl7:"7,len=26,format=YMDHMS,display=Date / Time Of Message"`
Security ST `hl7:"8,len=40,display=Security"`
MessageType CM_MSG `hl7:"9,required,len=7,display=Message Type"`
MessageControlID ST `hl7:"10,required,len=20,display=Message Control Id"`
ProcessingID ID `hl7:"11,required,len=1,table=0103,display=Processing Id"`
VersionID ID `hl7:"12,required,len=8,table=0104,display=Version Id"`
SequenceNumber NM `hl7:"13,len=15,display=Sequence Number"`
ContinuationPointer ST `hl7:"14,len=180,display=Continuation Pointer"`
AcceptAcknowledgementType ID `hl7:"15,len=2,table=0155,display=Accept Acknowledgement Type"`
ApplicationAcknowledgementType ID `hl7:"16,len=2,table=0155,display=Application Acknowledgement Type"`
CountryCode ID `hl7:"17,len=2,table=ISO3166,display=Country Code"`
}
Message Header
The MSH segment defines the intent, source, destination, and some specifics of the syntax of a message.
Note: If MSH-15 and MSH-16 are omitted (or are both null), the original Acknowledgement Mode rules are used.
func (MSH) MessageStructureID ¶
MessageStructureID returns the code for the message structure. Implements the interface for decoders.
type NCK ¶
type NCK struct {
HL7 HL7Name `hl7:",name=NCK,type=s"`
SystemDateTime TS `hl7:"1,required,len=26,format=YMDHMS,display=System Date/Time"`
}
System Clock
the NCK segment is used to allow the various systems on the network to synchronize their system clocks (system date and time).
type NK1 ¶
type NK1 struct {
HL7 HL7Name `hl7:",name=NK1,type=s"`
SetIDNextOfKin SI `hl7:"1,required,len=4,display=Set Id - Next Of Kin"`
Name *PN `hl7:"2,len=48,display=Name"`
Relationship *CE `hl7:"3,len=60,table=0063,display=Relationship"`
Address *AD `hl7:"4,len=106,display=Address"`
PhoneNumber []TN `hl7:"5,max=3,len=40,display=Phone Number"`
BusinessPhoneNumber TN `hl7:"6,len=40,display=Business Phone Number"`
ContactRole *CE `hl7:"7,len=60,table=0131,display=Contact Role"`
StartDate DT `hl7:"8,len=8,format=YMD,display=Start Date"`
EndDate DT `hl7:"9,len=8,format=YMD,display=End Date"`
NextOfKin ST `hl7:"10,len=60,display=Next Of Kin"`
NextOfKinJobCodeClass *CM_JOB_CODE `hl7:"11,len=60,display=Next Of Kin Job Code / Class"`
NextOfKinEmployeeNumber ST `hl7:"12,len=20,display=Next Of Kin Employee Number"`
OrganizationName ST `hl7:"13,len=60,display=Organization Name"`
}
Next Of Kin
The NK1 segment contains information about the patient's other related parties. Any associated parties may be identified. Utilizing NK1-1-set ID, multiple NK1 segments can be sent to patient accounts
type NM ¶
type NM = string
Numeric
A number represented as a series of ASCII numeric characters consisting of an optional leading sign (+ or -), the digits and an optional decimal point. In the absence of a sign, the number is assumed to be positive. If there is no decimal point the number is assumed to be an integer.
Examples: |999| |-123.792|
type NMD_N01 ¶
type NMD_N01 struct {
HL7 HL7Name `hl7:",name=NMD_N01,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
Clockandstatswithnotes []NMD_N01_Clockandstatswithnotes `hl7:",required,display=Clock_and_stats_with_notes"`
}
Network Management Data
One system creates an unsolicited update (UU) Network Management Data message (NMD) to transmit network management information to another system. In this case, the initiating system sends an NMD message as an unsolicited update (UU) containing network management information to a receiving system, which responds with a generic acknowledgement message (ACK).
type NMD_N01_Appstats ¶
type NMD_N01_Appstats struct {
HL7 HL7Name `hl7:",name=NMD_N01_Appstats,type=tg"`
NST *NST `hl7:"4,required,display=Statistics"`
NTE []NTE `hl7:"5,display=Notes And Comments"`
Appstatus *NMD_N01_Appstatus `hl7:",display=App_status"`
}
Appstats
type NMD_N01_Appstatus ¶
type NMD_N01_Appstatus struct {
HL7 HL7Name `hl7:",name=NMD_N01_Appstatus,type=tg"`
NSC *NSC `hl7:"6,required,display=Status Change"`
NTE []NTE `hl7:"7,display=Notes And Comments"`
}
Appstatus
type NMD_N01_Clock ¶
type NMD_N01_Clock struct {
HL7 HL7Name `hl7:",name=NMD_N01_Clock,type=tg"`
NCK *NCK `hl7:"2,required,display=System Clock"`
NTE []NTE `hl7:"3,display=Notes And Comments"`
Appstats *NMD_N01_Appstats `hl7:",display=App_stats"`
}
Clock
type NMD_N01_Clockandstatswithnotes ¶
type NMD_N01_Clockandstatswithnotes struct {
HL7 HL7Name `hl7:",name=NMD_N01_Clockandstatswithnotes,type=tg"`
Clock *NMD_N01_Clock `hl7:",display=Clock"`
}
Clockandstatswithnotes
type NMQ_N02 ¶
type NMQ_N02 struct {
HL7 HL7Name `hl7:",name=NMQ_N02,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
Qrywithdetail *NMQ_N02_Qrywithdetail `hl7:",display=Qry_with_detail"`
}
Network Management Query
The NMQ (Network Management Query) message is used by one system to make system-level requests for information or action to another system. It has three segments, the NCK segment (network clock), the NST segment (network statistics), and the NSC segment (network status change). An example of the last type, NSC (network status change) would be an application or system startup/shut down request. At least one of these three segments must be present in the NMQ message. If a segment is present in the NMQ message, the corresponding segment needs to be present in the NMR message to return the requested data or status.
type NMQ_N02_Clockandstatistics ¶
type NMQ_N02_Clockandstatistics struct {
HL7 HL7Name `hl7:",name=NMQ_N02_Clockandstatistics,type=tg"`
NCK *NCK `hl7:"4,display=System Clock"`
NST *NST `hl7:"5,display=Statistics"`
NSC *NSC `hl7:"6,display=Status Change"`
}
Clockandstatistics
type NMQ_N02_Qrywithdetail ¶
type NMQ_N02_Qrywithdetail struct {
HL7 HL7Name `hl7:",name=NMQ_N02_Qrywithdetail,type=tg"`
QRD *QRD `hl7:"2,required,display=Query Definition"`
QRF *QRF `hl7:"3,display=Query Filter"`
Clockandstatistics []NMQ_N02_Clockandstatistics `hl7:",required,display=Clock_and_statistics"`
}
Qrywithdetail
type NMR_N02 ¶
type NMR_N02 struct {
HL7 HL7Name `hl7:",name=NMR_N02,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MSA *MSA `hl7:"2,required,display=Message Acknowledgment"`
ERR *ERR `hl7:"3,display=Error"`
QRD *QRD `hl7:"4,display=Query Definition"`
Response []NMR_N02_Response `hl7:",required,display=Response"`
}
Network Management Response
The NMQ/NMR (Network Management Query) message is used by one system to make system-level requests for information or action to another system. It has three segments, the NCK segment (network clock), the NST segment (network statistics), and the NSC segment (network status change). An example of the last type, NSC (network status change) would be an application or system startup/shut down request. At least one of these three segments must be present in the NMQ message. If a segment is present in the NMQ message, the corresponding segment needs to be present in the NMR message to return the requested data or status.
type NMR_N02_Response ¶
type NMR_N02_Response struct {
HL7 HL7Name `hl7:",name=NMR_N02_Response,type=tg"`
NCK *NCK `hl7:"5,display=System Clock"`
NTE []NTE `hl7:"6,display=Notes And Comments"`
NST *NST `hl7:"7,display=Statistics"`
NTE2 []NTE `hl7:"8,display=Notes And Comments"`
NSC *NSC `hl7:"9,display=Status Change"`
NTE3 []NTE `hl7:"10,display=Notes And Comments"`
}
Response
type NPU ¶
type NPU struct {
HL7 HL7Name `hl7:",name=NPU,type=s"`
BedLocation CM_INTERNAL_LOCATION `hl7:"1,required,len=12,table=0079,display=Bed Location"`
BedStatus ID `hl7:"2,len=1,table=0116,display=Bed Status"`
}
Bed Status Update
The NPU segment allows the updating of census (bed status) data without sending patient specific data. For example: changing the status of a bed from housekeeping to unoccupied.
type NSC ¶
type NSC struct {
HL7 HL7Name `hl7:",name=NSC,type=s"`
NetworkChangeType ID `hl7:"1,required,len=4,table=NSC1,display=Network Change Type"`
CurrentCPU ST `hl7:"2,len=30,display=Current Cpu"`
CurrentFileserver ST `hl7:"3,len=30,display=Current Fileserver"`
CurrentApplication ST `hl7:"4,len=30,display=Current Application"`
CurrentFacility ST `hl7:"5,len=30,display=Current Facility"`
NewCPU ST `hl7:"6,len=30,display=New Cpu"`
NewFileserver ST `hl7:"7,len=30,display=New Fileserver"`
NewApplication ST `hl7:"8,len=30,display=New Application"`
NewFacility ST `hl7:"9,len=30,display=New Facility"`
}
Status Change
The NSC segment can be used to request the start-up, shut-down, and/or migration (to a different cpu or file-server/file-system) of a particular application. It can also be used in an unsolicited update from one system to another to announce the start-up, shut-down, or migration of an application
type NST ¶
type NST struct {
HL7 HL7Name `hl7:",name=NST,type=s"`
StatisticsAvailable ID `hl7:"1,required,len=1,table=0136,display=Statistics Available"`
SourceIdentifier ST `hl7:"2,len=30,display=Source Identifier"`
SourceType ID `hl7:"3,len=3,table=NST3,display=Source Type"`
StatisticsStart TS `hl7:"4,len=26,format=YMDHMS,display=Statistics Start"`
StatisticsEnd TS `hl7:"5,len=26,format=YMDHMS,display=Statistics End"`
ReceiveCharacterCount NM `hl7:"6,len=10,display=Receive Character Count"`
SendCharacterCount NM `hl7:"7,len=10,display=Send Character Count"`
MessageReceived NM `hl7:"8,len=10,display=Message Received"`
MessageSent NM `hl7:"9,len=10,display=Message Sent"`
ChecksumErrorsReceived NM `hl7:"10,len=10,display=Checksum Errors Received"`
LengthErrorsReceived NM `hl7:"11,len=10,display=Length Errors Received"`
OtherErrorsReceived NM `hl7:"12,len=10,display=Other Errors Received"`
ConnectTimeouts NM `hl7:"13,len=10,display=Connect Timeouts"`
ReceiveTimeouts NM `hl7:"14,len=10,display=Receive Timeouts"`
NetworkErrors NM `hl7:"15,len=10,display=Network Errors"`
}
Statistics
The NST segment allows network statistical information to be passed between the various systems on the network. Some fields in this segment refer to portions of lower level protocols; they contain information that can be used by network management applications monitoring the state of various network links.
type NTE ¶
type NTE struct {
HL7 HL7Name `hl7:",name=NTE,type=s"`
SetIDNotesAndComments SI `hl7:"1,len=4,display=Set Id - Notes And Comments"`
SourceOfComment ID `hl7:"2,len=8,table=0105,display=Source Of Comment"`
Comment []FT `hl7:"3,len=65536,display=Comment"`
}
Notes And Comments
The NTE segment is defined here for inclusion in messages defined in other chapters. It is a common format for sending notes and comments
type OBR ¶
type OBR struct {
HL7 HL7Name `hl7:",name=OBR,type=s"`
SetIDObservationRequest SI `hl7:"1,conditional,len=4,display=Set Id - Observation Request"`
PlacerOrderNumber *CM_PLACER `hl7:"2,conditional,len=75,display=Placer Order Number"`
FillerOrderNumber CM_FILLER `hl7:"3,required,len=75,display=Filler Order Number +"`
UniversalServiceID *CE `hl7:"4,len=200,display=Universal Service Id"`
Priority ST `hl7:"5,len=2,display=Priority"`
RequestedDateTime TS `hl7:"6,len=26,format=YMDHMS,display=Requested Date / Time"`
ObservationDateTime TS `hl7:"7,conditional,len=26,format=YMDHMS,display=Observation Date / Time"`
ObservationEndDateTime TS `hl7:"8,conditional,len=26,format=YMDHMS,display=Observation End Date / Time"`
CollectionVolume *CQ `hl7:"9,len=20,display=Collection Volume *"`
CollectorIdentifier []CN_PERSON `hl7:"10,len=60,display=Collector Identifier *"`
SpecimenActionCode ID `hl7:"11,len=1,table=0065,display=Specimen Action Code *"`
DangerCode *CE `hl7:"12,len=60,display=Danger Code"`
RelevantClinicalInformation ST `hl7:"13,conditional,len=300,display=Relevant Clinical Information"`
SpecimenReceivedDateTime TS `hl7:"14,len=26,format=YMDHMS,display=Specimen Received Date / Time *"`
SpecimenSource *CM_SPS `hl7:"15,len=300,display=Specimen Source *"`
OrderingProvider []CN_PERSON `hl7:"16,len=80,display=Ordering Provider"`
OrderCallbackPhoneNumber []TN `hl7:"17,max=2,len=40,display=Order Callback Phone Number"`
PlacerField1 ST `hl7:"18,len=60,display=Placer Field 1"`
PlacerField2 ST `hl7:"19,len=60,display=Placer Field 2"`
FillerField1 ST `hl7:"20,len=60,display=Filler Field 1 +"`
FillerField2 ST `hl7:"21,conditional,len=60,display=Filler Field 2 +"`
ResultsReportStatusChangeDateTime TS `hl7:"22,len=26,format=YMDHMS,display=Results Report / Status Change - Date / Time +"`
ChargeToPractice *CM_MOC `hl7:"23,len=40,display=Charge To Practice +"`
DiagnosticServiceSectionID ID `hl7:"24,conditional,len=10,table=0074,display=Diagnostic Service Section Id"`
ResultStatus ID `hl7:"25,len=1,table=0123,display=Result Status +"`
ParentResult *CM_PRL `hl7:"26,len=200,display=Parent Result +"`
QuantityTiming []TQ `hl7:"27,len=200,display=Quantity / Timing"`
ResultCopiesTo []CN_PERSON `hl7:"28,max=5,len=150,display=Result Copies To"`
ParentNumber *CM_EIP `hl7:"29,len=150,display=Parent Number +"`
TransportationMode ID `hl7:"30,len=20,table=0124,display=Transportation Mode"`
ReasonForStudy []CE `hl7:"31,len=300,display=Reason For Study"`
PrincipalResultInterpreter *CM_NDL `hl7:"32,len=60,display=Principal Result Interpreter +"`
AssistantResultInterpreter []CM_NDL `hl7:"33,len=60,display=Assistant Result Interpreter +"`
Technician []CM_NDL `hl7:"34,len=60,display=Technician +"`
Transcriptionist []CM_NDL `hl7:"35,len=60,display=Transcriptionist +"`
ScheduledDateTime TS `hl7:"36,len=26,format=YMDHMS,display=Scheduled Date / Time +"`
}
Observation Request
The Observation Request (OBR) segment is used to transmit information specific to an order for a diagnostic study or observation, physical exam, or assessment.
The daggered (+) items in this segment are not created by the placer. They are created by the filler and valued as needed when the OBR segment is returned as part of a report. Hence on a new order sent to the filler, they are not valued. There is an exception when the filler initiates the order. In that case, the filler order number is valued and the placer order number may be blank.
The starred (*) fields are only relevant when an observation is associated with a specimen. These are completed by the placer when the placer obtains the specimen. They are completed by the filler when the filler obtains the specimen.
OBR-7-observation date/time and OBR-8-observation end date/time are the physiologically relevant times. In the case of an observation on a specimen, they represent the start and end of the specimen collector. In the case of an observation obtained directly from a subject (eg., BP, Chest Xray), they represent the start and end time of the observation
type OBX ¶
type OBX struct {
HL7 HL7Name `hl7:",name=OBX,type=s"`
SetIDObservationalSimple SI `hl7:"1,len=4,display=Set Id - Observational Simple"`
ValueType ID `hl7:"2,required,len=2,table=0125,display=Value Type"`
ObservationIdentifier CE `hl7:"3,required,len=80,display=Observation Identifier"`
ObservationSubID ST `hl7:"4,conditional,len=20,display=Observation Sub-id"`
ObservationValue *VARIES `hl7:"5,conditional,len=65536,display=Observation Value"`
Units *CE `hl7:"6,len=60,display=Units"`
ReferencesRange ST `hl7:"7,len=60,display=References Range"`
AbnormalFlags []ID `hl7:"8,max=5,len=10,table=0078,display=Abnormal Flags"`
Probability NM `hl7:"9,len=5,display=Probability"`
NatureOfAbnormalTest ID `hl7:"10,len=5,table=0080,display=Nature Of Abnormal Test"`
ObservationResultStatus ID `hl7:"11,required,len=2,table=0085,display=Observation Result Status"`
EffectiveDateLastObservationNormalValues TS `hl7:"12,len=26,format=YMDHMS,display=Effective Date Last Observation Normal Values"`
UserDefinedAccessChecks ST `hl7:"13,len=20,display=User Defined Access Checks"`
DateTimeOfTheObservation TS `hl7:"14,len=26,format=YMDHMS,display=Date / Time Of The Observation"`
ProducersID *CE `hl7:"15,len=60,display=Producer's Id"`
ResponsibleObserver *CN_PHYSICIAN `hl7:"16,len=60,display=Responsible Observer"`
}
Observation Result
type ODS ¶
type ODS struct {
HL7 HL7Name `hl7:",name=ODS,type=s"`
Type ID `hl7:"1,required,len=1,table=0159,display=Type"`
ServicePeriod []CE `hl7:"2,max=10,len=60,display=Service Period"`
DietSupplementOrPreferenceCode []CE `hl7:"3,required,max=20,len=60,display=Diet- Supplement- Or Preference Code"`
TextInstruction []ST `hl7:"4,max=2,len=80,display=Text Instruction"`
}
Dietary Orders, Supplements, And Preferences
The ORC sequence items of interest to ODS are ORC-1-order control,ORC-2-placer order number, ORC-3-filler order number, ORC-7-quantity/timing, ORC-9-date/time of transaction, ORC-10-entered by, and ORC-11verified by. For ORC-1-order control, the values may be New (NW), Cancel (CA), Discontinue Order Request (DC), Change (XO), Hold Order Request (HD), and Release Previous Hold (RL). The HD and RL codes could stop service for a specified length of time. ORC-4-quantity/timing should be used to specify whether an order is continuous or for one service period only. It is also useful for supplements which are part of a diet but only delivered, say, every day at night
type ODT ¶
type ODT struct {
HL7 HL7Name `hl7:",name=ODT,type=s"`
TrayType CE `hl7:"1,required,len=60,table=0160,display=Tray Type"`
ServicePeriod []CE `hl7:"2,max=10,len=60,display=Service Period"`
TextInstruction []ST `hl7:"3,max=2,len=80,display=Text Instruction"`
}
Diet Tray Instruction
This segment addresses tray instructions. These are independent of diet codes, supplements, and preferences and therefore get separate order numbers
type ORC ¶
type ORC struct {
HL7 HL7Name `hl7:",name=ORC,type=s"`
OrderControl ID `hl7:"1,required,len=2,table=0119,display=Order Control"`
PlacerOrderNumber *CM_PLACER `hl7:"2,conditional,len=75,display=Placer Order Number"`
FillerOrderNumber *CM_FILLER `hl7:"3,conditional,len=75,display=Filler Order Number"`
PlacerGroupNumber *CM_GROUP_ID `hl7:"4,len=75,display=Placer Group Number"`
OrderStatus ID `hl7:"5,len=2,table=0038,display=Order Status"`
ResponseFlag ID `hl7:"6,len=1,table=0121,display=Response Flag"`
QuantityTiming []TQ `hl7:"7,len=200,display=Quantity / Timing"`
Parent *CM_EIP `hl7:"8,len=200,display=Parent"`
DateTimeOfTransaction TS `hl7:"9,len=26,format=YMDHMS,display=Date / Time Of Transaction"`
EnteredBy *CN_PERSON `hl7:"10,len=80,display=Entered By"`
VerifiedBy *CN_PERSON `hl7:"11,len=80,display=Verified By"`
OrderingProvider *CN_PERSON `hl7:"12,len=80,display=Ordering Provider"`
EnterersLocation *PL `hl7:"13,len=80,display=Enterer's Location"`
CallBackPhoneNumber []TN `hl7:"14,max=2,len=40,display=Call Back Phone Number"`
OrderEffectiveDateTime TS `hl7:"15,len=26,format=YMDHMS,display=Order Effective Date / Time"`
OrderControlCodeReason *CE `hl7:"16,len=200,table=0119,display=Order Control Code Reason"`
EnteringOrganization *CE `hl7:"17,len=60,display=Entering Organization"`
EnteringDevice *CE `hl7:"18,len=60,display=Entering Device"`
ActionBy *CN_PERSON `hl7:"19,len=80,display=Action By"`
}
Commom Order
The Common Order segment (ORC) is used to transmit data elements that are common to all orders (all types of services that are requested). The ORC segment is required in both the Order (ORM) and Order Acknowledgement (ORR) messages.
type ORF_R04 ¶
type ORF_R04 struct {
HL7 HL7Name `hl7:",name=ORF_R04,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MSA *MSA `hl7:"2,required,display=Message Acknowledgment"`
Queryresponse []ORF_R04_Queryresponse `hl7:",required,display=Query_response"`
DSC *DSC `hl7:"12,display=Continuation Pointer"`
}
Response to query; transmission of requested observation
type ORF_R04_Observation ¶
type ORF_R04_Observation struct {
HL7 HL7Name `hl7:",name=ORF_R04_Observation,type=tg"`
OBX *OBX `hl7:"10,display=Observation Result"`
NTE []NTE `hl7:"11,display=Notes And Comments"`
}
Observation
type ORF_R04_Order ¶
type ORF_R04_Order struct {
HL7 HL7Name `hl7:",name=ORF_R04_Order,type=tg"`
ORC *ORC `hl7:"7,display=Commom Order"`
OBR *OBR `hl7:"8,required,display=Observation Request"`
NTE []NTE `hl7:"9,display=Notes And Comments"`
Observation []ORF_R04_Observation `hl7:",required,display=Observation"`
}
Order
type ORF_R04_Queryresponse ¶
type ORF_R04_Queryresponse struct {
HL7 HL7Name `hl7:",name=ORF_R04_Queryresponse,type=tg"`
QRD *QRD `hl7:"3,required,display=Query Definition"`
QRF *QRF `hl7:"4,display=Query Filter"`
PID *PID `hl7:"5,display=Patient Identification"`
NTE []NTE `hl7:"6,display=Notes And Comments"`
Order []ORF_R04_Order `hl7:",required,display=Order"`
}
Queryresponse
type ORM_O01 ¶
type ORM_O01 struct {
HL7 HL7Name `hl7:",name=ORM_O01,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
NTE []NTE `hl7:"2,display=Notes And Comments"`
Patient *ORM_O01_Patient `hl7:",display=Patient"`
Order []ORM_O01_Order `hl7:",required,display=Order"`
}
Order Message
The function of this message is to initiate the transmission of information about an order. This includes placing new orders, cancellation of existing orders, discontinuation, holding, etc. ORM messages can originate also with a placer, filler, or an interested third party.
type ORM_O01_Observation ¶
type ORM_O01_Observation struct {
HL7 HL7Name `hl7:",name=ORM_O01_Observation,type=tg"`
OBX *OBX `hl7:"15,required,display=Observation Result"`
NTE []NTE `hl7:"16,display=Notes And Comments"`
}
Observation
type ORM_O01_Order ¶
type ORM_O01_Order struct {
HL7 HL7Name `hl7:",name=ORM_O01_Order,type=tg"`
ORC *ORC `hl7:"7,required,display=Commom Order"`
Orderdetail *ORM_O01_Orderdetail `hl7:",display=Order_detail"`
BLG *BLG `hl7:"17,display=Billing"`
}
Order
type ORM_O01_OrderDetailSegment ¶
type ORM_O01_OrderDetailSegment struct {
HL7 HL7Name `hl7:",name=ORM_O01_OrderDetailSegment,type=tg"`
OBR *OBR `hl7:"8,conditional,display=Observation Request"`
RQD *RQD `hl7:"9,conditional,display=Requisition Detail"`
RQ1 *RQ1 `hl7:"10,conditional,display=Requisition Detail 1"`
RXO *RXO `hl7:"11,conditional,display=Pharmacy Prescription Order"`
ODS *ODS `hl7:"12,conditional,display=Dietary Orders- Supplements- And Preferences"`
ODT *ODT `hl7:"13,conditional,display=Diet Tray Instruction"`
}
OrderDetailSegment
type ORM_O01_Orderdetail ¶
type ORM_O01_Orderdetail struct {
HL7 HL7Name `hl7:",name=ORM_O01_Orderdetail,type=tg"`
OrderDetailSegment *ORM_O01_OrderDetailSegment `hl7:",required,display=Order Detail Segment"`
NTE []NTE `hl7:"14,display=Notes And Comments"`
Observation []ORM_O01_Observation `hl7:",display=Observation"`
}
Orderdetail
type ORM_O01_Patient ¶
type ORM_O01_Patient struct {
HL7 HL7Name `hl7:",name=ORM_O01_Patient,type=tg"`
PID *PID `hl7:"3,required,display=Patient Identification"`
NTE []NTE `hl7:"4,display=Notes And Comments"`
AL1 []AL1 `hl7:"5,display=Patient Allergy Information"`
PV1 *PV1 `hl7:"6,display=Patient Visit"`
}
Patient
type ORR_O02 ¶
type ORR_O02 struct {
HL7 HL7Name `hl7:",name=ORR_O02,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MSA *MSA `hl7:"2,required,display=Message Acknowledgment"`
ERR *ERR `hl7:"3,display=Error"`
NTE []NTE `hl7:"4,display=Notes And Comments"`
Patient *ORR_O02_Patient `hl7:",display=Patient"`
}
Response Message
The function of this message is to respond to an ORM message. An ORR message is the application acknowledgement to an ORM message. See Chapter 2 for a description of the acknowledgement paradigm.
type ORR_O02_Order ¶
type ORR_O02_Order struct {
HL7 HL7Name `hl7:",name=ORR_O02_Order,type=tg"`
ORC *ORC `hl7:"7,required,display=Commom Order"`
Orderdetail *ORR_O02_Orderdetail `hl7:",display=Order_detail"`
}
Order
type ORR_O02_OrderDetailSegment ¶
type ORR_O02_OrderDetailSegment struct {
HL7 HL7Name `hl7:",name=ORR_O02_OrderDetailSegment,type=tg"`
OBR *OBR `hl7:"8,conditional,display=Observation Request"`
RQD *RQD `hl7:"9,conditional,display=Requisition Detail"`
RQ1 *RQ1 `hl7:"10,conditional,display=Requisition Detail 1"`
RXO *RXO `hl7:"11,conditional,display=Pharmacy Prescription Order"`
ODS *ODS `hl7:"12,conditional,display=Dietary Orders- Supplements- And Preferences"`
ODT *ODT `hl7:"13,conditional,display=Diet Tray Instruction"`
}
OrderDetailSegment
type ORR_O02_Orderdetail ¶
type ORR_O02_Orderdetail struct {
HL7 HL7Name `hl7:",name=ORR_O02_Orderdetail,type=tg"`
OrderDetailSegment *ORR_O02_OrderDetailSegment `hl7:",display=Order Detail Segment"`
NTE []NTE `hl7:"14,display=Notes And Comments"`
}
Orderdetail
type ORR_O02_Patient ¶
type ORR_O02_Patient struct {
HL7 HL7Name `hl7:",name=ORR_O02_Patient,type=tg"`
PID *PID `hl7:"5,display=Patient Identification"`
NTE []NTE `hl7:"6,display=Notes And Comments"`
Order []ORR_O02_Order `hl7:",required,display=Order"`
}
Patient
type ORU_R01 ¶
type ORU_R01 struct {
HL7 HL7Name `hl7:",name=ORU_R01,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
Patientresult []ORU_R01_Patientresult `hl7:",required,display=Patient_result"`
DSC *DSC `hl7:"10,display=Continuation Pointer"`
}
Unsolicited Transmission Of Requested Information
With the type (OBX) defined in this chapter, and the OBR defined in Chapter 4, one can construct almost any clinical report as a three-level hierarchy, with the PID segment defined in Chapter 3 at the upper level, an order record (OBR) at the next level and one or more observation records (OBX) at the "bottom."
type ORU_R01_Observation ¶
type ORU_R01_Observation struct {
HL7 HL7Name `hl7:",name=ORU_R01_Observation,type=tg"`
OBX *OBX `hl7:"8,display=Observation Result"`
NTE []NTE `hl7:"9,display=Notes And Comments"`
}
Observation
type ORU_R01_Orderobservation ¶
type ORU_R01_Orderobservation struct {
HL7 HL7Name `hl7:",name=ORU_R01_Orderobservation,type=tg"`
ORC *ORC `hl7:"5,display=Commom Order"`
OBR *OBR `hl7:"6,required,display=Observation Request"`
NTE []NTE `hl7:"7,display=Notes And Comments"`
Observation []ORU_R01_Observation `hl7:",required,display=Observation"`
}
Orderobservation
type ORU_R01_Patient ¶
type ORU_R01_Patient struct {
HL7 HL7Name `hl7:",name=ORU_R01_Patient,type=tg"`
PID *PID `hl7:"2,required,display=Patient Identification"`
NTE []NTE `hl7:"3,display=Notes And Comments"`
PV1 *PV1 `hl7:"4,display=Patient Visit"`
}
Patient
type ORU_R01_Patientresult ¶
type ORU_R01_Patientresult struct {
HL7 HL7Name `hl7:",name=ORU_R01_Patientresult,type=tg"`
Patient *ORU_R01_Patient `hl7:",display=Patient"`
Orderobservation []ORU_R01_Orderobservation `hl7:",required,display=Order_observation"`
}
Patientresult
type PID ¶
type PID struct {
HL7 HL7Name `hl7:",name=PID,type=s"`
SetIDPatientID SI `hl7:"1,len=4,display=Set Id - Patient Id"`
PatientIDExternalID *CK `hl7:"2,len=16,display=Patient Id (external Id)"`
PatientIDInternalID []CM_PAT_ID `hl7:"3,required,len=20,display=Patient Id (internal Id)"`
AlternatePatientID ST `hl7:"4,len=12,display=Alternate Patient Id"`
PatientName PN `hl7:"5,required,len=48,display=Patient Name"`
MothersMaidenName ST `hl7:"6,len=30,display=Mother's Maiden Name"`
DateOfBirth TS `hl7:"7,len=26,format=YMDHMS,display=Date Of Birth"`
Sex ID `hl7:"8,len=1,table=0001,display=Sex"`
PatientAlias []PN `hl7:"9,len=48,display=Patient Alias"`
Race ID `hl7:"10,len=1,table=0005,display=Race"`
PatientAddress []AD `hl7:"11,max=3,len=106,display=Patient Address"`
CountyCode ST `hl7:"12,len=4,display=County Code"`
PhoneNumberHome []TN `hl7:"13,max=3,len=40,display=Phone Number - Home"`
PhoneNumberBusiness []TN `hl7:"14,max=3,len=40,display=Phone Number - Business"`
LanguagePatient ST `hl7:"15,len=25,display=Language - Patient"`
MaritalStatus ID `hl7:"16,len=1,table=0002,display=Marital Status"`
Religion ID `hl7:"17,len=3,table=0006,display=Religion"`
PatientAccountNumber *CK `hl7:"18,len=20,display=Patient Account Number"`
SocialSecurityNumberPatient ST `hl7:"19,len=16,display=Social Security Number - Patient"`
DriversLicenseNumberPatient *CM_LICENSE_NO `hl7:"20,len=25,display=Driver's License Number - Patient"`
MothersIdentifier *CK `hl7:"21,len=20,display=Mother's Identifier"`
EthnicGroup ID `hl7:"22,len=1,table=0189,display=Ethnic Group"`
BirthPlace ST `hl7:"23,len=25,display=Birth Place"`
MultipleBirthIndicator ID `hl7:"24,len=2,table=0136,display=Multiple Birth Indicator"`
BirthOrder NM `hl7:"25,len=2,display=Birth Order"`
Citizenship []ID `hl7:"26,len=3,table=0171,display=Citizenship"`
VeteransMilitaryStatus *CE `hl7:"27,len=60,table=0172,display=Veterans Military Status"`
}
Patient Identification
The PID segment is used by all applications as the primary means of communicating patient identification information. This segment contains permanent patient identifying, and demographic information that, for the most part, is not likely to change frequently
type PL ¶
type PL struct {
HL7 HL7Name `hl7:",name=PL,len=0,type=d"`
PointOfCare ID `` /* 226-byte string literal not displayed */
Room IS `` /* 154-byte string literal not displayed */
Bed IS `` /* 144-byte string literal not displayed */
Facility *HD `hl7:"4,display=Most general person location designation. (See Section 2.8.18- “HD - hierarchic designator”). "`
LocationStatus IS `hl7:"5,display=Location (e.g.- Bed) status. Refer to user-defined table 0306 - Location status for suggested values"`
PersonLocationType IS `` /* 185-byte string literal not displayed */
Building IS `` /* 139-byte string literal not displayed */
Floor ST `` /* 136-byte string literal not displayed */
LocationType ST `hl7:"9,display=A free text description of the location"`
}
Person Location
This data type is used to specify a patient location within a healthcare institution. Which components are valued depends on the needs of the site. It is most commonly used for specifying patient locations, but may refer to other types of persons within a healthcare setting.
type PN ¶
type PN struct {
HL7 HL7Name `hl7:",name=PN,len=0,type=d"`
FamiliyName ST `hl7:"1,display=Familiy Name"`
GivenName ST `hl7:"2,display=Given Name"`
MiddleInitialOrName ST `hl7:"3,display=Middle Initial Or Name"`
Suffix ST `hl7:"4,display=Suffix (e.g. Jr Or Iii)"`
Prefix ST `hl7:"5,display=Prefix (e.g. Dr)"`
Degree ST `hl7:"6,display=Degree (e.g. Md)"`
}
Person Name
A name includes multiple free text components as listed above. The maximum length of a PN field is 48 characters including component separators. The sending system may send upper- and lowercase or all uppercase. The receiving system may convert to all uppercase if required.
Example: |SMITH^JOHN^J^III^DR^PHD|
type PR1 ¶
type PR1 struct {
HL7 HL7Name `hl7:",name=PR1,type=s"`
SetIDProcedure SI `hl7:"1,required,len=4,display=Set Id - Procedure"`
ProcedureCodingMethod []ID `hl7:"2,required,len=2,table=0089,display=Procedure Coding Method"`
ProcedureCode []ID `hl7:"3,required,len=10,table=0088,display=Procedure Code"`
ProcedureDescription []ST `hl7:"4,len=40,display=Procedure Description"`
ProcedureDateTime TS `hl7:"5,required,len=26,format=YMDHMS,display=Procedure Date / Time"`
ProcedureType ID `hl7:"6,required,len=2,table=0090,display=Procedure Type"`
ProcedureMinutes NM `hl7:"7,len=4,display=Procedure Minutes"`
Anesthesiologist CN_PERSON `hl7:"8,len=60,table=0010,display=Anesthesiologist"`
AnesthesiaCode ID `hl7:"9,len=2,table=0019,display=Anesthesia Code"`
AnesthesiaMinutes NM `hl7:"10,len=4,display=Anesthesia Minutes"`
Surgeon CN_PERSON `hl7:"11,len=60,table=0010,display=Surgeon"`
ProcedurePractitioner []CM_PRACTITIONER `hl7:"12,len=60,table=0010,display=Procedure Practitioner"`
ConsentCode ID `hl7:"13,len=2,table=0059,display=Consent Code"`
ProcedurePriority NM `hl7:"14,len=2,display=Procedure Priority"`
}
Procedures
The PR1 segment contains information relative to various types of procedures that can be performed on a patient. For example: Surgical, Nuclear Medicine, X-Ray with contrast, etc
type PV1 ¶
type PV1 struct {
HL7 HL7Name `hl7:",name=PV1,type=s"`
SetIDPatientVisit SI `hl7:"1,len=4,display=Set Id - Patient Visit"`
PatientClass ID `hl7:"2,required,len=1,table=0004,display=Patient Class"`
AssignedPatientLocation *CM_INTERNAL_LOCATION `hl7:"3,len=12,table=0079,display=Assigned Patient Location"`
AdmissionType ID `hl7:"4,len=2,table=0007,display=Admission Type"`
PreadmitNumber ST `hl7:"5,len=20,display=Preadmit Number"`
PriorPatientLocation *CM_INTERNAL_LOCATION `hl7:"6,len=12,display=Prior Patient Location"`
AttendingDoctor *CN_PHYSICIAN `hl7:"7,len=60,table=0010,display=Attending Doctor"`
ReferringDoctor *CN_PHYSICIAN `hl7:"8,len=60,table=0010,display=Referring Doctor"`
ConsultingDoctor []CN_PHYSICIAN `hl7:"9,len=60,table=0010,display=Consulting Doctor"`
HospitalService ID `hl7:"10,len=3,table=0069,display=Hospital Service"`
TemporaryLocation *CM_INTERNAL_LOCATION `hl7:"11,len=12,table=0079,display=Temporary Location"`
PreadmitTestIndicator ID `hl7:"12,len=2,table=0087,display=Preadmit Test Indicator"`
ReadmissionIndicator ID `hl7:"13,len=2,table=0092,display=Readmission Indicator"`
AdmitSource ID `hl7:"14,len=3,table=0023,display=Admit Source"`
AmbulatoryStatus []ID `hl7:"15,len=2,table=0009,display=Ambulatory Status"`
VipIndicator ID `hl7:"16,len=2,table=0099,display=Vip Indicator"`
AdmittingDoctor *CN_PHYSICIAN `hl7:"17,len=60,table=0010,display=Admitting Doctor"`
PatientType ID `hl7:"18,len=2,table=0018,display=Patient Type"`
VisitNumber *CM_PAT_ID `hl7:"19,len=15,display=Visit Number"`
FinancialClass []CM_FINANCE `hl7:"20,max=4,len=50,display=Financial Class"`
ChargePriceIndicator ID `hl7:"21,len=2,table=0032,display=Charge Price Indicator"`
CourtesyCode ID `hl7:"22,len=2,table=0045,display=Courtesy Code"`
CreditRating ID `hl7:"23,len=2,table=0046,display=Credit Rating"`
ContractCode []ID `hl7:"24,len=2,table=0044,display=Contract Code"`
ContractEffectiveDate []DT `hl7:"25,len=8,format=YMD,display=Contract Effective Date"`
ContractAmount []NM `hl7:"26,len=12,display=Contract Amount"`
ContractPeriod []NM `hl7:"27,len=3,display=Contract Period"`
InterestCode ID `hl7:"28,len=2,table=0073,display=Interest Code"`
TransferToBadDebtCode ID `hl7:"29,len=1,table=0110,display=Transfer To Bad Debt - Code"`
TransferToBadDebtDate DT `hl7:"30,len=8,format=YMD,display=Transfer To Bad Debt - Date"`
BadDebtAgencyCode ID `hl7:"31,len=10,table=0021,display=Bad Debt Agency Code"`
BadDebtTransferAmount NM `hl7:"32,len=12,display=Bad Debt Transfer Amount"`
BadDebtRecoveryAmount NM `hl7:"33,len=12,display=Bad Debt Recovery Amount"`
DeleteAccountIndicator ID `hl7:"34,len=1,table=0111,display=Delete Account Indicator"`
DeleteAccountDate DT `hl7:"35,len=8,format=YMD,display=Delete Account Date"`
DischargeDisposition ID `hl7:"36,len=3,table=0112,display=Discharge Disposition"`
DischargedToLocation *CM_DLD `hl7:"37,len=25,display=Discharged To Location"`
DietType ID `hl7:"38,len=2,table=0114,display=Diet Type"`
ServicingFacility ID `hl7:"39,len=4,table=0115,display=Servicing Facility"`
BedStatus ID `hl7:"40,len=1,table=0116,display=Bed Status"`
AccountStatus ID `hl7:"41,len=2,table=0117,display=Account Status"`
PendingLocation *CM_INTERNAL_LOCATION `hl7:"42,len=12,display=Pending Location"`
PriorTemporaryLocation *CM_INTERNAL_LOCATION `hl7:"43,len=12,display=Prior Temporary Location"`
AdmitDateTime TS `hl7:"44,len=26,format=YMDHMS,display=Admit Date / Time"`
DischargeDateTime TS `hl7:"45,len=26,format=YMDHMS,display=Discharge Date / Time"`
CurrentPatientBalance NM `hl7:"46,len=12,display=Current Patient Balance"`
TotalCharges NM `hl7:"47,len=12,display=Total Charges"`
TotalAdjustments NM `hl7:"48,len=12,display=Total Adjustments"`
TotalPayments NM `hl7:"49,len=12,display=Total Payments"`
AlternateVisitID *CM_PAT_ID_0192 `hl7:"50,len=20,display=Alternate Visit Id"`
}
Patient Visit
The PV1 segment is used by Registration/ADT applications to communicate information on a visit specific basis. This segment can be used to send multiple visit statistic records to the same patient account, or single visit records to more than one account. Individual sites must determine this segment's use
type PV2 ¶
type PV2 struct {
HL7 HL7Name `hl7:",name=PV2,type=s"`
PriorPendingLocation *CM_INTERNAL_LOCATION `hl7:"1,len=12,display=Prior Pending Location"`
AccommodationCode *CE `hl7:"2,len=60,table=0129,display=Accommodation Code"`
AdmitReason *CE `hl7:"3,len=60,display=Admit Reason"`
TransferReason *CE `hl7:"4,len=60,display=Transfer Reason"`
PatientValuables []ST `hl7:"5,len=25,display=Patient Valuables"`
PatientValuablesLocation ST `hl7:"6,len=25,display=Patient Valuables Location"`
VisitUserCode ID `hl7:"7,len=2,table=0130,display=Visit User Code"`
ExpectedAdmitDate DT `hl7:"8,len=8,format=YMD,display=Expected Admit Date"`
ExpectedDischargeDate DT `hl7:"9,len=8,format=YMD,display=Expected Discharge Date"`
}
Patient Visit - Additional Information
The PV2 segment is a continuation of visit specific information contained on the PV1 segment.
type QRD ¶
type QRD struct {
HL7 HL7Name `hl7:",name=QRD,type=s"`
QueryDateTime TS `hl7:"1,required,len=26,format=YMDHMS,display=Query Date / Time"`
QueryFormatCode ID `hl7:"2,required,len=1,table=0106,display=Query Format Code"`
QueryPriority ID `hl7:"3,required,len=1,table=0091,display=Query Priority"`
QueryID ST `hl7:"4,required,len=10,display=Query Id"`
DeferredResponseType ID `hl7:"5,len=1,table=0107,display=Deferred Response Type"`
DeferredResponseDateTime TS `hl7:"6,len=26,format=YMDHMS,display=Deferred Response Date / Time"`
QuantityLimitedRequest CQ `hl7:"7,required,len=10,display=Quantity Limited Request"`
WhoSubjectFilter []ST `hl7:"8,required,len=20,display=Who Subject Filter"`
WhatSubjectFilter []ID `hl7:"9,required,len=3,table=0048,display=What Subject Filter"`
WhatDepartmentDataCode []ST `hl7:"10,required,len=20,display=What Department Data Code"`
WhatDataCodeValueQualifier []CM_VR `hl7:"11,len=20,display=What Data Code Value Qualifier"`
QueryResultsLevel ID `hl7:"12,len=1,table=0108,display=Query Results Level"`
}
Query Definition
type QRF ¶
type QRF struct {
HL7 HL7Name `hl7:",name=QRF,type=s"`
WhereSubjectFilter []ST `hl7:"1,required,len=20,display=Where Subject Filter"`
WhenDataStartDateTime TS `hl7:"2,len=26,format=YMDHMS,display=When Data Start Date / Time"`
WhenDataEndDateTime TS `hl7:"3,len=26,format=YMDHMS,display=When Data End Date / Time"`
WhatUserQualifier []ST `hl7:"4,len=20,display=What User Qualifier"`
OtherQrySubjectFilter []ST `hl7:"5,len=20,display=Other Qry Subject Filter"`
WhichDateTimeQualifier []ID `hl7:"6,len=12,table=0156,display=Which Date / Time Qualifier"`
WhichDateTimeStatusQualifier []ID `hl7:"7,len=12,table=0157,display=Which Date / Time Status Qualifier"`
DateTimeSelectionQualifier []ID `hl7:"8,len=12,table=0158,display=Date / Time Selection Qualifier"`
}
Query Filter
The QRF segment is used with the QRD segment to refine the content of a query further
type QRY_A19 ¶
type QRY_A19 struct {
HL7 HL7Name `hl7:",name=QRY_A19,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
QRD *QRD `hl7:"2,required,display=Query Definition"`
QRF *QRF `hl7:"3,display=Query Filter"`
}
Patient Query
The following triggering event is served by QRY (a query from another system) and ADR (a response from an ADT system.)
Another application determines a need for ADT data about a patient and sends a query to the ADT system. The Who Filter in the QRD can identify the patient or account number upon which the query is defined and can contain a Format Code of R (record oriented). If the query is based on Patient ID and there are data associated with multiple accounts, it is an implementation issue as to which account data should be returned. The ADT Event Type Segment, if included in the response, describes the last event for which the ADT system initiated an unsolicited update
type QRY_P04 ¶
type QRY_P04 struct {
HL7 HL7Name `hl7:",name=QRY_P04,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
QRD *QRD `hl7:"2,required,display=Query Definition"`
QRF *QRF `hl7:"3,display=Query Filter"`
DSC *DSC `hl7:"4,display=Continuation Pointer"`
}
Generate bills and A/R statements
For patient accounting systems that support demand billing, the QRY/DSP transaction defined in Chapter 2 will provide the mechanism to request a copy of the bill for printing or viewing by the requesting system.
type QRY_Q01 ¶
type QRY_Q01 struct {
HL7 HL7Name `hl7:",name=QRY_Q01,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
QRD *QRD `hl7:"2,required,display=Query Definition"`
QRF *QRF `hl7:"3,display=Query Filter"`
DSC *DSC `hl7:"4,display=Continuation Pointer"`
}
A Query is made for immediate Display Response
When display data is involved, these trigger events are served by the Query (QRY) and Display Response (DSR) and General Acknowledgement (ACK) messages. When the query is for record-oriented data, the QRY message is used, but the response message is specific to a functional area. Record-oriented queries are described in other chapters. Display-oriented queries are described here.
type QRY_Q02 ¶
type QRY_Q02 struct {
HL7 HL7Name `hl7:",name=QRY_Q02,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
QRD *QRD `hl7:"2,required,display=Query Definition"`
QRF *QRF `hl7:"3,display=Query Filter"`
DSC *DSC `hl7:"4,display=Continuation Pointer"`
}
A Query is Sent for Deferred Response
For clarity, A is the system initiating the query and B is the system sending the responses. Multiple queries and responses are permitted within single messages. The responses to a given query may be broken into several separate DSR messages. A single DSR message may contain responses to more than one QRY
type QRY_Q26 ¶
type QRY_Q26 struct {
HL7 HL7Name `hl7:",name=QRY_Q26,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
QRD *QRD `hl7:"2,required,display=Query Definition"`
QRF *QRF `hl7:"3,display=Query Filter"`
DSC *DSC `hl7:"4,display=Continuation Pointer"`
}
Pharmacy Prescription Order Query
Query (QRY_Q26) / Response (ROR_ROR)
type QRY_Q27 ¶
type QRY_Q27 struct {
HL7 HL7Name `hl7:",name=QRY_Q27,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
QRD *QRD `hl7:"2,required,display=Query Definition"`
QRF *QRF `hl7:"3,display=Query Filter"`
DSC *DSC `hl7:"4,display=Continuation Pointer"`
}
Pharmacy Administration Information Query
Query (QRY_Q27) / Response (RAR_RAR)
type QRY_Q28 ¶
type QRY_Q28 struct {
HL7 HL7Name `hl7:",name=QRY_Q28,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
QRD *QRD `hl7:"2,required,display=Query Definition"`
QRF *QRF `hl7:"3,display=Query Filter"`
DSC *DSC `hl7:"4,display=Continuation Pointer"`
}
Pharmacy Dispense Information Query
Query (QRY_Q28) / Response (RDR_RDR)
type QRY_Q29 ¶
type QRY_Q29 struct {
HL7 HL7Name `hl7:",name=QRY_Q29,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
QRD *QRD `hl7:"2,required,display=Query Definition"`
QRF *QRF `hl7:"3,display=Query Filter"`
DSC *DSC `hl7:"4,display=Continuation Pointer"`
}
Pharmacy Encoded Order Information Query
Query (QRY_Q29) / Response (RER_RER)
type QRY_Q30 ¶
type QRY_Q30 struct {
HL7 HL7Name `hl7:",name=QRY_Q30,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
QRD *QRD `hl7:"2,required,display=Query Definition"`
QRF *QRF `hl7:"3,display=Query Filter"`
DSC *DSC `hl7:"4,display=Continuation Pointer"`
}
Pharmacy Dose Information Query
Query (QRY_Q30) / Response (RGR_RGR)
type QRY_R02 ¶
type QRY_R02 struct {
HL7 HL7Name `hl7:",name=QRY_R02,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
QRD *QRD `hl7:"2,required,display=Query Definition"`
QRF *QRF `hl7:"3,required,display=Query Filter"`
DSC *DSC `hl7:"4,display=Continuation Pointer"`
}
Query for results of observation
type RAR_RAR ¶
type RAR_RAR struct {
HL7 HL7Name `hl7:",name=RAR_RAR,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MSA *MSA `hl7:"2,required,display=Message Acknowledgment"`
ERR *ERR `hl7:"3,display=Error"`
Definition []RAR_RAR_Definition `hl7:",required,display=Definition"`
DSC *DSC `hl7:"13,display=Continuation Pointer"`
}
Pharmacy Administration Information Response
Query (QRY_Q27) / Response (RAR_RAR)
type RAR_RAR_Definition ¶
type RAR_RAR_Definition struct {
HL7 HL7Name `hl7:",name=RAR_RAR_Definition,type=tg"`
QRD *QRD `hl7:"4,required,display=Query Definition"`
QRF *QRF `hl7:"5,display=Query Filter"`
Patient *RAR_RAR_Patient `hl7:",display=Patient"`
Order []RAR_RAR_Order `hl7:",required,display=Order"`
}
Definition
type RAR_RAR_Encoding ¶
type RAR_RAR_Encoding struct {
HL7 HL7Name `hl7:",name=RAR_RAR_Encoding,type=tg"`
RXE *RXE `hl7:"9,required,display=Pharmacy Encoded Order"`
RXR []RXR `hl7:"10,required,display=Pharmacy Route"`
RXC []RXC `hl7:"11,display=Pharmacy Component Order"`
}
Encoding
type RAR_RAR_Order ¶
type RAR_RAR_Order struct {
HL7 HL7Name `hl7:",name=RAR_RAR_Order,type=tg"`
ORC *ORC `hl7:"8,required,display=Commom Order"`
Encoding *RAR_RAR_Encoding `hl7:",display=Encoding"`
RXA []RXA `hl7:"12,required,display=Pharmacy Aadministration"`
}
Order
type RAR_RAR_Patient ¶
type RAR_RAR_Patient struct {
HL7 HL7Name `hl7:",name=RAR_RAR_Patient,type=tg"`
PID *PID `hl7:"6,required,display=Patient Identification"`
NTE []NTE `hl7:"7,display=Notes And Comments"`
}
Patient
type RAS_O02 ¶
type RAS_O02 struct {
HL7 HL7Name `hl7:",name=RAS_O02,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
NTE []NTE `hl7:"2,display=Notes And Comments"`
Patient *RAS_O02_Patient `hl7:",display=Patient"`
Order []RAS_O02_Order `hl7:",required,display=Order"`
}
Pharmacy/treatment administration message
The RAS message may be created by the administering application (e.g., nursing application) for each instance of administration for an existing order. If the administering application wants to report several administrations of medication for a given order with a single RAS message, each instance is reported by a separate (repeating) RXA segment. In addition, the administration records for a group of orders may be sent in a single message by creating repeating groups of segments at the ORC level.
type RAS_O02_Components ¶
type RAS_O02_Components struct {
HL7 HL7Name `hl7:",name=RAS_O02_Components,type=tg"`
RXC []RXC `hl7:"11,required,display=Pharmacy Component Order"`
NTE []NTE `hl7:"12,display=Notes And Comments"`
}
Components
type RAS_O02_Encoding ¶
type RAS_O02_Encoding struct {
HL7 HL7Name `hl7:",name=RAS_O02_Encoding,type=tg"`
RXE *RXE `hl7:"13,required,display=Pharmacy Encoded Order"`
RXR []RXR `hl7:"14,required,display=Pharmacy Route"`
RXC []RXC `hl7:"15,display=Pharmacy Component Order"`
}
Encoding
type RAS_O02_Observation ¶
type RAS_O02_Observation struct {
HL7 HL7Name `hl7:",name=RAS_O02_Observation,type=tg"`
OBX *OBX `hl7:"18,required,display=Observation Result"`
NTE []NTE `hl7:"19,display=Notes And Comments"`
}
Observation
type RAS_O02_Order ¶
type RAS_O02_Order struct {
HL7 HL7Name `hl7:",name=RAS_O02_Order,type=tg"`
ORC *ORC `hl7:"7,required,display=Commom Order"`
OrderDetail *RAS_O02_OrderDetail `hl7:",display=Order Detail"`
Encoding *RAS_O02_Encoding `hl7:",display=Encoding"`
RXA []RXA `hl7:"16,required,display=Pharmacy Aadministration"`
RXR *RXR `hl7:"17,required,display=Pharmacy Route"`
Observation []RAS_O02_Observation `hl7:",display=Observation"`
}
Order
type RAS_O02_OrderDetail ¶
type RAS_O02_OrderDetail struct {
HL7 HL7Name `hl7:",name=RAS_O02_OrderDetail,type=tg"`
RXO *RXO `hl7:"8,required,display=Pharmacy Prescription Order"`
OrderDetailSupplement *RAS_O02_OrderDetailSupplement `hl7:",display=Order Detail Supplement"`
}
OrderDetail
type RAS_O02_OrderDetailSupplement ¶
type RAS_O02_OrderDetailSupplement struct {
HL7 HL7Name `hl7:",name=RAS_O02_OrderDetailSupplement,type=tg"`
NTE []NTE `hl7:"9,required,display=Notes And Comments"`
RXR []RXR `hl7:"10,required,display=Pharmacy Route"`
Components *RAS_O02_Components `hl7:",display=Components"`
}
OrderDetailSupplement
type RAS_O02_Patient ¶
type RAS_O02_Patient struct {
HL7 HL7Name `hl7:",name=RAS_O02_Patient,type=tg"`
PID *PID `hl7:"3,required,display=Patient Identification"`
NTE []NTE `hl7:"4,display=Notes And Comments"`
AL1 []AL1 `hl7:"5,display=Patient Allergy Information"`
PV1 *PV1 `hl7:"6,display=Patient Visit"`
}
Patient
type RDE_O01 ¶
type RDE_O01 struct {
HL7 HL7Name `hl7:",name=RDE_O01,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
NTE []NTE `hl7:"2,display=Notes And Comments"`
Patient *RDE_O01_Patient `hl7:",display=Patient"`
Order []RDE_O01_Order `hl7:",required,display=Order"`
}
Pharmacy/treatment encoded order message
This message communicates the Pharmacy application's encoding of the pharmacy order (ORM message with RXO segment, see above). It may be sent as an unsolicited message to report on either a single order or multiple pharmacy orders for a patient.
type RDE_O01_Component ¶
type RDE_O01_Component struct {
HL7 HL7Name `hl7:",name=RDE_O01_Component,type=tg"`
RXC []RXC `hl7:"11,required,display=Pharmacy Component Order"`
NTE []NTE `hl7:"12,display=Notes And Comments"`
}
Component
type RDE_O01_Observation ¶
type RDE_O01_Observation struct {
HL7 HL7Name `hl7:",name=RDE_O01_Observation,type=tg"`
OBX *OBX `hl7:"16,display=Observation Result"`
NTE []NTE `hl7:"17,display=Notes And Comments"`
}
Observation
type RDE_O01_Order ¶
type RDE_O01_Order struct {
HL7 HL7Name `hl7:",name=RDE_O01_Order,type=tg"`
ORC *ORC `hl7:"7,required,display=Commom Order"`
Orderdetail *RDE_O01_Orderdetail `hl7:",display=Order_detail"`
RXE *RXE `hl7:"13,required,display=Pharmacy Encoded Order"`
RXR []RXR `hl7:"14,required,display=Pharmacy Route"`
RXC []RXC `hl7:"15,display=Pharmacy Component Order"`
Observation []RDE_O01_Observation `hl7:",required,display=Observation"`
}
Order
type RDE_O01_Orderdetail ¶
type RDE_O01_Orderdetail struct {
HL7 HL7Name `hl7:",name=RDE_O01_Orderdetail,type=tg"`
RXO *RXO `hl7:"8,required,display=Pharmacy Prescription Order"`
NTE []NTE `hl7:"9,display=Notes And Comments"`
RXR []RXR `hl7:"10,required,display=Pharmacy Route"`
Component *RDE_O01_Component `hl7:",display=Component"`
}
Orderdetail
type RDE_O01_Patient ¶
type RDE_O01_Patient struct {
HL7 HL7Name `hl7:",name=RDE_O01_Patient,type=tg"`
PID *PID `hl7:"3,required,display=Patient Identification"`
NTE []NTE `hl7:"4,display=Notes And Comments"`
AL1 []AL1 `hl7:"5,display=Patient Allergy Information"`
PV1 *PV1 `hl7:"6,display=Patient Visit"`
}
Patient
type RDR_RDR ¶
type RDR_RDR struct {
HL7 HL7Name `hl7:",name=RDR_RDR,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MSA *MSA `hl7:"2,required,display=Message Acknowledgment"`
ERR *ERR `hl7:"3,display=Error"`
Definition []RDR_RDR_Definition `hl7:",required,display=Definition"`
DSC *DSC `hl7:"14,display=Continuation Pointer"`
}
Pharmacy Dispense Information Response
Query (QRY_Q28) / Response (RDR_RDR)
type RDR_RDR_Definition ¶
type RDR_RDR_Definition struct {
HL7 HL7Name `hl7:",name=RDR_RDR_Definition,type=tg"`
QRD *QRD `hl7:"4,required,display=Query Definition"`
QRF *QRF `hl7:"5,display=Query Filter"`
Patient *RDR_RDR_Patient `hl7:",display=Patient"`
Order []RDR_RDR_Order `hl7:",required,display=Order"`
}
Definition
type RDR_RDR_Dispense ¶
type RDR_RDR_Dispense struct {
HL7 HL7Name `hl7:",name=RDR_RDR_Dispense,type=tg"`
RXD *RXD `hl7:"12,required,display=Pharmacy Dispense"`
RXR []RXR `hl7:"13,required,display=Pharmacy Route"`
}
Dispense
type RDR_RDR_Encoding ¶
type RDR_RDR_Encoding struct {
HL7 HL7Name `hl7:",name=RDR_RDR_Encoding,type=tg"`
RXE *RXE `hl7:"9,required,display=Pharmacy Encoded Order"`
RXR *RXR `hl7:"10,required,display=Pharmacy Route"`
RXC []RXC `hl7:"11,display=Pharmacy Component Order"`
}
Encoding
type RDR_RDR_Order ¶
type RDR_RDR_Order struct {
HL7 HL7Name `hl7:",name=RDR_RDR_Order,type=tg"`
ORC *ORC `hl7:"8,required,display=Commom Order"`
Encoding *RDR_RDR_Encoding `hl7:",display=Encoding"`
Dispense []RDR_RDR_Dispense `hl7:",required,display=Dispense"`
}
Order
type RDR_RDR_Patient ¶
type RDR_RDR_Patient struct {
HL7 HL7Name `hl7:",name=RDR_RDR_Patient,type=tg"`
PID *PID `hl7:"6,required,display=Patient Identification"`
NTE []NTE `hl7:"7,display=Notes And Comments"`
}
Patient
type RDS_O01 ¶
type RDS_O01 struct {
HL7 HL7Name `hl7:",name=RDS_O01,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
NTE []NTE `hl7:"2,display=Notes And Comments"`
Patient *RDS_O01_Patient `hl7:",display=Patient"`
Order []RDS_O01_Order `hl7:",required,display=Order"`
}
Pharmacy/treatment dispense information
The RDS message may be created by the Pharmacy application for each instance of dispensing drugs to fill an existing order or orders. In the most common case, the RDS messages would be routed to a Nursing application or to some clinical application, which needs the data about drugs dispensed. As a site-specific variant, the original order segments (RXO, RXE and their associated RXR/RXCs) may be sent optionally (for comparison).
type RDS_O01_Component ¶
type RDS_O01_Component struct {
HL7 HL7Name `hl7:",name=RDS_O01_Component,type=tg"`
RXC []RXC `hl7:"11,required,display=Pharmacy Component Order"`
NTE []NTE `hl7:"12,display=Notes And Comments"`
}
Component
type RDS_O01_Encoding ¶
type RDS_O01_Encoding struct {
HL7 HL7Name `hl7:",name=RDS_O01_Encoding,type=tg"`
RXE *RXE `hl7:"13,required,display=Pharmacy Encoded Order"`
RXR []RXR `hl7:"14,required,display=Pharmacy Route"`
RXC []RXC `hl7:"15,display=Pharmacy Component Order"`
}
Encoding
type RDS_O01_Observation ¶
type RDS_O01_Observation struct {
HL7 HL7Name `hl7:",name=RDS_O01_Observation,type=tg"`
OBX *OBX `hl7:"19,display=Observation Result"`
NTE []NTE `hl7:"20,display=Notes And Comments"`
}
Observation
type RDS_O01_Order ¶
type RDS_O01_Order struct {
HL7 HL7Name `hl7:",name=RDS_O01_Order,type=tg"`
ORC *ORC `hl7:"7,required,display=Commom Order"`
Orderdetail *RDS_O01_Orderdetail `hl7:",display=Order_detail"`
Encoding *RDS_O01_Encoding `hl7:",display=Encoding"`
RXD *RXD `hl7:"16,required,display=Pharmacy Dispense"`
RXR []RXR `hl7:"17,required,display=Pharmacy Route"`
RXE []RXE `hl7:"18,display=Pharmacy Encoded Order"`
Observation []RDS_O01_Observation `hl7:",required,display=Observation"`
}
Order
type RDS_O01_OrderDetailSupplement ¶
type RDS_O01_OrderDetailSupplement struct {
HL7 HL7Name `hl7:",name=RDS_O01_OrderDetailSupplement,type=tg"`
NTE []NTE `hl7:"9,required,display=Notes And Comments"`
RXR []RXR `hl7:"10,required,display=Pharmacy Route"`
Component *RDS_O01_Component `hl7:",display=Component"`
}
OrderDetailSupplement
type RDS_O01_Orderdetail ¶
type RDS_O01_Orderdetail struct {
HL7 HL7Name `hl7:",name=RDS_O01_Orderdetail,type=tg"`
RXO *RXO `hl7:"8,required,display=Pharmacy Prescription Order"`
OrderDetailSupplement *RDS_O01_OrderDetailSupplement `hl7:",display=Order Detail Supplement"`
}
Orderdetail
type RDS_O01_Patient ¶
type RDS_O01_Patient struct {
HL7 HL7Name `hl7:",name=RDS_O01_Patient,type=tg"`
PID *PID `hl7:"3,required,display=Patient Identification"`
NTE []NTE `hl7:"4,display=Notes And Comments"`
AL1 []AL1 `hl7:"5,display=Patient Allergy Information"`
PV1 *PV1 `hl7:"6,display=Patient Visit"`
}
Patient
type RER_RER ¶
type RER_RER struct {
HL7 HL7Name `hl7:",name=RER_RER,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MSA *MSA `hl7:"2,required,display=Message Acknowledgment"`
ERR *ERR `hl7:"3,display=Error"`
Definition []RER_RER_Definition `hl7:",required,display=Definition"`
DSC *DSC `hl7:"12,display=Continuation Pointer"`
}
Pharmacy Encoded Order Information Response
Query (QRY_Q29) / Response (RER_RER)
type RER_RER_Definition ¶
type RER_RER_Definition struct {
HL7 HL7Name `hl7:",name=RER_RER_Definition,type=tg"`
QRD *QRD `hl7:"4,required,display=Query Definition"`
QRF *QRF `hl7:"5,display=Query Filter"`
Patient *RER_RER_Patient `hl7:",display=Patient"`
Order []RER_RER_Order `hl7:",required,display=Order"`
}
Definition
type RER_RER_Order ¶
type RER_RER_Order struct {
HL7 HL7Name `hl7:",name=RER_RER_Order,type=tg"`
ORC *ORC `hl7:"8,required,display=Commom Order"`
RXE *RXE `hl7:"9,required,display=Pharmacy Encoded Order"`
RXR []RXR `hl7:"10,required,display=Pharmacy Route"`
RXC []RXC `hl7:"11,display=Pharmacy Component Order"`
}
Order
type RER_RER_Patient ¶
type RER_RER_Patient struct {
HL7 HL7Name `hl7:",name=RER_RER_Patient,type=tg"`
PID *PID `hl7:"6,required,display=Patient Identification"`
NTE []NTE `hl7:"7,display=Notes And Comments"`
}
Patient
type RGR_RGR ¶
type RGR_RGR struct {
HL7 HL7Name `hl7:",name=RGR_RGR,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MSA *MSA `hl7:"2,required,display=Message Acknowledgment"`
ERR *ERR `hl7:"3,display=Error"`
Definition []RGR_RGR_Definition `hl7:",required,display=Definition"`
DSC *DSC `hl7:"14,display=Continuation Pointer"`
}
Pharmacy dose information response
Query (QRY_Q30) / Response (RGR_RGR)
type RGR_RGR_Definition ¶
type RGR_RGR_Definition struct {
HL7 HL7Name `hl7:",name=RGR_RGR_Definition,type=tg"`
QRD *QRD `hl7:"4,required,display=Query Definition"`
QRF *QRF `hl7:"5,display=Query Filter"`
Patient *RGR_RGR_Patient `hl7:",display=Patient"`
Order []RGR_RGR_Order `hl7:",required,display=Order"`
}
Definition
type RGR_RGR_Encoding ¶
type RGR_RGR_Encoding struct {
HL7 HL7Name `hl7:",name=RGR_RGR_Encoding,type=tg"`
RXE *RXE `hl7:"9,required,display=Pharmacy Encoded Order"`
RXR []RXR `hl7:"10,required,display=Pharmacy Route"`
RXC []RXC `hl7:"11,display=Pharmacy Component Order"`
}
Encoding
type RGR_RGR_Order ¶
type RGR_RGR_Order struct {
HL7 HL7Name `hl7:",name=RGR_RGR_Order,type=tg"`
ORC *ORC `hl7:"8,required,display=Commom Order"`
Encoding *RGR_RGR_Encoding `hl7:",display=Encoding"`
RXG []RXG `hl7:"12,required,display=Pharmacy Give"`
RXR []RXR `hl7:"13,required,display=Pharmacy Route"`
}
Order
type RGR_RGR_Patient ¶
type RGR_RGR_Patient struct {
HL7 HL7Name `hl7:",name=RGR_RGR_Patient,type=tg"`
PID *PID `hl7:"6,required,display=Patient Identification"`
NTE []NTE `hl7:"7,display=Notes And Comments"`
}
Patient
type RGV_O01 ¶
type RGV_O01 struct {
HL7 HL7Name `hl7:",name=RGV_O01,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
NTE []NTE `hl7:"2,display=Notes And Comments"`
Patient *RGV_O01_Patient `hl7:",display=Patient"`
Order []RGV_O01_Order `hl7:",required,display=Order"`
}
Pharmacy/treatment give message
The RGV message uses the RXG segment to record drug administration instructions. It may carry information about a single scheduled administration on a drug, or it may carry information about multiple administrations of a drug
type RGV_O01_Component ¶
type RGV_O01_Component struct {
HL7 HL7Name `hl7:",name=RGV_O01_Component,type=tg"`
RXC []RXC `hl7:"11,required,display=Pharmacy Component Order"`
NTE []NTE `hl7:"12,display=Notes And Comments"`
}
Component
type RGV_O01_Encoding ¶
type RGV_O01_Encoding struct {
HL7 HL7Name `hl7:",name=RGV_O01_Encoding,type=tg"`
RXE *RXE `hl7:"13,required,display=Pharmacy Encoded Order"`
RXR []RXR `hl7:"14,required,display=Pharmacy Route"`
RXC []RXC `hl7:"15,display=Pharmacy Component Order"`
}
Encoding
type RGV_O01_Give ¶
type RGV_O01_Give struct {
HL7 HL7Name `hl7:",name=RGV_O01_Give,type=tg"`
RXG *RXG `hl7:"16,required,display=Pharmacy Give"`
RXR []RXR `hl7:"17,required,display=Pharmacy Route"`
RXC []RXC `hl7:"18,display=Pharmacy Component Order"`
Observation *RGV_O01_Observation `hl7:",required,display=Observation"`
}
Give
type RGV_O01_Observation ¶
type RGV_O01_Observation struct {
HL7 HL7Name `hl7:",name=RGV_O01_Observation,type=tg"`
OBX *OBX `hl7:"19,display=Observation Result"`
NTE []NTE `hl7:"20,display=Notes And Comments"`
}
Observation
type RGV_O01_Order ¶
type RGV_O01_Order struct {
HL7 HL7Name `hl7:",name=RGV_O01_Order,type=tg"`
ORC *ORC `hl7:"7,required,display=Commom Order"`
Orderdetail *RGV_O01_Orderdetail `hl7:",display=Order_detail"`
Encoding *RGV_O01_Encoding `hl7:",display=Encoding"`
Give *RGV_O01_Give `hl7:",required,display=Give"`
}
Order
type RGV_O01_OrderDetailSupplement ¶
type RGV_O01_OrderDetailSupplement struct {
HL7 HL7Name `hl7:",name=RGV_O01_OrderDetailSupplement,type=tg"`
NTE []NTE `hl7:"9,required,display=Notes And Comments"`
RXR []RXR `hl7:"10,required,display=Pharmacy Route"`
Component *RGV_O01_Component `hl7:",display=Component"`
}
OrderDetailSupplement
type RGV_O01_Orderdetail ¶
type RGV_O01_Orderdetail struct {
HL7 HL7Name `hl7:",name=RGV_O01_Orderdetail,type=tg"`
RXO *RXO `hl7:"8,required,display=Pharmacy Prescription Order"`
OrderDetailSupplement *RGV_O01_OrderDetailSupplement `hl7:",display=Order Detail Supplement"`
}
Orderdetail
type RGV_O01_Patient ¶
type RGV_O01_Patient struct {
HL7 HL7Name `hl7:",name=RGV_O01_Patient,type=tg"`
PID *PID `hl7:"3,required,display=Patient Identification"`
NTE []NTE `hl7:"4,display=Notes And Comments"`
AL1 []AL1 `hl7:"5,display=Patient Allergy Information"`
PV1 *PV1 `hl7:"6,display=Patient Visit"`
}
Patient
type ROR_ROR ¶
type ROR_ROR struct {
HL7 HL7Name `hl7:",name=ROR_ROR,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MSA *MSA `hl7:"2,required,display=Message Acknowledgment"`
ERR *ERR `hl7:"3,display=Error"`
Definition []ROR_ROR_Definition `hl7:",required,display=Definition"`
DSC *DSC `hl7:"12,display=Continuation Pointer"`
}
Pharmacy Prescription Order Response
Query (QRY_Q26) / Response (ROR_ROR)
type ROR_ROR_Definition ¶
type ROR_ROR_Definition struct {
HL7 HL7Name `hl7:",name=ROR_ROR_Definition,type=tg"`
QRD *QRD `hl7:"4,required,display=Query Definition"`
QRF *QRF `hl7:"5,display=Query Filter"`
Patient *ROR_ROR_Patient `hl7:",display=Patient"`
Order []ROR_ROR_Order `hl7:",required,display=Order"`
}
Definition
type ROR_ROR_Order ¶
type ROR_ROR_Order struct {
HL7 HL7Name `hl7:",name=ROR_ROR_Order,type=tg"`
ORC *ORC `hl7:"8,required,display=Commom Order"`
RXO *RXO `hl7:"9,required,display=Pharmacy Prescription Order"`
RXR []RXR `hl7:"10,required,display=Pharmacy Route"`
RXC []RXC `hl7:"11,display=Pharmacy Component Order"`
}
Order
type ROR_ROR_Patient ¶
type ROR_ROR_Patient struct {
HL7 HL7Name `hl7:",name=ROR_ROR_Patient,type=tg"`
PID *PID `hl7:"6,required,display=Patient Identification"`
NTE []NTE `hl7:"7,display=Notes And Comments"`
}
Patient
type RQ1 ¶
type RQ1 struct {
HL7 HL7Name `hl7:",name=RQ1,type=s"`
AnticipatedPrice SI `hl7:"1,len=10,display=Anticipated Price"`
ManufacturerID *CE `hl7:"2,len=60,display=Manufacturer Id"`
ManufacturersCatalog ST `hl7:"3,len=16,display=Manufacturer's Catalog"`
VendorID *CE `hl7:"4,len=60,display=Vendor Id"`
VendorCatalog ST `hl7:"5,len=16,display=Vendor Catalog"`
Taxable ID `hl7:"6,len=1,table=0136,display=Taxable"`
SubstituteAllowed ID `hl7:"7,len=1,table=0136,display=Substitute Allowed"`
}
Requisition Detail 1
RQ1 contains additional detail for each nonstock requisitioned item. This segment definition is paired with a preceeding RQD segment.
type RQD ¶
type RQD struct {
HL7 HL7Name `hl7:",name=RQD,type=s"`
RequisitionLineNumber SI `hl7:"1,len=4,display=Requisition Line Number"`
ItemCodeInternal *CE `hl7:"2,len=60,display=Item Code - Internal"`
ItemCodeExternal *CE `hl7:"3,len=60,display=Item Code - External"`
HospitalItemCode *CE `hl7:"4,len=60,display=Hospital Item Code"`
RequisitionQuantity NM `hl7:"5,len=6,display=Requisition Quantity"`
RequisitionUnitOfMeasure *CE `hl7:"6,len=60,display=Requisition Unit Of Measure"`
DepartmentCostCenter ID `hl7:"7,len=30,display=Department Cost Center"`
ItemNaturalAccountCode ID `hl7:"8,len=30,display=Item Natural Account Code"`
DeliverToID *CE `hl7:"9,len=60,display=Deliver-to Id"`
DateNeeded DT `hl7:"10,len=8,format=YMD,display=Date Needed"`
}
Requisition Detail
RQD contains the detail for each requisitioned item.
type RRA_O02 ¶
type RRA_O02 struct {
HL7 HL7Name `hl7:",name=RRA_O02,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MSA *MSA `hl7:"2,required,display=Message Acknowledgment"`
ERR *ERR `hl7:"3,display=Error"`
NTE []NTE `hl7:"4,display=Notes And Comments"`
Response *RRA_O02_Response `hl7:",display=Response"`
}
Pharmacy/treatment administration acknowledgment message
Response to a RAS_O02
type RRA_O02_Administration ¶
type RRA_O02_Administration struct {
HL7 HL7Name `hl7:",name=RRA_O02_Administration,type=tg"`
RXA []RXA `hl7:"8,required,display=Pharmacy Aadministration"`
RXR *RXR `hl7:"9,required,display=Pharmacy Route"`
}
Administration
type RRA_O02_Order ¶
type RRA_O02_Order struct {
HL7 HL7Name `hl7:",name=RRA_O02_Order,type=tg"`
ORC *ORC `hl7:"7,required,display=Commom Order"`
Administration []RRA_O02_Administration `hl7:",display=Administration"`
}
Order
type RRA_O02_Patient ¶
type RRA_O02_Patient struct {
HL7 HL7Name `hl7:",name=RRA_O02_Patient,type=tg"`
PID *PID `hl7:"5,required,display=Patient Identification"`
NTE []NTE `hl7:"6,display=Notes And Comments"`
}
Patient
type RRA_O02_Response ¶
type RRA_O02_Response struct {
HL7 HL7Name `hl7:",name=RRA_O02_Response,type=tg"`
Patient *RRA_O02_Patient `hl7:",display=Patient"`
Order []RRA_O02_Order `hl7:",required,display=Order"`
}
Response
type RRD_O02 ¶
type RRD_O02 struct {
HL7 HL7Name `hl7:",name=RRD_O02,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MSA *MSA `hl7:"2,required,display=Message Acknowledgment"`
ERR *ERR `hl7:"3,display=Error"`
NTE []NTE `hl7:"4,display=Notes And Comments"`
Patient *RRD_O02_Patient `hl7:",display=Patient"`
}
Pharmacy/treatment dispense acknowledgment message
The RDS message may be created by the Pharmacy application for each instance of dispensing drugs to fill an existing order or orders. In the most common case, the RDS messages would be routed to a Nursing application or to some clinical application, which needs the data about drugs dispensed. As a site-specific variant, the original order segments (RXO, RXE and their associated RXR/RXCs) may be sent optionally (for comparison).
type RRD_O02_Order ¶
type RRD_O02_Order struct {
HL7 HL7Name `hl7:",name=RRD_O02_Order,type=tg"`
ORC *ORC `hl7:"7,required,display=Commom Order"`
Orderdetail *RRD_O02_Orderdetail `hl7:",display=Order_detail"`
}
Order
type RRD_O02_Orderdetail ¶
type RRD_O02_Orderdetail struct {
HL7 HL7Name `hl7:",name=RRD_O02_Orderdetail,type=tg"`
RXD *RXD `hl7:"8,required,display=Pharmacy Dispense"`
RXR []RXR `hl7:"9,required,display=Pharmacy Route"`
RXC []RXC `hl7:"10,display=Pharmacy Component Order"`
}
Orderdetail
type RRD_O02_Patient ¶
type RRD_O02_Patient struct {
HL7 HL7Name `hl7:",name=RRD_O02_Patient,type=tg"`
PID *PID `hl7:"5,display=Patient Identification"`
NTE []NTE `hl7:"6,display=Notes And Comments"`
Order []RRD_O02_Order `hl7:",required,display=Order"`
}
Patient
type RRE_O02 ¶
type RRE_O02 struct {
HL7 HL7Name `hl7:",name=RRE_O02,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MSA *MSA `hl7:"2,required,display=Message Acknowledgment"`
ERR *ERR `hl7:"3,display=Error"`
NTE []NTE `hl7:"4,display=Notes And Comments"`
Patient *RRE_O02_Patient `hl7:",display=Patient"`
}
Pharmacy/treatment encoded order acknowledgment message
This message communicates the Pharmacy application's encoding of the pharmacy order (ORM message with RXO segment, see above). It may be sent as an unsolicited message to report on either a single order or multiple pharmacy orders for a patient.
type RRE_O02_Order ¶
type RRE_O02_Order struct {
HL7 HL7Name `hl7:",name=RRE_O02_Order,type=tg"`
ORC *ORC `hl7:"7,required,display=Commom Order"`
Orderdetail *RRE_O02_Orderdetail `hl7:",display=Order_detail"`
}
Order
type RRE_O02_Orderdetail ¶
type RRE_O02_Orderdetail struct {
HL7 HL7Name `hl7:",name=RRE_O02_Orderdetail,type=tg"`
RXE *RXE `hl7:"8,required,display=Pharmacy Encoded Order"`
RXR []RXR `hl7:"9,required,display=Pharmacy Route"`
RXC []RXC `hl7:"10,display=Pharmacy Component Order"`
}
Orderdetail
type RRE_O02_Patient ¶
type RRE_O02_Patient struct {
HL7 HL7Name `hl7:",name=RRE_O02_Patient,type=tg"`
PID *PID `hl7:"5,display=Patient Identification"`
NTE []NTE `hl7:"6,display=Notes And Comments"`
Order []RRE_O02_Order `hl7:",required,display=Order"`
}
Patient
type RRG_O02 ¶
type RRG_O02 struct {
HL7 HL7Name `hl7:",name=RRG_O02,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
MSA *MSA `hl7:"2,required,display=Message Acknowledgment"`
ERR *ERR `hl7:"3,display=Error"`
NTE []NTE `hl7:"4,display=Notes And Comments"`
Patient *RRG_O02_Patient `hl7:",display=Patient"`
}
Pharmacy/treatment give acknowledgment message
The RGV message uses the RXG segment to record drug administration instructions. It may carry information about a single scheduled administration on a drug, or it may carry information about multiple administrations of a drug.
type RRG_O02_Order ¶
type RRG_O02_Order struct {
HL7 HL7Name `hl7:",name=RRG_O02_Order,type=tg"`
ORC *ORC `hl7:"7,required,display=Commom Order"`
Orderdetail *RRG_O02_Orderdetail `hl7:",display=Order_detail"`
}
Order
type RRG_O02_Orderdetail ¶
type RRG_O02_Orderdetail struct {
HL7 HL7Name `hl7:",name=RRG_O02_Orderdetail,type=tg"`
RXG *RXG `hl7:"8,required,display=Pharmacy Give"`
RXR []RXR `hl7:"9,required,display=Pharmacy Route"`
RXC []RXC `hl7:"10,display=Pharmacy Component Order"`
}
Orderdetail
type RRG_O02_Patient ¶
type RRG_O02_Patient struct {
HL7 HL7Name `hl7:",name=RRG_O02_Patient,type=tg"`
PID *PID `hl7:"5,display=Patient Identification"`
NTE []NTE `hl7:"6,display=Notes And Comments"`
Order []RRG_O02_Order `hl7:",required,display=Order"`
}
Patient
type RXA ¶
type RXA struct {
HL7 HL7Name `hl7:",name=RXA,type=s"`
GiveSubIDCounter NM `hl7:"1,required,len=4,display=Give Sub-id Counter"`
AdministrationSubIDCounter NM `hl7:"2,required,len=4,display=Administration Sub-id Counter"`
DateTimeStartOfAdministration TS `hl7:"3,required,len=26,format=YMDHMS,display=Date / Time Start Of Administration"`
DateTimeEndOfAdministration TS `hl7:"4,required,len=26,format=YMDHMS,display=Date / Time End Of Administration"`
AdministeredCode CE `hl7:"5,required,len=100,display=Administered Code"`
AdministeredAmount NM `hl7:"6,required,len=20,display=Administered Amount"`
AdministeredUnits *CE `hl7:"7,conditional,len=60,display=Administered Units"`
AdministeredDosageForm *CE `hl7:"8,len=60,display=Administered Dosage Form"`
AdministrationNotes []ST `hl7:"9,conditional,len=200,display=Administration Notes"`
AdministeringProvider *CN_PERSON `hl7:"10,len=200,display=Administering Provider"`
AdministeredAtLocation *CM_LA1 `hl7:"11,conditional,len=12,display=Administered-at Location"`
AdministeredPerTimeUnit ST `hl7:"12,conditional,len=20,display=Administered Per (time Unit)"`
}
Pharmacy Aadministration
The ORC must have the filler order number and the order control code RE. As a site-specific variant, the RXO and associated RXCs and/or the RXE (and associated RXCs) may be present if the receiving application needs any of their data. The RXA carries the administration data.
type RXC ¶
type RXC struct {
HL7 HL7Name `hl7:",name=RXC,type=s"`
RxComponentType ID `hl7:"1,required,len=1,table=0166,display=Rx Component Type"`
ComponentCode CE `hl7:"2,required,len=100,display=Component Code"`
ComponentAmount NM `hl7:"3,required,len=20,display=Component Amount"`
ComponentUnits CE `hl7:"4,required,len=20,display=Component Units"`
}
Pharmacy Component Order
If the drug ordered with the RXO segment is a compound drug OR an IV solution, AND there is not a coded value for the Universal Service ID which specifies the components (base and all additives), then the components (the base and additives) are specified by two or more RXC segments. The policy of the Pharmacy application on substitutions at the RXC level is identical to that for the RXO level.
type RXD ¶
type RXD struct {
HL7 HL7Name `hl7:",name=RXD,type=s"`
DispenseSubIDCounter NM `hl7:"1,required,len=4,display=Dispense Sub-id Counter"`
DispenseGiveCode CE `hl7:"2,required,len=100,display=Dispense / Give Code"`
DateTimeDispensed TS `hl7:"3,required,len=26,format=YMDHMS,display=Date / Time Dispensed"`
ActualDispenseAmount NM `hl7:"4,required,len=20,display=Actual Dispense Amount"`
ActualDispenseUnits *CE `hl7:"5,conditional,len=60,display=Actual Dispense Units"`
ActualDosageForm *CE `hl7:"6,len=60,display=Actual Dosage Form"`
PrescriptionNumber NM `hl7:"7,conditional,len=20,display=Prescription Number"`
NumberOfRefillsRemaining NM `hl7:"8,conditional,len=20,display=Number Of Refills Remaining"`
DispenseNotes []ST `hl7:"9,conditional,len=200,display=Dispense Notes"`
DispensingProvider *CN_PERSON `hl7:"10,len=200,display=Dispensing Provider"`
SubstitutionStatus ID `hl7:"11,len=1,table=0167,display=Substitution Status"`
TotalDailyDose NM `hl7:"12,len=10,display=Total Daily Dose"`
DispenseToLocation *CM_LA1 `hl7:"13,conditional,len=12,display=Dispense-to location"`
NeedsHumanReview ID `hl7:"14,len=1,table=0136,display=Needs Human Review"`
PharmacySpecialDispensingInstructions []CE `hl7:"15,len=200,display=Pharmacy Special Dispensing Instructions"`
}
Pharmacy Dispense
type RXE ¶
type RXE struct {
HL7 HL7Name `hl7:",name=RXE,type=s"`
QuantityTiming TQ `hl7:"1,required,len=200,display=Quantity / Timing"`
GiveCode CE `hl7:"2,required,len=100,display=Give Code"`
GiveAmountMinimum NM `hl7:"3,required,len=20,display=Give Amount - Minimum"`
GiveAmountMaximum NM `hl7:"4,len=20,display=Give Amount - Maximum"`
GiveUnits CE `hl7:"5,required,len=60,display=Give Units"`
GiveDosageForm *CE `hl7:"6,len=60,display=Give Dosage Form"`
ProvidersAdministrationInstructions []CE `hl7:"7,len=200,display=Provider's Administration Instructions"`
DeliverToLocation *CM_LA1 `hl7:"8,conditional,len=12,display=Deliver-to Location"`
SubstitutionStatus ID `hl7:"9,len=1,table=0167,display=Substitution Status"`
DispenseAmount NM `hl7:"10,conditional,len=20,display=Dispense Amount"`
DispenseUnits *CE `hl7:"11,conditional,len=60,display=Dispense Units"`
NumberOfRefills NM `hl7:"12,len=3,display=Number Of Refills"`
OrderingProvidersDeaNumber *CN_PERSON `hl7:"13,conditional,len=60,display=Ordering Provider's Dea Number"`
PharmacistVerifierID *CN_PERSON `hl7:"14,conditional,len=60,display=Pharmacist Verifier Id"`
PrescriptionNumber ST `hl7:"15,required,len=20,display=Prescription Number"`
NumberOfRefillsRemaining NM `hl7:"16,conditional,len=20,display=Number Of Refills Remaining"`
NumberOfRefillsDosesDispensed NM `hl7:"17,conditional,len=20,display=Number Of Refills / Doses Dispensed"`
DateTimeOfMostRecentRefillOrDoseDispensed TS `hl7:"18,conditional,len=26,format=YMDHMS,display=Date / Time Of Most Recent Refill Or Dose Dispensed"`
TotalDailyDose *CQ `hl7:"19,len=10,display=Total Daily Dose"`
NeedsHumanReview ID `hl7:"20,len=1,table=0136,display=Needs Human Review"`
PharmacySpecialDispensingInstructions []CE `hl7:"21,len=200,display=Pharmacy Special Dispensing Instructions"`
GivePerTimeUnit ST `hl7:"22,conditional,len=20,display=Give Per (time Unit)"`
GiveRateAmount *CE `hl7:"23,len=6,display=Give Rate Amount"`
GiveRateUnits *CE `hl7:"24,len=60,display=Give Rate Units"`
}
Pharmacy Encoded Order
The RXE segment details the pharmacy application's encoding of the order. It also contains several pharmacyspecific order status fields, such as RXE-16-number of refills remaining, RXE-17-number of refills/doses dispensed, RXE-18-date/time of most recent refill/dose, and RXE-19-total daily dose.
type RXG ¶
type RXG struct {
HL7 HL7Name `hl7:",name=RXG,type=s"`
GiveSubIDCounter NM `hl7:"1,required,len=4,display=Give Sub-id Counter"`
DispenseSubIDCounter NM `hl7:"2,len=4,display=Dispense Sub-id Counter"`
QuantityTiming TQ `hl7:"3,required,len=200,display=Quantity / Timing"`
GiveCode CE `hl7:"4,required,len=100,display=Give Code"`
GiveAmountMinimum NM `hl7:"5,required,len=20,display=Give Amount - Minimum"`
GiveAmountMaximum NM `hl7:"6,len=20,display=Give Amount - Maximum"`
GiveUnits CE `hl7:"7,required,len=60,display=Give Units"`
GiveDosageForm *CE `hl7:"8,len=60,display=Give Dosage Form"`
AdministrationNotes []ST `hl7:"9,conditional,len=200,display=Administration Notes"`
SubstitutionStatus ID `hl7:"10,len=1,table=0167,display=Substitution Status"`
DispenseToLocation *CM_LA1 `hl7:"11,conditional,len=12,display=Dispense-to location"`
NeedsHumanReview ID `hl7:"12,len=1,table=0136,display=Needs Human Review"`
PharmacySpecialAdministrationInstructions []CE `hl7:"13,len=200,display=Pharmacy Special Administration Instructions"`
GivePerTimeUnit ST `hl7:"14,conditional,len=20,display=Give Per (time Unit)"`
GiveRateAmount *CE `hl7:"15,len=6,display=Give Rate Amount"`
GiveRateUnits *CE `hl7:"16,len=60,display=Give Rate Units"`
}
Pharmacy Give
type RXO ¶
type RXO struct {
HL7 HL7Name `hl7:",name=RXO,type=s"`
RequestedGiveCode CE `hl7:"1,required,len=100,display=Requested Give Code"`
RequestedGiveAmountMinimum NM `hl7:"2,required,len=20,display=Requested Give Amount - Minimum"`
RequestedGiveAmountMaximum NM `hl7:"3,len=20,display=Requested Give Amount - Maximum"`
RequestedGiveUnits CE `hl7:"4,required,len=60,display=Requested Give Units"`
RequestedDosageForm *CE `hl7:"5,len=60,display=Requested Dosage Form"`
ProvidersPharmacyInstructions []CE `hl7:"6,len=200,display=Provider's Pharmacy Instructions"`
ProvidersAdministrationInstructions []CE `hl7:"7,len=200,display=Provider's Administration Instructions"`
DeliverToLocation *CM_LA1 `hl7:"8,conditional,len=12,display=Deliver-to Location"`
AllowSubstitutions ID `hl7:"9,len=1,table=0161,display=Allow Substitutions"`
RequestedDispenseCode *CE `hl7:"10,conditional,len=100,display=Requested Dispense Code"`
RequestedDispenseAmount NM `hl7:"11,conditional,len=20,display=Requested Dispense Amount"`
RequestedDispenseUnits *CE `hl7:"12,conditional,len=60,display=Requested Dispense Units"`
NumberOfRefills NM `hl7:"13,len=3,display=Number Of Refills"`
OrderingProvidersDeaNumber *CN_PERSON `hl7:"14,conditional,len=60,display=Ordering Provider's Dea Number"`
PharmacistVerifierID *CN_PERSON `hl7:"15,conditional,len=60,display=Pharmacist Verifier Id"`
NeedsHumanReview ID `hl7:"16,len=1,table=0136,display=Needs Human Review"`
RequestedGivePerTimeUnit ST `hl7:"17,conditional,len=20,display=Requested Give Per (time Unit)"`
}
Pharmacy Prescription Order
This is the "master" pharmacy order segment. It contains order data not specific to components or additives. Unlike the OBR, it does not contain status fields or other data that are results-only.
It can be used for any type of pharmacy order, including inpatient (unit dose and compound unit dose), outpatient, IVs, and hyperalimentation IVs (nutritional IVs).
In addition to the pharmaceutical information, this segment contains additional data such as provider and text comments.
type RXR ¶
type RXR struct {
HL7 HL7Name `hl7:",name=RXR,type=s"`
Route CE `hl7:"1,required,len=60,table=0162,display=Route"`
Site *CE `hl7:"2,len=60,table=0163,display=Site"`
AdministrationDevice *CE `hl7:"3,len=60,table=0164,display=Administration Device"`
AdministrationMethod *CE `hl7:"4,len=60,table=0165,display=Administration Method"`
}
Pharmacy Route
The Pharmacy Route segment contains the alternative combination of route, site, administration device, and administration method that are prescribed. The pharmacy and/or nursing staff has a choice between the routes based on either their professional judgment or administration instructions provided by the physician
type SI ¶
type SI = string
Sequence Id
A positive integer in the form of an NM field. The uses of this field are defined in the chapters defining the segments and messages in which it appears.
type ST ¶
type ST = string
String Data
String data is left justified with trailing blanks optional. Any displayable (printable) ACSII characters (hexadecimal values between 20 and 7E, inclusive).
Example: |almost any data at all|
type TN ¶
type TN = string
Telephone Number
For use in the United States and conforming countries, the telephone number is always in the form: [NN] [(999)]999-9999[X99999][B99999][C any text]
Examples: |(415)925-0121X305| |234-4532CWEEKENDS|
type TQ ¶
type TQ struct {
HL7 HL7Name `hl7:",name=TQ,len=0,type=d"`
Quantity *CQ `` /* 365-byte string literal not displayed */
Interval *CM_RI `hl7:"2,display=determines the interval between repeated services."`
Duration ST `hl7:"3,display=Indicates how long the service should continue after it is started. The default is INDEF (do indefinitely)."`
StartDateTime TS `` /* 335-byte string literal not displayed */
EndDateTime TS `` /* 405-byte string literal not displayed */
Priority ID `hl7:"6,display=describes the urgency of the request. The following values are suggested (the default for Priority is R)"`
Condition ST `` /* 316-byte string literal not displayed */
Text TX `hl7:"8,display=full text version of the instruction (optional)."`
Conjunction ID `` /* 227-byte string literal not displayed */
OrderSequencing *CM_OSD `` /* 654-byte string literal not displayed */
}
Timing Quantity
Quantity/timing (ORC-7, OBR-27) provides a means of specifying when the service described by the order segment is to be performed and how frequently. It is a complex multicomponent field that can have repeats; i.e., more than one quantity/timing specification, separated by repeat delimiters, may appear. It is a distinct data type (see section 2.4.5.20).
type TS ¶
Time Stamp
Contains the exact time of an event, including the date and time. Time stamp fields are always in the format:
YYYYMMDD[HHMM[SS[.SSSS]]][+/-ZZZZ]^<degree of precision>
The date portion of a time stamp follows the rules of a date field and the time portion follows the rules of a time field. When used as a birthdate, the HHMM portion is optional. If not present the HHMM portion will default to 0000, i.e., midnight of the day just beginning. The specific data representations used in the HL7 encoding rules are compatible with ISO 8824-1987(E). An optional second component indicates the degree of precision of the date (Y = year, L = month, D = day, H = hour, M = minute, S = second). (Maximum length of field is 26).
Examples:
|17760704010159-0600|1:01:59 on July 4, 1776 in the Eastern Standard Time zone.
|17760704010159-0500|1:01:59 on July 4, 1776 in the Eastern Daylight Saving Time zone.
|198807050000| Midnight of the night extending from July 4 to July 5, 1988 in the local time zone of the sender.
|198807050000^D| Same as prior example, but precision extends only to the day. Could be used for a birthdate.
type TX ¶
type TX = string
Text Data
String data meant for user display (on a terminal or printer). Such data would not necessarily be left justified since leading spaces may contribute greatly to the clarity of the presentation to the user. Because this type of data is intended for display, it may contain certain escape character sequences designed to control the display. Escape sequence formatting is defined later in this chapter in Section 2.4.6. Leading spaces should be included. Trailing spaces should be removed.
Example: | leading spaces are allowed.|
type UB1 ¶
type UB1 struct {
HL7 HL7Name `hl7:",name=UB1,type=s"`
SetIDUb82 SI `hl7:"1,len=4,display=Set Id - Ub82"`
BloodDeductible43 NM `hl7:"2,len=1,display=Blood Deductible (43)"`
BloodFurnishedPintsOf40 NM `hl7:"3,len=2,display=Blood Furnished Pints Of (40)"`
BloodReplacedPints41 NM `hl7:"4,len=2,display=Blood Replaced Pints (41)"`
BloodNotReplacedPints42 NM `hl7:"5,len=2,display=Blood Not Replaced Pints (42)"`
CoInsuranceDays25 NM `hl7:"6,len=2,display=Co-insurance Days (25)"`
ConditionCode3539 []ID `hl7:"7,max=5,len=2,table=0043,display=Condition Code (35-39)"`
CoveredDays23 NM `hl7:"8,len=3,display=Covered Days (23)"`
NonCoveredDays24 NM `hl7:"9,len=3,display=Non-covered Days (24)"`
ValueAmountAndCode4649 []CM_UVC `hl7:"10,max=8,len=12,display=Value Amount And Code (46-49)"`
NumberOfGraceDays90 NM `hl7:"11,len=2,display=Number Of Grace Days (90)"`
SpecialProgramIndicator44 ID `hl7:"12,len=2,display=Special Program Indicator (44)"`
PsroUrApprovalIndicator87 ID `hl7:"13,len=1,display=Psro / Ur Approval Indicator (87)"`
PsroUrApprovedStayFrom88 DT `hl7:"14,len=8,format=YMD,display=Psro / Ur Approved Stay - From (88)"`
PsroUrApprovedStayTo89 DT `hl7:"15,len=8,format=YMD,display=Psro / Ur Approved Stay - To (89)"`
Occurrence2832 []CM_OCD `hl7:"16,max=5,len=20,display=Occurrence (28-32)"`
OccurrenceSpan33 ID `hl7:"17,len=2,display=Occurrence Span (33)"`
OccurrenceSpanStartDate33 DT `hl7:"18,len=8,format=YMD,display=Occurrence Span Start Date (33)"`
OccurrenceSpanEndDate33 DT `hl7:"19,len=8,format=YMD,display=Occurrence Span End Date (33)"`
Ub82Locator2 ST `hl7:"20,len=30,display=Ub-82 Locator 2"`
Ub82Locator9 ST `hl7:"21,len=7,display=Ub-82 Locator 9"`
Ub82Locator27 ST `hl7:"22,len=8,display=Ub-82 Locator 27"`
Ub82Locator45 ST `hl7:"23,len=17,display=Ub-82 Locator 45"`
}
Ub82 Data
The UB1 segment contains data necessary to complete UB82 bills. Only UB82 data elements that do not exist in other HL7 defined segments will appear in this segment. Patient name and Date of Birth are required for UB82 billing, however, they are included in the PID segment and therefore do not appear here
type UB2 ¶
type UB2 struct {
HL7 HL7Name `hl7:",name=UB2,type=s"`
SetIDUb92 SI `hl7:"1,len=4,display=Set Id - Ub92"`
CoInsuranceDays9 ST `hl7:"2,len=3,display=Co-insurance Days (9)"`
ConditionCode2430 []ID `hl7:"3,max=7,len=2,table=0043,display=Condition Code (24-30)"`
CoveredDays7 ST `hl7:"4,len=3,display=Covered Days (7)"`
NonCoveredDays8 ST `hl7:"5,len=4,display=Non-covered Days (8)"`
ValueAmountAndCode3941 []CM_UVC `hl7:"6,max=12,len=11,display=Value Amount And Code (39-41)"`
OccurrenceCodeAndDate3235 []CM_OCD `hl7:"7,max=8,len=11,display=Occurrence Code And Date (32-35)"`
OccurrenceSpanCodeDates36 []CM_OSP `hl7:"8,max=2,len=28,display=Occurrence Span Code / Dates (36)"`
Ub92Locator2State []ST `hl7:"9,max=2,len=29,display=Ub92 Locator 2 (state)"`
Ub92Locator11State []ST `hl7:"10,max=2,len=12,display=Ub92 Locator 11 (state)"`
Ub92Locator31National ST `hl7:"11,len=5,display=Ub92 Locator 31 (national)"`
DocumentControlNumber37 []ST `hl7:"12,max=3,len=23,display=Document Control Number (37)"`
Ub92Locator49National []ST `hl7:"13,max=23,len=4,display=Ub92 Locator 49 (national)"`
Ub92Locator56State []ST `hl7:"14,max=5,len=14,display=Ub92 Locator 56 (state)"`
Ub92Locator57National ST `hl7:"15,len=27,display=Ub92 Locator 57 (national)"`
Ub92Locator78State []ST `hl7:"16,max=2,len=2,display=Ub92 Locator 78 (state)"`
}
Ub92 Data
The UB2 segment contains data necessary to complete UB92 bills. Only UB92 data elements that do not exist in other HL7 defined segments will appear in this segment. Just as with the UB82 billing, Patient Name and Date of Birth are required, they are included in the PID segment and therefore do not appear here. Where the field locators are different on the UB92, when compared to the UB82, the element is listed with its new location in parentheses ().
type UDM_Q05 ¶
type UDM_Q05 struct {
HL7 HL7Name `hl7:",name=UDM_Q05,type=t"`
MSH *MSH `hl7:"1,required,display=Message Header"`
URD *URD `hl7:"2,required,display=Results/update Definition"`
URS *URS `hl7:"3,display=Unsolicited Selection"`
DSP []DSP `hl7:"4,required,display=Display Data"`
DSC *DSC `hl7:"5,required,display=Continuation Pointer"`
}
Unsolicited Display Update Message
There is a simple HL7 message that allows for unsolicited display update messages to be sent in HL7 format from one system to another.
Trigger events for the unsolicited update are generally the completion of a particular action (concerning a given patient).
type URD ¶
type URD struct {
HL7 HL7Name `hl7:",name=URD,type=s"`
RUDateTime TS `hl7:"1,len=26,format=YMDHMS,display=R/U Date / Time"`
ReportPriority ID `hl7:"2,len=1,table=0109,display=Report Priority"`
RUWhoSubjectDefinition []ST `hl7:"3,required,len=20,display=R/U Who Subject Definition"`
RUWhatSubjectDefinition []ID `hl7:"4,len=3,table=0048,display=R/U What Subject Definition"`
RUWhatDepartmentCode []ST `hl7:"5,len=20,display=R/U What Department Code"`
RUDisplayPrintLocations []ST `hl7:"6,len=20,display=R/U Display / Print Locations"`
RUResultsLevel ID `hl7:"7,len=1,table=0108,display=R/U Results Level"`
}
Results/update Definition
The URD segment is used in sending unsolicited updates about orders and results. It's purpose is similar to that of the QRD segment, but from the results/unsolicited update point of view. Some of the fields have parallels in the QRD segment
type URS ¶
type URS struct {
HL7 HL7Name `hl7:",name=URS,type=s"`
RUWhereSubjectDefinition []ST `hl7:"1,required,len=20,display=R/U Where Subject Definition"`
RUWhenDataStartDateTime TS `hl7:"2,len=26,format=YMDHMS,display=R/U When Data Start Date / Time"`
RUWhenDataEndDateTime TS `hl7:"3,len=26,format=YMDHMS,display=R/U When Data End Date / Time"`
RUWhatUserQualifier []ST `hl7:"4,len=20,display=R/U What User Qualifier"`
RUOtherResultsSubjectDefinition []ST `hl7:"5,len=20,display=R/U Other Results Subject Definition"`
RUWhichDateTimeQualifier []ID `hl7:"6,len=12,table=0156,display=R/U Which Date / Time Qualifier"`
RUWhichDateTimeStatusQualifier []ID `hl7:"7,len=12,table=0157,display=R/U Which Date / Time Status Qualifier"`
RUDateTimeSelectionQualifier []ID `hl7:"8,len=12,table=0158,display=R/U Date / Time Selection Qualifier"`
}
Unsolicited Selection
The URS segment is identical with the QRF segment, except that, if the name of any field contains Query (of QRY), this word has been changed to Results (See URS-5-R/U other results subject definition).