Date post: | 27-Mar-2015 |
Category: |
Documents |
Upload: | gavin-lindsey |
View: | 217 times |
Download: | 3 times |
Async XDS.b
Key Use Cases• Scenario 1: Async XDS allows for scenarios where actors are not
simultaneously connected (off-line) making store-and-forward scenarios possible through the use of intermediaries.
• Scenario 2 (on demand query): In the integrated document source/document repository the XDS document is retrieved from off-line storage and persisted. Allowing for Async responses reduces the time that the document source is left hanging waiting for a response.
• Scenario 3: Async XDS allows for multiple responses for the same request: pagination of results (return x records at a time), streaming of documents (return x Kilobytes at a time).
• Scenario 4: In XCA, the gateway can issue separate queries to the federated affinity domains in parallel without having to hang until each one is satisfied. Responses can be received asynchronously and collated for the requestor. The response time will be shortened as the results are retrieved in parallel instead of sequentially.
Standards & Systems
• The XDS.b Asynchronous Profile uses the same standards as the XDS.b Profile. Key enabler for Async communication is WS-Addressing that allows for: – Specification of the reply-to endpoint where
responses should be sent – Specification of the SOAP message id to allow for
correlation of responses to the original requests
Summary Technical Approach• Transactions
The XDS.b Async profile uses the same transactions specified in the XDS.b profile without changing the message format. Async XDS changes the WSDL definition of the messages decoupling the request from the response, allowing the two to be executed asynchronously.
• Existing actorsWhile the actors defined in XDS.b still maintain the same role, the technical details of how transactions are implemented will differ.
• New actorsNo new actors are necessary.
• Existing transactionsExisting transactions in XDS.b will not be touched. XDS.b can be coupled with Async XDS, that is the same actor can expose both sync and async versions of the same transaction at the same time (on different ports/endpoints).
Provide and Register Document Set-b Sync
Document RepositoryDocument Repository
Document Source
Document Source
Provide and Register Document Set-b [ITI-41]
Document Source
Document Source
Provide and Register Document Set-b ASync
Document RepositoryDocument Repository
Provide and Register Document Set-b Request
Provide and Register Document Set-b Response
Async XDS.b Actors and TransactionsPatient Identity
SourcePatient Identity
Source
Document Registry
Document Registry
Document ConsumerDocument Consumer
Document RepositoryDocument Repository
Document Source
Document Source
Patient Identity Feed [ITI-8]Patient Identity Feed HL7v3 [ITI-44]
Registry Stored Query
Register Document Set-b
Retrieve Document SetProvide and Register Document Set-b
Integrated Document Source/Repository
Registry Stored Query Response [ITI-18 Response]
Register Document Set-b Response [ITI-42 Response]
Provide and Register Document Set-b Response Request [ITI-41 Response] Retrieve Document Set Response [ITI-43 Response]
New WSDL
New WSDL
Request [ITI-18 Request]
Request [ITI-42 Request]
Request [ITI-43 Request] Request [ITI-41 Request]
Transactions by Actors• Document Source
– Provide and Register Document Set-b Response [ITI-41-Response]
• Document Repository – Provide and Register Document Set-b Request [ITI-41-Request] – Register Document Set-b Response [ITI-42-Response] – Retrieve Document Set Request [ITI-43-Request]
• Document Registry – Register Document Set-b Request [ITI-42-Request] – Registry Stored Query Request [ITI-18-Request]
• Document Source – Registry Stored Query Response [ITI-18-Response] – Retrieve Document Set Response [ITI-43-Response]
Sample WSDL UpdateDocument Repository Sync<portType name="DocumentRepository_PortType">
<operation name="DocumentRepository_ProvideAndRegisterDocumentSet-b">
<input message="ihe:ProvideAndRegisterDocumentSet-b_Message" wsaw:Action="urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b"/>
<output message="ihe:ProvideAndRegisterDocumentSet-bResponse_Message" wsaw:Action="urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-bResponse"/>
</operation>
<operation name="DocumentRepository_RetrieveDocumentSet">
<input message="ihe:RetrieveDocumentSet_Message" wsaw:Action="urn:ihe:iti:2007:RetrieveDocumentSet"/>
<output message="ihe:RetrieveDocumentSetResponse_Message" wsaw:Action="urn:ihe:iti:2007:RetrieveDocumentSetResponse"/>
</operation>
</portType>
Document Repository Async (Updated)<portType name="DocumentRepository_PortType"> <operation name="DocumentRepository_ProvideAndRegisterDocumentSet-b(a)"> <input message="ihe:ProvideAndRegisterDocumentSet-b_Message" wsaw:Action="urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b"/> </operation> <operation name="DocumentRepository_RetrieveDocumentSet(a)"> <input message="ihe:RetrieveDocumentSet_Message" wsaw:Action="urn:ihe:iti:2007:RetrieveDocumentSet"/> </operation></portType>
Document Source Async (New)<portType name="DocumentSource_PortType"> <operation name="DocumentSource_ProvideAndRegisterDocumentSet-b(a)"> <input message="ihe:ProvideAndRegisterDocumentSet-bResponse_Message"
wsaw:Action="urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-bResponse"/> </operation></portType>
How SOAP Headers ChangeDocument Source Sync - ProvideAndRegisterDocumentSet-b Request<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing"><soap:Header>
<wsa:Action soap:mustUnderstand="1">urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b</wsa:Action><wsa:MessageID>urn:uuid:67cd539a-87ca-2684-4e54-00016c82368a</wsa:MessageID><wsa:ReplyTo>
<wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address></wsa:ReplyTo><wsa:To soap:mustUnderstand="1">http://localhost:9080/XDS/RepositoryReceiver</wsa:To>
</soap:Header><soap:Body></soap:Body></soap:Envelope>
Document Source Async - ProvideAndRegisterDocumentSet-b Request (Updated)<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing"><soap:Header>
<wsa:Action soap:mustUnderstand="1">urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b</wsa:Action><wsa:MessageID>urn:uuid:67cd539a-87ca-2684-4e54-00016c82368a</wsa:MessageID><wsa:ReplyTo>
<wsa:Address> http://192.168.2.4:9080/XDS/DocumentSourceReceiver</wsa:Address></wsa:ReplyTo><wsa:To soap:mustUnderstand="1">http://localhost:9080/XDS/RepositoryReceiver</wsa:To>
</soap:Header><soap:Body></soap:Body></soap:Envelope>
How SOAP Headers Change (2)Document Repository - ProvideAndRegisterDocumentSet-b Response (New)<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing"><soap:Header>
<wsa:Action soap:mustUnderstand="1">urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b</wsa:Action><wsa:MessageID>urn:uuid:aaaabbbb-cccc-dddd-eeee-wwwwwwwwwww</wsa:MessageID>
<wsa:RelatesTo>urn:uuid:67cd539a-87ca-2684-4e54-00016c82368a</wsa:RelatesTo><wsa:To soap:mustUnderstand="1">http://localhost:9080/XDS/SourceReceiver</wsa:To>
</soap:Header><soap:Body></soap:Body></soap:Envelope>
Enabled/Enhanced Scenarios
Store & Forward, Offline
Document RepositoryDocument Repository
Document Source
Document Source
Provide and Register Document Set-b Request
Provide and Register Document Set-b Response
Request QueueRequest Queue
Response Queue
Response Queue
Reliable Messaging
Document RepositoryDocument Repository
Document Source
Document Source
Provide and Register Document Set-b Request
Provide and Register Document Set-b Response
XCA Actors and Transactions
Document ConsumerDocument Consumer
Registry Stored Query [ITI-18]
Retrieve Document Set [ITI-43]
Initiating GatewayInitiating Gateway
Responding Gateway
Responding Gateway
Initiating Community Responding Community
Cross Gateway Query [ITI-38]
Cross Gateway Retrieve [ITI-39]
Retrieve Document Set Request
Retrieve Document Set Response
Discussion