CDCgov / prime-reportstream

ReportStream is a public intermediary tool for delivery of data between different parts of the healthcare ecosystem.
https://reportstream.cdc.gov
Creative Commons Zero v1.0 Universal
73 stars 40 forks source link

Modify SOAP Serializer to meet AR requirements #11138

Closed GilmoreA6 closed 11 months ago

GilmoreA6 commented 1 year ago

Currently the SOAP transport and serializer are designed specifically for PA. We need to modify the SOAP transport and serializer to work with AR requirements while not disrupting the current PA settings.

GilmoreA6 commented 1 year ago

Example SOAP messages for AR:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:stag="staging-header">
   <soap:Header>
      <wsse:Security soap:mustUnderstand="true" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
         <wsu:Timestamp wsu:Id="TS-DB8165A717C57BBCD9169299585149834">
            <wsu:Created>2023-08-25T20:37:31.498Z</wsu:Created>
            <wsu:Expires>2023-08-25T20:38:31.498Z</wsu:Expires>
         </wsu:Timestamp>
      </wsse:Security>
   </soap:Header>
   <soap:Body>
      <stag:SubmitMessage>
         <stag:payload><![CDATA[MSH|^~\&|CDC PRIME - Atlanta^2.16.840.1.114222.4.1.237821^ISO|CovX Labs^05D2210965^CLIA|AR.NBS^2.16.840.1.114222.4.3.3.2.5.3^ISO|AR DOH^2.16.840.1.114222.4.1.141^ISO|20230424171033-0500||ORU^R01^ORU_R01|G23C000C+1+20230424|P|2.5.1|||NE|NE|USA|UNICODE UTF-8|ENG^English^ISO||PHLabReport-NoAck^ELR_Receiver^2.16.840.1.113883.9.11^ISO
SFT|Centers for Disease Control and Prevention|0.2-SNAPSHOT|PRIME ReportStream|0.2-SNAPSHOT||20230420000000-0500
PID|1||37^^^CovX Labs&05D2210965&CLIA^PI^CovX Labs&05D2210965&CLIA||CovidMethod 1^Test^^^^^L||19950303|M||UNK^Unknown^NULLFL^^^^2.5.1|Test Address^^Little Rock^AR^72002^USA||(000)000-0000^PRN^PH^^1^000^0000000|||||||||U^Unknown^HL70189^^^^2.9||||||||N
ORC|RE|G23C000C^CovX Labs^05D2210965^CLIA|G23C000C^CovX Labs^05D2210965^CLIA|||||||||123456789^Provider^Test^^^^^^NPI^U^^^U||(858)500-5998^WPN^PH^^1^858^5005998|20230329231100-0500||||||CovX Labs^L|12225 World Trade Dr Suite A^^San Diego^CA^92128^USA|(858)500-5998^WPN^PH^^1^858^5005998|Test Address 1 Test Address 2^^San Diego^CA^92128^USA
OBR|1|G23C000C^CovX Labs^05D2210965^CLIA|G23C000C^CovX Labs^05D2210965^CLIA|94559-2^SARS-CoV-2 (COVID-19) ORF1ab region [Presence] in Respiratory specimen by NAA with probe detection^LN^^^^2.68|||20230321090000-0500|20230321090000-0500||||||||123456789^Provider^Test^^^^^^NPI^U^^^U|(858)500-5998^WPN^PH^^1^858^5005998|||||20230411172800-0500|||F
OBX|1|CWE|94559-2^SARS-CoV-2 (COVID-19) ORF1ab region [Presence] in Respiratory specimen by NAA with probe detection^LN^^^^2.68||260415000^Not detected^SCT|||N^Normal (applies to non-numeric results)^HL70078^^^^2.7|||F|||20230321090000-0500|05D2210965^CovX Labs^CLIA||LumiraDx SARS-CoV-2 RNA STAR Complete^99ELR^^^^2.68^^LumiraDx SARS-CoV-2 RNA STAR Complete_LumiraDx UK Ltd._EUA||20230411172800-0500||||CovX Labs^L^^^^CLIA&2.16.840.1.113883.4.7&ISO^XX^^^05D2210965|12225 World Trade Dr Suite A^^San Diego^CA^92128^USA
SPM|1|G23C000C&CovX Labs&05D2210965&CLIA^G23C000C&CovX Labs&05D2210965&CLIA||258500001^Nasopharyngeal swab^SCT^^^^2.67||||71836000^Nasopharyngeal structure (body structure)^SCT^^^^2020-09-01|||||||||20230321090000-0500|20230329231200-0500]]></stag:payload>
      </stag:SubmitMessage>
   </soap:Body>
</soap:Envelope>
GilmoreA6 commented 1 year ago

AR uses a self signed certificate for authentication

GilmoreA6 commented 1 year ago

Creating mock SOAP endpoint using SOAPUI to send messages from local environment.

GilmoreA6 commented 1 year ago

SOAP serializer and Soap Transport coding is completed. Remaining work is to allow RS to use client certificate auth.

GilmoreA6 commented 1 year ago

Receiving 500 error "invalid security" when sending via RS application. Output of RS is successful when sent via SOAPUI.

GilmoreA6 commented 1 year ago

Coding Completed and messages successfully received by AR.

GilmoreA6 commented 1 year ago

Got CastleMock to work with AR staging WSDL for new integration tests for SOAP transport