Я новичок в Nhapi и использую его для разбора сообщения HL7.Nhapi Parsing Issue
Проблема, с которой я столкнулся, - это синтаксический анализ сообщения ADT^A03, но всегда я получаю сегмент PV1 как null.
Я прилагаю Образец сообщения и мой код.
Пример сообщения:
MSH|^~\&|MMM|MMM|||201412081017||ADT^A03|2014342370374441||2.3
EVN|A03|201412081017|201412080001||73540
PID|1||000000004449^^^PHS^MR|491662^^^MMM|||19500225|F||1||||||D|CAT|78599180^^M10^MMM^PN|
PD1||1|||||NNN|||||
NK1|0001|NONE AS PER PT^NONE AS PER PT^^^^^L|19||||JUCON||||||||||||||||||||||||||||||
NK1|0002|NONE^^^^^^L|||||PTEMP|||UNEMPLOYED|||||||||||||||||||||||||||
PV1|1|O||R|||001211^RAM SHYAM|001211^RAM SHYAM||SDO||||OU|||001211^RAM SHYAM|U||H^20141208||||||||||||||||AHR|||PNKN|||||201412080625|201412081015
PV2||||||||201412080001|||||||N|||||1||||OD|||||||||||||
GT1|0001||SHYAM^RAM|||||19500225|F|P|01|00000000||||NONE|||||||||||||||||||||||||||||||||||NONE||||
IN1||00000000|^NONE^^^^^^^^L||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||(000)2584-33695|||||||NONE^L||
Код:
PipeParser parser = new PipeParser();
IMessage messageParsed = parser.Parse(message);
ADT_A03 a03 = messageParsed as ADT_A03;
PV1Segment pv1Segment = new PV1Segment();
pv1Segment.Set_Id_PV1_1_1 = a03.PV1.SetIDPatientVisit.Value;
pv1Segment.Patient_Class_2_1 = a03.PV1.PatientClass.Value;
pv1Segment.Assigned_Patient_Location_3_1 = a03.PV1.AssignedPatientLocation.PointOfCare.Value;
pv1Segment.Admission_Type_4_1 = a03.PV1.AdmissionType.Value;
pv1Segment.Pre_Admit_Number_5_1 = a03.PV1.PreadmitNumber.ID.Value;
pv1Segment.Prior_Patient_Location_6_1 = a03.PV1.PriorPatientLocation.PointOfCare.Value;
pv1Segment.Attending_Doctor_Id_7_1 = a03.PV1.AttendingDoctor.IDNumber.Value;
pv1Segment.Attending_Doctor_Name_7_2 = a03.PV1.AttendingDoctor.FamilyName.Value;
pv1Segment.Referring_Doctor_Id_8_1 = a03.PV1.ReferringDoctor.IDNumber.Value;
pv1Segment.Referring_Doctor_Name_8_2 = a03.PV1.ReferringDoctor.FamilyName.Value;
Thanks Duane Edwards, просто добавление, есть ли способ обработать эту специфическую структуру сообщения HL7. – Himanshu
messageParsed1.GetStructure ("PV1"); Может ли этот метод решить проблему? – Himanshu
Уверен, но вам нужно расширить синтаксический анализатор, чтобы распознать этот новый тип сообщения. Парсеру нужно знать, какой порядок сегментов, какие типы полей и т. Д. Разбирать сначала, потому что, как только он встречается с чем-то, он не распознает его, он просто прекратит работу, как показала оригинальная проблема. Обратитесь к этому тест-класс о том, как вы бы разобрать тип пользовательского: https://github.com/duaneedwards/nHapi/blob/master/NHapi20/NHapi.NUnit/CustomZSegmentTest.cs И этот проект содержит обновленный Требуемые определения для сообщений/сегментов: https://github.com/duaneedwards/nHapi/tree/master/NHapi20/NHapi.Model.V22_ZSegments –