-
Notifications
You must be signed in to change notification settings - Fork 4
1. Message
Angus Millar edited this page May 9, 2019
·
3 revisions
Parse an existing message
//Good idea to include the following using statement at the top of you source file.
using PeterPiper.Hl7.V2.Model;
//Parse a whole message into the object model from a string
string MessageExample = "<This would be a HL7 V2 Message>"
var oHL7 = Creator.Message(MessageExample);
//Or, parse a whole message into the object model from a string list
String<List> MyMessageStringList = new String<List>();
MyMessageStringList.Add("<Populate the string list with a segment per item>");
var oHL7 = Creator.Message(MyMessageStringList);
//You can also tell the parser to only parse the MSH segment.
//This can be useful when you need to move through many messages fast
//to find a particular message creation date or Message Control ID.
string MessageExample = "<This would be a HL7 V2 Message>"
var oHL7 = Creator.Message(MessageExample, true);
Create a new message
When creating a new message the bare minimum required by Peter Piper is the Message Type, Message Trigger & Message Version. This will generate a new message with a single MSH segment as follows:
MSH|^~&|||||20160317112000+1000||ORU^R01|4f3c300a-356a-42b4-a4f5-1afa7d4d0e3d|P|2.4|||AL|NE
Note: Peter piper has defaulted the message date & time to datetime.now() and allocated a GUID as the Message Control ID. You may then change anything as desired.
//The bare minimum to required start a new message Version, MessageType, MessageTrigger
var oHL7 = Creator.Message("2.4", "ORU", "R01");
//Or, Assign the Message Control Id on creation of the message
var oHL7 = Creator.Message("2.4", "ORU", "R01", "123456789");
//Or, Assign the Message Control Id and Message Structure on creation of the message
var oHL7 = Creator.Message("2.4", "ORU", "R01", "123456789", "ORU_R01");
//Or, clone an already parsed message to create a new instance of the message
string MessageExample = "<This would be an HL7 V2 Message>"
var oHL7MsgInstance1 = Creator.Message(MessageExample);
var oHL7MsgInstance2 = oHL7Msg1.Clone()
//Or, First create an MSH Segment instance, and then create a message from that segment instance.
//Just remember you must have the minimum data of: Message Type, Message Trigger & Message Version.
var MyMshSegment = Creator.Segment("MSH|^~\&|||||20160317112000+1000||ORU^R01|123456789|P|2.4|||AL|NE");
var oHL7 = Creator.Message(MyMshSegment);
(MSH-10) Message Control ID
string MessageControlID = oHL7.Segment("MSH").Field(10).AsString;
//Alternatively, you could you the MessageControlID property shortcut
string MessageControlID = oHL7.MessageControlID;
(MSH-7) Message creation date & time
DateTimeOffset MessageDateTime = oHL7.Segment("MSH").Field(7).Convert.DateTime.GetDateTimeOffset();
//Alternatively, you could use the MessageCreationDateTime property shortcut
DateTimeOffset MessageCreationDateTime = oHL7.MessageCreationDateTime;
(MSH-9.1 & MSH-9.2) Message type & Message Trigger
string MessageType = oHL7.Segment("MSH").Field(9).Component(1).AsString;
string MessageTrigger = oHL7.Segment("MSH").Field(9).Component(2).AsString;
//Alternatively, you could use the MessageType & MessageTrigger property shortcut
string MessageType = oHL7.MessageType;
string MessageTrigger = oHL7.MessageTrigger;
(MSH-12) Message Version
string MessageVersion = oHL7.Segment("MSH").Field(12).AsString;
//Alternatively, you could use the MessageVersion property shortcut
string MessageVersion = oHL7.MessageVersion;
HL7 V2 message example
MSH|^~\&|SUPER-LIS^2.16.840.1.113883.19.1^ISO|GOODPATH^4321^AUSNATA|Rhubarb-EMR^2.16.840.1.113883.19.4.2^ISO|GOODHOSP^2.16.840.1.113883.19.5^ISO|20150410112000+1000||ORU^R01^ORU_R01|P0000051504102331070|P|2.4|||AL|NE|AUS|8859/1
**PID**|1||2142363^^^GOODHOSP^MR~61405230941^^^AUSHIC^MC~WA123456B^^^AUSDVA^DVG~8003608833357361^^^AUSHIC^NI||PatientSurnameOne^FirstnameOne^MiddleNameOne^SufixOne^PrefixOne^^L~PatientSurnameTwo^FirstnameTwo^MiddleNameTwo^SufixTwo^PrefixTwo^^M||194506241031|M|||Unit 1^111 Nehta Street^Brisbane^^4000^AUS^H~Unit 2^222 NehtaTwo Street^Brisbane^^4000^AUS^B||^PRN^PH^^^^93235615|^WPN^CP^^^^0414778341
PV1|1|O|Ward1^RoomE8^Bed10^GOODHOSP&2.16.840.1.113883.19.5&ISO||||ABCB^DrASurname^DrAttending^^^Dr^^^SUPER-LIS~123456^DrASurname^DrAttending^^^Dr^^^GOODHOSP~2304227F^DrASurname^DrAttending^^^Dr^^^AUSHICPR|HIJK^DrASurname^DrReferring^^^Dr^^^SUPER-LIS~858595^DrASurname^DrReferring^^^Dr^^^GOODHOSP~2929016F^DrASurname^DrReferring^^^Dr^^^AUSHICPR
ORC|RE|112233^RhubarbOrders^2.16.840.1.113883.19.4.1.5^ISO|15P000005-123456^SUPER-LIS^2.16.840.1.113883.19.1.2^ISO|44556677^RhubarbOrdersGroupID^2.16.840.1.113883.19.4.1.4^ISO|CM||||201504100800+1000|||DFTR^DrBSurname^DrOrdering^^^Dr^^^SUPER-LIS~958678^DrBSurname^DrOrdering^^^Dr^^^GOODHOSP~4322581B^DrBSurname^DrOrdering^^^Dr^^^AUSHICPR~8003600000000000^DrBSurname^DrOrdering^^^Dr^^^AUSHIC^^^^^NPI||^WPN^PH^^^^0893412041|201504100730+1000
OBR|1|112233^RhubarbOrders^2.16.840.1.113883.19.4.1.5^ISO|15P000005-123456^SUPER-LIS^2.16.840.1.113883.19.1.2^ISO|26604007^Complete blood count^SCT^FBE^Full Blood Count^SUPER-LIS|||201504100930+1000||||||Patient has a history of severe gout caused by rhubarb.|201504101100+1000||DFTR^DrBSurname^DrOrdering^^^Dr^^^SUPER-LIS~958678^DrBSurname^DrOrdering^^^Dr^^^GOODHOSP~4322581B^DrBSurname^DrOrdering^^^Dr^^^AUSHICPR~8003600000000000^DrBSurname^DrOrdering^^^Dr^^^AUSHIC^^^^^NPI|^WPN^PH^^^^0893412041|||CP=N,DR=4322581B||201504101115+1000||HM|F||^^^201504100800+1000^^RT|2304227F^DrCopyASurname^DrCopyToA^^^Dr^^^AUSHICPR~0813266H^DrCopyBSurname^DrCopyToB^^^Dr^^^AUSHICPR~4628361B^DrCopyCSurname^DrCopyToC^^^Dr^^^AUSHICPR||||DRPRIH&DrSurname&PrincipalResultInterpreterHaem&&&DR&&&SUPER-LIS
OBX|1|NM|718-7^Hemoglobin^LN^HB^Haemoglobin^GOODPATH||145|g/L^^ISO+|130-180||||F|||201504100930+1000|""|RO56^SurnameResponsibleObserver^Givenname^^^^^^SUPER-LIS
OBX|2|NM|789-8^Erythrocytes^LN^RCC^Red Cell Count^GOODPATH||5.30|x10\S\12/L^^ISO+|4.50-6.50||||F|||201504100930+1000|""|RO56^SurnameResponsibleObserver^Givenname^^^^^^SUPER-LIS
OBX|3|NM|4544-3^Hematocrit^LN^HCT^HCT^GOODPATH||0.43|L/L^^ISO+|0.40-0.54||||F|||201504100930+1000|""|RO56^SurnameResponsibleObserver^Givenname^^^^^^SUPER-LIS
OBX|4|NM|^^^MCV^MCV^GOODPATH||81|fL^^ISO+|80-96||||F|||201504100930+1000|""|RO56^SurnameResponsibleObserver^Givenname^^^^^^SUPER-LIS
OBX|5|NM|^^^MCH^MCH^GOODPATH||27.4|pg^^ISO+|24.0-32.0||||F|||201504100930+1000|""|RO56^SurnameResponsibleObserver^Givenname^^^^^^SUPER-LIS
OBX|6|NM|^^^MCHC^MCHC^GOODPATH||338|g/L^^ISO+|320-360||||F|||201504100930+1000|""|RO56^SurnameResponsibleObserver^Givenname^^^^^^SUPER-LIS
OBX|7|NM|^^^PLAT^Platelet^GOODPATH||198|x10\S\9/L^^ISO+|150-400||||F|||201504100930+1000|""|RO56^SurnameResponsibleObserver^Givenname^^^^^^SUPER-LIS
OBX|8|NM|^^^WCC^White Cell Count^GOODPATH||12.1|x10\S\9/L^^ISO+|4.0-11.0|H|||F|||201504100930+1000|""|RO56^SurnameResponsibleObserver^Givenname^^^^^^SUPER-LIS
OBX|9|NM|^^^NEUTS^Neutrophils^GOODPATH||9.3|x10\S\9/L^^ISO+|2.0-7.5|H|||F|||201504100930+1000|""|RO56^SurnameResponsibleObserver^Givenname^^^^^^SUPER-LIS
OBX|10|NM|^^^LYMPHOS^Lymphocytes^GOODPATH||2.1|x10\S\9/L^^ISO+|1.0-4.0||||F|||201504100930+1000|""|RO56^SurnameResponsibleObserver^Givenname^^^^^^SUPER-LIS
OBX|11|NM|^^^MONOS^Monocytes^GOODPATH||0.7|x10\S\9/L^^ISO+|0.1-0.8||||F|||201504100930+1000|""|RO56^SurnameResponsibleObserver^Givenname^^^^^^SUPER-LIS
OBX|12|NM|^^^EOS^Eosinophils^GOODPATH||0.0|x10\S\9/L^^ISO+|0.0-0.4||||F|||201504100930+1000|""|RO56^SurnameResponsibleObserver^Givenname^^^^^^SUPER-LIS
OBX|13|NM|^^^BASOS^Basophils^GOODPATH||0.0|x10\S\9/L^^ISO+|0.0-0.2||||F|||201504100930+1000|""|RO56^SurnameResponsibleObserver^Givenname^^^^^^SUPER-LIS
OBX|14|TX|TXT^TXT^AUSPDI^FBE^Full Blood Count^GOODPATH||CUMULATIVE REPORT~Req No: P000001 P000002 P000003 P000004 P000005~ Date: 29/06/13 30/06/13 01/07/13 16/07/13 10/04/15~ Time: 07:37 08:23 08:20 19:20 23:30 Units Ref Range~------------------------------------------------------------------------------~BLOOD COUNT~Hb 138 141 139 135 145 g/L 130-180~WCC 7.9 7.5 7.5 9.5 12.1H x10\S\9/L 4.0-11.0~Plat 280 299 272 186 198 x10\S\9/L 150-400~MCV 87 88 86 86 81 fL 80-96~RCC 4.87 5.02 4.97 4.79 5.30 x10\S\12/L 4.50-6.50~HCT 0.42 0.44 0.43 0.41 0.43 L/L 0.40-0.54~MCH 28.3 28.1 28.0 28.2 27.4 pg 24.0-32.0~MCHC 327 320 326 328 338 g/L 320-360~RDW 13.8 13.9 14.0 14.3H 15.5H % 11.0-14.0~MPV 10.7 10.8H 10.7 11.0H 11.2H fL 6.4-10.7~Differential~Neut 3.9 3.6 3.7 4.6 9.3H x10\S\9/L 2.0-7.5~Lymph 2.9 2.9 2.7 3.6 2.1 x10\S\9/L 1.0-4.0~Mono 0.7 0.5 0.6 0.7 0.7 x10\S\9/L 0.1-0.8~Eos 0.5H 0.4 0.4 0.6H 0.0 x10\S\9/L 0.0-0.4~Baso 0.0 0.0 0.0 0.0 0.0 x10\S\9/L 0.0-0.2|||A|||F|||201504100930+1000|""|RO56^SurnameResponsibleObserver^Givenname^^^^^^SUPER-LIS