Can you help meHow to Convert HL7 input message into JSON Object Output Message
Can you help meHow to Convert HL7 input message into JSON Object Output Message.In conversion can you please tell how to use convert a input HL7 message into Dynamic Object Output
Product version: Ensemble 2018.1
$ZV: Cache for Windows (x86-64) 2018.1.1 (Build 312_1_18937U) Fri Apr 26 2019 17:58:36 EDT
Hi @Smythe Smythee
The best way i guess is to have the FHIR package installed and use the OOB transformations.
an alternative way would be something as follows;
ClassMethod TestHL7ToJson() { set hl7FilePath = "C:\Intersystems\file.hl7" #dim hl7Msg As EnsLib.HL7.Message set hl7Msg=##class(EnsLib.HL7.Message).ImportFromFile(hl7FilePath, .sc) set tMSH=hl7Msg.getSegmentByIndex(1) set tName=tMSH.GetValueAt(9,":_~\&") set hl7Msg.DocType = "2.5:"_tName //Anticipating the PID element in line 3 set tPID = hl7Msg.getSegmentByIndex(3) set jsonObj= {} do jsonObj.%Set("PatientID",tPID.GetValueAt(2)) do jsonObj.%Set("PatientIdentifierList",tPID.GetValueAt(3)) do jsonObj.%Set("AlternatePatientIDPID",tPID.GetValueAt(4)) do jsonObj.%Set("PatientName",tPID.GetValueAt(5)) do jsonObj.%Set("MothersMaidenName",tPID.GetValueAt(6)) do jsonObj.%Set("DateTimeofBirth",tPID.GetValueAt(7)) do jsonObj.%Set("AdministrativeSex",tPID.GetValueAt(8)) do jsonObj.%Set("PatientAlias",tPID.GetValueAt(9)) do jsonObj.%Set("Race",tPID.GetValueAt(10)) do jsonObj.%Set("PatientAddress",tPID.GetValueAt(11)) do jsonObj.%Set("CountyCode",tPID.GetValueAt(12)) do jsonObj.%Set("PhoneNumberBusiness",tPID.GetValueAt(14)) do jsonObj.%Set("PrimaryLanguage",tPID.GetValueAt(15)) do jsonObj.%Set("MaritalStatus",tPID.GetValueAt(16)) do jsonObj.%Set("Religion",tPID.GetValueAt(17)) do jsonObj.%Set("PatientAccountNumber",tPID.GetValueAt(18)) do jsonObj.%Set("SSNNumberPatient",tPID.GetValueAt(19)) do jsonObj.%Set("DriversLicenseNumberPatient",tPID.GetValueAt(20)) do jsonObj.%Set("MothersIdentifier",tPID.GetValueAt(21)) do jsonObj.%Set("EthnicGroup",tPID.GetValueAt(22)) do jsonObj.%Set("BirthPlace",tPID.GetValueAt(23)) do jsonObj.%Set("MultipleBirthIndicator",tPID.GetValueAt(24)) do jsonObj.%Set("BirthOrder",tPID.GetValueAt(25)) do jsonObj.%Set("Citizenship",tPID.GetValueAt(26)) W jsonObj.%ToJSON() }
the above code generates a json for PID as follows;
{ "PatientID": "1111111^^^TEST^MR", "PatientIdentifierList": "6910315054084^^M10^RSAID^GOV", "AlternatePatientIDPID": "", "PatientName": "Geoe^Schz^^MR^^^^^^^^^^.", "MothersMaidenName": "", "DateTimeofBirth": "19330722", "AdministrativeSex": "M", "PatientAlias": "", "Race": "", "PatientAddress": "GRASRK^CAPE TOWN^AA^^0001", "CountyCode": "", "PhoneNumberBusiness": "0", "PrimaryLanguage": "E^English", "MaritalStatus": "", "Religion": "", "PatientAccountNumber": "", "SSNNumberPatient": "", "DriversLicenseNumberPatient": "", "MothersIdentifier": "", "EthnicGroup": "", "BirthPlace": "", "MultipleBirthIndicator": "N", "BirthOrder": "", "Citizenship": "" }