SOAPwareXchangeHL7 is the interface module allowing HL7-compliant interfaces between the SOAPware® charting product and other HL7-compliant systems.This document describes the specific manner in which HL7 is implemented in SOAPwareXchangeHL7, and how the various standard fields will be used.
SOAPwareXchangeHL7 accepts HL7-compliant messages from other systems, and uses them to create formatted reports in the Reports section of the appropriate SOAPware® chart.If the patient described in the PID section of the HL7 message cannot be matched, it will be added to a queue for the SOAPware user to handle.SOAPwareXchangeHL7 uses the matching algorithm below to determine if a patient already exists in SOAPware®:
An incoming record will be considered to be a match to a SOAPware® patient if:
External ID is found in patient map, AND
Birthdate matches, OR
Last name matches
OR
Social Security numbers match, AND
Birthdate matches, AND
Last name matches, AND
First name matches
OR
First name and Last name matches, AND
Birthdate matches, AND
Sex matches
So a match can be made on
First Name AND Last Name AND Birthdate
AND
Sex OR Social Security Number
SOAPwareXchangeHL7 supports file-based or TCP-based interfaces.A file based interface will consist of the interfacing system, or system user, depositing HL7 messages in a specified location on the SOAPwareXchangeHL7 machine.SOAPwareXchangeHL7 will then retrieve and parse these messages.When the messages have been parsed, SOAPwareXchangeHL7 will remove them.
A TCP based interface will require a TCP connection between SOAPwareXchangeHL7 and the sending system.SOAPwareXchangeHL7 will listen for incoming messages, and parse them as they arrive.SOAPwareXchangeHL7 will always return an ACK messages for TCP messages received.
If other communication methods are required, such as dial-up file transfers, the SOAPware®, Inc. programming team can evaluate the possibility of creating a transfer program for an additional fee.
At this time all HL7 interfaces implemented with SOAPwareXchangeHL7 will be results-only.Bi-directional interfaces are being evaluated for future implementation.Because of this, SOAPwareXchangeHL7 only processes results messages (ORU).A standard ORU message would follow this format:
MSH
PID
{
ORC
{[NTE]}
OBR
{[NTE]}
{
OBX
{[NTE]}
}
}
Each PID segment requires a unique MSH segment.
The NTE segment can contain any additional information not encoded in the OBX segment.Usually the NTE segment will contain some combination of the following items: text results, canned messages, or result comments.The following section lists all of the segments potentially used in result messages.Fields in boldface are required, all others are optional.Segments not listed in this document may be sent to SOAPwareXchangeHL7, but will be ignored.Fields not listed in these tables may be included at the end of the segment, but will be ignored.
Segment Descriptions
| Segment | Description |
| MSH | Message Header |
| PID | Patient Identification |
| ORC | Common Order |
| OBR | Observation Request |
| OBX | Observation |
| NTE | Notes and Comments |
The MSH (Message Header) Segment
| MSH-1 | Segment Type ID (‘MSH’) |
| MSH-2 | Field Delimiter (‘|’) Component Delimiter (sub-subfield) (‘ ^ ‘) Repeat Delimiter (subfield) ('~') Escape character ('\') Sub-component delimiter ('&') |
| MSH-3 | Sending Application |
| MSH-4 | Sending Facility |
| MSH-5 | Receiving Application |
| MSH-6 | Receiving Facility |
| MSH-7 | Date/Time of Message (YYYYMMDDHHMM) |
| MSH-8 | Security |
| MSH-9 | Message Type |
| MSH-10 | Message Control ID |
| MSH-11 | |
| MSH-12 | Version ‘2.1’=Release 2.1 ‘2.2’=Release 2.2 |
| MSH-13 | Sequence Number |
| MSH-14 | Continuation Pointer |
| MSH-15 | Accept Acknowledgment Type |
| MSH-16 | Application Acknowledgment Type |
| MSH-17 | Country Code |
The Sending Application value in MSH-3 is used by SOAPwareXchangeHL7 to determine the source of the message and the proper parser to invoke.This value will be displayed in the footer of the lab report, as "Sending Application".Messages parsed through this interface will be filed in the "Labs" section of the patient chart.
The value in MSH-4 will be displayed in the footer of the lab report as "Sending Facility".
The PID (Patient Identifier) Segment
| Segment Type ID ('PID') | |
| PID-1 | Patient ID |
| PID-2 | External Patient ID |
| PID-3 | Patient ID |
| PID-4 | Alternate Patient ID |
| PID-5 | Patient Name: ·Last Name ·First Name ·Middle Initial ·Suffix (e.g., Jr., III,) ·Prefix (e.g., DR) ·Degree (e.g., MD) |
| PID-6 | Mother’s Maiden Name |
| PID-7 | Patient Birth Date |
| PID-8 | Patient Sex |
| PID-9 | Patient Alias |
| PID-10 | Patient Race |
| PID-11 | Patient Address |
| PID-12 | Patient County Code |
| PID-13 | Patient Home Phone Number |
| PID-14 | Patient Work Phone Number |
| PID-15 | Language – Patient |
| PID-16 | Patient Marital Status ‘S’ = Separated ‘D’ = Divorced ‘M’ = Married ‘I’ =Single ‘W’ = Widowed |
| PID-17 | Patient Religion |
| PID-18 | Patient Account Number |
| PID-19 | Patient SSN Number |
| PID-20 | Patient Driver’s License Number |
| PID-21 | Patient Mother’s Identifier |
| PID-22 | Patient Ethnic Group |
| PID-23 | Patient Birth Place |
| PID-24 | Multiple Birth Indicator |
| PID-25 | Birth Order |
| PID-26 | Citizenship |
| PID-27 | Veterans Military Status |
The PatientID in PID-3 will be entered into a matching table.This ID is required to be unique for each patient.First Name, Last Name, Birthdate, Sex, and Social Security Number are all used for the patient matching algorithm.Omitting any of this information may cause the record to be queued for manual assignment.Demographic information included in the PID segment will not be used to update the demographics in the patient chart.
The ORC (Common Order) Segment
| ORC-1 | Order Control :“RE”= Results |
| ORC-2 | Placer Order Number |
| ORC-3 | Accession Number |
| ORC-4 | Placer Group Number ·Unique Group ID ·Placer application ID |
| ORC-5 | Order Status |
| ORC-6 | Response Flag |
| ORC-7 | Quantity Timing |
| ORC-8 | Parent |
| ORC-9 | Date/Time of Transaction (YYYYMMDDHHMMSS) |
| ORC-10 | Entered By |
| ORC-11 | Verified By |
| ORC-12 | Ordering Provider ·ID/UPIN/NPI ·Last Name |
| ORC-13 | Enterer’s Location |
| ORC-14 | Call Back Phone Number |
| ORC-15 | Order Effective Date (YYYYMMDDHHMMSS) |
| ORC-16 | Order Control Code Reason |
| ORC-17 | Entering Organization |
| ORC-18 | Entering Device |
| ORC-19 | Action By |
The Accession Number in ORC-3 is used for report matching purposes.When a message comes in with an accession number that already exists in SOAPware®, the existing report will be updated or replaced, depending on the result status of the existing report.Result status from the ORC segment will be displayed as the report status.
| Existing Report | Incoming Message | Action Taken |
| Partial/Pending | Final | Existing Report is Replaced |
| Final/Corrected | Partial/Pending | Incoming Report is Discarded |
| Final/Corrected | Final/Corrected | Incoming Report is Appended to Existing Report |
Ordering Provider information will be read from either ORC-12, or OBR-16.A physician ID of some sort is required in one of those fields.Last Name will be used as well, if included.
The OBR (Observation Request) Segment
| OBR-1 | Sequence Number - OBR |
| OBR-2 | Placer Order Number |
| OBR-3 | Accession Number |
| OBR-4 | Universal Service ID |
| OBR-5 | Priority |
| OBR-6 | Requested Date/Time |
| OBR-7 | Observation Date/Time Format - (YYYYMMDDHHMMSS) |
| OBR-8 | Observation End Time |
| OBR-9 | Collection Volume |
| OBR-10 | Collector Identifier |
| OBR-11 | Action Code |
| OBR-12 | Danger Code |
| OBR-13 | Relevant Clinical Information |
| OBR-14 | Specimen Received Date/Time12( | ) |
| OBR-15 | Specimen Source |
| OBR-16 | Ordering Provider · Physician ID / Provider Number · Physician Last Name · Physician First Name |
| OBR-17 | Order Callback Number |
| OBR-18 | Placer Field 1 |
| OBR-19 | Placer Field 2 |
| OBR-20 | Filler Field 1 |
| OBR-21 | Filler Field 2 |
| OBR-22 | Date/Time Observations Reported (YYYYMMDDHHMM) |
| OBR-23 | Filler's Charge to Practice |
| OBR-24 | Filler’s Section ID |
| OBR-25 | Order Result Status |
| OBR-26 | Parent Result |
| OBR-27 | Quantity/Timing |
| OBR-28 | Result Copies To |
| OBR-29 | Parent |
| OBR-30 | Transportation Mode |
| OBR-31 | Reason For Study |
| OBR-32 | Principle Interpreter of Results |
| OBR-33 | Assisting Interpreter of Results |
| OBR-34 | Technician |
| OBR-35 | Transcriptionist |
| OBR-36 | Scheduled Date / Time |
The Accession Number will be read from OBR-3 if it is not present in ORC-3.
Every OBR-4^2 under the same ORC will be combined to form the title of the report in SOAPware®.Each ORC segment will trigger a new report.
OBR-7 will appear in the report as the Collection Date.An ordering physician ID will be expected in OBR-16 if it was not present in ORC-12.
Result status from OBR-25 will be displayed with each group of results.
The date in OBR-22 will be shown in the report header as the Date Reported.
The OBX (Observation) Segment
| OBX-1 | Sequence Number - OBX |
| OBX-2 | Value Type |
| OBX-3 | Observation Identifier |
| OBX-4 | Observation Sub ID |
| OBX-5 | Observation Value(result) |
| OBX-6 | Units of Measure |
| OBX-7 | Reference Ranges (low - high, ex: 1.5 - 10.2) |
| OBX-8 | Abnormal Flags |
| OBX-9 | Probability |
| OBX-10 | Nature of Abnormal Test |
| OBX-11 | Observation Result Status |
| OBX-12 | Date/Time of Last Change |
| OBX-13 | User-Defined Access Checks |
| OBX-14 | Date/Time of Observation (YYYYMMDDHHMMSS) |
| OBX-15 | Test Facility Code |
| OBX-16 | Responsible Observer |
The value of OBX-2 will be used to determine how to display the results.
For all types except TX, OBX-3^2 will be used as the test name.OBX-5 will be displayed in the Value column.OBX-6 will display in the Units column, OBX-7 in the Reference Range column, and OBX-8 in the Abnormal Flags column.OBX-14 will be displayed as the individual test date/time.
If the abnormal flag is H or HH, the result line will be colored red.If the abnormal flag is L or LL, the result line will be colored blue.For all other abnormal values (positive, unknown, etc) the result line will be colored orange.If a result contains abnormal results the report title in the Tasks Manager will begin with "ABN:" and the task list item will have a higher priority.
When the OBX segment has a Type of TX, only OBX-5 will be displayed.The following escape characters are defined in the default lab interface:
| Escape Character | Replaced With |
| \S\ | ^ |
| \T\ | & |
| \.br\ | Carriage Return |
The NTE (Notes and Comments) Segment
| NTE-1 | Sequence Number - NTE |
| NTE-2 | Comment Source |
| NTE-3 | Comment Text |
ZPS-2 Facility Code ZPS-3 Facility Name ZPS-4 Facility Address ZPS-5 Facility Phone ZPS-7 Facility Director
The ZPS Segment
The ZPS segment is used by SOAPwareXchangeHL7 to identify Performing Facility information. In general, a short code for each facility would be sent in OBX-15 for each test. Then a ZPS segment would be sent at the end of the result to define the facility associated with that code.
Sample Result
MSH|^~\&|SOAPWARE||||20030417123605||ORU^R01|20030417597657260000|P|2.3|||||||
PID|1||TEST01||TEST^PATIENT||20000101|M||||||||||0000011|123456789||||||||||||
ORC|RE||267731||F|||||||TESTDOC^TEST^DOC^||||||||
OBR|1||267731|000^CBC|||20030110152200|||||||||TESTDOC^TEST^DOC^||||||20030114082400||F|||||||||||||||||||
OBX|1|NM|01^WHITE BLOOD CELL COUNT||2.5|THOUS/MCL|3.8-10.8|L|||F|||20030114082400||||
OBX|2|NM|02^RED BLOOD CELL COUNT||2.53|MILL/MCL|4.20-5.80|L|||F|||20030114082400||||
OBX|3|NM|03^HEMOGLOBIN||12.0|G/DL|13.2-17.1|L|||F|||20030114082400||||
OBX|4|NM|04^HEMATOCRIT||37.5|%|38.5-50.0|L|||F|||20030114082400||||
OBX|5|NM|05^MCV||148.2|FL|80.0-100.0|H|||F|||20030114082400||||
OBX|6|NM|06^MCH||47.4|PG|27.0-33.0|H|||F|||20030114082400||||
OBX|7|NM|07^MCHC||32.0|G/DL|32.0-36.0|N|||F|||20030114082400||||
OBX|8|NM|08^RDW||13.2|%|11.0-15.0|N|||F|||20030114082400||||
OBX|9|NM|09^PLATELET COUNT||250|THOUS/MCL|140-400|N|||F|||20030114082400||||
Screenshot of Sample Result in SOAPware®
Viewing Details:
