##class(EnsLib.HL7.Schema).GetFieldNameFromNumber() Bug
Hello community!
I found a bug or may be I missed something.
I want to get field name in "PID" segment by field number in HL7 Message using following object script expession:
set nl = $CHAR(10) set str = "MSH|^~\&|MIHIN PATIENT GEN|1.2.3.4.5.9.99.999.9999.1004||2.16.840.1.113883.3.1481|20200103000000+0000||ADT^A01^ADT_A01|1092|P|2.6|1091|||||||||Windward General Hospital|"_nl _ "EVN||20200110000000+0000|||||1.2.3.4.5.9.99.999.9999.1004"_nl _ "PID|1|3170|44c8a6bba5c743538e476a813256959b^^^^CKS~000003170^^^^SS||Santana^Pearl||19900609|F||2054-5^Black or African American^HL70005|364 NE Oak Circle^^Trenton^MI^48183||||||||000003170|||N^Not Hispanic or Latino^HL70189|||||||20200110000000+0000|N"_nl _ "PD1|||Windward General Hospital^^^^^^^^^1.2.3.4.5.9.99.999.9999.1004|9999992221^Johnston^Karl^^^^^^^^^^NPI^^^^^^^^MD"_nl _ "PV1|1|I|^^67^1.2.3.4.5.9.99.999.9999.1004||||9999992221^Johnston^Karl^^^^^^^^^^NPI||||||||||||17a5e3aa59a34ad5af017998278a5eb5||||||||||||||||||&HOME^20200110000000+0000|||||||20200103000000DG1|1||Z34.90^Normal pregnancy^I10||20200103000000+0000|F|^Become_Pregnant"_nl _ "IN1|1|1772^STATE HEALTH PLAN|1027|MEDICAID||||||||||||Santana^Pearl^Gladys|||364 NE Oak Circle^^Trenton^MI^48183"_nl set msg = ##class(EnsLib.HL7.Message).ImportFromString(str) set msg.DocType = "2.5:ADT_A01"
set segment = msg.getSegmentByIndex(3) set fieldName = ##class(EnsLib.HL7.Schema).GetFieldNameFromNumber("2.5", segment.Name, "3(2).1") set fieldValue = segment.GetValueAt("3(2).1") write fieldName // output is null write fieldValue // output is "000003170"
The field number is "3(2).1" and the field name that I want to find is "patientIdentifierList(2).IdNumber", but the result is null;
At the same time when I want to find the value of this field by the number using method of class "<EnsLib.HL7.Segment> .GetValueAt("3(2).1")" it works correct.
Do you have an idea what the problem is?
Thank You!
Product version: IRIS 2020.1