NHSDigital / integration-adaptor-lab-results

Integration Adaptor to simplify processing of Pathology and Screening results
Apache License 2.0
0 stars 6 forks source link

No test status code for 'SR' #130

Closed ejudgemeddbase closed 3 years ago

ejudgemeddbase commented 3 years ago

The following request gives the above error:

UNA:+.? 'UNB+UNOC:3+000000073300001:80+000000147500001:80+030618:0841+1111++MEDRPT'UNH+1+MEDRPT:0:1:RT:NHS003'BGM+LSR'DTM+137:200307071810:203'S01+01'NAD+MR+G8711100:900++JM TAYLOR'SPR+PRO'S01+01'NAD+MR+B86658:901'SPR+ORG'S01+01'NAD+PO+G8711100:900++JM TAYLOR'SPR+PRO'S01+01'NAD+SLA+++Leeds General Infirmary'SPR+ORG'S01+01'NAD+SLA+++LTH Haematology, Biochem & Immunol'SPR+DPT'S02+02'GIS+N'RFF+SRI:CHL1027910307071706C,03.2731949001'STS++UN'DTM+ISR:200307071810:203'S06+06'RFF+SSI:ZLH0346063'S07+07'PNA+PAT++++SU:Simpson+FO:Bartholemew'DTM+329:19280608:102'PDI+2'S16+16'SEQ++1'SPC+TSP+:::Serum'RFF+STI:C,03.2731949.Q'DTM+SCO:20030702:102'DTM+SRI:200307030944:203'GIS+N'INV+MQ+44N..:911::Serum protein electrophoresis'RSL+++++PA'STS++SR'FTX+RIT+++Normal'RFF+ASL:1'GIS+N'INV+MQ+:::Se Immunoglobulins'SEQ++1'STS++SR'RFF+ASL:1'GIS+N'INV+MQ+43J3.:911::IgG'RSL+NV+10.2++:::g/L'STS++SR'RFF+ARL:1'S20+20'RND+U+6.0+16.0'GIS+N'INV+MQ+43J5.:911::IgA'RSL+NV+2.69++:::g/L'STS++SR'RFF+ARL:1'S20+20'RND+U+0.80+4.00'GIS+N'INV+MQ+43J4.:911::IgM'RSL+NV+1.21++:::g/L'STS++SR'RFF+ARL:1'S20+20'RND+U+0.50+2.00'UNT+68+1'UNZ+1+1111'

ejudgemeddbase commented 3 years ago

RETEST 1

TEST STEPS TO REPRODUCE ISSUE I re-ran the request Uncoded.edi and checked the logs.

ACTUAL RESULT The request fails with error: 2021-06-30 14:23:54.637 | INFO | org.springframework.jms.JmsListenerEndpointContainer#1-1 | u.n.d.n.l.r.i.q.MeshInboundQueueService | 76CD37C296C145879E9EB5756F321718 | Processing MeshMessageId=20210630142253063199_E0CC85 with MeshWorkflowId=PATH_MEDRPT_V3 2021-06-30 14:23:54.638 | INFO | org.springframework.jms.JmsListenerEndpointContainer#1-1 | u.n.d.n.l.r.i.InboundMessageHandler | 76CD37C296C145879E9EB5756F321718 | Translating EDIFACT interchange from Sender=000000073300001 to Recipient=000000147500001 with RIS=1111 containing 1 messages 2021-06-30 14:23:54.639 | ERROR | org.springframework.jms.JmsListenerEndpointContainer#1-1 | u.n.d.n.l.r.i.InboundMessageHandler | 76CD37C296C145879E9EB5756F321718 | Error converting Message to FHIR java.lang.IllegalArgumentException: No test status code for 'SR' at uk.nhs.digital.nhsconnect.lab.results.model.enums.TestStatusCode.lambda$fromCode$1(TestStatusCode.java:28) at uk.nhs.digital.nhsconnect.lab.results.model.enums.TestStatusCode$$Lambda$1419/0x0000000034920260.get(Unknown Source) at java.base/java.util.Optional.orElseThrow(Unknown Source) at uk.nhs.digital.nhsconnect.lab.results.model.enums.TestStatusCode.fromCode(TestStatusCode.java:28) at uk.nhs.digital.nhsconnect.lab.results.model.edifact.TestStatus.fromString(TestStatus.java:34) at uk.nhs.digital.nhsconnect.lab.results.model.edifact.segmentgroup.LabResult$$Lambda$1314/0x00000000340cc230.apply(Unknown Source) at java.base/java.util.Optional.map(Unknown Source) at uk.nhs.digital.nhsconnect.lab.results.model.edifact.segmentgroup.LabResult.getTestStatus(LabResult.java:64) at uk.nhs.digital.nhsconnect.lab.results.translator.mapper.ObservationMapper$InternalMapper.mapStatus(ObservationMapper.java:172) at uk.nhs.digital.nhsconnect.lab.results.translator.mapper.ObservationMapper$InternalMapper.mapContents(ObservationMapper.java:151) at uk.nhs.digital.nhsconnect.lab.results.translator.mapper.ObservationMapper$InternalMapper.addTestGroup(ObservationMapper.java:116) at uk.nhs.digital.nhsconnect.lab.results.translator.mapper.ObservationMapper$InternalMapper$$Lambda$1312/0x0000000034106490.accept(Unknown Source) at java.base/java.util.ArrayList.forEach(Unknown Source) at uk.nhs.digital.nhsconnect.lab.results.translator.mapper.ObservationMapper$InternalMapper.map(ObservationMapper.java:95) at uk.nhs.digital.nhsconnect.lab.results.translator.mapper.ObservationMapper.mapToObservations(ObservationMapper.java:71) at uk.nhs.digital.nhsconnect.lab.results.translator.mapper.MedicalReportMapper.mapToMedicalReport(MedicalReportMapper.java:33) at uk.nhs.digital.nhsconnect.lab.results.inbound.fhir.EdifactToFhirService.convertToFhir(EdifactToFhirService.java:20) at uk.nhs.digital.nhsconnect.lab.results.inbound.InboundMessageHandler.convertToFhir(InboundMessageHandler.java:107) at uk.nhs.digital.nhsconnect.lab.results.inbound.InboundMessageHandler$$Lambda$1185/0x000000003410b830.apply(Unknown Source) at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source) at uk.nhs.digital.nhsconnect.lab.results.inbound.InboundMessageHandler.getFhirDataToSend(InboundMessageHandler.java:102) at uk.nhs.digital.nhsconnect.lab.results.inbound.InboundMessageHandler.handle(InboundMessageHandler.java:61) at uk.nhs.digital.nhsconnect.lab.results.inbound.queue.MeshInboundQueueService.receive(MeshInboundQueueService.java:56) at jdk.internal.reflect.GeneratedMethodAccessor156.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

Retest 1 FAILED

matthewdoreilly commented 3 years ago

STS++SR doesn't look to be a valid segment for segment group 18 in the provided EDIFACT data.

STS in SG18 will map to an ObservationStatus in FHIR, which should be one of the values in this table, http://hl7.org/fhir/stu3/codesystem-observation-status.html#4.2.12.388.2 (i.e., RE, PR, FI, AM, CO, CA, EN, UN)

If you try passing in a value not from that table, you’ll get a “org.hl7.fhir.exceptions.FHIRException: Unknown ObservationStatus code” error.

If you update the code in STS++SR to one mentioned above it should process successfully.