Skip to content

Commit

Permalink
Merge pull request #101 from mechanik-daniel/support-unknown-v2-fields
Browse files Browse the repository at this point in the history
Support unknown v2 fields
  • Loading branch information
mechanik-daniel authored Aug 22, 2024
2 parents 5264746 + 2d1ab74 commit 89f0256
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/helpers/jsonataExpression.ts
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,8 @@ const expressions: InternalJsonataExpression = {
$translateField := function($field, $segDef, $fieldIndex){(
$fieldDef := $segDef.fields[$fieldIndex];
$fieldDesc := $fieldDef.desc;
$fieldDef := $exists($fieldDef)=false ? {'name': $segDef.segmentId & ($fieldIndex + 1)} : $fieldDef;
$fieldDesc := $fieldDef.desc ? $fieldDef.desc : $fieldDef.name;
$fieldDesc := $type($fieldDesc) = 'string' and $startsWith($fieldDesc,'Set ID - ') and $fieldIndex=0 ? 'SetID' : $fieldDesc;
$fieldDatatype := $fieldDef.datatype;
$datatypeDef := $getDatatypeDef($fieldDatatype, $v2version);
Expand Down
2 changes: 2 additions & 0 deletions tests/fhir/inputs/HL7-v2-UnknownFields.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
MSH|^~\&|1^Autolab^3.02|110^some_place|34^HL7_PDF|2400^HL7_PDF|20240726083203||ORU^R01|12345678|P|2.3||0^^||||||5||
OBX|10|TX|0813321000^esccol^^^Escherichia coli^||.|0^""^^^^|^|N|||F|M|104^714^ Micro_lab|20240725154900|9999^Micro|1234567-8^First^last^^^^^||0|0^^^^^|^AutoComm^16^^^^^|9999^Micro^^^^|207^general^^^^||0810109809^genct^^^^||1|^system^routing^^^^^|20240725150000|^^|N|1111111111|2222222222|33333333333|
98 changes: 98 additions & 0 deletions tests/root/hl7.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -534,4 +534,102 @@ describe('HL7 v2 tests', () => {
effectiveDateTime: '2023-04-05T21:50:00Z'
});
}, 15000);

test('HL7 v2 with unknown fields', async () => {
const input = getResourceFileContents('inputs', 'HL7-v2-UnknownFields.txt');
const requestBody = {
input,
contentType: 'x-application/hl7-v2+er7',
fume: '$'
};

const res = await request(globalThis.app).post('/').send(requestBody);

expect(res.body).toStrictEqual({
MSH: {
SegmentDescription: 'Message header segment',
FieldSeparator: '|',
EncodingCharacters: '^~\\&',
SendingApplication: {
NamespaceID: '1',
UniversalID: 'Autolab',
UniversalIDType: '3.02'
},
SendingFacility: {
NamespaceID: '110',
UniversalID: 'some_place'
},
ReceivingApplication: {
NamespaceID: '34',
UniversalID: 'HL7_PDF'
},
ReceivingFacility: {
NamespaceID: '2400',
UniversalID: 'HL7_PDF'
},
DateTimeOfMessage: {
TimeOfAnEvent: '20240726083203'
},
MessageType: {
MessageType: 'ORU',
TriggerEvent: 'R01'
},
MessageControlID: '12345678',
ProcessingID: {
ProcessingID: 'P'
},
VersionID: '2.3',
ContinuationPointer: '0^^',
MSH20: '5'
},
OBX: {
SegmentDescription: 'Observation segment',
SetID: '10',
ValueType: 'TX',
ObservationIdentifier: {
Identifier: '0813321000',
Text: 'esccol',
AlternateText: 'Escherichia coli'
},
ObservationValue: '.',
Units: {
Identifier: '0',
Text: '""'
},
ReferencesRange: '^',
AbnormalFlags: 'N',
ObservResultStatus: 'F',
DateLastObsNormalValues: {
TimeOfAnEvent: 'M'
},
UserDefinedAccessChecks: '104^714^ Micro_lab',
DateTimeOfTheObservation: {
TimeOfAnEvent: '20240725154900'
},
ProducersID: {
Identifier: '9999',
Text: 'Micro'
},
ResponsibleObserver: {
IDNumber: '1234567-8',
FamilyName: 'First',
GivenName: 'last'
},
OBX18: '0',
OBX19: '0^^^^^',
OBX20: '^AutoComm^16^^^^^',
OBX21: '9999^Micro^^^^',
OBX22: '207^general^^^^',
OBX24: '0810109809^genct^^^^',
OBX26: '1',
OBX27: '^system^routing^^^^^',
OBX28: '20240725150000',
OBX29: '^^',
OBX30: 'N',
OBX31: '1111111111',
OBX32: '2222222222',
OBX33: '33333333333'
}
});
});
});

0 comments on commit 89f0256

Please sign in to comment.