XDS Transactions

From IHEWiki

(Difference between revisions)
Jump to: navigation, search
(Provide and Register Document Set-b)
(Retrieve Document Set)
 
Line 26: Line 26:
This XDS.b transaction uses
This XDS.b transaction uses
-
* SOAP request and response
+
* MTOM/XOP encoding of the overall message for request and response
* Can request multiple documents from same repository (when used in XDS profile and sent to a Document Repository actor)
* Can request multiple documents from same repository (when used in XDS profile and sent to a Document Repository actor)
-
* MTOM or MTOM/XOP encoding for RetrieveDocumentSetResponse message
 
== Registry Stored Query ==
== Registry Stored Query ==

Latest revision as of 23:26, 24 November 2009

Contents

Provide and Register Document Set

This transaction uses

  • SwA (Soap with Attachments) to convey both metadata and attached documents from the Document Source actor to the Document Repository actor
  • ebRIM version 2.1 for coding the metadata

Register Document Set

This transaction uses

  • SOAP to convey metadata from the Document Repository actor to the Document Registry actor
  • ebRIM version 2.1 for coding the metadata

Provide and Register Document Set-b

This transaction uses

  • MTOM/XOP to convey both metadata and attached documents from the Document Source actor to the Document Repository actor
  • ebRIM version 3.0 to code the metadata

Register Document Set-b

This transaction uses

  • SOAP to convey metadata from the Document Repository actor to the Document Registry actor
  • ebRIM version 3.0 for coding the metadata

Retrieve Document Set

This XDS.b transaction uses

  • MTOM/XOP encoding of the overall message for request and response
  • Can request multiple documents from same repository (when used in XDS profile and sent to a Document Repository actor)

Registry Stored Query

This transaction is the same for XDS.a and XDS.b.


Some typical responses are:

Query Response for ObjectRefs

    <query:AdhocQueryResponse xmlns:query="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0" status="urn:oasis:names:tc:
ebxml-regrep:ResponseStatusType:Success">
     <rim:RegistryObjectList xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0">
      <rim:ObjectRef id="urn:uuid:e66e0376-3a2f-4776-bd15-e4fbd860f5cf" home="" />
      <rim:ObjectRef id="urn:uuid:9c60a57d-c4fe-487b-8523-ed11f0a4a128" home="" />
      <rim:ObjectRef id="urn:uuid:8acd0982-d9a3-4495-8db9-ef64971d3659" home="" />
      <rim:ObjectRef id="urn:uuid:c61f7643-4405-4654-ad46-cd3a7e229cf1" home="" />
      <rim:ObjectRef id="urn:uuid:29e7a1c5-ca26-4e9b-9463-ac4fa7a70292" home="" />
     </rim:RegistryObjectList>
    </query:AdhocQueryResponse>

Query Response for LeafClass

    <query:AdhocQueryResponse xmlns:query="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0" status="urn:oasis:names:tc:
ebxml-regrep:ResponseStatusType:Success">
     <rim:RegistryObjectList xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0">
      <rim:ExtrinsicObject id="urn:uuid:e66e0376-3a2f-4776-bd15-e4fbd860f5cf" objectType="urn:uuid:7edca82f-054d-47f2
-a032-9b2a5b5186c1" status="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved" mimeType="text/xml" isOpaque="false"
 home="" lid="urn:uuid:e66e0376-3a2f-4776-bd15-e4fbd860f5cf">
       <rim:Slot name="creationTime">
        <rim:ValueList>
         <rim:Value>20061224</rim:Value>
        </rim:ValueList>
       </rim:Slot>
       <rim:Slot name="hash">
        <rim:ValueList>
         <rim:Value>3j456da</rim:Value>
        </rim:ValueList>
       </rim:Slot>
       <rim:Slot name="languageCode">
        <rim:ValueList>
         <rim:Value>en-us</rim:Value>
        </rim:ValueList>
       </rim:Slot>

...

     </rim:RegistryObjectList>
    </query:AdhocQueryResponse>

Query response with errors

    <query:AdhocQueryResponse xmlns:query="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0" status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Failure">
     <rs:RegistryErrorList xmlns:rs="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0">
      <rs:RegistryError codeContext="Required parameter, $XDSDocumentEntryPatientId, not present in query request" errorCode="XDSRegistryError" location="StoredQuery.java" severity="Error" />
      <rs:RegistryError codeContext="Metadata Error: Metadata Validation error present" errorCode="XDSRegistryError" location="Exception thrown: gov.nist.registry.common2.exception.MetadataValidationException
Metadata Validation error presen
t
gov.nist.registry.common2.exception.MetadataValidationException: Metadata Validation error present
	at gov.nist.registry.ws.sq.FindDocuments.<init>(FindDocuments.java:52)
	at gov.nist.registry.ws.AdhocQueryRequest.stored
_query(AdhocQueryRequest.java:217)
	at gov.nist.registry.ws.AdhocQueryRequest.AdhocQueryRequestInternal(AdhocQueryRequest.java:152)
	at gov.nist.registry.ws.AdhocQueryRequest.adhocQueryRequest(AdhocQueryRequest.java:79)
	
at gov.nist.registry.ws.serviceclasses.RegistryB.AdhocQueryRequest(RegistryB.java:52)
	at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorIm
pl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at gov.nist.registry.ws.receivers.AbstractXDSRawXMLINoutMessageReceiver.invokeBusinessLogic(AbstractXDSRawXMLINoutMessageReceiver.java:96)
	at org.apache.a
xis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
	at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96)
	at org.apache.axis2.engine.Axi
sEngine.receive(AxisEngine.java:145)
	at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
	at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:120)
&#x9
;at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:26
9)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
	at org.apache.catalina.core.Standar
dContextValve.invoke(StandardContextValve.java:174)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at o
rg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor
.java:870)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
	at java.lang.Thread.run(Thread.java:613)

" severity="Error" />
     </rs:RegistryErrorList>
     <rim:RegistryObjectList xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" />
    </query:AdhocQueryResponse>

Reporting Errors

All XDS transactions, except Retrieve Document, report errors using the same RegistryErrorList XML structure. A version 2.1 example of this structure, shown inside a RegistryResponse message, is:

<RegistryResponse  
         xmlns="urn:oasis:names:tc:ebxml-regrep:registry:xsd:2.1"
         status="Failure">
     <RegistryErrorList>
      <RegistryError 
                severity="Error"
                errorCode="XDSSqlError"
                codeContext="SqlRepair: XDS does not allow SQL queries using SELECT *, must be SELECT something.id"  
                location="Stack trace or other location information goes here"  />
     </RegistryErrorList>
</RegistryResponse>

A version 3.0 example is:

<RegistryResponse  
         xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0"  
         status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Failure">
     <RegistryErrorList>
      <RegistryError 
                severity="urn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Error"
                errorCode="XDSPatientIdDoesNotMatch"
                codeContext="Patient ID in Document (Document1) does not match Submission Set"  
                location="Stack trace or other location information goes here"  />
     </RegistryErrorList>
</RegistryResponse>

This material is covered in section 4.1.13 Error Reporting of Volume 2 of the Technical Framework.


Some things to note:

  • The RegistryErrorList can contain multiple RegistryError elements (it must contain at least 1).
  • A single logical error may generate multiple RegistryError elements. This depends on the implementation and is not controlled by the profile.
  • The use of the PartialSuccess status is available to implementers of the Cross-Community Access (XCA) profile only. It is not to be used within the context of XDS. A Change Proposal has been initiated to make this more obvious. It is specified indirectly in tables 4.1-12 through 4.1-15.
Personal tools