Table of Contents | ||||||||
---|---|---|---|---|---|---|---|---|
|
Definition
Health Level 7 (HL7) is an international standard for the transmission of medical data and the name of the organization responsible for maintaining and growing this standard (among other things).
...
Different options to get into that import process:
- Use the the REST Module and its HL7 HL7 resource to post a message using curl or some other web service client.
- Posting an HL7 message to url /remotecommunication/postHl7.form will insert the message into the hl7 in queue.
- username: username to authenticate and save the message with
- password: password to authenticate and save the message with
- source: Name of an HL7Source in the system (A "LOCAL" hl7 source is shipped by default with openmrs)
- hl7Message: The hl7 message to save
- (Note: This was broken in 1.5.0, fixed against in 1.5.1 and 1.6+)
- Using the API, a message can be parsed with Context.getHL7Service().parseHL7String(String) --> processHL7Message(Message);
...
Sample Message:
Code Block |
---|
MSH|^~\&|FORMENTRY|AMRS|HL7LISTENER|AMRS|20050217152845||ORU^R01|AMRS20050217152845|P|2.5|1|||||||||1^AMRS-ELDORET\^[http://schemas.openmrs.org/2006/FormEntry/formId]\^URI PID||1^\^^AMRS|1MT^9^M10||Patient^Jonny^Dee{^}{^}DR|Patient^Momma^Thee^\^MS|20040101000000^Y|M||B|555 Johnson Road^Apt.555^Indianapolis^IN^46202^USA|||||||||||Indianapolis, IN|||||||||||||||||TRIBE CODE PV1|1|O|^^^^^^^^^1^AMRS|2|||1^Mamlin^Joseph^^^^^^^^8^M10^^AMRS|||||||||||||||||||||||||||||||||||||20050217140000|||||||V ORC|RE||||||||20050221130000|1^Enterer^Ima^^^^^AMRS OBR|1|||1238^MEDICAL RECORD OBSERVATIONS^DCT OBX|1|CE|1082^REVIEW OF SYSTEMS, CENTRAL NERVOUS SYSTEM^DCT||207^DEPRESSION^DCT||||||F|||20050217204000 OBX|2|SN|5497^CD4 COUNT^DCT||<^10|cells/mm3|10-1500|L|||F|||20050217204000 OBX|3|NM|5089^WEIGHT (KG)^DCT||25|kg|20-300|L|||F|||20050217204000 OBX|4|TS|1191^HISTORICAL DRUG STOP DATE^DCT||20050101||||||F|||20050217204000 |
...
- MSH|
Message type (message header) and next character is the field separator
No Format ^~\&
Encoding characters
^ ? component separator
~ ? repetition separator
\ ? escape character
& ? subcomponent separator
- FORMENTRY|
Sending Application
...
No Format 1^AMRS-ELDORET^http //schemas.openmrs.org/2006/FormEntry/formId^URI
: Message Profile Identifier (1 = form.form_id)
^ Unique System ID
^ Namespace of assigning authority
^ Universal ID type
EVN (Event) Key (currently not implemented in OpenMRS):
...
Here's an example of what where we're headed for grouped observations (see COMPLETE BLOOD COUNT below). To be valid HL7, the enterer and datetime for data entry either need to move from the ORC to OBR segments or the ORC needs to be repeated for each OBR. --Burke 12:24, 9 August 2006 (EDT)
Code Block |
---|
MSH|^~\&|FORMENTRY|AMRS|HL7LISTENER|AMRS|20060809121931||ORU^R01|formentry-20060809121931|P|2.5|1||||||||2^AMRS-ELDORET^http://schema.openmrs.org/2006/FormEntry/formId^URI
PID|||1^^^AMRS-ELDORET&openmrs.org&DNS^||Patient^John^D||
PV1||O|1^Unknown||||2^Ima Doc (2-6)|||||||||||||||||||||||||||||||||||||20060807|||||||V
ORC|RE||||||||20060807161605|1^Super User
OBR|1|||1238^MEDICAL RECORD OBSERVATIONS^99DCT
OBX|1|NM|5089^WEIGHT (KG)^99DCT||70|||||||||20060807
OBR|2|||1019^COMPLETE BLOOD COUNT^99DCT
OBX|1|NM|1015^HEMATOCRIT^99DCT||1000|||||||||20060807
OBX|2|NM|21^HEMOGLOBIN^99DCT||1000|||||||||20060807
OBX|3|NM|678^WHITE BLOOD CELLS^99DCT||100000|||||||||20060807
OBX|4|NM|729^PLATELETS^99DCT||10|||||||||20060807
OBR|3|||1284^PROBLEM LIST^99DCT
OBX|1|CWE|6042^PROBLEM ADDED^99DCT||2^ANEMIA, HEMOLYSIS^99DCT|||||||||20060807
|
...