Misoso Assure

©2000-2004 Misoso, Inc.

Overview

Program Views

Program Views: Activity

Play

Capture

Generate

Simulate

Events

Traffic

Program Views: Information

System

Application

Address Book

What is the Capture Port?

What is the Simulator Port?

HL7 Properties

Outbound

Encoding

Protocol

File Manager

Duplicate a File

Rename a File

Creating a Simulator File

Sections

Steps

Layman Terms

ACK

HL7

IP Address

MLLP

NAK

Port Number

Protocol

TCP/IP

Sample Files

SokEvent.Log

SokScope.Log

Capture.Cap

Report.Txt

HL7v23Template.Sim

 

Overview

WARNING: Use of this tool can drastically reduce the amount of time required to develop and test your Health Level Seven (HL7) interfaces.

 

Assure is a tool designed to aid in the testing, development and analysis of HL7 interfaces.  This goal is achieved with the implementation of four primary functions:

 

 

The Play function allows you to automatically send an ASCII text file of captured messages to another system.  The file can be created with the Capture function or any text editor.

 

The Capture function allows you to record (much like a tape recorder) messages transmitted by a remote system.  These messages are stored in an ASCII text file and may be played-back to another system using the Play function.

 

The Generate function allows you to automatically generate any number of unique messages from a single source message.  Would you like to see how your database handles 10,000 new patients?

 

The Simulate function allows you to configure Assure to “act-like” another HL7 system.  This is accomplished with a simulator text file that defines the specific HL7 requirements of the system you want to simulate.  As messages are received, they are analyzed with the simulator file and a very detailed report is generated.

 

For detailed descriptions of these functions, please keep reading.

 

Program Views

Icons on the left side of the main window represent program views.  To select a different view, simply use the mouse and click the desired icon.  You can also cycle through views by pressing CTRL + UP ARROW or CTRL + DOWN ARROW.  To change the icon size, right-click within the icon panel and select either large or small.

 

Each view supports a primary function that provides immediate event notification.  To clear the current notifications, click the “Refresh” button located in the top right corner of the main window.

 

Program Views: Activity

The Activity collection includes views specific to HL7 operations.

 

Play

The Play view allows you to play messages (much like a tape recorder) from a file to a remote system.  The play file may be created by the Capture feature or simply created with any text editor. 

 

All messages in the file are sent to the remote system; however, each message must be acknowledged before the next message is sent.  If no acknowledgement is received in the time-out period (see HL7 Properties: Protocol), the message is resent.  If the connection to the remote system is dropped, Assure dynamically reconnects and continues sending.

 

In order to play a file, you simply identify the source filename and select a destination from the Address Book.  You can select a remote system or direct the messages to your own Capture Port or Simulator Port.  In the latter case, Assure automatically activates the receive function when play begins.

 

 The MSH segment of messages you play can be modified from the HL7 Properties: Outbound window.  In addition, you can repeat sending the play file forever.

 

Capture

The Capture view allows you to capture messages from any sending system and store those messages in an ASCII text file.  You can specify the name and location of the capture file so the filename reflects the type of messages captured.  Captured messages can be later sent to a remote system with the Play feature.

 

Assure provides a user-defined Capture Port for capturing inbound messages.  The remote system simply sends messages to the Assure IP address and Capture Port.  Capture files are denoted with the file extension CAP.

 

The capture file can be disabled if you do not want to store the inbound messages.  In addition, Capture can be configured to automatically ACK inbound messages or manually respond to each message.  If you select to manually respond to captured messages, ACK and NAK response buttons are enabled when a message is received.

 

When using manual response, you also have the option of not responding to the message.  This allows you to test the sending system’s resend logic.

 

The default capture file is Capture.Cap.

 

Generate

The Generate view allows you to generate a large number of unique messages from a single source message.  To configure Generate, you must first select a source file that contains the seed HL7 message.  If the selected file contains more than one HL7 message, the first message in the file is used.

 

The options window displays the seed message along with HL7 details taken from the current simulator file.  The simulator file is defined in the Simulate view.  To identify fields that must be unique for each message, simply select the desired field and check the ‘This field must be unique’ box.

 

Generate uses the data field from the file as a mask to create subsequent unique fields.  Letters in the source field are modified with new letters and numerals in the source field are modified with new numerals for each generated message.  In addition, you specify the number of unique messages you wish to generate.  Once configured, this feature is very similar to the Play function.

 

In addition to generating unique fields, you may need to overlay each generated message with valid data of your own.  This is accomplished with the Import feature.  This feature allows you to import data fields from a standard, comma-delimited file (CSV) and map those fields to specific locations in the generated HL7 message.

 

The message count field is disabled as a message is generated for each record stored in the Import file.  For example, you may want to send valid Medical Record Numbers to an HIS.  It is advisable to limit import file fields only to those fields you wish to overlay.

 

Simulate

The Simulate view allows you to configure Assure to “act-like” another system.  This is accomplished with the use of a simulator file that details the specific HL7 requirements of the system you are simulating.  A simulator template file is included with Assure so you can quickly create your own simulator file. 

 

See Creating a Simulator File for more information or HL7v23Template.Sim to view the template file.

 

Assure provides a user-defined Simulator Port for receiving inbound messages.  The remote system simply sends messages to the Assure IP address and Simulator Port.  Simulator files are denoted with the file extension SIM.

 

As messages are received on the simulator port, they are analyzed with the simulator file and a detailed report is generated if any errors are uncovered.  You can specify the name and location of the report file so the filename reflects the source of messages analyzed.

 

The report file can be disabled if you do not want to store the inbound messages.  The analysis is very detailed and verifies:

 

  • All required segments
  • Optional segments (if present)
  • Maximum field size and repetitions
  • Table values
  • Data types and format
  • Repeating segments
  • Repeating fields

 

If any errors are uncovered, the report file includes the exact position of the error and a description of the fault.  See the sample report file Report.Txt.

 

If Play is configured to send messages to Simulate, a check box appears on the simulator screen that allows you to automatically start Play when the simulator Start button is selected.  This allows you to analyze message from Play without switching between the two views.

 

Events

The Events view displays HL7 network event information for all views.  The event information includes:

 

  • Date and time the event occurred
  • View that caused the event
  • Event description
  • IP address and port number associated with the event

 

This view provides an application-wide snapshot of all network events.  The events are recorded in the order in which they occur and may be optionally stored in a self-maintained log file named SokEvent.Log.

 

When the log file reaches a maximum size (about 1 MB), it is renamed to *.BAK and a new log file is created.  This insures you have access to at least the last megabyte of activity at any time.

 

Traffic

The Traffic view displays HL7 network traffic for all views.  The traffic information includes:

 

  • Date and time the traffic occurred
  • Traffic description
  • IP address and port number associated with the traffic
  • Traffic data

 

The traffic data includes all framing characters that wrap the HL7 message.  All non-ASCII traffic data is displayed in the form ‘<##h>’, where ## is the hexadecimal value of the character.  This allows you to analyze and detect framing problems and verify HL7 message structure.

 

The scope may be enabled or disabled.  If enabled, the events may be optionally stored in a self-maintained log file named SokScope.Log.

 

When the log file reaches a maximum size (about 1 MB), it is renamed to *.BAK and a new log file is created.  This insures you have access to at least the last megabyte of activity at any time.

 

Program Views: Information

The Information collection includes views that display information related to your system or applications.

 

System

The System view provides basic information about your system including the operating system version, network settings, processor type and memory allocation.

 

Application

The Application view provides basic information about applications currently running on your PC.

 

Address Book

The Address Book contains destination locations for messages outbound from Assure and supports the Play and Generate functions.  In order to identify a remote system, you must supply its IP address and port number.  The IP address identifies the machine and the port number identifies a connection point on that machine.

 

Remote systems are denoted by a description that you associate with a specific IP address and port number.  This allows you to easily identify the remote system without memorizing network numbers.

 

You can add, delete and edit entries in your address book.

 

The Address Book automatically detects your local IP address each time the program is started.  It also contains a local Capture Port and Simulator Port.

 

What is the Capture Port?

The Capture Port is a user-defined port number associated with the Capture function.  When you want to capture messages from a remote system, they must send the messages to the Assure IP address and Capture Port. 

 

In addition, you can send messages directly to the Capture Port from within Assure.

For example, playing messages directly to the Capture Port automatically activates the Capture function.  This is a nice way of getting acquainted with Assure features.

 

What is the Simulator Port?

The Simulator Port is a user-defined port number associated with the Simulate function.  When you want to analyze messages with the simulator, the remote system must send the messages to the Assure IP address and Simulator Port. 

 

In addition, you can send messages directly to the Simulator Port from within Assure.  For example, once you have captured a file of messages you can play those messages directly to the Assure Simulator Port.  The messages received on the Simulator Port are analyzed with the current simulator file.

 

HL7 Properties

HL7 Properties contains information describing the operation of HL7 within Assure. 

 

Outbound

The Outbound tab allows you to modify the MSH segment for all outbound messages.  When sending a message, other than a response message, you may need to modify the existing MSH segment to meet the specific requirements of the remote system.

 

The MSH can be modified as follows:

 

  • Replace the sending application and facility names
  • Replace the receiving application and facility names
  • Replace the date and time field with the current date and time
  • Replace encoding characters with those defined in the Encoding tab
  • Activate and support unique message control IDs
  • Activate and support protocol sequence numbers

 

Encoding

The Encoding tab allows you to define HL7 message delimiters that can be used in place of the encoding characters already present in an outbound message.  This feature allows you to test your application with different sets of encoding characters.  See the Outbound tab for details.

 

Protocol

The Protocol tab allows you to specify the framing for HL7 messages.  In addition, you can specify the response timeout value.  If a response to an outbound message is not received in the allotted time, the message is automatically resent.

 

File Manager

File Manager provides the tools necessary to manage your Assure files.  These include:

 

  • Simulator Files
  • Capture Files
  • Report Files
  • Log Files
  • Backup Files

 

In order to add or remove a set of files from the list, simply check the box next to that file type.  File Manager can be used to create a copy of an existing file or rename a current file.  It also allows you to view/edit files and launch Windows Explorer. 

 

Duplicate a File

The Duplicate button allows you to duplicate an existing Assure file with a new name.  Simply select a file from the list, click the Duplicate button, type in the new file name and press enter.

 

This function does not move the file to a new location.  It creates a copy of the original file with a new name.  The new file is located in the same folder as the original file.  This feature is useful when creating a new simulator file from an exiting template.

 

Rename a File

The Rename button allows you to rename an existing Assure file.  Simply select the file from the list, click the Rename button, type in the new file name and press enter. 

 

Creating a Simulator File

In order to simulate another system with Assure, you must create a new simulator file that describes the HL7 requirements of that system.  The new simulator file is created using a template file, such as HL7v23Template.Sim.  This template file contains default definitions for HL7 version 2.3.  Any existing simulator file can be used as a template to create another simulator.

 

Use File Manager to create a new simulator file.

 

The template file looks like a standard INI file and is documented to assist you in creating your own simulator file.  Lines starting with a semi-colon are comments and are not processed.

 

Sections

The sections defined in the simulator file include:

 

 [MESSAGE TYPES]

This section defines the required and optional segments for each message type.

 

 [REQUIRED CONDITIONAL FIELDS]

This section allows you to conditionally require a field based upon the message type.

 

 [MSH]  (and all other segments)

This section allows you to define the field requirements for each HL7 segment.  I simply use MSH here for brevity. 

 

[DATA TYPES]

This section defines the acceptable data types for all fields.

 

[DATA TYPE COMPONENTS]

This section defines complex data types that are comprised of multiple base data types.

 

[TABLES]

This section defines valid elements for HL7 tables.

 

By using a simple text file to configure the simulator, Assure can simulate any HL7 system.  You can add your own message requirements, conditionally required fields, segments, Z segments, tables and segment field requirements down to the sub-component level.

 

Steps

Follow these steps to create a new simulator file named Sample.Sim:

 

  1. Use File Manager to duplicate the HL7v23Template.Sim with the new name Sample.Sim
  2. Edit Sample.Sim and update the [MESSAGE TYPES] section

 

That seems easy enough.  For more details on defining the contents of a new simulator file, please review HL7v23Template.Sim.

 

Layman Terms

ACK

ACK is short for acknowledgement.  It represents a positive response.

HL7

HL7 is an acronym for Health Level Seven.  It is a standard for electronic data exchange in all health-care environments with an emphasis on hospitals.

IP Address

An IP Address is a number that uniquely identifies a machine on a particular network. 

MLLP

MLLP is an acronym for Minimal Lower-Layer Protocol.  It defines a set of special characters that surround an HL7 message.  There is a single header byte (0Bh) and two footer bytes (1Ch) (0Dh).

NAK

NAK is short for negative-acknowledgement.  It represents a negative response.

Port Number

A port number identifies a connection point within an IP address.

Protocol

Protocol is a definition of how to do something.

TCP/IP

TCP/IP is an acronym for Transmission Control Protocol / Internet Protocol.  It is a software protocol used for connecting computers on a network.

 

Sample Files

SokEvent.Log

04/11/00 12:35:06  Capture  Received data           192.1.1.103    3701

04/11/00 12:35:06  Capture  Received HL7 message    192.1.1.103    3701

04/11/00 12:35:06  Capture  Sending HL7 message     192.1.1.103    3701

04/11/00 12:35:06  Play     Received data           192.1.1.103    2526

04/11/00 12:35:06  Play     Received HL7 message    192.1.1.103    2526

04/11/00 12:35:06  Play     Connection closed       192.1.1.103    2526

04/11/00 12:35:06  Capture  Connection closed       192.1.1.103    3701

 

SokScope.Log

04/11/00 12:35:06  Sending HL7 message              192.1.1.103    2526

<0Bh>

MSH|^~\&|EPIC|CLINIC|ASSURE|LAB|200001121722||MFN^M02|1|T|2.3<0Dh>

MFI|PRA||UPD|||NE<0Dh>

MFE|MUP|||00001<0Dh>

STF||||StaffType|||A|||7704932153|865 Rocky Rd.^^Atlanta^GA^30092<0Dh>

PRA|00001||||Speciality|UPIN<0Dh>

<1Ch><0Dh>

 

Capture.Cap

MSH|^~\&|EPIC|CLINIC|ASSURE|LAB|200001121721||MFN^M02|1|T|2.3

MFI|PRA||UPD|||NE

MFE|MAD|||00001

STF||||StaffType|||A|||7704932153|865 Rocky Rd.^^Atlanta^GA^30092

PRA|00001||||Speciality|UPIN

 

MSH|^~\&|EPIC|CLINIC|ASSURE|LAB|200001121722||MFN^M02|1|T|2.3

MFI|PRA||UPD|||NE

MFE|MUP|||00001

STF||||StaffType|||A|||7704932153|865 Rocky Rd.^^Atlanta^GA^30092

PRA|00001||||Speciality|UPIN

 

MSH|^~\&|EPIC|CLINIC|ASSURE|LAB|200001121723||MFN^M02|1|T|2.3

MFI|PRA||UPD|||NE

MFE|MDC|||00001

STF||||StaffType|||A|||7704932153|865 Rocky Rd.^^Atlanta^GA^30092

PRA|00001||||Speciality|UPIN

 

Report.Txt

Message analyzed 01/22/00 15:45:54 with 'tester.sim'

MSH|^~\&||A|PPM|A|200001221545||DFT^P01|5138|D|2.2|5138|

EVN|ABC^123^DEF^ABC|1^2^001^4&AL    AN&5|19991230012332

PID||1234

PV1|||DENT^403^A^U

FT1||||199701121720

 

DFTP01 MSH 003.00.00 Required field not present

      Segment Name......... MSH - Message Header

      Sequence Number...... 003 - Sending Application

      Segment Occurrence... 1

      Field Occurrence..... 1

      Component............ 0

      Subcomponent......... 0

      Max Length........... 180

      Data Type............ HD

      Optionality.......... R

      Max Repetition....... 1

      Table Number.........

      Item Number.......... 00003

      Field Data...........

 

DFTP01 EVN 001.00.00 Component 4 NM data type contains non-numeric data

      Segment Name......... EVN - Event Type

      Sequence Number...... 001 - Event Type Code

      Segment Occurrence... 1

      Field Occurrence..... 1

      Component............ 0

      Subcomponent......... 0

      Max Length........... 20

      Data Type............ SN

      Optionality.......... R

      Max Repetition....... 1

      Table Number.........

      Item Number.......... 00099

      Field Data........... ABC

 

DFTP01 EVN 002.00.00 Component 4 HD, subcomponent 2 ST data type contains non-printable data

      Segment Name......... EVN - Event Type

      Sequence Number...... 002 - Recorded Date/Time

      Segment Occurrence... 1

      Field Occurrence..... 1

      Component............ 0

      Subcomponent......... 0

      Max Length........... 26

      Data Type............ CK

      Optionality.......... R

      Max Repetition....... 1

      Table Number.........

      Item Number.......... 00100

      Field Data........... 4&AL    AN&5

 

DFTP01 ACC 000.00.00 Required segment not present

 

HL7v23Template.Sim

The following file is a subset of the actual template file.  This file should not be changed.  It is used as a template to create a new simulator file.  Any existing simulator file can be used as a template to create another simulator.

 

;--------------------------------------------------------------------------

; Assure Definition File (TEMPLATE 1.0)

; HL7 Version: 2.3

;

; This file is a template for creating a simulator file for Assure.

; It includes the default configuration for the HL7 version listed above.

;

; Create a copy of this file and give it a meaningful name with a

; filename extension of SIM.  Then modify the file to meet the specific

; requirements of the system you wish to simulate.

;

; Basic File Rules:

;   All entries must be left justified.

;   Lines beginning with a semi-colon are comments.

;   Turn off word wrap to edit the file.

;

; The only section you are required to update is [MESSAGE TYPES]. The

; information that follows is provided incase you need to modify the

; standard segment definitions or create your own.

;

; Segment Section:

;   [nnn]

;       nnn - segment name (e.g. [MSH])

;

;    Segment Name Entry:

;       SEGnnn

;           nnn - segment name

;

;    Field Entry:

;       nnnaaa.bb.cc

;           nnn - segment name

;           aaa - field sequence number ('###' matches any field number)

;           bb  - field component number

;           cc  - component sub-subcomponent number

;

;    Field Value:

;       Comma delimited string consisting of the following:

;           1. Max Length     - maximum field length ('K' = 1024 bytes)

;           2. Data Type      - HL7 data type

;           3. Optionality    - R)equired O)ptional C)onditional field

;           4. Max Repetition - maximum field repetition Y)es N)o /#

;           5. Table Number   - HL7 data set for this field

;           6. Item Number    - HL7 unique field identifier

;           7. Name           - field description

;

; For Example:

;

;    [ACC]

;    SEGACC=Accident

;    ACC001.00.00=26,TS,O,,,00527,Accident Date/Time

;    ACC002.00.00=60,CE,O,,0050,00528,Accident Code

;    ACC003.00.00=25,ST,O,,,00529,Accident Location

;    ACC004.00.00=60,CE,O,,,00812,Auto Accident State

;    ACC005.00.00=2,ID,O,,0136,00813,Accident Job Related Indicator

;    ACC006.00.00=2,ID,O,,0136,00814,Accident Death Indicator

;

;    The ACC segment has the name 'Accident'.

;

;    It contains 6 fields.

;

;    The field component number for all fields is 0.

;        If the component field number is 0, the entry describes

;        the entire field. 

;

;        If the component field number is not zero, the entry

;        describes that particular component of the field.

;

;    The field sub-component number for all fields is 0.

;        If the sub-component field number is 0, the entry

;        describes the entire component.

;

;        If the sub-component field number is not zero, the entry

;        describes that particular sub-component of the field.

;

;    The field definition for field 1 (ACC001.00.00) is:

;         Max Length     = 26

;         Data Type      = TS

;         Optionality    = O

;         Max Repetition = not defined

;         Table Number   = not defined

;         Item Number    = 00527

;         Name           = 'Accident Date/Time'

;--------------------------------------------------------------------------

 

[MESSAGE TYPES]

; This section allows you to define the required and optional segments for

; inbound messages you want the simulator to process.

;

; Optional segments must be enclosed in bracket characters [ ] and are

; only analyzed if present in the inbound message.

;

; Example:

;       DFTP03=MSH,EVN,PID,PV1,[FT1]

;

; Means:

;       The DFTP03 message type has required segments:

;           MSH, EVN, PID and PV1

;       and optional segment:

;           FT1

;

;       DFT is the message name

;       P03 is the trigger event

;

; Each segment has a separate section to define its field requirements.

; Any or all segments can be required.

; Any or all segments can be optional.

; Inbound messages not defined here are not analyzed.

;

 

[REQUIRED CONDITIONAL FIELDS]

; This section allows you to require certain fields based on the message

; type.  In other words, they are conditionally required.

;

; Example:

;       REQEVN003=DFTP03,ADTA04,ADTA08

;

; Means:

;       Field sequence number 3 in segment EVN (EVN003) is required

;       in message types:

;                 DFTP03, ADTA04 and ADTA08

;

; Please note that EVN003 is preceded with 'REQ' to identify it as

; required conditionally.

;

 

[ACC]

SEGACC=Accident

ACC001.00.00=26,TS,O,,,00527,Accident Date/Time

ACC002.00.00=60,CE,O,,0050,00528,Accident Code

ACC003.00.00=25,ST,O,,,00529,Accident Location

ACC004.00.00=60,CE,O,,,00812,Auto Accident State

ACC005.00.00=2,ID,O,,0136,00813,Accident Job Related Indicator

ACC006.00.00=2,ID,O,,0136,00814,Accident Death Indicator

 

[ADD]

SEGADD=Addendum

ADD###.00.00=64K,ST,O,,,00066,Addendum Continuation Pointer

 

[EVN]

SEGEVN=Event Type

EVN001.00.00=3,ID,B,,0003,00099,Event Type Code

EVN002.00.00=26,TS,R,,,00100,Recorded Date/Time

EVN003.00.00=26,TS,O,,,00101,Date/Time Planned Event

EVN004.00.00=3,IS,O,,0062,00102,Event Reason Code

EVN005.00.00=60,XCN,O,,0188,00103,Operator ID

EVN006.00.00=26,TS,O,,,01278,Event Occurred

 

[FT1]

SEGFT1=Financial Transaction

FT1001.00.00=4,SI,O,,,00355,Set ID - FT1

FT1002.00.00=12,ST,O,,,00356,Transaction ID

FT1003.00.00=10,ST,O,,,00357,Transaction Batch ID

FT1004.00.00=26,TS,R,,,00358,Transaction Date

FT1005.00.00=26,TS,O,,,00359,Transaction Posting Date

FT1006.00.00=8,IS,R,,0017,00360,Transaction Type

FT1007.00.00=80,CE,R,,0132,00361,Transaction Code

FT1008.00.00=40,ST,B,,,00362,Transaction Description

FT1009.00.00=40,ST,B,,,00363,Transaction Description - Alt

FT1010.00.00=6,NM,O,,,00364,Transaction Quantity

FT1011.00.00=12,CP,O,,,00365,Transaction Amount - Extended

FT1012.00.00=12,CP,O,,,00366,Transaction Amount - Unit

FT1013.00.00=60,CE,O,,0049,00367,Department Code

FT1014.00.00=60,CE,O,,0072,00368,Insurance Plan ID

FT1015.00.00=12,CP,O,,,00369,Insurance Amount

FT1016.00.00=80,PL,O,,,00133,Assigned Patient Location

FT1017.00.00=1,IS,O,,0024,00370,Fee Schedule

FT1018.00.00=2,IS,O,,0018,00148,Patient Type

FT1019.00.00=60,CE,O,Y,0051,00371,Diagnosis Code

FT1020.00.00=120,XCN,O,,0084,00372,Performed By Code

FT1021.00.00=120,XCN,O,,,00373,Ordered By Code

FT1022.00.00=12,CP,O,,,00374,Unit Cost

FT1023.00.00=22,EI,O,,,00217,Filler Order Number

FT1024.00.00=120,XCN,O,,,00765,Entered By Code

FT1025.00.00=80,CE,O,,0088,00393,Procedure Code

 

[MSA]

SEGMSA=Message Acknowledgment

MSA001.00.00=2,ID,R,,0008,00018,Acknowledgment Code

MSA002.00.00=20,ST,R,,,00010,Message Control ID

MSA003.00.00=80,ST,O,,,00020,Text Message

MSA004.00.00=15,NM,O,,,00021,Expected Sequence Number

MSA005.00.00=1,ID,B,,0102,00022,Delayed Acknowledgment Type

MSA006.00.00=100,CE,O,,,00023,Error Condition

 

[MSH]

SEGMSH=Message Header

MSH001.00.00=1,ST,R,,,00001,Field Separator

MSH002.00.00=4,ST,R,,,00002,Encoding Characters

MSH003.00.00=180,HD,O,,,00003,Sending Application

MSH004.00.00=180,HD,O,,,00004,Sending Facility

MSH005.00.00=180,HD,O,,,00005,Receiving Application

MSH006.00.00=180,HD,O,,,00006,Receiving Facility

MSH007.00.00=26,TS,O,,,00007,Date/Time of Message

MSH008.00.00=40,ST,O,,,00008,Security

MSH009.00.00=7,CM,R,,,00009,Message Type

MSH010.00.00=20,ST,R,,,00010,Message Control ID

MSH011.00.00=3,PT,R,,,00011,Processing ID

MSH012.00.00=8,ID,R,,0104,00012,Version ID

MSH013.00.00=15,NM,O,,,00013,Sequence Number

MSH014.00.00=180,ST,O,,,00014,Continuation Pointer

MSH015.00.00=2,ID,O,,0155,00015,Accept Acknowledgment Type

MSH016.00.00=2,ID,O,,0155,00016,Application Acknowledgment Type

MSH017.00.00=2,ID,O,,,00017,Country Code

MSH018.00.00=6,ID,O,Y/3,0211,00692,Character Set

MSH019.00.00=60,CE,O,,,00693,Principal Language of Message

 

[PID]

SEGPID=Patient Identification

PID001.00.00=4,SI,O,,,00104,Set ID - Patient ID

PID002.00.00=20,CX,O,,,00105,Patient ID (External ID)

PID003.00.00=20,CX,R,Y,,00106,Patient ID (Internal ID)

PID004.00.00=20,CX,O,Y,,00107,Alternate Patient ID - PID

PID005.00.00=48,XPN,R,Y,,00108,Patient Name

PID006.00.00=48,XPN,O,,,00109,Mother's Maiden Name

PID007.00.00=26,TS,O,,,00110,Date/Time of Birth

PID008.00.00=1,IS,O,,0001,00111,Sex

PID009.00.00=48,XPN,O,Y,,00112,Patient Alias

PID010.00.00=1,IS,O,,0005,00113,Race

PID011.00.00=106,XAD,O,Y,,00114,Patient Address

PID012.00.00=4,IS,B,,,00115,County Code

PID013.00.00=40,XTN,O,Y,,00116,Phone Number - Home

PID014.00.00=40,XTN,O,Y,,00117,Phone Number - Business

PID015.00.00=60,CE,O,,0296,00118,Primary Language

PID016.00.00=1,IS,O,,0002,00119,Marital Status

PID017.00.00=3,IS,O,,0006,00120,Religion

PID018.00.00=20,CX,O,,,00121,Patient Account Number

PID019.00.00=16,ST,O,,,00122,SSN Number - Patient

PID020.00.00=25,DLN,O,,,00123,Driver's License Number - Patient

PID021.00.00=20,CX,O,Y,,00124,Mother's Identifier

PID022.00.00=3,IS,O,,0189,00125,Ethnic Group

PID023.00.00=60,ST,O,,,00126,Birth Place

PID024.00.00=2,ID,O,,0136,00127,Multiple Birth Indicator

PID025.00.00=2,NM,O,,,00128,Birth Order

PID026.00.00=4,IS,O,Y,0171,00129,Citizenship

PID027.00.00=60,CE,O,,0172,00130,Veterans Military Status

PID028.00.00=80,CE,O,,,00739,Nationality

PID029.00.00=26,TS,O,,,00740,Patient Death Date and Time

PID030.00.00=1,ID,O,,0136,00741,Patient Death Indicator

 

[PV1]

SEGPV1=Patient Visit

PV1001.00.00=4,SI,O,,,00131,Set ID - PV1

PV1002.00.00=1,IS,R,,0004,00132,Patient Class

PV1003.00.00=80,PL,O,,,00133,Assigned Patient Location

PV1004.00.00=2,IS,O,,0007,00134,Admission Type

PV1005.00.00=20,CX,O,,,00135,Preadmit Number

PV1006.00.00=80,PL,O,,,00136,Prior Patient Location

PV1007.00.00=60,XCN,O,Y,0010,00137,Attending Doctor

PV1008.00.00=60,XCN,O,Y,0010,00138,Referring Doctor

PV1009.00.00=60,XCN,O,Y,0010,00139,Consulting Doctor

PV1010.00.00=3,IS,O,,0069,00140,Hospital Service

PV1011.00.00=80,PL,O,,,00141,Temporary Location

PV1012.00.00=2,IS,O,,0087,00142,Preadmit Test Indicator

PV1013.00.00=2,IS,O,,0092,00143,Readmission Indicator

PV1014.00.00=3,IS,O,,0023,00144,Admit Source

PV1015.00.00=2,IS,O,Y,0009,00145,Ambulatory Status

PV1016.00.00=2,IS,O,,0099,00146,VIP Indicator

PV1017.00.00=60,XCN,O,Y,0010,00147,Admitting Doctor

PV1018.00.00=2,IS,O,,0018,00148,Patient Type

PV1019.00.00=20,CX,O,,,00149,Visit Number

PV1020.00.00=50,FC,O,Y,0064,00150,Financial Class

PV1021.00.00=2,IS,O,,0032,00151,Charge Price Indicator

PV1022.00.00=2,IS,O,,0045,00152,Courtesy Code

PV1023.00.00=2,IS,O,,0046,00153,Credit Rating

PV1024.00.00=2,IS,O,Y,0044,00154,Contract Code

PV1025.00.00=8,DT,O,Y,,00155,Contract Effective Date

PV1026.00.00=12,NM,O,Y,,00156,Contract Amount

PV1027.00.00=3,NM,O,Y,,00157,Contract Period

PV1028.00.00=2,IS,O,,0073,00158,Interest Code

PV1029.00.00=1,IS,O,,0110,00159,Transfer to Bad Debt Code

PV1030.00.00=8,DT,O,,,00160,Transfer to Bad Debt Date

PV1031.00.00=10,IS,O,,0021,00161,Bad Debt Agency Code

PV1032.00.00=12,NM,O,,,00162,Bad Debt Transfer Amount

PV1033.00.00=12,NM,O,,,00163,Bad Debt Recovery Amount

PV1034.00.00=1,IS,O,,0111,00164,Delete Account Indicator

PV1035.00.00=8,DT,O,,,00165,Delete Account Date

PV1036.00.00=3,IS,O,,0112,00166,Discharge Disposition

PV1037.00.00=25,CM,O,,0113,00167,Discharged to Location

PV1038.00.00=2,IS,O,,0114,00168,Diet Type

PV1039.00.00=2,IS,O,,0115,00169,Servicing Facility

PV1040.00.00=1,IS,B,,0116,00170,Bed Status

PV1041.00.00=2,IS,O,,0117,00171,Account Status

PV1042.00.00=80,PL,O,,,00172,Pending Location

PV1043.00.00=80,PL,O,,,00173,Prior Temporary Location

PV1044.00.00=26,TS,O,,,00174,Admit Date/Time

PV1045.00.00=26,TS,O,,,00175,Discharge Date/Time

PV1046.00.00=12,NM,O,,,00176,Current Patient Balance

PV1047.00.00=12,NM,O,,,00177,Total Charges

PV1048.00.00=12,NM,O,,,00178,Total Adjustments

PV1049.00.00=12,NM,O,,,00179,Total Payments

PV1050.00.00=20,CX,O,,0192,00180,Alternate Visit ID

PV1051.00.00=1,IS,O,,0326,01226,Visit Indicator

PV1052.00.00=60,XCN,O,Y,0010,01224,Other Healthcare Provider

 

[DATA TYPES]

; This section allows you to define acceptable data types.

;

DATATYPE=AD,CD,CE,CF,CK,CM,CN,CP,CQ,CX,DLN,DR,DT,ED,EI,FC,FT,HD,ID,IS,JCC,MA,MO,NA,NM,PL,PN,PPN,PT,QIP,QSC,RCD,RI,RP,SCV,SI,SN,ST,TM,TN,TQ,TS,TX,VH,XAD,XCN,XON,XPN,XTN

 

[DATA TYPE COMPONENTS]

; This section allows you to define the components of a complex data type.

; Complex data types are composed of two or more basic data types defined

; above.

;

; The format is DATATYPE + 'TYPE'.

;

; Note:

; Whenever a component of an HL7 field is itself an HL7 data type which

; contains components, its delimiters are demoted by one (to subcomponents).

;

ADTYPE=ST,ST,ST,ST,ST,ID,ID,ST

CDTYPE=NM,ST,CM,CM,CM,NM,CM

CFTYPE=ID,FT,ST,ID,FT,ST

CKTYPE=NM,NM,ID,HD

CNTYPE=ST,ST,ST,ST,ST,ST,ST,IS,HD

CPTYPE=MO,ID,NM,NM,CE,ID

CQTYPE=NM,CE

CXTYPE=ST,ST,ID,HD,IS,HD

DLNTYPE=ST,IS,DT

DRTYPE=TS,TS

EDTYPE=HD,ID,ID,ID,ST

EITYPE=ST,IS,ST,ID

FCTYPE=IS,TS

HDTYPE=IS,ST,ID

JCCTYPE=IS,IS

MOTYPE=NM,ID

PLTYPE=IS,IS,IS,HD,IS,IS,IS,IS,ST

PPNTYPE=ST,ST,ST,ST,ST,ST,ST,IS,HD,ID,ST,ID,IS,HD,TS

PTTYPE=ID,ID

QSCTYPE=ST,ID,ST,ID

RCDTYPE=ST,ST,NM

RITYPE=IS,ST

RPTYPE=ST,HD,ID,ID

SCVTYPE=IS,ST

SNTYPE=ST,NM,ST,NM

TQTYPE=CQ,CM,ST,TS,TS,ST,ST,TX,ST,CM

VHTYPE=ID,ID,TM,TM

XADTYPE=ST,ST,ST,ST,ST,ID,ID,ST,IS,IS

XCNTYPE=ST,ST,ST,ST,ST,ST,ST,IS,HD,ID,ST,ID,IS,HD

XONTYPE=ST,IS,NM,NM,ID,HD,IS,HD

XPNTYPE=ST,ST,ST,ST,ST,ST,ID,ID

XTNTYPE=ID,ID,ST,NM,NM,NM,NM,ST

 

;--------------------------------------------------------------------------

[TABLES]

; This section allows you to define elements of an HL7 table.

;

; The format is 'TBL' + HL7 table number.

;

TBL0001=F,M,O,U

TBL0002=A,D,M,S,W

TBL0003=A01,A02,A03,A04,A05,A06,A07,A08,A09,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34,A35,A36,A37,A38,A39,A40,A41,A42,A43,A44,A45,A46,A47,A48,A49,A50,A51,C01,C02,C02,C04,C05,C06,C07,C08,C09,C10,C11,C12,CNQ,I01,I02,I03,I04,I05,I06,I07,I08,I09,I10,I11,I12,I13,I14,I15,M01,M02,M03,M04,M05,M06,M07,M08,M09,M10,M11,O01,O02,R05,R06,RAR,RDR,RER,RGR,ROR,P01,P02,P03,P04,P05,P06,Q01,Q02,Q03,Q05,Q06,R01,R02,R03,R04,RAR,RER,R0R,S01,S02,S03,S04,S05,S06,S07,S08,S09,S10,S11,S12,S13,S14,S15,S16,S17,S18,S19,S20,S21,S22,S23,S24,S25,S26,T01,T02,T03,T04,T05,T06,T07,T08,T09,V01,V02,V03,V04,W01,W02

TBL0004=E,I,O,P,R,B

TBL0007=A,E,L,R

TBL0008=AA,AE,AR,CA,CE,CR

TBL0009=A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B1,B2,B3,B4,B5,B6

TBL0017=CG,CD,PY,AJ

TBL0027=S,A,R,P,T

TBL0038=A,CA,CM,DC,ER,HD,IP,RP,SC

TBL0048=ADV,ANU,APN,APP,ARN,APM,APA,CAN,DEM,FIN,GOL,MRI,MRO,NCK,NSC,NST,ORD,OTH,PRB,PRO,RES,RAR,RER,RDR,RGR,ROR,STA,VXI

TBL0052=A,W,F

TBL0061=M10,M11

TBL0062=01,02,03

TBL0065=A,G,L,O,P,R,S

TBL0070=ABS,AMN,ASP,BPH,BIFL,BLDA,BBL,BLDC,BPU,BLDV,BON,BRTH,BRO,BRN,CALC,CDM,CNL,CTP,CSF,CVM,CVX,COL,CBLD,CNJT,CUR,CYST,DIAF,DOSE,DRN,DUFL,EAR,EARW,ELT,ENDC,ENDM,EOS,RBC,EYE,EXHLD,FIB,FLT,FIST,FLU,GAS,GAST,GEN,GENC,GENL,GENV,HAR,IHG,IT,ISLT,LAM,WBC,LN,LNA,LNV,LIQ,LYM,MAC,MAR,MEC,MBLD,MLK,MILK,NAIL,NOS,ORH,PAFL,PAT,PRT,PLC,PLAS,PLB,PLR,PMN,PPP,PRP,PUS,RT,SAL,SEM,SER,SKN,SKM,SPRM,SPT,SPTC,SPTT,STON,STL,SWT,SNV,TEAR,THRT,THRB,TISS,TISG,TLGI,TLNG,TISPL,TSMI,TISU,TUB,ULC,UMB,UMED,URTH,UR,URC,URT,URNS,USUB,VOM,BLD,BDY,WAT,WICK,WND,WNDA,WNDE,WNDD,XXX

TBL0074=AU,BG,BLB,CUS,CTH,CT,CH,CP,EC,EN,HM,ICU,IMM,LAB,MB,MCB,MYC,NMS,NMR,NRS,OUS,OT,OTH,OSL,PHR,PT,PHY,PF,RAD,RX,RUS,RC,RT,SR,SP,TX,VUS,VR,XRC

TBL0076=ACK,ADR,ADT,ARD,BAR,CNQ,CSU,DFT,DSR,EDR,ERP,ERQ,EQQ,MCF,MDM,MFN,MFK,MFD,MFQ,MFR,ORF,ORM,ORR,ORU,OSQ,OSR,QRY,PEX,PGL,PGR,PGQ,PIN,PPP,PPR,PPR,PPT,PPV,PRQ,PRR,PTQ,PTR,PTU,PTV,PIN,RCI,RAR,RCL,RAS,RDE,RDR,RDS,RGV,RGR,REF,RER,ROC,ROD,ROR,RPA,RPI,RPL,RPR,RQA,RQI,RRA,RRD,RRE,RRG,RRI,SIU,SPQ,SQM,SQR,SRM,SRM,SRR,TBR,UDM,VQQ,VXQ,VXX,VXR,VXU

TBL0078=L,H,LL,HH,<,>,N,A,AA,NULL,U,D,B,W,S,R,I,MS,VS

TBL0080=A,N,R,S

TBL0085=C,D,F,I,P,R,S,X,U,W

TBL0091=D,I

TBL0092=R

TBL0093=Y,NULL,N

TBL0098=S,U,M

TBL0100=D,O,R,S,T

TBL0102=D,F

TBL0103=D,P,T

TBL0104=2.0,2.0D,2.1,2.2,2.3

TBL0105=L,P,O

TBL0106=D,R,T

TBL0107=B,L

TBL0108=O,R,S,T

TBL0109=R,S

TBL0116=C,H,O,U,K,I

TBL0119=NW,OK,UA,CA,OC,CR,UC,DC,OD,DR,UD,HD,OH,UH,HR,RL,OE,OR,UR,RP,RU,RO,RQ,UM,PA,CH,XO,XX,UX,XR,DE,RE,RR,SR,SS,SC,SN,NA,CN,RF,AF,DF,FU,OF,UF,LI,UN

TBL0121=E,R,D,F,N

TBL0122=CH,CO,CR,DP,GR,NC,PC,RS

TBL0123=O,I,S,A,P,C,R,F,X,Y,Z

TBL0124=CART,PORT,WALK,WHLC

TBL0125=AD,CE,CF,CK,CN,CP,CX,DT,ED,FT,ID,MO,NM,PN,RP,SN,ST,TM,TN,TS,TX,XAD,XCN,XON,XPN,XTN

TBL0126=CH,LI,PG,RD,ZO

TBL0127=DA,FA,MA,MC

TBL0128=SV,MO,MI

TBL0131=CP,EP,BP,PR

TBL0133=AN,PR,RD,RS,NP,CM,SN,PS,AS

TBL0135=Y,N,M

TBL0136=Y,N

TBL0137=E,G,I,O,P

TBL0144=1,2,3,4,5,6,7

TBL0145=PRI,2PRI,SPR,2SPR,ICU,2ICU

TBL0146=DF,LM,PC,RT,UL

TBL0147=ANC,2ANC,MMD,2MMD,3MMD

TBL0148=AT,PC

TBL0149=AP,DE,PE

TBL0150=ER,IPE,OPE,UR

TBL0155=AL,NE,ER,SU

TBL0156=ORD,CAN,SCHED,COL,RCT,REP,ANY

TBL0157=PRE,REP,CFN,FIN,COR,ANY

TBL0158=1ST,ALL,LST,REV

TBL0159=D,S,P

TBL0160=EARLY,LATE,GUEST,NO,MSG

TBL0161=N,G,T

TBL0162=AP,B,DT,EP,ET,GTT,GU,IMR,IA,IB,IC,ICV,ID,IH,MM,NS,NG,NP,NT,OP,OT,OTH,PF,PO,PR,RM,SD,SC,SL,TP,TRA,TD,TL,UR,VG,VM,WND,*

TBL0163=BE,OU,BN,BU,CT,LA,LAC,LACF,LD,LE,LEJ,OS,LF,LG,LH,LIJ,LLAQ,LLFA,LMFA,LN,LPC,LSC,LT,LUA,LUAQ,LUFA,LVG,LVL,NB,PA,PERIN,RA,RAC,RACF,RD,RE,REJ,OD,RF,RG,RH,RIJ,RLAQ,RLFA,RMFA,RN,RPC,RSC,RT,RUA,RUAQ,RUFA,RVL,RVG

TBL0164=AP,BT,HL,IPPB,IVP,IVS,MI,NEB,PCA

TBL0165=CH,DI,DU,IF,IS,IR,IVPB,IVP,NB,PT,PF,SH,SO,WA,WI

TBL0166=B,A

TBL0167=N,G,T

TBL0168=S,A,R,P,T,C,B

TBL0169=C,R

TBL0170=P,C,N

TBL0173=CO,IN

TBL0174=P,F,A,S,C

TBL0175=CDM,CM0,CM1,CM2,LOC,OM1,OM2,OM3,OM4,OM5,OM6,PRA,STF

TBL0177=V,R,U,EMP,UWM,VIP,PSY,AID,HIV,ETH

TBL0178=REP,UPD

TBL0179=NE,ER,AL,SU

TBL0180=MAD,MDL,MUP,MDC,MAC

TBL0181=S,U

TBL0183=A,I

TBL0185=H,O,F,C,B,E,M

TBL0187=P,I

TBL0190=C,P,M,B,O,H,B,F

TBL0191=SI,NS,SD,TX,FT,IM,AU,AP

TBL0193=AT,LM,PC,UL

TBL0200=A,L,D,M,C,O

TBL0201=PRN,ORN,WPN,VHN,ASN,EMR,NET,BPN

TBL0202=PH,FX,MD,CP,BP,Internet,X.400

TBL0203=AM,BR,DI,DL,DN,DS,EI,EN,GI,GN,MS,MA,MC,MR,PI,PT,RR,SS,XX,VS,VN,AN

TBL0204=A,L,D,SL

TBL0205=AP,PF,UP,TF,DC,IC,TP

TBL0206=A,D,U

TBL0208=OK,NF,AR

TBL0209=EQ,NE,LT,GT,LE,GE,CT,GN

TBL0210=AND,OR

TBL0211=ASCII,8859/1,8859/2,8859/3,8859/4,8859/5,8859/6,8859/7,8859/8,8859/9,JAS2020,UNICODE,JIS X 0202

TBL0213=P,D,I

TBL0220=A,F,I,R,U,S

TBL0223=D,M,S,WU,CB

TBL0224=A,N,U

TBL0225=R,N,U

TBL0227=AB,AD,ALP,AR,BA,BAY,BP,CON,EVN,GRE,IUS,KGC,LED,MA,MSD,IM,MIP,JPN,MIL,NYB,NAB,OTC,OTH,PD,PRX,SCL,SKB,SI,WA,UNK

TBL0228=C,D,M,O,R,S,T,I

TBL0229=M,C,G

TBL0230=A,P,I,D

TBL0231=F,P,N

TBL0232=01,02,03

TBL0234=CO,AD,RQ,DE,PD,3D,7D,10D,15D,30D

TBL0235=C,L,H,R,D,N,P,M,E,O

TBL0236=M,L,R,D

TBL0237=I,O,A,M,D,L,W,B

TBL0238=Y,S,N

TBL0239=Y,N,U

TBL0240=D,L,H,P,C,I,J,R,O

TBL0241=D,R,N,W,S,F,U

TBL0242=P,R,M,H,C,L,O

TBL0243=Y,N,NA

TBL0247=Y,P,K,X,A,D,C,I,U,Q,R,O

TBL0248=A,L,R,N

TBL0250=H,M,S,I,N

TBL0251=WP,WT,DR,DI,OT,N

TBL0252=AW,BE,LI,IN,EX,PL,TC,DR,SE,OE,OT

TBL0253=B,P,F,X,O

TBL0257=CFST,EXCZ,FFST

TBL0258=CONTROL,PATIENT,DONOR,BPU

TBL0259=AS,BS,CD,CP,CR,CS,CT,DD,DG,DM,EC,ES,FA,FS,LP,LS,MA,MS,NM,OT,PT,RF,ST,TG,US,XA

TBL0260=N,R,B,E,O,C,D,L

TBL0261=OXY,SUC,VIT,INF,IVP,EEG,EKG,VEN

TBL0262=F,P,J,Q,S,W

TBL0263=A,E,F,N,C,R,S

TBL0265=AMB,PSY,PPS,REH,PRE,ISO,OBG,PIN,INT,SUR,PSI,EDI,CAR,NBI,CCR,PED,EMR,OBS,WIC,PHY,ALC,FPC,CHI,CAN,NAT,OTH

TBL0266=M,F,E

TBL0267=SAT,SUN,MON,TUE,WED,THU,FRI

TBL0268=X,A,R

TBL0269=O,R

TBL0270=AR,CD,CN,DI,DS,ED,HP,OP,PC,PH,PN,PR,SP,TS

TBL0271=DI,DO,IP,IN,PA,AU,LA

TBL0272=VR,RE,UC

TBL0273=AV,UN

TBL0274=RP,IN

TBL0275=AC,AA,AR,PU

TBL0276=ROUTINE,WALKIN,CHECKUP,FOLLOWUP,EMERGENCY

TBL0277=NORMAL,TENTATIVE,COMPLETE

TBL0278=PENDING,WAITLIST,BOOKED,STARTED,COMPLETE,CANCELLED,DC,DELETED,BLOCKED,OVERBOOK

TBL0279=NO,CONFIRM,NOTIFY,YES

TBL0280=S,A,R

TBL0281=LAB,RAD,MED,SKN,PSY,HOM

TBL0282=WR,RP,AM,SO

TBL0283=A,P,R,E

TBL0284=I,O,A,E

TBL0286=RP,PP,CP,RT

TBL0287=AD,CO,DE,LI,UC,UN,UP

TBL0291=TIFF,PICT,DICOM,FAX,JOT,BASIC,Octet-stream,PostScript,JPEG,GIF,HTML,RTF

TBL0292=24,19,27,26,29,12,28,20,50,01,22,30,31,52,08,42,43,44,45,17,46,47,48,49,51,14,15,16,10,39,03,04,05,32,07,11,23,33,02,18,40,34,06,38,09,35,13,25,41,21,36,37

TBL0294=PREFSTART,PREFEND,MON,TUE,WED,THU,FRI,SAT,SUN

TBL0309=H,P,B

TBL0315=Y,F,N,I,U

TBL0316=Y,F,N,U

TBL0317=9900,9901,9902,9903,9904

TBL0321=TR,UD,F,AD

TBL0322=CP,RE,NA,PA,D,U

TBL0323=A

TBL0324=SMK,LIC,IMP,SHA,INF,PRL,LCR,OVR,STF,SET,GEN,TEA

TBL0325=RX,RX2,LAB,LB2,DTY,ALI,PAR

TBL0326=A,V

TBL0329=A,E

TBL0330=510K,510E,PMA,PRE,TXN,522S

TBL0331=U,M,D,A

TBL0332=I,A

TBL0334=PT,GT,IN,AP

TBL0337=E,C

TBL0338=UPIN,SL,MCD,GL,CY,TAX,DEA,MCR,L&I,QA,TRL