h220

package
v1.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 21, 2025 License: BSD-3-Clause Imports: 3 Imported by: 0

Documentation

Overview

Package h220 contains the data structures for HL7 v2.2.

Index

Constants

This section is empty.

Variables

View Source
var ControlSegmentRegistry = map[string]any{
	"BHS": BHS{},
	"BTS": BTS{},
	"FHS": FHS{},
	"FTS": FTS{},
	"DSC": DSC{},
	"ADD": ADD{},
}

Segments specific to file and batch control.

View Source
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.

View Source
var Registry = registry{}

Registry implements the required interface for unmarshalling data.

View Source
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.

View Source
var TableLookup = map[string]Table{}/* 141 elements not displayed */

TableLookup provides valid values for field types.

View Source
var TableValueLookup = map[string]map[string]bool{}/* 141 elements not displayed */

TableValueLookup may be used to validate a specific value.

View Source
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.

View Source
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 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

func (d CM_MSG) MessageStructureID() []string

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 COMP_ID_DIGIT

type COMP_ID_DIGIT = string

Composite Id W/chk Digit

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 DT

type DT = time.Time

Date

Always in the format YYYYMMDD.

Example: |19880704|

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 HL7Name

type HL7Name struct{}

type ID

type ID = string

Coded Value

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

func (s MSH) MessageStructureID() []string

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

func (OBX) ChildVaries

func (v OBX) ChildVaries(reg func(string) (any, bool)) (reflect.Value, error)

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 Row

type Row struct {
	ID          string
	Description string
	Comment     string
}

Row of data table.

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

type TS = time.Time

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 Table

type Table struct {
	ID   string
	Name string
	Row  []Row
}

Table of data.

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).

type VARIES

type VARIES any

Variable Datatype

type Zxx

type Zxx struct {
	HL7   HL7Name `hl7:",name=Zxx,type=s"`
	Value ST      `hl7:"1,display=Zxx.1"`
}

Any Z Segment

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL