XD* Testing (2006-2007 Season)
XD* Testing (2006-2007 season)
Technical Framework Errata
Topics to be corrected by Change Proposals
This section documents editorial errors in the XDS section of version 3 (Rev. 3.0 Final Text 2006-12-09) of the Technical Framework. Although these changes have present in the text of the Technical Framework, they do not reflect technical discussions in committee nor are they the result of formal Change Proposals. Since release 3 of the Technical Framework has already been released to the public, these issues will be corrected via the normal Change Proposal process. This page will be maintained through the season as documentation of the known issues. If you find other issues, please send email to the Co-Chairs of the ITI Technical Committee.
- Vol 2, page 110, patientID name field should be XDSDocumentEntry.patientID
- Query transaction example SQL is out of date. Reference the open source implementation until the TF can be updated.
- Vol 2, page 110, XDSDocumentEntry.patientID identificationScheme should be urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427
- Vol 2, page 121, XDSSubmissionSet.patientID identificationScheme should be urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b38446
- Vol 2, page 105, The attribute XDSDocumentEntry.entryUUID should still be described as assigned by Document Source or Registry
Topics of Clarification level Change Proposals
These Change Proposals do not change the detail or intent of the Technical Framework. They only server to clarify existing language.
- (yves)in section 184.108.40.206.2.6.1 Document Relationships from HL7, page 95, the text "The identity (registry UUID) of the existing document must be
discovered via registry query." (new in version 2) makes the hypothesis that the UUID is assigned by the Registry. When the UUID is assigned by
the source, there is not requirement to run a registry query, the verb "must" should be replaced by "can".
(bill)Revision 3 is consistent with Revision 2. Both are inconsistent with other statements in XDS regarding the assignment of UUIDs to registry objects. This needs to be taken up as a CP.
- (yves)in section 220.127.116.11.2.3.5 Attribute Size, page 93, there is a reference to ebRIM 2.0 changed into 2.1, but i think it was meant to be kept as 2.0
(bill) Yes, the last reference to 2.1 in this paragraph should reference 2.0. This will be corrected via CP. All attribute values shall conform to the size specification of ebRIM version 2.1 that is detailed 2215 in section 7.2 Data Types of that specification. More specifically, all Slots shall conform to the specification of ebRIM version 2.1, which is detailed in section 7.6.1 of that specification. The version 2.1-ebRIM specification is overly limiting in this respect. Without adopting the newer size limits, many typical patient record values could not be encoded.
- (yves)in section 18.104.22.168.2.7 Document Definition Metadata, page 97, this text was added:
"For entries where no Data Type is specified the entry is any string of bytes that fits within the length defined by the schema.":
the words "any string of bytes" is a contradiction with ebXML and XML, since the size of XML elements is a size in characters, not a size in bytes.
Furthermore i think it would be impossible to support any string of bytes, one can only support string of bytes consistent with the character set
encoding. So i think "string of bytes" should be replaced by "string of characters".
(bill) Correct. The standard consistently refers to 'characters'. This will be corrected via CP.
- (yves) in table 22.214.171.124-5 "Metadata Attribute Definition", the new text for authorPerson is very difficult to understand, except if a "not" is missing in the
sentence "This Slot shall be single valued if the Classification is present.".
In the following example, the Slot named ‘authorPerson’ carries the value of this attribute. This Slot shall be single valued if the Classification is present. A single Classification, as shown below, shall be used to document each author of the document. If this Classification is present then it shall have an authorPerson Slot and may have authorInstitution, authorRole, and authorSpecialty Slots which may be multivalued. A XDSDocumentEntry object shall have no more than one Classification like this with a given value for authorPerson.
Suggested replacement wording:
A Classification shall be used to document each author; there shall not be multiple Classifications of this type with an "authorPerson" Slot containing the same name. Multiple authors shall be documented by coding multiple Classifications. Within each Classification:
- shall be a single Slot named "authorPerson". This Slot shall have a single Value, the name of the author.
- may be a single Slot named "authorInstitution". If present this Slot shall have one or more Values.
- may be a single Slot named "authorRole". If present this Slot shall have one or more Values.
- may be a single Slot named "authorSpecialty". If present this Slot shall have one or more Values.
General information about the XDS profile can be found at here
The overall testing environment for XDS, including the configuration for the test Affinity Domain, is discussed here.
Each test is assigned a test number such as 11710. These test numbers along with short descriptions and knowledge of who must complete them is encoded in the test management tool Kudu. The documentation on how to execute a specific XDS related test is found in the 2006-2007 Test Requirements page. This page is a table organized by transaction that shows which actors must complete which tests. Some of this information duplicates what is available in Kudu. In addition, the test numbers (first column) are linked to the detailed documentation for the individual tests. The individual tests are documented on a separate page.
Version 5.11 is available as of March 22, 2007.
As of version 5.10, the XDS test kit is available from two sources:
Version 5.10 is available as of March 22, 2007.
This new test kit includes tests for the new Stored Query transaction. See the Test Requirements below for details.
See the Change Log below for details on what has been added and fixed.
The xdstest testing tool can be downloaded from here. It is written in Java and should run on any platform. We provide the pre-build jar file and the sources. We recommend using the pre-built jar file. The readme file is available here. It describes some basics on how to use the tool and what the configuration data means.
Additional detail on how to use the Test Kit and the associated tools can be found on last year's page at XDS_Test_Kit_2005-2006
Test Kit Change Log
Version 5.12 (March 27,2007) - Test 11898 partb - the last parameter should be "$XDSSubmissionSetContentType" (instead of "$XDSSubmissionSetContentTypeCode")
Version 5.11 (March 22, 2007) -
Fixed misspelled attribute name: authorSpeciality to authorSpecialty
In file "tests/11913/parta/metadata.xml" (line 14), "Classfication" should be "Classification".
In file "tests/11913/parta/metadata.xml" (line 25), "doc.id" should be "eo.id".
In the 5 parts of the test 11913, test.properties refers to "query.xml", but the file is "metadata.xml"
Version 5.10 (March 22, 2007) -
Corrected format of XDSSubmissionSet.sourceId to be an OID. This affects all test submissions.
authorPerson attribute (XDSDocumentEntry and XDSSubmissionSet) changed to XCN format. This affects all test submissions.
Version 5.9 - Test 11880 - Adding missing Assoc between Folder and Document
Version 5.8 - Made correction to tests/11913. Split partb into partb and parte. Gets rid of duplicate SubmissionSet objects in return and speeds up operation.
Added tests for XDR/XDM.
Version 5.7 - Added examples/XDS-SD which is an example submission of the Scanned Document profile. The same submission is available on the Public Registry as the only submission for Patient ID NIST-test-14^^^&126.96.36.199.4.1.21367.2005.3.7&ISO
Version 5.6 The $XDSDocumentEntryEntryStatus parameters has been updated to show the correct namespace for that parameter.
Version 5.5 Test 11729 was missing Association object between Folder and Document.
Version 5.4 Conflict found with test number 11910, referred to both Find Document Query and Load Test Data 2
Find Document Query remains 11910
Load Test Data 2 becomes 11951
Conflict found with test number 11733, referred to both Basic Transport (Retrieve) and Accept Register One Document
Accept Register One Document remains 11733
Basic Transport (Retrieve) has test number removed (already labeled Z)
Version 5.3 Added tests/11949 and tests/11950. Previously, tests 11801 and 11802 were listed for both Query and Stored Query transactions. These are only appropriate for Query transaction. The two new tests are their equivalent for Stored Query.
Version 5.2 Adds tests 11721, 11814, 11801, 11802 (left off from last year). Adds 11897/partd which is an example of FindDocuments Stored Query using returnType="ObjectRef".
Version 5.1 Fixes namespace prefix which is required on Approved and Deprecated values of status attribute. Affects tests 11897-11901.
Version 5.0 This first version for this year is missing the following tests:
- Most SQL Query tests (except GetAll)
- Node Authentication (ATNA)
Frequently Asked Questions about the XDS Profile - including updates as they become available.
A table describing the test requirements for each transaction can be found at XDS_Test_Kit_2006-2007_Test_Requirements. It includes pointers to instructions for each test.
Obtaining Test Kit from Source Forge
The XDS Test Kit is available for download directly from Source Forget project IheOs using the version management system CVS. Directions for using the Source Forge CVS server are available from here via anonymous access.
The CVS modulename is testkit.
Each version is tagged (specifically a CVS tag) with the version number. The tag name has the format:
where major is replaced with the major version number and minor is replaced with the minor version number.
Version 5.10 (the first put into CVS) would have a tag name of version_5_10.
You will need to review the documentation for your CVS client to see how to request a tagged release from a module. I update the CVS between releases so it is not necessarily safe to update your local copy without a tag name.
Correction to Example
Corrected inconsistent references to the two status attributes
The two status attributes found in Stored Query (XDSDocumentEntry vs AdhocQueryResponse) are confused in several places in the Stored Query Profile. The CP fixes the confusion.
- The Change Proposal can downloaded from here
- Updates to the XDS testkit are included in version 5.6
- The Public Registry has been updated
The following changes have been made
- A Change Proposal has been submitted against the Stored Query profile
- The Public Registry has been updated
- The XDS testkit has been updated
Some facets of XDR/XDM testing will be documented on this page when those tests are ready.
This section will contain information about updates to the the Public Registry.
Berlin Connectathon - I have generated a Java TrustStore that contains the root CA certificate as well as the intermediate CA certificates. By installing this truststore on the Berlin copy of the Public Registry (nist2) I have had successful submissions accepted by this registry over TLS. This TrustStore is available for download from here.
TLS has been enabled for 2007 European Pre-Connectathon testing season. A single Certificate/Key pair has been created for all clients of the Public Registry to use. The certificates can be downloaded from here.
- client_key.pem - the client private key
- server_cert.pem - the Public Registry public key
Java keystore compatible format:
- client_keystore - the client private key
- server_truststore - the Public Registry public key
The same URLs may be used to access the registry with the following modifications:
- http becomes https
- port number 8080 becomes 8443 or 8085
Port 8443 accepts TLS connections with the TLS_RSA_WITH_AES_128_CBC_SHA cipher. Port 8085 accepts TLS connections with the SSL_RSA_WITH_3DES_EDE_CBC_SHA cipher. Please note that the SSL prefix is irrelevant.
Note that documents sent to the Public Repository will be registered with a non-secure URL (http and port 8080). This is a bug in the Public Repository implementation and will be fixed soon. When fixed, documents submitted on a secure connection will be available for retrieval on a secure connection. For now, if you hack the URL attribute of XDSDocumentEntry changing http to https and 8080 to 8443 any document can be retrieved securely.
For additional help with TLS, see the IHE Wiki page on ATNA.
New portals have been established for this year's testing:
Provide & Register - http://hcxw2k1.nist.gov:8080/xdsServices2/registry/soap/portals/yr3a/repository
Register - http://hcxw2k1.nist.gov:8080/xdsServices2/registry/soap/portals/yr3a/registry
Query - http://hcxw2k1.nist.gov:8080/xdsServices2/registry/soap/portals/yr3a/query
Stored Query - http://hcxw2k1.nist.gov:8080/xdsServices2/registry/soap/portals/yr3a/storedquery
TLS (ATNA) is available for the European testing community. See the section above for details.
Server Change Log
April 10, 2007 - Retreive of XDS-I KOS did not present correct mime type in HTTP header (application/dicom)
March 14, 2007 - Bug Fixes
- XDSDocumentEntry.uniqueid should accept oid^extension format
- Improved error message for when wrong Affinity Domain is specified in Patient ID
February 28, 2007 - Bug Fixes
- GetSubmissionSetAndContents Stored Query returned error when format_code filter specified in query
- ebxmlrr registry engine returned invalid format for Classification objects for Internal Classifications (declaring RegistryPackage to be Submission Set or Folder). Now XDS Registry front end returns proper Classification. Change is to return classificationNode attribute instead of classificationScheme).
- FindDocuments Stored Query was ignoring $XDSDocumentEntryHealthcareFacilityTypeCode parameter.
- FindDocuments Stored Query threw error when format code was used in filter
- GetAll Stored Query Error returned if FormatCode filter specified
- GetAll Stored Query extra Associations returned
- Added Format Code:
<Code code="CCR V1.0" display="CCR V1.0" codingScheme="Connect-a-thon formatCodes"/>
December 12 - Added following formatCode entry to Affinity Domain configuration to support BPPC:
<Code code="188.8.131.52.4.1.193184.108.40.206.1.1.7" display="Privacy Consent Policy" codingScheme="IHE BPPC"/>
November 16 - Fixed problem with GetAll Stored Query - was returning multiple copies of the Submission Set object.
- Added OID format verification to metadata validator
- fixed metadata validator web portal. It was validating against last year's definitions
- fixed Stored Query error response message: it was responding with <RegistryResponse> which is actually the version 2 response. Now it responds with the correct <AdhocQueryResponse> element. Also, <AdhocQueryResponse> must always contains a <RegistryObjectList>. When <RegistryErrorList> is present, <RegistryObjectList> is empty. See schema for details.
November 13 - Logging of raw HTTP Body content now happens before it is parsed. This should make it easier to diagnose encoding problems.
November 1 - installed changes for CP described at #Corrected_inconsistent_references_to_the_two_status_attributes
The GetAll Stored Query problem has been fixed.
There is currently a problem with the GetAll Stored Query. It does not return (eventually most clients time out) and eats up server CPU until the server is restarted. Please do not use until it is fixed.
November 1 - Updated formatCodes accepted by the server:
<CodeType name="formatCode" classScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d"> <Code code="ScanTEXT/IHE 1.x" Display="ScanTEXT/IHE 1.x" Codingscheme="Connect-a-thon formatCodes"/> <Code code="ScanPDF/IHE 1.x" display="ScanPDF/IHE 1.x" codingScheme="Connect-a-thon formatCodes"/> <Code code="PDF/IHE 1.x" display="PDF/IHE 1.x" codingScheme="Connect-a-thon formatCodes"/> <Code code="CDA/IHE 1.0" display="CDA/IHE 1.0" codingScheme="Connect-a-thon formatCodes"/> <Code code="CDAR2/IHE 1.0" display="CDAR2/IHE 1.0" codingScheme="Connect-a-thon formatCodes"/> <Code code="CCR/IHE 0.9" display="CCR/IHE 0.9" codingScheme="Connect-a-thon formatCodes"/> <Code code="HL7/Lab 2.5" display="HL7/Lab 2.5" codingScheme="Connect-a-thon formatCodes"/> <!-- codes issued by PCC Nov 2,2006 --> <Code code="220.127.116.11.4.1.19318.104.22.168.1.1.2" display="XDS-MS" codingScheme="Connect-a-thon formatCodes"/> <Code code="22.214.171.124.4.1.193126.96.36.199.1.1.9" display="PPHP" codingScheme="Connect-a-thon formatCodes"/> <Code code="188.8.131.52.4.1.193184.108.40.206.1.1.10" display="EDR" codingScheme="Connect-a-thon formatCodes"/> <Code code="220.127.116.11.4.1.19318.104.22.168.1.1.5" display="XPHR Extract" codingScheme="Connect-a-thon formatCodes"/> <Code code="22.214.171.124.4.1.193126.96.36.199.1.1.6" display="XPHR Update" codingScheme="Connect-a-thon formatCodes"/> <!-- removed Nov 2,2006 <Code code="IHE/PCC/MS/1.0" display="XDS-MS" codingScheme="Connect-a-thon formatCodes"/> --> <!-- added for XDS-I --> <Code code="IHE/multipart" display="multipart" codingScheme="Connect-a-thon formatCodes"/> <Code code="1.2.840.10008.5.1.4.188.8.131.52" display="Key Object Selection Document" codingScheme="1.2.840.10008.2.6.1"/> </CodeType>
October 26 - Stored Query GetAll was hanging. Fixed. Test 11729 evaluation expected 2 instead of the correct 3 Association objects. Fixed.
October 24 - Stored Query was rejecting, returning an Internal Error, any query that had a < or > or <= or >= comparison.
Stored Query was returning a bad namespace for RIM.
October 24 - Fixed problem where Provide and Register was rejected because it contained size, hash, or URI slot.
October 17 - Metadata validation for Register and Provide & Register transactions - bug fixed, was accepting old attribute definitions for authorInstitution, authorPerson, authorRole, authorSpecialty for both XDSDocumentEntry and XDSSubmissionSet.
Provide & Register was throwing an error if hash, size, or URI attributes were present.