The SetReceiver webservice is intended to receive a HL7 Result file from a third-party that will be stored in OfficeEMR.
Sample Call
<request>
<security>
<key>ClientUserID~ClientPassword~ClientDatabase</key>
<version>1.0</version>
<userid />
<account>AccountGUID</account>
</security>
<send_list>
<send_item>
<type>1</type>
<data_list>
<data_item>
<filename>Sample File 1</filename>
<data>
MSH|^~\&|www.isalushealthcare.com^0F0A7417-B12C-41BA-97A9-60AAF7917F6C^GUID|www.isalushealthcare.com^Z59^HL7|Unknown^Unknown^HL7|Unknown^Unknown^HL7|201109061241||ADT^A08|201109061241Z59|P|2.3.1|
PID|1||i10102^^^i10102^MR||Walker^Alexander^^^^^L||19890812|M|||1234 Test Street^^Columbus^IN^47201^^M^^||(239)582-0395^PRN^PH^^^239^820395^^|(459)830-4985X456^PRN^PH^^^459^304985^456^||||||||||||||||
PD1|||Carly Rocks^L|12345678^Simcoe^Maria^N^^^MD^^^L^^^|
GT1|1||Walker^Alexander^||1234 Test Street^^Columbus^IN^47201^^M^^|(239)582-0395^PRN^PH^^^239^820395^^||19890812|M||E|
GT1|2||Jones^Fred^a||123 Main Street^^Indianapolis^IN^46038^^M^^|(029)348-0293^PRN^PH^^^029^480293^^|||M||U|319992458
IN1|1|36651||Jf Molloy|1234 Test Street^^Indianapolis^IN^46268 ^^M^^||(333)333-3333^PRN^PH^^^333^333333^^|455622341111||||||||Walker^Alexander^|E|19890812|1234 Test Street^^Columbus^IN^47201^^M^^||||||||||||||||||||||||M||||||XPN999998888
IN2|1||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||(239)582-0395^PRN^PH^^^239^820395^^
IN1|2|36705||Medicaid OReilly|1234 Test Street^^Indianapolis^NV^46207^^M^^||(333)333-3333^PRN^PH^^^333^333333^^|||||||||Walker^Alexander^|E|19890812|1234 Test Street^^Columbus^IN^47201^^M^^||||||||||||||||||||||||M||||||XPN999998888
IN2|2||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||(239)582-0395^PRN^PH^^^239^820395^^
</data>
</data_item>
<data_item>
<filename>Sample File 2</filename>
<data>
MSH|^~\&|||||20140123104135||ORU^R01|20140123104135|P|2.3|||AL|
PID|||9999||LAST03^FIRST03^^||19771012|M||||||||U||||
PV1|||||||9999999^SMITH^JOHN^||9999999^JOHN^SMITH^|||||||||||||||||||||||||||||||||||20130806100245|||||||
ORC|RE|||||||||||||||
OBR|||1|UDS^Uroflow|||20130806100245|||||||||5234234^ZHOU^MORGAN^||DR||^TEST HOSPITAL^|||||F||||||||||||||||||||
OBX|1|TX|Uroflow_Max_Flow^Uroflow Max Flow|Max_Flow|2.7|ml/s|||||F|||20130806100245|
OBX|2|TX|Uroflow_Avg_Flow^Uroflow Avg Flow|Avg_Flow|2.1|ml/s|||||F|||20130806100245|
OBX|3|TX|Uroflow_Void_Time^Uroflow Void Time|Void_Time|22.9|s|||||F|||20130806100245|
OBX|4|TX|Uroflow_Flow_Time^Uroflow Flow Time|Flow_Time|9.0|s|||||F|||20130806100245|
OBX|5|TX|Uroflow_T_Peak_Q^Uroflow T Peak Q|T_Peak_Q|8.0|s|||||F|||20130806100245|
OBX|6|TX|Uroflow_Void_Time_String^Uroflow Void Time String|Void_Time_String|22.9|h:mm:ss.S|||||F|||20130806100245|
OBX|7|TX|Uroflow_Flow_Time_String^Uroflow Flow Time String|Flow_Time_String|9.0|h:mm:ss.S|||||F|||20130806100245|
OBX|8|TX|Uroflow_T_Peak_Q_String^Uroflow T Peak Q String|T_Peak_Q_String|8.0|h:mm:ss.S|||||F|||20130806100245|
OBX|9|TX|Uroflow_Void_Vol^Uroflow Void Vol|Void_Vol|19.6|ml|||||F|||20130806100245|
OBX|10|TX|Uroflow_Q_at_2s^Uroflow Q at 2s|Q_at_2s|0.9|ml/s|||||F|||20130806100245|
OBX|11|TX|Uroflow_Q_Accel^Uroflow Q Accel|Q_Accel|0.3|ml/s/s|||||F|||20130806100245|
OBX|12|TX|Uroflow_VOID^Uroflow VOID|VOID|2/20/-||||||F|||20130806100245|
OBX|13|TX|Uroflow_TimeLag^Uroflow TimeLag|TimeLag|0.0|h:mm:ss.S|||||F|||20130806100245|
</data>
</data_item>
</data_list>
</send_item>
</send_list>
</request>
Element Description
Request
The Request element will serve as a wrapper for the entire body of the XML request.
Request > Security
See documentation for the Security node here: Access to Webservices
Request > Security > Send_List
The Send_List element will serve as a wrapper for all lists of data being sent.
Request > Security > Send_List> Send_Item
The Send_Item element will serve as a wrapper for all items being sent. In the event you are sending data for multiple clients (practices), you will have more than one send_item section. Most scenarios though will call for one send_item element.
Request > Security > Send_List> Send_Item > Type
The 'Type' field represent the lab type for this HL7 file. iSalus will provide this to you.
Request > Security > Send_List> Send_Item > Data_List
The data_list element will serve as a wrapper for each data element that is sent for the corresponding Type.
Request > Security > Send_List> Send_Item > Data_List > Data Item
For every file that you plan to send, it will need to be in a Data_Item wrapper. This element expects a 'filename' and 'data' node as well.
Request > Security > Send_List> Send_Item > Data_List > Data Item > FileName
The filename element represent the unique name of the corresponding HL7 file.
Request > Security > Send_List> Send_Item > Data_List > Data Item > Data
The data element will contain the HL7 file for the result.
HL7 Result Specifications
This document assumes the user has a working knowledge of HL7 standards. Below you will find the specifications for the Result HL7 file as it relates to OfficeEMR.
Segment | Field | Value | Notes |
---|---|---|---|
MSH | 2 | Sending Facility | |
MSH | 5 | Client Account ID | |
MSH | 6 | Header Date | |
MSH | 9 | Message Control ID | |
MSH | 10 | Processing ID | |
OBR | 2 | Order Number | |
OBR | 4 | Order Info | OrderID^OrderDescription |
OBR | 7 | Collection Date | |
OBR | 13 | Specimen Collection | |
OBR | 14 | Specimen Date | |
OBR | 15 | Specimen Source | |
OBR | 16 | Ordering Provider | |
OBR | 21 | Order Site | |
OBR | 22 | Order Date | |
OBR | 25 | Order Status | |
OBX | 3 | Result Information | |
OBX | 5 | Result Value | |
OBX | 6 | Result UOM | |
OBX | 7 | Result Range | |
OBX | 8 | Result Flag | |
OBX | 11 | Result Status | |
OBX | 14 | Result Date | |
OBX | 15 | Lab Information | See Article |
ORC | 2 | Manifest ID | |
PID | 2 | Patient Internal ID | |
PID | 3 | Patient External ID | |
PID | 5 | Patient Name | |
PID | 7 | Patient Date of Birth | |
PID | 8 | Patient Gender | |
PID | 11 | Patient Address | |
PID | 13 | Patient Phone | |
PID | 19 | Patient SSN | |
PV1 | 3 | Service Location | |
PV1 | 7 | Service Provider | NPI^Last^First |
HL7 Result - Special Circumstances
Embedded URL
In the event that a URL needs to be provided in a result so that a user can be linked out to an external site, the below rules are applied.
- Links should be located in a NTE record
- We ALWAYS convert from http:// to https://
Example:
NTE|25|L|Executive summary. CHEST 2012; 141 (2) (Suppl): 7S-47S||||
NTE|26|L|Available at:||||
NTE|27|L|http://journal.publications.chestnet.org/data/Journals/CHEST/23443/1412S3.pdf||||
NTE|28|L|||||
Embedded PDF
In the event that a PDF needs to be provided in a result, the data should be sent in the following fashion:
- PDF should be located in an OBX record
- The type (OBX.2) should be ED
- Data should be base-64 encoded
Example:
OBX|3|ST|106^Ethyl Sulfate (ETS)||Detected|ng/mL|500 - 50000|A|||C|||20181002115354000||||||||||
OBX|4|ED|RPDF^Attachment||MTL^PDF^PDF^Base64^JVBERi0xLjQKJdP0zOEKMSAwIG9iago8PAovQ3JlY…..