Looking for some help using SoapUI with the NIST web service located at http://xreg2.nist.gov:8080/HL7WS/. Loading the site's WSDL from SoapUI produces the following sample service request:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:mes="http://messagevalidation.hl7ws.healthcare.nist.gov/">
<soap:Header/>
<soap:Body>
<mes:validate>
<!--Optional:-->
<arg0>?</arg0>
<!--Optional:-->
<arg1>?</arg1>
<!--Optional:-->
<arg2>?</arg2>
<!--Optional:-->
<arg3>?</arg3>
</mes:validate>
</soap:Body>
</soap:Envelope>
Here's a sample HL7 message:
MSH|^~\&|MY LAB|MYLAB-3|GHH OE|BLDG4|200202150930||VXU^V04^VXU_V04|CNTRL-3456|P|2.5.1 PID|||555-44-4444||EVERYWOMAN^EVE^E^^^^L|JONES|19620320|F|| |3501 ROLLING HILLS CIRCLE^^DAVIE^FL^33328||(206)1234567
Running this message through http://hl7v2-iz-testing.nist.gov/mu-immunization/ produces the following Error:
The line '|3501 ROLLING HILLS CIRCLE^^DAVIE^FL^33328||(206)1234567' is not a valid segment
Here's my SoapUI sample request using the above message wrapped in CDATA:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:mes="http://messagevalidation.hl7ws.healthcare.nist.gov/">
<soap:Header/>
<soap:Body>
<mes:validate><![CDATA[
MSH|^~\&|MY LAB|MYLAB-3|GHH OE|BLDG4|200202150930||VXU^V04^VXU_V04|CNTRL-3456|P|2.5.1
PID|||555-44-4444||EVERYWOMAN^EVE^E^^^^L|JONES|19620320|F||
|3501 ROLLING HILLS CIRCLE^^DAVIE^FL^33328||(206)1234567
]]></mes:validate>
</soap:Body>
</soap:Envelope>
And here's the result from the web service call:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<ns2:validateResponse xmlns:ns2="http://messagevalidation.hl7ws.healthcare.nist.gov/">
<return><![CDATA[<HL7V2MessageValidationReport xmlns="http://www.nist.gov/healthcare/validation/message/hl7/v2/report" xmlns:mes="http://www.nist.gov/healthcare/validation/message">
<HeaderReport>
<mes:ValidationStatus>Incomplete</mes:ValidationStatus>
<mes:ValidationStatusInfo>Message is required.</mes:ValidationStatusInfo>
<mes:ServiceName>NIST HL7V2 Message Validation</mes:ServiceName>
<mes:ServiceProvider>NIST</mes:ServiceProvider>
<mes:ServiceVersion>1.0</mes:ServiceVersion>
<mes:StandardType>HL7 V2</mes:StandardType>
<mes:ValidationType>Automated</mes:ValidationType>
<mes:TestIdentifier/>
<mes:ResultOfTest>Failed</mes:ResultOfTest>
<mes:AffirmCount>0</mes:AffirmCount>
<mes:ErrorCount>1</mes:ErrorCount>
<mes:WarningCount>0</mes:WarningCount>
<mes:IgnoreCount>0</mes:IgnoreCount>
<mes:AlertCount>0</mes:AlertCount>
</HeaderReport>
</HL7V2MessageValidationReport>]]></return>
</ns2:validateResponse>
</soap:Body>
</soap:Envelope>
I've already spent too much time researching and fiddling with message placement in the request and I understand and appreciate the many comments associated with working with HL7 (none positive). Can anybody shed light as to how to format my out-going message? I'm expecting to get back a message similar to the manual message verification, e.g. 'Bushwood' is an invalid line segment.
Use the HL7 V2 Validation Tool just on copies of your original HL7 messages.
Take care not to insert Line Feeds, Form Feeds, Carriage Returns, Escapes or any other control codes into HL7 messages