Asynch XDS.b Profile Detailed
1. Proposed Profile: Asynch XDS.b
- Proposal Editor: Vassil Peytchev/Roberto Ruggeri
- Profile Editor: Vassil Peytchev/Roberto Ruggeri
- Date: N/A (Wiki keeps history)
- Version: N/A (Wiki keeps history)
- Domain: IT Infrastructure
Summary
<Summarize in a few lines the existing problem . E.g. "It is difficult to monitor radiation dose for individual patients and almost impossible to assemble and compare such statistics for a site or a population.">
<Demonstrate in a line or two that the key integration features are available in existing standards. E.g. "DICOM has an SR format for radiation dose events and a protocol for exchanging them.">
<Summarize in a few lines how the problem could be solved. E.g. "A Radiation Dose profile could require compliant radiating devices to produce such reports and could define transactions to actors that collect, analyze and present such information.">
<Summarize in a line or two market interest & available resources. E.g. "Euratom and ACR have published guidelines requiring/encouraging dose tracking. Individuals from SFR are willing to participate in Profile development.">
<Summarize in a line or two why IHE would be a good venue to solve the problem. E.g. "The main challenges are dealing with the chicken-and-egg problem and avoiding inconsistent implementations.">
2. The Problem
IHE XDS.b implies synchronous communication between actors: document consumers, sources, registries and repositories. While this can work in a tightly controlled environment, it is generally sub-optimal in environments where multiple intermediaries are present or where a high latency occurs.
3. Key Use Cases
Scenario 1: 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.
How it works: The XCA Initiating Gateway (IG) issues a request to the Receiving Gateway (RG) and hangs waiting for a response or for a timeout to occur. Once the response has been received the IG moves on to another RG and repeats the process.
How it should work: The IG issues queries to all known RG in parallel without waiting for an immediate response. Responses from the RGs are received from the IG on another port and correlated to the initial query via message IDs stored in the WS-Addressing headers. Requests that timeout do not bloik the IG.
Scenario 2 (on demand query): in the integrated document source/document repository the xds document (medical summary, allergy list…) is generated on the fly instead and persisted. Allowing for asynch responses reduces the time that the document source is left hanging waiting for a response
Scenario 3: asynch 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: asynch xds allows for scenarios where actors are not connected at the same time (off-line) making store-and-forward scenarios possible through the use of intermediaries.
4. 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
5. Technical Approach
The XDS.b Asynch (AXDS) profile uses the same transactions specified in the XDS.b Profile without changing the message format. AXDS changes the WSDL definition of the messages decoupling the request from the response, allowing the two to be executed asynchronously.
For each transaction in XDS.b two transactions will be defined:
- one one-way transaction with the same input message of the original XDS.b transaction with no response message. This transaction is exposed by the destination actor
- one one-way transaction with the input message format being the same as the output message of the original XDS.b transaction with no response message. This transaction is exposed by the source actor
In practice this translates into the following for the RetrieveDocumentSet [ITI-43] transaction:
Before:
Document Repository WSDL:
<message name="RetrieveDocumentSet_Message"> <documentation>Retrieve Document Set</documentation> <part name="body" element="ihe:RetrieveDocumentSetRequest"/> </message> <message name="RetrieveDocumentSetResponse_Message"> <documentation>Retrieve Document Set Response</documentation> <part name="body" element="ihe:RetrieveDocumentSetResponse"/> </message> ... <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> ...
After:
Document Repository WSDL:
<message name="RetrieveDocumentSet_Message"> <documentation>Retrieve Document Set</documentation> <part name="body" element="ihe:RetrieveDocumentSetRequest"/> </message> ... <operation name="DocumentRepository_RetrieveDocumentSet"> <input message="ihe:RetrieveDocumentSet_Message" wsaw:Action="urn:ihe:iti:2007:RetrieveDocumentSet"/> </operation> ...
Document Consumer WSDL:
<message name="RetrieveDocumentSetResponse_Message"> <documentation>Retrieve Document Set Response</documentation> <part name="body" element="ihe:RetrieveDocumentSetResponse"/> </message> ... <operation name="DocumentRepository_RetrieveDocumentSet"> <input message="ihe:RetrieveDocumentSetResponse_Message" wsaw:Action="urn:ihe:iti:2007:RetrieveDocumentSetResponse"/> </operation> ...
As shown in the previous sample, new WSDL will have to be defined for the Document Source and Document Consumer actors.
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 AXDS, that is the same actor can expose both synch and asych versions of the same transaction at the same time (on different ports/endpoints).
New transactions
Requests and Responses for the existing XDS.b transactions will be decoupled, creating new transactions. This is a list of transactions by actor:
- 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]
Requests and responses for the new transactions follow the same formats as the request and responses for the corresponding XDS.b transactions.
Impact on existing integration profiles
No impact on existing XDS.b profiles. XCA might want to take advantage of the new asynch transactions.
New integration profiles needed
No new integration profiles are needed.
6. Support & Resources
<List groups that have expressed support for the proposal and resources that would be available to accomplish the tasks listed above.>
7. Risks
<List technical or political risks that will need to be considered to successfully field the profile.>
8. Open Issues
<Point out any key issues or design problems. This will be helpful for estimating the amount of work and demonstrates thought has already gone into the candidate profile.>
9. Tech Cmte Evaluation
<The technical committee will use this area to record details of the effort estimation, etc.>
Effort Evaluation (as a % of Tech Cmte Bandwidth):
- 35% for ...
Responses to Issues:
- See italics in Risk and Open Issue sections
Candidate Editor:
- TBA
<Delete this Category Templates line since your specific Profile Proposal page is no longer a template.>