IHE ITI XDS Protocol candidates overview

flashypumpkincenterΛογισμικό & κατασκευή λογ/κού

14 Δεκ 2013 (πριν από 3 χρόνια και 7 μήνες)

67 εμφανίσεις



1

IHE ITI XDS Protocols overview

Emmanuel Cordonnier, Etiam

April 20
th
, 2004


Object of the note

This note intends to give the main elements for comparing the different options proposed to
implement the transactions of the IHE ITI XDS Integration Profile. It

starts by the summary
and the discussion, and contains then the materials used for such conclusion.

The transactions are described in the draft:


IHE_TF_Suppl_Cross
-
Enterprise Doc Sharing(XDS)_v2.1a.doc.

Summary


Register /
Provide /
Retrieve /
Query? (1)

Origin

Date

ebXML
Registry

Top
structures

On
-
line

Off
-
line

HL7 Ballot

Available
tools

ebXML
MS 2.0

OASIS

2002
-
04

yes

MIME/SOAP

HTTP

SMTP

DSTU, v2,
v3

Yes

SOAP
1.1/WSDL
1.1

W3C

2000
-
05/2001
-
03

yes

SOAP,
MIME/SOAP
if attachments

open

open

DSTU, v3

yes

MM
LP

HL7

1650 ?

no

ASCII control
characters

IP
socket

no

Normative,
v2, v3,
CDA

yes

(1) Attachments are required for Provide and Retrieve.

For Query, a different protocol can be retained for query because it will never include
attachments neither in the que
ry nor in the answer. HTTP Get, ebXML Query or Xpath/Xlink
could be candidates.

Discussion

MLLP seams not to be adapted, except if the ebXML Registry architecture is replaced by a
"CDA like" repository.

SOAP will be in any case in the protocol, either a "p
ure SOAP", or an ebXML MS based
transaction. Pure SOAP seams is more simple to implement. However when the message
contains attachments (Provide and Retrieve transactions), ebXML MS includes relevant
mechanisms for managing them properly (Manifest…). ebXML

SOAP header information are
typically the ones used for logging the transaction (audit trail mechanism). ebXML is defining
more precisely the mapping on HTTP and SMTP (FTP?). It seams to be better defined for the
security.

Because IHE is "freezing" things
, and because it has to simplify the implementation, whatever
the protocol is, the "service description" (i.e. WSDL or ebXML Registry of the Partner
Agreement Document) is out of the scope of the profile. However the protocol(s) chosen have
to be compatibl
e which such mechanisms.



2

Protocols proposed in the draft

Register



Use a MIME Multipart to wrap the overall message structure. Define Register
Request Info and Notification Request as XML payload in parts 1&2 (HTTP, FTP,
SMTP)



Use an ebXML RPC Wrapper.



Use

a V2 batch structure (HTTP, FTP, SMTP)

Query



HL7 V2 Queries.
Medical Record Query. One query defined. Appears very vaguely
defined.



Xpath/Xquery. Good select clause. No response format.



ebXML Query. Soap flavor linked to a PKI infrastructure, optiona
lly HTTP Post.

Query payload with an XML formatted select clause or an encapsulated SQL.

Provide



HTTP PUT



SMTP

Retrieve



HTTP GET

Protocols proposed in the last HL7 v3 ballot

ebXML MS




Message Service Specification Version 2.0.1,
April 2002 over HTTP (over T.L.S. 1.0)
and SMTP, including the use of SOAP 1.1.



3



Mapping of HL7 v2 and HL7 v3 proposed



DSTU (Draft Standard for Trial Implementation)

SOAP/WSDL



WS
-
1 Basic 1.0, which defines an "elegant" implementation of SOAP 1.1 (retaining
only the features that are compatible with 1.2) and WSDL 1.1



Mapping of HL7 v3 proposed



DSTU (Draft Standard for Trial Implementation)

MLLP



Minimal Lower Layer Protocol based on IP Sockets, used in HL7 v2 messages in IHE



Mapping of HL7 v2, HL7 v3 and HL7 C
DA proposed



Normative

Security

Authentication is relatively clear for HTTP. Encryption is not defined (yet?, XML encryption
seams to be "frozen") in the XML world but relatively well defined in HTTP (PKI distribution
policies), and well defined in SMTP (S/
MIME v3 the most probable candidate). Signature is
"ambiguously defined" in SOAP and XML world (XML Signature not so well adopted by the
market), not very well defined in HTTP (session signature is OK but not persistent signature),
and well defined in SMTP

(S/MIME). I would recommend to adopt a protocol compatible
with S/MIME without making any choice however for the security at this stage.

Examples given in HL7 draft

ebXML MS (including attachment)

SOAPAction: "ebXML"

Content
-
Type: multipart/related; boun
dary="MIME_boundary"; type="text/xml";

start="ebhmheader@example.com"










--
MIME_boundary

Content
-
ID: <ebhmheader@example.com>

Content
-
Type: text/xml; charset = "UTF
-
8"










<?xml version="1.0" encoding="UTF
-
8"?>

<SOAP:Envelope


xmlns:SOAP="http
://schemas.xmlsoap.org/soap/envelope/"


xmlns:eb="http://www.oasis
-
open.org/committees/ebxml
-
msg/schema/msg
-
header
-
2_0.xsd"


xmlns:xlink="http://www.w3.org/1999/xlink"


xmlns:hl7ebxml="urn:hl7
-
org:transport/ebXML/DSTUv1.0">


<SOAP:Header>


<eb:Mess
ageHeader version="2.0" SOAP:mustUnderstand="1">



<eb:From>



<eb:PartyId>12.16.840.1.113883.1122
-
GHH LAB</eb:PartyId>



</eb:From>



<eb:To>



<eb:PartyId>22.16.840.1.113883.5544
-
GHH OE</eb:PartyId>



</eb:To>


<eb:CPAId>NONE</eb:CPAId>


<eb:Conversation
Id>20020816
-
152005
-
28572</eb:ConversationId>


<eb:Service>2.16.840.1.113883</eb:Service>


<eb:Action>POLB_IN004410</eb:Action>



<eb:MessageData>



4



<eb:MessageId>50.16.840.1.113883.1122
-
CNTRL
-
3456</eb:MessageId>




<eb:Timestamp>2002
-
08
-
16T14:30:54.16Z
-
06<
/eb:Timestamp>



</eb:MessageData>


<eb:SyncReply eb:version="2.0" SOAP:mustUnderstand="1"

SOAP:actor="http://schemas.xmlsoap.org/soap/actor/next"/>


<eb:DuplicateElimination/>

<eb:AckRequested SOAP:mustUnderstand="1" eb:version="2.0"

eb:signed="false" e
b:actor="urn:oasis:names:tc:ebxml
-
msg:actor:nextMSH"/>



</eb:MessageHeader>


</SOAP:Header>


<SOAP:Body>

<eb:Manifest eb:version="2.0">


<eb:Reference xlink:href="cid:ebxmlpayload01@example.com">



<eb:Description xml:lang="en
-
us">Observation
Message
</eb:Description>



<hl7ebxml:Payload style="HL7" encoding="XML" version="3.0"/>



</eb:Reference>


</eb:Manifest>


</SOAP:Body>

</SOAP:Envelope>










--
MIME_boundary

Content
-
ID: <ebxmlpayload01@example.com>

Content
-
Type: application/xml; charset = "U
TF
-
8"










<?xml version="1.0" encoding="UTF
-
8" standalone="no"?>

<!
--
Example copyright 2002 by Health Level Seven, Inc.
--
>

<Message xmlns="urn:hl7
-
org:v3"


xmlns:xsi="http://www.w3.org/2002/XMLSchema
-
instance"


xsi:schemaLocation="urn:hl7
-
org:v3/
MCCI_MT000101


MCCI_MT000101.xsd">


<id root="50.16.840.1.113883.1122" extension="CNTRL
-
3456"/>


<!
--

message ID, [msh.10]
--
>


<creation_time value="2002
-
08
-
16T14:30:35.16
-
06:00"/>




</Message>










--
MIME_boundary
--










SOAP (without a
ttachment)

<?xml version="1.0" encoding="utf
-
8"?>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:hl7="urn:hl7
-
org:v3"

xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema">


<soa
p:Body>


<QURX_AR100020_Request_Response_QURX_IN100001.Message


xmlns="urn:hl7
-
org:v3">


<id root="2.16.840.1.113883.2.4.99.1.700222.1" extension="34234"/>


<creationTime value="20030718161000"/>





</QURX_AR100020_Request_Response_QUR
X_IN100001.Message>


</soap:Body>

</soap:Envelope>

MLLP

<SB>

<?xml version="1.0" encoding="ISO
-
8859
-
15"?>


<Message xmlns="urn:hl7
-
org:v3" xmlns:voc="urn:hl7
-
org:v3/voc"



xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance">


<id extension="102
13" root="2.16.840.1.113883.2.4.99.1.700222.1"/>


<creationTime value="20030216140000"/>





</Message>

<EB><CR>