如何使用C#解析HL7消息

时间:2016-01-29 08:31:52

标签: c# hl7

我正在接收来自系统A'的HL7消息。 例子:

Message-1:

MSH|^~\&|HIS|MedCenter|LIS|MedCenter|20060307110114||ORM^O01|MSGID20060307110114|P|2.3
PID|||12001||Jones^John^^^Mr.||19670824|M|||123 West St.^^Denver^CO^80020^USA|||||||
PV1||O|OP^PAREG^||||2342^Jones^Bob|||OP|||||||||2|||||||||||||||||||||||||20060307110111|
ORC|NW|20060307110114
OBR|1|20060307110114||003038^Urinalysis^L|||20060307110114


Message-2:

MSH|^~\&|A|B|C|D|201402141402||ORM^O01|33987|D|2.5
PID|1|99989392|99989392||UHCMCDO^TWO^^^^||19810101|M|||5678 CANDY CANE LANE^^EUCLID^OH^44117^UNITED STATES||(212)353-6048|(212)323-6078||||99576837||||NonHispan||||||||N
PV1|1|O|320|R|C||49762^Abouassaly^Robert||||||||||||99576837||||||||||Y|||||||||||||||201402141402||||||A49417331
IN1|1|43||MEDICAID-OH: CUYAHOGA COUNTY DEPT OF CHILDREN & FAMILY SERVICES|3955 EUCLID AVE^^CLEVELAND^OH^44115-2505||(216)431-4500|||||||||UHCMCDO^TWO^|S|||||1||||||||||||||123456789001|||||||M
GT1|1||UHCMCDO^TWO^^^||5678 CANDY CANE LANE^^EUCLID^OH^44117|(212) 353-6048||19810101|||S
ORC|NW||||||||20140214140256
OBR|1|36358||GC1^Non GYN - Cytology|R||201403281402||||||||NONGYNC^Non GYN - Cytology|49762^Abouassaly^Robert|||||||||||^^^^^R
DG1|1|I9|V70.0|ROUTINE MEDICAL EXAM - V70.0
OBX|1|TX|PTH_SITE1^Site A|1|left||||||F|||||||
OBX|2|TX|PTH_SPEC1^Specimen A||C-FNA^Fine Needle Aspiration||||||F|||||||

使用C#我如何解析消息?我从系统收到的消息是ORM,ORU,OBX,ORL,QBP,OUL,RSP,ACK,OML,错误/无效消息等类型。

如何检查收到的HL7消息是错误消息还是确认或有效的HL7消息等?如果有效,则需要解析消息并需要显示这些段中存在的字段的值。

1 个答案:

答案 0 :(得分:1)

我们正在使用Merge Healthcare(Mergecom.HL7)的第三方库。自己编写解析器是很多工作,我不推荐它。该库将消息字符串读入C#对象模型,该模型非常有效。见http://www.merge.com/Solutions/Toolkits/Merge-HL7-Toolkit.aspx