170 likes | 405 Views
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.
E N D
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.bAsync 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 actors While the actors defined in XDS.b still maintain the same role, the technical details of how transactions are implemented will differ. • New actors No new actors are necessary. • Existing transactions Existing 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 Provide and Register Document Set-b [ITI-41] Document Source Document Repository
Provide and Register Document Set-b ASync Provide and Register Document Set-b Request Document Source Document Repository Provide and Register Document Set-b Response
AsyncXDS.b Actors and Transactions Patient Identity Source Patient Identity Feed [ITI-8] Patient Identity Feed HL7v3 [ITI-44] Registry Stored Query Request [ITI-18 Request] New WSDL Document Registry Document Consumer Registry Stored Query Response [ITI-18 Response] Register Document Set-b Response [ITI-42 Response] Register Document Set-b Request [ITI-42 Request] Retrieve Document Set Request [ITI-43 Request] Provide and Register Document Set-b Request [ITI-41 Request] New WSDL Document Source Document Repository Provide and Register Document Set-b Response Request [ITI-41 Response] Retrieve Document Set Response [ITI-43 Response] Integrated Document Source/Repository
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 Update Document 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 Change Document Source Sync - ProvideAndRegisterDocumentSet-b Request <soap:Envelopexmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <soap:Header> <wsa:Actionsoap: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:Tosoap: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:Envelopexmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <soap:Header> <wsa:Actionsoap: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:Tosoap: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:Envelopexmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <soap:Header> <wsa:Actionsoap: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:Tosoap:mustUnderstand="1">http://localhost:9080/XDS/SourceReceiver</wsa:To> </soap:Header> <soap:Body> </soap:Body> </soap:Envelope>
Store & Forward, Offline Request Queue Provide and Register Document Set-b Request Document Source Document Repository Provide and Register Document Set-b Response Response Queue
Reliable Messaging Provide and Register Document Set-b Request Document Source Document Repository Provide and Register Document Set-b Response
XCA Actors and Transactions Initiating Community Responding Community Registry Stored Query [ITI-18] Retrieve Document Set Request Document Consumer Retrieve Document Set [ITI-43] Cross Gateway Query [ITI-38] Retrieve Document Set Response Initiating Gateway Responding Gateway Cross Gateway Retrieve [ITI-39]