NIST HL7 Webservice and SoapUI - web-services

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

Related

Using Saved Search in NetSuite SuiteTalk Web services Search Operation

I've created and saved a search in NetSuite. Now I want to use the same search in SuiteTalk web services call. There is no option to set SavedSearchId neither in CustomerSearchBasic nor in CustomerSearch. So I used CustomerSearchAdvanced as below
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:messages_2016_1.platform.webservices.netsuite.com" xmlns:urn1="urn:core_2016_1.platform.webservices.netsuite.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<urn:searchPreferences>
<urn:pageSize>10</urn:pageSize>
</urn:searchPreferences>
<urn:applicationInfo>
<urn:applicationId>some id</urn:applicationId>
</urn:applicationInfo>
<urn:passport>
<!-- With Credentials -->
</urn:passport>
</soapenv:Header>
<soapenv:Body>
<urn:search>
<urn:searchRecord ns7:savedSearchId = "732" xsi:type="ns7:CustomerSearchAdvanced"
xmlns:ns7="urn:relationships_2016_1.lists.webservices.netsuite.com">
</urn:searchRecord>
</urn:search>
</soapenv:Body>
</soapenv:Envelope>
But I am getting this error from NetSuite server
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<platformMsgs:documentInfo xmlns:platformMsgs="urn:messages_2016_1.platform.webservices.netsuite.com">
<platformMsgs:nsId>some id</platformMsgs:nsId>
</platformMsgs:documentInfo>
</soapenv:Header>
<soapenv:Body>
<searchResponse xmlns="urn:messages_2016_1.platform.webservices.netsuite.com">
<platformCore:searchResult xmlns:platformCore="urn:core_2016_1.platform.webservices.netsuite.com">
<platformCore:status isSuccess="false">
<platformCore:statusDetail type="ERROR">
<platformCore:code>UNEXPECTED_ERROR</platformCore:code>
<platformCore:message>An unexpected error occurred. Error ID: iufcwwrkjcqii34kqgag</platformCore:message>
</platformCore:statusDetail>
</platformCore:status>
</platformCore:searchResult>
</searchResponse>
</soapenv:Body>
</soapenv:Envelope>
I am not able to get information about error Id : iufcwwrkjcqii34kqgag
Is it possible to use Saved Search in SuiteTalk Web services? If yes, what call and types should I use?
I am using SOAP UI project created using this wsdl
Below is the successfully working SOAP request and what you need to configure the Netsuite Account, Token, consumer key, nonce, timestamp and signature. Use the saved search id (here -7734) to invoke the saved search
<soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:messages="urn:messages_2020_1.platform.webservices.netsuite.com" xmlns:accountingLists="urn:accounting_2020_1.lists.webservices.netsuite.com" xmlns:employeesLists="urn:employees_2020_1.lists.webservices.netsuite.com" xmlns:employeesTransactionsTypes="urn:types.employees_2020_1.transactions.webservices.netsuite.com" xmlns:demandplanningTransactions="urn:demandplanning_2020_1.transactions.webservices.netsuite.com" xmlns:common="urn:common_2020_1.platform.webservices.netsuite.com" xmlns:commonTypes="urn:types.common_2020_1.platform.webservices.netsuite.com" xmlns:accountingListsTypes="urn:types.accounting_2020_1.lists.webservices.netsuite.com" xmlns:customizationSetup="urn:customization_2020_1.setup.webservices.netsuite.com" xmlns:inventoryTransactionsTypes="urn:types.inventory_2020_1.transactions.webservices.netsuite.com" xmlns:filecabinetDocuments="urn:filecabinet_2020_1.documents.webservices.netsuite.com" xmlns:bankTransactionsTypes="urn:types.bank_2020_1.transactions.webservices.netsuite.com" xmlns:communicationGeneralTypes="urn:types.communication_2020_1.general.webservices.netsuite.com" xmlns:customizationSetupTypes="urn:types.customization_2020_1.setup.webservices.netsuite.com" xmlns:supplychainListsTypes="urn:types.supplychain_2020_1.lists.webservices.netsuite.com" xmlns:core="urn:core_2020_1.platform.webservices.netsuite.com" xmlns:coreTypes="urn:types.core_2020_1.platform.webservices.netsuite.com" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:supplychainLists="urn:supplychain_2020_1.lists.webservices.netsuite.com" xmlns:demandplanningTransactionsTypes="urn:types.demandplanning_2020_1.transactions.webservices.netsuite.com" xmlns:websiteLists="urn:website_2020_1.lists.webservices.netsuite.com" xmlns:salesTransactions="urn:sales_2020_1.transactions.webservices.netsuite.com" xmlns:salesTransactionsTypes="urn:types.sales_2020_1.transactions.webservices.netsuite.com" xmlns:relationshipsLists="urn:relationships_2020_1.lists.webservices.netsuite.com" xmlns:inventoryTransactions="urn:inventory_2020_1.transactions.webservices.netsuite.com" xmlns:employeesListsTypes="urn:types.employees_2020_1.lists.webservices.netsuite.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:customersTransactions="urn:customers_2020_1.transactions.webservices.netsuite.com" xmlns:schedulingActivitiesTypes="urn:types.scheduling_2020_1.activities.webservices.netsuite.com" xmlns:financialTransactions="urn:financial_2020_1.transactions.webservices.netsuite.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:relationshipsListsTypes="urn:types.relationships_2020_1.lists.webservices.netsuite.com" xmlns:employeesTransactions="urn:employees_2020_1.transactions.webservices.netsuite.com" xmlns:faults="urn:faults_2020_1.platform.webservices.netsuite.com" xmlns:marketingListsTypes="urn:types.marketing_2020_1.lists.webservices.netsuite.com" xmlns:communicationGeneral="urn:communication_2020_1.general.webservices.netsuite.com" xmlns:faultsTypes="urn:types.faults_2020_1.platform.webservices.netsuite.com" xmlns:supportListsTypes="urn:types.support_2020_1.lists.webservices.netsuite.com" xmlns:websiteListsTypes="urn:types.website_2020_1.lists.webservices.netsuite.com" xmlns:purchasesTransactions="urn:purchases_2020_1.transactions.webservices.netsuite.com" xmlns:financialTransactionsTypes="urn:types.financial_2020_1.transactions.webservices.netsuite.com" xmlns:schedulingActivities="urn:scheduling_2020_1.activities.webservices.netsuite.com" xmlns:bankTransactions="urn:bank_2020_1.transactions.webservices.netsuite.com" xmlns:marketingLists="urn:marketing_2020_1.lists.webservices.netsuite.com" xmlns:customersTransactionsTypes="urn:types.customers_2020_1.transactions.webservices.netsuite.com" xmlns:purchasesTransactionsTypes="urn:types.purchases_2020_1.transactions.webservices.netsuite.com" xmlns:generalTransactions="urn:general_2020_1.transactions.webservices.netsuite.com" xmlns:filecabinetDocumentsTypes="urn:types.filecabinet_2020_1.documents.webservices.netsuite.com">
<soap:Header>
<urn:tokenPassport xmlns:urn="urn:messages_2020_1.platform.webservices.netsuite.com">
<ns8:account xmlns:ns8="urn:core_2020_1.platform.webservices.netsuite.com">NetSuite Account</ns8:account>
<ns8:consumerKey xmlns:ns8="urn:core_2020_1.platform.webservices.netsuite.com">Consumer Key</ns8:consumerKey>
<ns8:token xmlns:ns8="urn:core_2020_1.platform.webservices.netsuite.com">Token</ns8:token>
<ns8:nonce xmlns:ns8="urn:core_2020_1.platform.webservices.netsuite.com">nonce</ns8:nonce>
<ns8:timestamp xmlns:ns8="urn:core_2020_1.platform.webservices.netsuite.com">timestamp</ns8:timestamp>
<ns8:signature xmlns:ns8="urn:core_2020_1.platform.webservices.netsuite.com" algorithm="HMAC_SHA256">t/WP6f33JePu7rdqtnInwPtJSRIB24RNy3GKhDDpn94=</ns8:signature>
</urn:tokenPassport>
<ns1:preferences xmlns:ns1="urn:messages.platform.webservices.netsuite.com">
<ns2:ignoreReadOnlyFields xmlns:ns2="urn:messages_2020_1.platform.webservices.netsuite.com">true</ns2:ignoreReadOnlyFields>
</ns1:preferences>
<ns3:searchPreferences xmlns:ns3="urn:messages.platform.webservices.netsuite.com">
<ns4:bodyFieldsOnly xmlns:ns4="urn:messages_2020_1.platform.webservices.netsuite.com">true</ns4:bodyFieldsOnly>
<ns5:pageSize xmlns:ns5="urn:messages_2020_1.platform.webservices.netsuite.com">999</ns5:pageSize>
</ns3:searchPreferences>
</soap:Header>
<soap:Body>
<ns24:search xmlns:ns5="urn:filecabinet_2020_1.documents.webservices.netsuite.com" xmlns:ns6="urn:relationships_2020_1.lists.webservices.netsuite.com" xmlns:ns3="urn:common_2020_1.platform.webservices.netsuite.com" xmlns:ns4="urn:communication_2020_1.general.webservices.netsuite.com" xmlns:ns9="urn:sales_2020_1.transactions.webservices.netsuite.com" xmlns:ns7="urn:support_2020_1.lists.webservices.netsuite.com" xmlns:ns8="urn:accounting_2020_1.lists.webservices.netsuite.com" xmlns="urn:core_2020_1.platform.webservices.netsuite.com" xmlns:ns19="urn:supplychain_2020_1.lists.webservices.netsuite.com" xmlns:ns18="urn:demandplanning_2020_1.transactions.webservices.netsuite.com" xmlns:ns2="urn:scheduling_2020_1.activities.webservices.netsuite.com" xmlns:ns17="urn:marketing_2020_1.lists.webservices.netsuite.com" xmlns:ns16="urn:employees_2020_1.transactions.webservices.netsuite.com" xmlns:ns15="urn:website_2020_1.lists.webservices.netsuite.com" xmlns:ns14="urn:employees_2020_1.lists.webservices.netsuite.com" xmlns:ns13="urn:customization_2020_1.setup.webservices.netsuite.com" xmlns:ns24="urn:messages_2020_1.platform.webservices.netsuite.com" xmlns:ns12="urn:financial_2020_1.transactions.webservices.netsuite.com" xmlns:ns23="urn:faults_2020_1.platform.webservices.netsuite.com" xmlns:ns11="urn:customers_2020_1.transactions.webservices.netsuite.com" xmlns:ns22="urn:general_2020_1.transactions.webservices.netsuite.com" xmlns:ns10="urn:purchases_2020_1.transactions.webservices.netsuite.com" xmlns:ns21="urn:inventory_2020_1.transactions.webservices.netsuite.com" xmlns:ns20="urn:bank_2020_1.transactions.webservices.netsuite.com">
<ns24:searchRecord xsi:type="ns13:CustomRecordSearchAdvanced" savedSearchId="7734"/>
</ns24:search>
</soap:Body>
</soap:Envelope>

Oracle Service Bus - Decoding of MIME attachments from MIME Content-Transfer-Encoding='7bit' not supported

I've developed a proxy service in OSB 12c with MTOM enabled
I can send binary files successfully as pdf, doc, ppt or xls, but as soon as I send a text file the following error arises:
REQUEST:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:upl="http://UploadFileService.acme/">
<soap:Header/>
<soap:Body>
<upl:scanDocRequest>
<requestMsg>
<doc>cid:719461305114</doc>
</requestMsg>
</upl:scanDocRequest>
</soap:Body>
</soap:Envelope>
RESPONSE:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<con:fault xmlns:con="http://www.bea.com/wli/sb/context">
<con:errorCode>OSB-382118</con:errorCode>
<con:reason>Decoding of MIME attachments from MIME Content-Transfer-Encoding='7bit' not supported</con:reason>
<con:location>
<con:node>AntivirusPipelinePairNode</con:node>
<con:pipeline>request-a00020f.N696e5fe3.0.15143454755.N8000</con:pipeline>
<con:stage>ReportingIn</con:stage>
<con:path>request-pipeline</con:path>
</con:location>
</con:fault>
</soap:Body>
</soap:Envelope>
Response fails with
Decoding of MIME attachments from MIME Content-Transfer-Encoding='7bit' not supported
Content-type = application/octet-stream instead of plain/text solved my problem

SOAPAction header value must be enclosed in double-quotes through WSO2 ESB

I'm sending a request to a server with "SOAPAction urn:abcd", when I send it directly to the server through SOAP UI I'm able to get the output. but when I send using WSO2 ESB I'm getting
<SOAP:Envelope SOAP:encodingStyle="urn:asdf" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<SOAP:Fault>
<faultcode>SOAP:Client</faultcode>
<faultstring>Client Error</faultstring>
<detail xmlns="asdf">
<message>SOAPAction header value must be enclosed in double-quotes</message>
<errortype>HTTPHeaderError</errortype>
</detail>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope>
What is the problem?
Just give SOAPAction header with two double quotes
e.g.: ""urn:getQuote""

Create a Custom SoapFault error message in the response for camel cxf webservice

I am working on a camel based cxf-webservice. I have to show all types of error messages in my responses which I am doing properly in my service layer. But if a request is invalidated still I was getting a correct response.
For the following type of request
<soapenv:Body>
...
<!--Optional:-->
<prod:CandidateMaximumQuantity/>
<!--Optional:-->
<prod:CandidatePerPageMaximumQuantity>100</prod:CandidatePerPageMaximumQuantity>
<!--Optional:-->
<prod:CandidateDisplayStartSequenceNumber>1</prod:CandidateDisplayStartSequenceNumber>
...
</soapenv:Body>
In the soap validator i am getting invalid decimal value. expected at least one digit.
After writing the following code in my cxf-context I am able to do the input request validation.
But in the response I
<cxf:properties>
<entry key="allowStreaming" value="false" />
<entry key="schema-validation-enabled" value="${isSchemaValidationEnabled}" />
</cxf:properties>
Where isSchemaValidationEnabled = true.
So I am getting the following response in my SOAP UI.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Unmarshalling Error: cvc-datatype-valid.1.2.1: '' is not a valid value for 'integer'.</faultstring>
</soap:Fault>
</soap:Body>
My requirement is to create custom error message, so that I can propagate the SOAP error in to my response.And I can show a format of following message
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<prod:Response ServiceVersionNumber=" " xmlns:prod="****">
<prod:TransactionDetail>
<prod:ApplicationTransactionID>***Request</prod:ApplicationTransactionID>
<prod:ServiceTransactionID/>
<prod:TransactionTimestamp>2015-05-05T05:33:52</prod:TransactionTimestamp>
</prod:TransactionDetail>
<prod:TransactionResult>
<prod:SeverityText>Error</prod:SeverityText>
<prod:ResultID>CM018</prod:ResultID>
<prod:ResultText>No candidates resulted for the given input criteria.</prod:ResultText>
<prod:ResultMessage>
<prod:ResultDescription>List of service interface is not available for the given Service name or Service Version number</prod:ResultDescription>
</prod:ResultMessage>
</prod:TransactionResult>
</prod:Response>
Please someone respond to the query.

Trying to retrieve TFS workitems using ClientService.asmx

I am trying to retrieve TFS workitems using ClientService.asmx using JavaScript and I am able to access the webservice, however when using the SOAP it gives me following error "TF51612: The query does not contain any groups or expressions.
Parameter name: queryXml"
Below is the code that I am using to access the Workitems:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<RequestHeader xmlns="http://schemas.microsoft.com/TeamFoundation/2005/06/WorkItemTracking/ClientServices/03">
<Id></Id>
</RequestHeader>
</soap:Header>
<soap:Body>
<QueryWorkitems xmlns="http://schemas.microsoft.com/TeamFoundation/2005/06/WorkItemTracking/ClientServices/03">
<psQuery>
<queryXml>
<Wiql>SELECT [System.Id], [System.WorkItemType], [System.Title], [System.AssignedTo], [System.State] FROM WorkItems WHERE [System.TeamProject] = #project AND [System.WorkItemType] <> '' AND [System.State] <> '' ORDER BY [System.Id] </Wiql>
</queryXml>
</psQuery>
</QueryWorkitems>
</soap:Body>
</soap:Envelope>
Please let me know what am I doing wrong.
Thanks
Your header SOAP must contais informations about your credential, because your query header's is empty so you are not authenticated
Add this with Soap Extension in your Web service, register in config file
After much pain I figured out how to do a proper request to this service. Here is my full request. Forgive me for the formatiing. I am apparently too dumb to figure out how to do a proper list.
Couple of notes...
*the RequestHeader Id field has to be in the format uuid:GUID
*The psQuery element is not actually in Wiql as other web sources have hinted. (Which is you are receiving the error)
*The FieldType for numeric fields is 288
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://schemas.microsoft.com/TeamFoundation/2005/06/WorkItemTracking/ClientServices/03">
<soapenv:Header>
<ns:RequestHeader>
<!--Optional:-->
<ns:Id>uuid:262c6910-8394-11e3-baa7-0800200c9a67</ns:Id>
</ns:RequestHeader>
</soapenv:Header>
<soapenv:Body>
<ns:QueryWorkitems>
<!--Optional:-->
<ns:psQuery>
<Group GroupOperator="And">
<Expression Column="System.TeamProject" FieldType="16" Operator="equals"><String>ProjectName</String></Expression>
<Expression Column="System.AssignedTo" FieldType="16" Operator="equals"><String>Daniel West</String></Expression>
<Expression Column="System.WorkItemType" FieldType="16" Operator="equals"><String>Anomaly</String></Expression>
<Expression Column="System.State" FieldType="16" Operator="equals"><String>Validate</String></Expression>
</Group>
</ns:psQuery>
<ns:sort>
<!--Zero or more repetitions:-->
<ns:QuerySortOrderEntry>
<!--Optional:-->
<ns:ColumnName>System.AssignedTo</ns:ColumnName>
<ns:Ascending>1</ns:Ascending>
</ns:QuerySortOrderEntry>
</ns:sort>
<ns:useMaster>1</ns:useMaster>
</ns:QueryWorkitems>
</soapenv:Body>
</soapenv:Envelope>