Difference between revisions of "Asynch XDS.b Profile Detailed"

From IHE Wiki
Jump to navigation Jump to search
Line 55: Line 55:
 
In practice this translates into the following for the RetrieveDocumentSet [ITI-43] transaction:
 
In practice this translates into the following for the RetrieveDocumentSet [ITI-43] transaction:
  
 +
''Before:''
 +
'''Document Repository WSDL:'''
 
<pre>
 
<pre>
<message name="RetrieveDocumentSet_Message">
+
<message name="RetrieveDocumentSet_Message">
<documentation>Retrieve Document Set</documentation>
+
<documentation>Retrieve Document Set</documentation>
<part name="body" element="ihe:RetrieveDocumentSetRequest"/>
+
<part name="body" element="ihe:RetrieveDocumentSetRequest"/>
</message>
+
</message>
<message name="RetrieveDocumentSetResponse_Message">
+
<message name="RetrieveDocumentSetResponse_Message">
<documentation>Retrieve Document Set Response</documentation>
+
<documentation>Retrieve Document Set Response</documentation>
<part name="body" element="ihe:RetrieveDocumentSetResponse"/>
+
<part name="body" element="ihe:RetrieveDocumentSetResponse"/>
</message>
+
</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>
 +
...
 
</pre>
 
</pre>
  
 +
''After:''
 +
'''Document Repository WSDL:'''
 +
<pre>
 +
<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>
 +
...
 +
</pre>
 +
'''Document Consumer WSDL:'''
 +
<pre>
 +
<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>
 +
...
 +
</pre>
  
 
''<This section can be very short but include as much detail as you like.  The Technical Committee will flesh it out when doing the effort estimation.>''
 
''<This section can be very short but include as much detail as you like.  The Technical Committee will flesh it out when doing the effort estimation.>''

Revision as of 16:21, 22 October 2007

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 exposes 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 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>
...

<This section can be very short but include as much detail as you like. The Technical Committee will flesh it out when doing the effort estimation.>

<Outline how the standards could be used/refined to solve the problems in the Use Cases. The Technical Committee will be responsible for the full design and may choose to take a different approach, but a sample design is a good indication of feasibility.>

<If a phased approach would make sense indicate some logical phases. This may be because standards are evolving, because the problem is too big to solve at once, or because there are unknowns that won’t be resolved soon.>

Existing actors

<Indicate what existing actors could be used or might be affected by the profile.>

New actors

<List possible new actors>

Existing transactions

<Indicate how existing transactions might be used or might need to be extended.>

New transactions (standards used)

<Describe possible new transactions (indicating what standards would likely be used for each. Transaction diagrams are very helpful here. Feel free to go into as much detail as seems useful.>

Impact on existing integration profiles

<Indicate how existing profiles might need to be modified.>

New integration profiles needed

<Indicate what new profile(s) might need to be created.>

Breakdown of tasks that need to be accomplished

<A list of tasks would be helpful for the technical committee who will have to estimate the effort required to design, review and implement the profile.>

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.>