diff --git a/EPD-ADR-Simulator/Makefile b/EPD-ADR-Simulator/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..cbbc56c706e2a9d7c1b43999f7199c4c956757ea --- /dev/null +++ b/EPD-ADR-Simulator/Makefile @@ -0,0 +1,3 @@ +SHELL := /bin/bash + +include ../Makefile.generic diff --git a/EPD-ADR-Simulator/installation.md b/EPD-ADR-Simulator/installation.md new file mode 100644 index 0000000000000000000000000000000000000000..352cfc0499c1fb017f04c28e95d997a2344c3451 --- /dev/null +++ b/EPD-ADR-Simulator/installation.md @@ -0,0 +1,70 @@ +--- +title: Installation Manual +subtitle: ATC Simulator +author: Wylem BARS +function: Software Engineer +date: 19/04/2019 +toolversion: 1.1.2 +version: 0.01 +status: Draft +reference: KER1-MAN-IHE-ATC_SIMULATOR_INSTALLATION-0_01 +customer: IHE-EUROPE +--- + +#Â ATC Simulator - Installation & configuration + +##Â Source code + +Sources of the tool are available on Inria's Gforge in the Gazelle project: +[EPD (trunk)](https://scm.gforge.inria.fr/authscm/wbars/svn/gazelle/EPD/trunk). + +##Â Patient Audit Consumer + +This project can be loaded on a Gazelle WebService tester instance. This way you will be able to launch a suite of requests from the simulator emulating +the Patient Audit Consumer actor of the CH:ATC profile. + +First you need to load the project in Gazelle WebService Tester. Then, check : +* The entire project +* The NormalCases test suite +* The ErrorCases test suite + +This will allow the user to either launch a specific test suite or to launch both using the entire project. + +Then click on the Project name in the tree and check the __endpoint__ and __enPointAssertions__ properties. This will be useful to specify where your +system is so the simulator can request it for Audit Events. +The click on each test case from the project and check all parameters. Then the user will be able to modify the request parameters send by the simulator to match +audit event from his Patient Audit Record Repository. + +## Patient Audit Record Repository + +First step to set up the Patient Audit Record Repository actor from the simulator is to checkout sources. +You can checkout the entire ATC simulator sources from the url [here](https://scm.gforge.inria.fr/authscm/wbars/svn/gazelle/EPD/trunk/ATC). +For the Patient Audit Record Repository actor you will need three things : +* The SoapUI project __ATC/soapui/ATC-MockService-soapui-project.xml__ +* The folder __ATC/test_data/AuditEvent__ that contains all Audit Events known by the simulator. +* The script __ATC/init.d/atcRecordRepositoryMock__ that will allow you to start/stop the mock project as a service on your platform + +Once you downloaded the ATC folder, you have all the data you need to run the Patient Audit Record Repository Mockup. + +Simply modify __atcRecordRepositoryMock__ script properties : + + +| **Property** | **Description** | **Example Value** | +|----------------------------------------------|---------------------------------------------------------|----------------------------------------------------------------------------------------------| +| SOAPUI_PATH | Path to the SoapUI folder installed on your platform| /usr/local/SmartBear/SoapUI-5.3.0| +| SOAPUI_PROJECT_PATH | Path to the SoapUI project checked out from Inria's Gforge| /opt/simulators/ATC/soapui/ATC-MockService-soapui-project.xml| +| SOAPUI_MOCK_NAME | Name of the mock | PatientAuditRecordRepository| +| SOAPUI_MOCK_PORT | Port that will be used to access the Mock| 8096| +| SOAPUI_MOCK_ENDPOINT | Endpoint that will be used to reach the Mock| /atc-record-repository | +| SOAPUI_MOCK_LOG | Path to the log file for the Mock | /var/log/soapui/epr-atc-record-repository.log| + + +When the properties are modified to fit your platform, you can copy the script or create a symbolic link in __/etc/init.d__ folder to be able to use start +and stop the mock as a service. +You will then be able to use following commands to respectively start the Mock service, see its status and stop the service : + +```bash +Â sudo service atcRecordRepositoryMock start +Â sudo service atcRecordRepositoryMock status +Â sudo service atcRecordRepositoryMock stop +``` \ No newline at end of file diff --git a/EPD-ADR-Simulator/release-note.md b/EPD-ADR-Simulator/release-note.md new file mode 100644 index 0000000000000000000000000000000000000000..e3637fbdca2b29b73824fda544051eea48f6f8ec --- /dev/null +++ b/EPD-ADR-Simulator/release-note.md @@ -0,0 +1,53 @@ +--- +title: Release note +subtitle: ATC Simulator +toolversion: 1.1.2 +releasedate: 2019-04-10 +author: Wylem BARS +function: Software Engineer +customer: IHE Europe +reference: KER1-RNO-IHE-ATC_SIMULATOR +--- + +# 1.1.2 +_Release date: 2019-04-10 _ + +__Bug__ + +* \[[ATCREPO-7](https://gazelle.ihe.net/jira/browse/ATCREPO-7)\] ATC Client simulator send "IHE- SAML" instead of "IHE-SAML" +* \[[ATCREPO-8](https://gazelle.ihe.net/jira/browse/ATCREPO-8)\] Patient Audit Record Repository response contains not all request parameters +* \[[ATCREPO-9](https://gazelle.ihe.net/jira/browse/ATCREPO-9)\] ATC Consumer endpoint include /ARRService and shouldn't +* \[[ATCREPO-10](https://gazelle.ihe.net/jira/browse/ATCREPO-10)\] & should not be escaped inside date parameter + +# 1.1.1 +_Release date: 2019-04-03 _ + +__Bug__ + +* \[[ATCREPO-5](https://gazelle.ihe.net/jira/browse/ATCREPO-5)\] Handling of parameter "date=ge +* \[[ATCREPO-6](https://gazelle.ihe.net/jira/browse/ATCREPO-6)\] ATC - Simulator ignores _format parameter, only responding with XML + + +# 1.1.0 +_Release date: 2019-03-27 _ + +__Story__ + +* \[[ATCREPO-1](https://gazelle.ihe.net/jira/browse/ATCREPO-1)\] Update the mock to comply with the EPR 1.8 specification + +__Improvement__ + +* \[[ATCREPO-2](https://gazelle.ihe.net/jira/browse/ATCREPO-2)\] Update the AuditMessage and AuditEvent messages + + +# 1.0.2 +_Release date: 2019-02-15 _ + +__Bug__ + +* \[[ATCREPO-3](https://gazelle.ihe.net/jira/browse/ATCREPO-3)\] Mock not correctly handle request parameters + +__Improvement__ + +* \[[ATCREPO-4](https://gazelle.ihe.net/jira/browse/ATCREPO-4)\] Replace regex with XMLHolder in assertion reading + diff --git a/EPD-ADR-Simulator/user.md b/EPD-ADR-Simulator/user.md new file mode 100755 index 0000000000000000000000000000000000000000..d8efee39f2831ca5600355ef625c0ee380b06d58 --- /dev/null +++ b/EPD-ADR-Simulator/user.md @@ -0,0 +1,127 @@ +--- +title: User Manual +subtitle: ATC Simulator +author: Wylem BARS +function: Software Engineer +date: 19/01/2019 +toolversion: 1.1.0 +version: 0.01 +status: Draft +reference: KER1-MAN-IHE-ATC_SIMULATOR_USER +customer: IHE-EUROPE +--- + +# Introduction + +This simulator is developed in conformance with Swiss Integration profiles and IHE Technical Framework. +This simulator emulates actor from CH:ATC (Audit Trail Consumption) profile. This profile defines the audit trail consumption requirements a community +has to provide for a patient's audit trail. The profile CH:ATC defines and precises the actors and transaction [ITI-81] of the IHE IT Infrastructure +Technical Framework Supplement Add RESTful Query to ATNA 1 and defines the content of the Audit Messages. The different types of the Audit Messages are +based on the requirements for Document and Policy Access management in order to achieve the Swiss regulation needs on the audit trail access by patients. +Therefore it can act as a Patient Audit Consumer or as a Patient Audit Record Repository. + +As a Patient Audit Consumer, this simulator is aimed to send messages to a Patient Audit Record Repository. Consequently, if your system (named SUT or System Under Test) is reachable from the Internet, you will be able to receive messages from the simulator. + +As a Patient Audit Record Repository, this simulator can be requested Audit Events by your system. + + +#Â Patient Audit Consumer + +When acting as a Patient Audit Consumer, this simulator is able to send multiple requests to your SUT to test the handling of parameters : + +* date +* entity-id +* entity-role +* source +* type +* subtype +* outcome +* entity-type +* user +* address +* _format + +It can also send bad requests (missing requested parameters, parameters providing no matches, etc) to test the behavior of the SUT against erroneous requests. + +##Â How to access the Simulator ? + +The simulator is accessible via Gazelle Webservice Tester. If the simulator is available on the instance of the tool, it should appear in the project list with the name **ATC_Repository**. +This name may also be followed with the version of the specification in brackets. + + + + +##Â How to send messages to an SUT ? + +If the simulator is available on the instance of Gazelle Webservice Tester you are using, it can then be launched as any other project from the tools. + +Go to **Run**. Select the **ATC_Repository** project. You will have two Test suite available. The **NormalCases** test suite will send a request to test each parameter listed earlier. +The **ErrorCases** test suite will focus on error cases. + + + +You can then chose if you want to execute one specific test suite or the entire project. +You will then be able to chose the endpoint the simulator will use, as well as the parameter from the requests that will be sent to your SUT. + + + +Once you defined all parameters for the Simulator to send requests, simply press **Run** and it will send messages to your SUT and keep track of exchanges in an **Execution**. +This Execution can be retrieved anytime in the **Execution List** menu. + + +#Â Patient Audit Record Repository + +The ATC Simulator can also simulates a CH:ATC Patient Audit Record Repository. +A **Patient Audit Consumer** queries a **Patient Audit Record Repository** for Audit Events defined by this profile. +The Patient Audit Consumer used entity-id (Patient ID) and date before/after as parameters to asked the Audit Record Repository. +In all, there are only three mandatory parameters. +There are also optional parameters : entity-type, entity-role, source, type, user, subtype, outcome and address. +Each request sent must have a security token in the header, this part is used to check access rights. In this token, two elements will be checked : + +* Is the assertion valid in time ? (Time not Before in the past and Time not After in the future) +* Does the mock know the patient ID passed as a **resource-id** attribute ? If not, the mock will say you do not have the right to acces the information. The list of available patient ID is displayed below. + +##Â Data Set + +###Token Security + +Here are the ID to put in the SAML token in **resource-id** attribute. +If you query any other patient id, the mock will respond with an error message saying that you are not authorized to access information related to the given patient ID. + +|**resource-id**| +|-------------| +|761337610430891416^^^SPID&2.16.756.5.30.1.127.3.10.3&ISO| +|761337610423590456^^^SPID&2.16.756.5.30.1.127.3.10.3&ISO| +|761337610435209810^^^SPID&2.16.756.5.30.1.127.3.10.3&ISO| +|761337610436974489^^^SPID&2.16.756.5.30.1.127.3.10.3&ISO| + +### AuditEvent + +Here are all couples of Dates/PatientID to effectively access audit events. +However, using optional parameters can lead you to no Audit event returned, even with those date and patient ID. +Indeed, if the events does not match even one of the optional parameters, the audit event will not be returned by the ATC Mock. + + +|**Patient ID**|**Dates**| +|--------------|----------| +|urn:oid:2.16.756.5.30.1.127.3.10.3|761337610430891416| ge2015-01-01 / le2020-01-01| +|urn:oid:2.16.756.5.30.1.127.3.10.3|761337610435209810|ge2015-01-01 / le2017-01-01| +|urn:oid:2.16.756.5.30.1.127.3.10.3|761337610436974489|ge2017-01-01 / le2019-01-01| + +## End Point + +Here are the endpoints to use to send your request to the Patient Audit Record Repository simulator : + +* [http://ehealthsuisse.ihe-europe.net:8096/atc-record-repository?wadl](https://ehealthsuisse.ihe-europe.net/atc-record-repository.wadl) +* [https://ehealthsuisse.ihe-europe.net:10443/atc-record-repository?wadl](https://ehealthsuisse.ihe-europe.net/simu/atc-record-repository.wadl) + +It requires TLS mutual authentication with testing certificate (from GSS PKI). + +##ATC URI example + +Here is an example URI for a requets on patient with ID **761337610430891416^^^SPID&2.16.756.5.30.1.127.3.10.3&ISO** looking for audit events between +**2015-01-01** and **2020-01-01** + +``` +http://ehealthsuisse.ihe-europe.net:8096/atc-record-repository/ARRservice/AuditEvent?date=ge2015-01-00&date=le2020-01-00&entity-id=urn:oid:2.16.756.5.30.1.127.3.10.3|761337610430891416 +``` diff --git a/EPD-RMU-Simulator/Makefile b/EPD-RMU-Simulator/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..cbbc56c706e2a9d7c1b43999f7199c4c956757ea --- /dev/null +++ b/EPD-RMU-Simulator/Makefile @@ -0,0 +1,3 @@ +SHELL := /bin/bash + +include ../Makefile.generic diff --git a/EPD-RMU-Simulator/installation.md b/EPD-RMU-Simulator/installation.md new file mode 100644 index 0000000000000000000000000000000000000000..41a808a4b028d46e43706448eb615f87ee2bfebb --- /dev/null +++ b/EPD-RMU-Simulator/installation.md @@ -0,0 +1,320 @@ +--- +title: User Manual +subtitle: RMU & XDSMU Simulator +author: Youn Cadoret +function: Developer +date: 28/06/2019 +toolversion: 1.1.0 +version: 0.01 +status: to be reviewed +reference: KER1-MAN-IHE-RMU_SIMULATOR_INSTALLATION_USER +customer: IHE-EUROPE +--- + +# EPR RMU MockUp + +## Overview + +The RMU MockUp is a SoapUI webservice (mock) that provides Cross-Gateway Update Document Set [ITI-X1] Response. This mock requires that the Update Metadata Registry MockUp is started. + +* default_wsdl_url: http://ehealthsuisse.ihe-europe.net:8095/xcmu-responding-gateway?wsdl +* default_path: /xcmu-responding-gateway +* default_port: 8095 +* default_mock_name: RespondingGateway_Binding_Soap12 MockService +* default_mock_path: /opt/simulators/epr-xcmu-responding-gateway-mockup +* default_soapui_path: /usr/local/SmartBear/SoapUI-5.3.0/ +* default_soapui_mock_log: /var/log/soapui/epr-xcmu-responding-gateway.log +* default_init.d: /etc/init.d/xcmuRespondingGatewayMock +* default_keystore_path: /opt/gazelle/cert/jboss.jks + + +## Install SoapUI + +[https://www.soapui.org/](https://www.soapui.org/) + +## Install EPR RMU MockUp + +### Get the git project + +```bash +git clone https://gitlab.inria.fr/gazelle/specific-tools/epr/metadata-update-responders.git $EPR_XCMU_MOCK_DIR +``` + + +## Mock as a service + +### Prepare the init.d script + +Edit the init.d scripts `$EPR_XCMU_MOCK_DIR/init.d/xcmuRespondingGatewayMock` and set the following environment variables + +* SOAPUI_PATH => Path of SoapUI folder +* SOAPUI_PROJECT_PATH => Path of SoapUI project script +* SOAPUI_MOCK_NAME => Name of the SoapUI mock +* SOAPUI_MOCK_PORT => Port of the SoapUI mock +* SOAPUI_MOCK_ENDPOINT => Path of the SoapUI mock +* SOAPUI_MOCK_LOG => Path where to publish log file + +### Declare the service + +Type the following commands register the init.d script as service + +```bash +sudo cp $EPR_XCMU_MOCK_DIR/init.d/xcmuRespondingGatewayMock /etc/init.d/xcmuRespondingGatewayMock +sudo chmod u+x /etc/init.d/xcmuRespondingGatewayMock +sudo chmod 775 /etc/init.d/xcmuRespondingGatewayMock +``` + +If you want the service to start at each machine start up + +```bash +sudo update-rc.d xcmuRespondingGatewayMock defaults +``` + +Be careful to allow the service to write logs into your target directory. As example + +```bash +sudo mkdir /var/log/soapui +sudo chmod 775 /var/log/soapui +``` + +### Start the mock + +To run the mock + +```bash +sudo /etc/init.d/xcmuRespondingGatewayMock start +``` + +To stop the mock + +```bash +sudo /etc/init.d/xcmuRespondingGatewayMock stop +``` + +To get status of the mock + +```bash +sudo /etc/init.d/xcmuRespondingGatewayMock status +``` + + +## Troubleshouting + +You might need to install those following packets + +```bash +sudo apt-get install -y libxrender1 libxtst6 libxi6 +``` + +You might need to resolve errors when starting the mock + +```bash +sudo mv /root/.soapuios/ /root/.soapuios_old +``` + + + +# EPR ITI-18 Registry Stored Query MockUp + +## Overview + +The ITI-18 Registry Stored Query MockUp is a SoapUI webservice (mock) that provides Registry Stored Query [ITI-18] Response. + +* default_wsdl_url: http://ehealthsuisse.ihe-europe.net:8093/registry-stored-query?wsdl +* default_path: /registry-stored-query +* default_port: 8093 +* default_mock_name: DocumentRegistry_Binding_Soap11 MockService +* default_mock_path: /opt/simulators/epr-xcmu-responding-gateway-mockup +* default_soapui_path: /usr/local/SmartBear/SoapUI-5.3.0/ +* default_soapui_mock_log: /var/log/soapui/epr-registry-stored-query.log +* default_init.d: /etc/init.d/RegistryStoredQueryMock +* default_keystore_path: /opt/gazelle/cert/jboss.jks + + +## Install SoapUI + +[https://www.soapui.org/](https://www.soapui.org/) + +## Install EPR Assertion Provider MockUp + +### Get the git project + +```bash +git clone https://gitlab.inria.fr/gazelle/specific-tools/epr/metadata-update-responders.git $EPR_XCMU_MOCK_DIR +``` + + +## Mock as a service + +### Prepare the init.d script + +Edit the init.d scripts `$EPR_XCMU_MOCK_DIR/init.d/RegistryStoredQueryMock` and set the following environment variables + +* SOAPUI_PATH => Path of SoapUI folder +* SOAPUI_PROJECT_PATH => Path of SoapUI project script +* SOAPUI_MOCK_NAME => Name of the SoapUI mock +* SOAPUI_MOCK_PORT => Port of the SoapUI mock +* SOAPUI_MOCK_ENDPOINT => Path of the SoapUI mock +* SOAPUI_MOCK_LOG => Path where to publish log file + +### Declare the service + +Type the following commands register the init.d script as service + +```bash +sudo cp $EPR_XCMU_MOCK_DIR/init.d/RegistryStoredQueryMock /etc/init.d/RegistryStoredQueryMock +sudo chmod u+x /etc/init.d/RegistryStoredQueryMock +sudo chmod 775 /etc/init.d/RegistryStoredQueryMock +``` + +If you want the service to start at each machine start up + +```bash +sudo update-rc.d RegistryStoredQueryMock defaults +``` + +Be careful to allow the service to write logs into your target directory. As example + +```bash +sudo mkdir /var/log/soapui +sudo chmod 775 /var/log/soapui +``` + +### Start the mock + +To run the mock + +```bash +sudo /etc/init.d/RegistryStoredQueryMock start +``` + +To stop the mock + +```bash +sudo /etc/init.d/RegistryStoredQueryMock stop +``` + +To get status of the mock + +```bash +sudo /etc/init.d/RegistryStoredQueryMock status +``` + + +## Troubleshouting + +You might need to install those following packets + +```bash +sudo apt-get install -y libxrender1 libxtst6 libxi6 +``` + +You might need to resolve errors when starting the mock + +```bash +sudo mv /root/.soapuios/ /root/.soapuios_old +``` + + + +# EPR ITI-57 Update Metadata Set MockUp + +## Overview + +The ITI-57 Update Metadata Set MockUp is a SoapUI webservice (mock) that provides Update Document Set [ITI-57] Response. + +* default_wsdl_url: http://ehealthsuisse.ihe-europe.net:8094/update-document-set?wsdl +* default_path: /update-document-set +* default_port: 8094 +* default_mock_name: DocumentRegistry_Binding_Soap12 MockService +* default_mock_path: /opt/simulators/epr-xcmu-responding-gateway-mockup +* default_soapui_path: /usr/local/SmartBear/SoapUI-5.3.0/ +* default_soapui_mock_log: /var/log/soapui/epr-update-document-set.log +* default_init.d: /etc/init.d/UpdateMetadataSetMock +* default_keystore_path: /opt/gazelle/cert/jboss.jks + + +## Install SoapUI + +[https://www.soapui.org/](https://www.soapui.org/) + +## Install EPR Assertion Provider MockUp + +### Get the Git project + +```bash +git clone https://gitlab.inria.fr/gazelle/specific-tools/epr/metadata-update-responders.git $EPR_XCMU_MOCK_DIR +``` + + +## Mock as a service + +### Prepare the init.d script + +Edit the init.d scripts `$EPR_XCMU_MOCK_DIR/init.d/xcmuRespondingGatewayMock` and set the following environment variables + +* SOAPUI_PATH => Path of SoapUI folder +* SOAPUI_PROJECT_PATH => Path of SoapUI project script +* SOAPUI_MOCK_NAME => Name of the SoapUI mock +* SOAPUI_MOCK_PORT => Port of the SoapUI mock +* SOAPUI_MOCK_ENDPOINT => Path of the SoapUI mock +* SOAPUI_MOCK_LOG => Path where to publish log file + +### Declare the service + +Type the following commands register the init.d script as service + +```bash +sudo cp $EPR_XCMU_MOCK_DIR/init.d/UpdateMetadataSetMock /etc/init.d/UpdateMetadataSetMock +sudo chmod u+x /etc/init.d/UpdateMetadataSetMock +sudo chmod 775 /etc/init.d/UpdateMetadataSetMock +``` + +If you want the service to start at each machine start up + +```bash +sudo update-rc.d UpdateMetadataSetMock defaults +``` + +Be careful to allow the service to write logs into your target directory. As example + +```bash +sudo mkdir /var/log/soapui +sudo chmod 775 /var/log/soapui +``` + +### Start the mock + +To run the mock + +```bash +sudo /etc/init.d/UpdateMetadataSetMock start +``` + +To stop the mock + +```bash +sudo /etc/init.d/UpdateMetadataSetMock stop +``` + +To get status of the mock + +```bash +sudo /etc/init.d/UpdateMetadataSetMock status +``` + + +## Troubleshouting + +You might need to install those following packets + +```bash +sudo apt-get install -y libxrender1 libxtst6 libxi6 +``` + +You might need to resolve errors when starting the mock + +```bash +sudo mv /root/.soapuios/ /root/.soapuios_old +``` + diff --git a/EPD-RMU-Simulator/user.md b/EPD-RMU-Simulator/user.md new file mode 100755 index 0000000000000000000000000000000000000000..253c2286d443be7f739f4ba47f231992d60fbe55 --- /dev/null +++ b/EPD-RMU-Simulator/user.md @@ -0,0 +1,526 @@ +--- +title: User Manual +subtitle: RMU & XDSMU Simulator +author: Youn Cadoret +function: Developer +date: 28/06/2019 +toolversion: 1.1.0 +version: 0.01 +status: to be reviewed +reference: KER1-MAN-IHE-RMU_SIMULATOR_USER +customer: IHE-EUROPE +--- + + +eHealthSuisse RMU Update Responder MockUp +----------------------------------------- + +ehealthSuisse RMU Update Responder MockUp simulates a Update Responder actor. + +The RMU profile provides a capability to change selected metadata attributes of documents registered and stored in another community. + +The actors involved in this profile are : Initiator, Responder and Document Registry/recipient. + +* The Update Initiator sends Restricted Update Document Set \[ITI-92\] request to the Responder specifying the homeCommunityID and the patientID. +* The Update Responder checks if the request is valid, if not, the transaction fails. If the request is valid, the Responder sends the request to the Document Registry/Document. Then, the Document Registry responds if the update has been done or not. +* The Update Responder responds according to the Document Registry response. +* To build correctly \[ITI-92\] request, we need to retrieve the last good version of document registry. So first of all, it's important to execute Registry Stored Query \[ITI-18\] request; indeed this request will return the last version Approved of the document registry. And with this response we can build an adapted \[ITI-92\] request + + + +### Data Set + +#### Responder data + + +| PatientID | SourceID | UniqueID | HomeCommunityID | +|--------|:---:|-----:|------| +| CHPAM34^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1218 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM0998^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1229 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM9810^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1232 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM4489^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1111 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM1416^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1112 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM0456^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1113 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM9127^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1114 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM2987^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1115 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM7647^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1116 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM1945^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1117 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM5763^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1118 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM3946^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1119 | urn:oid:1.2.3.4.5.6.2.333.23 | + + + +### EndPoint + +* [RMU : http://ehealthsuisse.ihe-europe.net:8093/xcmu-responding-gateway?wsdl](http://ehealthsuisse.ihe-europe.net:8095/xcmu-responding-gateway?wsdl) +* [ITI-57 : http://ehealthsuisse.ihe-europe.net:8094/update-document-set?wsdl](http://ehealthsuisse.ihe-europe.net:8094/update-document-set?wsdl) +* [ITI-18 : http://ehealthsuisse.ihe-europe.net:8095/registry-stored-query?wsdl](http://ehealthsuisse.ihe-europe.net:8095/registry-stored-query?wsdl) +* It requires TLS mutual authentication with testing certificate (from GSS PKI). [The wsdl can be browsed here](https://ehealthsuisse.ihe-europe.net:10443/xcmu-responding-gateway?wsdl) + + + +### Restricted Update Document Set \[ITI-92\] Request example + +```xml +<soap12:Envelope xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> + <soap12:Header> + <wsa:Action soap12:mustUnderstand="1">urn:ihe:iti:2018:RestrictedUpdateDocumentSet</wsa:Action> + <wsa:MessageID>urn:uuid:7f24a8b1-05f5-430f-8e2d-87b8ef91dcc0</wsa:MessageID> + <wsa:ReplyTo> + <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> + </wsa:ReplyTo> + <wsa:To/> + <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"/> + </soap12:Header> + <soap12:Body> + <lcm:SubmitObjectsRequest xmlns:lcm="urn:oasis:names:tc:ebxml-regrep:xsd:lcm:3.0" xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" xmlns:rs="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0" xmlns:xdsb="urn:ihe:iti:xds-b:2007" xmlns:xop="http://www.w3.org/2004/08/xop/include"> + <rim:RegistryObjectList> + <rim:RegistryPackage id="urn:uuid:fd22545f-d7f6-4ca1-8ff1-d8bae7364ac1" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:RegistryPackage" home="urn:oid:1.2.3.4.5.6.2.333.23"\> + <rim:Slot name="submissionTime"> + <rim:ValueList> + <rim:Value>20180115120619</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="XDS Submission Set"/> + </rim:Name> + <rim:Classification classificationScheme="urn:uuid:aa543740-bdda-424e-8c96-df4873be8500" classifiedObject="urn:uuid:0216e18f-55d4-4593-b73d-3d23d2bab035" id="urn:uuid:05a39635-af04-4802-8c8a-7640dfde61da" nodeRepresentation="419891008" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Other Composition"/> + </rim:Name> + </rim:Classification> + <rim:Classification classificationNode="urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd" classifiedObject="urn:uuid:fd22545f-d7f6-4ca1-8ff1-d8bae7364ac1" id="urn:uuid:d2947dde-7346-437b-87d5-6f4812f68509" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"/> + <rim:ExternalIdentifier id="urn:uuid:c8f14902-d156-43a4-8513-f3f67d2f5dce" identificationScheme="urn:uuid:554ac39e-e3fe-47fe-b233-965d2a147832" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" registryObject="urn:uuid:fd22545f-d7f6-4ca1-8ff1-d8bae7364ac1" value="1.3.6.1.4.1.21367.2012.2.1.4"\> + <rim:Name> + <rim:LocalizedString value="XDSSubmissionSet.sourceId"/> + </rim:Name> + </rim:ExternalIdentifier> + <rim:ExternalIdentifier id="urn:uuid:f602bd54-7716-4318-9c69-70e65b4e458e" identificationScheme="urn:uuid:96fdda7c-d067-4183-912e-bf5ee74998a8" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" registryObject="urn:uuid:fd22545f-d7f6-4ca1-8ff1-d8bae7364ac1" value="1.3.6.1.4.1.12559.11.1.2.2.1.1.4.101633"> + <rim:Name> + <rim:LocalizedString value="XDSSubmissionSet.uniqueId"/> + </rim:Name> + </rim:ExternalIdentifier> + <rim:ExternalIdentifier id="c5a27d7a-069a-43c9-b3d5-495110b61575" identificationScheme="urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b38446" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" registryObject="urn:uuid:fd22545f-d7f6-4ca1-8ff1-d8bae7364ac1" value="CHPAM34^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO"\> + <rim:Name> + <rim:LocalizedString value="XDSSubmissionSet.patientId"/> + </rim:Name> + </rim:ExternalIdentifier> + </rim:RegistryPackage> + <!--==== /Submission Part ====--> + + <!--==== Folder Part ====--> + <rim:RegistryPackage id="urn:uuid:966276d6-6486-4d0b-a673-a4cf76c90c7a" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:RegistryPackage" status="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved" home="urn:oid:1.2.3.4.5.6.2.333.23"\> + <rim:Slot name="lastUpdateTime"> + <rim:ValueList> + <rim:Value>20180115120619</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="XDS Folder 1"/> + </rim:Name> + <rim:Classification classificationScheme="urn:uuid:1ba97051-7806-41a8-a48b-8fce7af683c5" classifiedObject="urn:uuid:966276d6-6486-4d0b-a673-a4cf76c90c7a" id="urn:uuid:1ebeeb2e-3e78-4132-a8d9-65120824b764" nodeRepresentation="Referrals" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>Connect-a-thon folderCodeList</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Referrals"/> + </rim:Name> + </rim:Classification> + <rim:Classification classificationNode="urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2" classifiedObject="urn:uuid:966276d6-6486-4d0b-a673-a4cf76c90c7a" id="urn:uuid:a6faddff-c304-42e3-9645-750e975d0470" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"/> + <rim:ExternalIdentifier id="urn:uuid:72c6f02b-0fd0-499a-bdbe-4089ac929d95" identificationScheme="urn:uuid:75df8f67-9973-4fbe-a900-df66cefecc5a" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" registryObject="urn:uuid:966276d6-6486-4d0b-a673-a4cf76c90c7a" value="1.3.6.1.4.1.12559.11.1.2.2.1.1.4.101633"> + <rim:Name> + <rim:LocalizedString value="XDSFolder.uniqueId"/> + </rim:Name> + </rim:ExternalIdentifier> + <rim:ExternalIdentifier id="4c762dfb-fba3-4567-95da-2afcb91828a2" identificationScheme="urn:uuid:f64ffdf0-4b97-4e06-b79f-a52b38ec2f8a" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" registryObject="urn:uuid:966276d6-6486-4d0b-a673-a4cf76c90c7a" value="CHPAM34^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO"\> + <rim:Name> + <rim:LocalizedString value="XDSFolder.patientId"/> + </rim:Name> + </rim:ExternalIdentifier> + </rim:RegistryPackage> + <!--==== /Folder Part ====--> + + <rim:Association associationType="urn:oasis:names:tc:ebxml-regrep:AssociationType:HasMember" id="efd55471-b598-4c13-870c-202360a8450d" sourceObject="urn:uuid:fd22545f-d7f6-4ca1-8ff1-d8bae7364ac1" targetObject="urn:uuid:966276d6-6486-4d0b-a673-a4cf76c90c7a"/> + + <!--==== Document Entry Part ====--> + <rim:ExtrinsicObject id="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" mimeType="text/xml" objectType="urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1" status="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved" lid="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" home="urn:oid:1.2.3.4.5.6.2.333.23"\> + <rim:Slot name="repositoryUniqueId"> + <rim:ValueList> + <rim:Value>1.3.6.1.4.1.12559.11.25.1.11.2</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="hash"> + <rim:ValueList> + <rim:Value>e564e98733d1ecdff0255fe0b50a33075940015c</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="size"> + <rim:ValueList> + <rim:Value>9995</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="languageCode"> + <rim:ValueList> + <rim:Value>en-us</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="creationTime"> + <rim:ValueList> + <rim:Value>20180712030836</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="sourcePatientId"> + <rim:ValueList> + <rim:Value>CHPAM34^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="XDSDocument Entry 1"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + <rim:Classification classificationScheme="urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a" classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" id="urn:uuid:6e9c5cff-a1db-4e62-93fd-a257fccc83d5" nodeRepresentation="1241000195103" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Note on Procedure (record artifact)"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:f4f85eac-e6cb-4883-b524-f2705394840f" classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" id="urn:uuid:de59c2f8-75a2-4d1b-80ed-c491666b30b3" nodeRepresentation="1131000195104" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="eingeschrenkt"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d" classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" id="urn:uuid:32641cd9-b238-4d56-99ed-1a97d7c85aeb" nodeRepresentation="\*" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.756.5.30.1.127.77.10.5.2</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="\*"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:f33fb8ac-18af-42cc-ae0e-ed0b0bdb91e1" classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" id="urn:uuid:0e941bd5-e24b-418f-b527-92e0db255fff" nodeRepresentation="394778007" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Client's or patient's home (environment)"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:cccf5598-8b07-4b77-a05e-ae952c785ead" classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" id="urn:uuid:dc659cbe-b5b5-4235-a9b0-fbb9a2de2746" nodeRepresentation="8918198" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Community Medication Treatment Plan"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:f0306f51-975f-434e-a61c-c59651d33983" classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" id="urn:uuid:b6e6d57d-eae0-4391-9146-90aabaff52f9" nodeRepresentation="721912009" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Medication summary document (record artifact)"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:ExternalIdentifier id="urn:uuid:7d976a2b-8784-41fc-a939-af0b0d71cbcd" identificationScheme="urn:uuid:2e82c1f6-a085-4c72-9da3-8640a32e42ab" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" registryObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" value="1.3.6.1.4.1.12559.11.25.1.16.2.20171010072756850"> + <rim:Name> + <rim:LocalizedString value="XDSDocumentEntry.uniqueId"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:ExternalIdentifier> + <rim:ExternalIdentifier id="urn:uuid:355feb7f-a3d2-41f5-9e4e-698ed3ffc4bd" identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" registryObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" value="CHPAM34^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO"\> + <rim:Name> + <rim:LocalizedString value="XDSDocumentEntry.patientId"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:ExternalIdentifier> + </rim:ExtrinsicObject> + <!--==== /Document Entry Part ====--> + + <rim:Association associationType="urn:oasis:names:tc:ebxml-regrep:AssociationType:HasMember" id="98359cee-59bb-4f9d-a199-151e933eeb66" sourceObject="urn:uuid:fd22545f-d7f6-4ca1-8ff1-d8bae7364ac1" targetObject="urn:uuid:e72a86d7-9d50-4b24-9c8c-2f57f6560ff8"> + <rim:Slot name="SubmissionSetStatus"> + <rim:ValueList> + <rim:Value>Original</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="PreviousVersion"> + <rim:ValueList> + <rim:Value>1</rim:Value> + </rim:ValueList> + </rim:Slot> + </rim:Association> + + </rim:RegistryObjectList> + </lcm:SubmitObjectsRequest> + </soap12:Body> + </soap12:Envelope> +``` + + +### Restricted Update Document Set \[ITI-92\] Success response example +```xml +<soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing"> + <soap12:Header> + <wsa:Action xmlns="http://www.w3.org/2005/08/addressing">urn:ihe:iti:2018:RestrictedUpdateDocumentSetResponse</wsa:Action> + <wsa:MessageID>urn:uuid:247d1b0a-477b-4539-ad61-18833df5b327</wsa:MessageID> + <wsa:To>http://www.w3.org/2005/08/addressing/anonymous</wsa:To> + <wsa:RelatesTo>urn:uuid:43182b89-24d6-43cf-bc86-da4d710650e0</wsa:RelatesTo> + </soap12:Header> + <soap12:Body> + <rs:RegistryResponse status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success" xmlns:rs="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0"/> + </soap12:Body> +</soap12:Envelope> +``` + + +### Restricted Update Document Set \[ITI-92\] Failed response example +```xml +<soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing"> + <soap12:Header> + <wsa:Action>urn:ihe:iti:2018:RestrictedUpdateDocumentSetResponse</wsa:Action> + <wsa:MessageID>urn:uuid:986c0b7a-7fe4-467e-886d-46993ab7fcea</wsa:MessageID> + <wsa:To>http://www.w3.org/2005/08/addressing/anonymous</wsa:To> + <wsa:RelatesTo xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:ae6d7767-c766-475e-85fc-395270831912</wsa:RelatesTo> + </soap12:Header> + <soap12:Body> + <rs:RegistryResponse status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Failure" xmlns:rs="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0"> + <rs:RegistryErrorList> + <rs:RegistryError severity="urn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Error" errorCode="XDSUnknownCommunity" codeContext="A value for the homeCommunityId is not recognize ()" /> + </rs:RegistryErrorList> + </rs:RegistryResponse> + </soap12:Body> +</soap12:Envelope> +``` + + +### Registry Stored Query \[ITI-18\] Request example +```xml +<s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope"> + <s:Header> + <a:Action s:mustUnderstand="1">urn:ihe:iti:2007:RegistryStoredQuery</a:Action> + <a:MessageID>urn:uuid:3cce0135-cedb-4a26-ba00-8698ee8dde04</a:MessageID> + <a:ReplyTo> + <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address> + </a:ReplyTo> + <a:To s:mustUnderstand="1"/> + </s:Header> + <s:Body> + <query:AdhocQueryRequest xmlns:lcm="urn:oasis:names:tc:ebxml-regrep:xsd:lcm:3.0" + xmlns:query="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0" + xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" + xmlns:rs="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0" + xmlns:xdsb="urn:ihe:iti:xds-b:2007" + xmlns:xop="http://www.w3.org/2004/08/xop/include"> + <query:ResponseOption returnComposedObjects="true" returnType="LeafClass"/> + <rim:AdhocQuery home="urn:oid:1.2.3.4.5.6.2.333.23" id="urn:uuid:14d4debf-8f97-4251-9a74-a90016b0af0d"> + <rim:Slot name="$XDSDocumentEntryPatientId"> + <rim:ValueList> + <rim:Value>'CHPAM34^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO'</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="$XDSDocumentEntryStatus"> + <rim:ValueList> + <rim:Value>('urn:oasis:names:tc:ebxml-regrep:StatusType:Approved')</rim:Value> + </rim:ValueList> + </rim:Slot> + </rim:AdhocQuery> + </query:AdhocQueryRequest> + </s:Body> +</s:Envelope> +``` + + +### Registry Stored Query \[ITI-18\] Success response example +```xml +<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"> + <S:Header> + <wsa:Action s:mustUnderstand="1" xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing">urn:ihe:iti:2007:RegistryStoredQueryResponse</wsa:Action> + <wsa:RelatesTo xmlns:wsa="http://www.w3.org/2005/08/addressing">urn:uuid:03630d05-2fe8-4832-9e6f-345e53d4338a</wsa:RelatesTo> + </S:Header> + <S:Body> + <query:AdhocQueryResponse status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success" + xmlns:query="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0"> + <rim:RegistryObjectList xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"> + <rim:ExtrinsicObject id="urn:uuid:e72a86d7-9d50-4b24-9c8c-2f57f6560ff8" + mimeType="text" objectType="urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1" + status="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved" + lid="urn:uuid:e72a86d7-9d50-4b24-9c8c-2f57f6560ff8"> + <rim:Slot name="languageCode"> + <rim:ValueList> + <rim:Value>en-us</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="creationTime"> + <rim:ValueList> + <rim:Value>20180115120556</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="sourcePatientId"> + <rim:ValueList> + <rim:Value>CHPAM34^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="XDSDocument Entry 1"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + <rim:Classification classificationScheme="urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a" + classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" + id="urn:uuid:6e9c5cff-a1db-4e62-93fd-a257fccc83d5" + nodeRepresentation="\*" + objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="\*"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:f4f85eac-e6cb-4883-b524-f2705394840f" + classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" + id="urn:uuid:de59c2f8-75a2-4d1b-80ed-c491666b30b3" + nodeRepresentation="1131000195104" + objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="eingeschr?nkt"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d" + classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" + id="urn:uuid:32641cd9-b238-4d56-99ed-1a97d7c85aeb" + nodeRepresentation="urn:ihe:rad:1.2.840.10008.5.1.4.1.1.88.59" + objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.756.5.30.1.127.77.10.5.2</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="KOS Dokument"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:f33fb8ac-18af-42cc-ae0e-ed0b0bdb91e1" + classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" + id="urn:uuid:0e941bd5-e24b-418f-b527-92e0db255fff" + nodeRepresentation="394778007" + objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Client's or patient's home (environment)"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:cccf5598-8b07-4b77-a05e-ae952c785ead" + classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" + id="urn:uuid:dc659cbe-b5b5-4235-a9b0-fbb9a2de2746" + nodeRepresentation="394810000" + objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Rheumatology (qualifier value)"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:f0306f51-975f-434e-a61c-c59651d33983" + classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" + id="urn:uuid:b6e6d57d-eae0-4391-9146-90aabaff52f9" + nodeRepresentation="721912009" + objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Medication summary document (record artifact)"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:ExternalIdentifier id="urn:uuid:b21fc0dd-3ad6-4bb5-95d5-b730ced3b984" + identificationScheme="urn:uuid:2e82c1f6-a085-4c72-9da3-8640a32e42ab" + objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" + registryObject="urn:uuid:e72a86d7-9d50-4b24-9c8c-2f57f6560ff8" + value="1.3.6.1.4.1.12559.11.1.2.2.1.1.4.101633"> + <rim:Name> + <rim:LocalizedString value="XDSDocumentEntry.uniqueId"/> + </rim:Name> + </rim:ExternalIdentifier> + <rim:ExternalIdentifier id="2617f4ec-599b-41c1-9ffe-9039178d9eb5" + identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427" + objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" + registryObject="urn:uuid:e72a86d7-9d50-4b24-9c8c-2f57f6560ff8" + value="CHPAM34^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO"> + <rim:Name> + <rim:LocalizedString value="XDSDocumentEntry.patientId"/> + </rim:Name> + </rim:ExternalIdentifier> + </rim:ExtrinsicObject> + </rim:RegistryObjectList> + </query:AdhocQueryResponse> + </S:Body> +</S:Envelope> +``` + + +### Registry Stored Query \[ITI-18\] Failed response example +```xml +<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"> + <S:Header> + <wsa:Action s:mustUnderstand="1" xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing">urn:ihe:iti:2007:RegistryStoredQueryResponse</wsa:Action> + <wsa:RelatesTo xmlns:wsa="http://www.w3.org/2005/08/addressing">urn:uuid:88f37191-6659-494a-919e-2bd52f655303</wsa:RelatesTo> + </S:Header> + <S:Body> + <query:AdhocQueryResponse status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Failed" + xmlns:query="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0"> + <Error>no documents with this PatientID 333^^^&2.16.756.5.30.1.127.3.10.3&ISO</Error> + </query:AdhocQueryResponse> + </S:Body> +</S:Envelope +``` \ No newline at end of file diff --git a/EPD-XDSMU-Simulator/Makefile b/EPD-XDSMU-Simulator/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..cbbc56c706e2a9d7c1b43999f7199c4c956757ea --- /dev/null +++ b/EPD-XDSMU-Simulator/Makefile @@ -0,0 +1,3 @@ +SHELL := /bin/bash + +include ../Makefile.generic diff --git a/EPD-XDSMU-Simulator/installation.md b/EPD-XDSMU-Simulator/installation.md new file mode 100644 index 0000000000000000000000000000000000000000..d6ab2164634d60d94e81bbb71cae259e40ccbf72 --- /dev/null +++ b/EPD-XDSMU-Simulator/installation.md @@ -0,0 +1,321 @@ +--- +title: User Manual +subtitle: RMU & XDSMU Simulator +author: Youn Cadoret +function: Developer +date: 28/06/2019 +toolversion: 1.1.0 +version: 0.01 +status: to be reviewed +reference: KER1-MAN-IHE-XDSMU_SIMULATOR_INSTALLATION_USER +customer: IHE-EUROPE +--- + + +# EPR RMU MockUp + +## Overview + +The RMU MockUp is a SoapUI webservice (mock) that provides Cross-Gateway Update Document Set [ITI-X1] Response. This mock requires that the Update Metadata Registry MockUp is started. + +* default_wsdl_url: http://ehealthsuisse.ihe-europe.net:8095/xcmu-responding-gateway?wsdl +* default_path: /xcmu-responding-gateway +* default_port: 8095 +* default_mock_name: RespondingGateway_Binding_Soap12 MockService +* default_mock_path: /opt/simulators/epr-xcmu-responding-gateway-mockup +* default_soapui_path: /usr/local/SmartBear/SoapUI-5.3.0/ +* default_soapui_mock_log: /var/log/soapui/epr-xcmu-responding-gateway.log +* default_init.d: /etc/init.d/xcmuRespondingGatewayMock +* default_keystore_path: /opt/gazelle/cert/jboss.jks + + +## Install SoapUI + +[https://www.soapui.org/](https://www.soapui.org/) + +## Install EPR RMU MockUp + +### Get the git project + +```bash +git clone https://gitlab.inria.fr/gazelle/specific-tools/epr/metadata-update-responders.git $EPR_XCMU_MOCK_DIR +``` + + +## Mock as a service + +### Prepare the init.d script + +Edit the init.d scripts `$EPR_XCMU_MOCK_DIR/init.d/xcmuRespondingGatewayMock` and set the following environment variables + +* SOAPUI_PATH => Path of SoapUI folder +* SOAPUI_PROJECT_PATH => Path of SoapUI project script +* SOAPUI_MOCK_NAME => Name of the SoapUI mock +* SOAPUI_MOCK_PORT => Port of the SoapUI mock +* SOAPUI_MOCK_ENDPOINT => Path of the SoapUI mock +* SOAPUI_MOCK_LOG => Path where to publish log file + +### Declare the service + +Type the following commands register the init.d script as service + +```bash +sudo cp $EPR_XCMU_MOCK_DIR/init.d/xcmuRespondingGatewayMock /etc/init.d/xcmuRespondingGatewayMock +sudo chmod u+x /etc/init.d/xcmuRespondingGatewayMock +sudo chmod 775 /etc/init.d/xcmuRespondingGatewayMock +``` + +If you want the service to start at each machine start up + +```bash +sudo update-rc.d xcmuRespondingGatewayMock defaults +``` + +Be careful to allow the service to write logs into your target directory. As example + +```bash +sudo mkdir /var/log/soapui +sudo chmod 775 /var/log/soapui +``` + +### Start the mock + +To run the mock + +```bash +sudo /etc/init.d/xcmuRespondingGatewayMock start +``` + +To stop the mock + +```bash +sudo /etc/init.d/xcmuRespondingGatewayMock stop +``` + +To get status of the mock + +```bash +sudo /etc/init.d/xcmuRespondingGatewayMock status +``` + + +## Troubleshouting + +You might need to install those following packets + +```bash +sudo apt-get install -y libxrender1 libxtst6 libxi6 +``` + +You might need to resolve errors when starting the mock + +```bash +sudo mv /root/.soapuios/ /root/.soapuios_old +``` + + + +# EPR ITI-18 Registry Stored Query MockUp + +## Overview + +The ITI-18 Registry Stored Query MockUp is a SoapUI webservice (mock) that provides Registry Stored Query [ITI-18] Response. + +* default_wsdl_url: http://ehealthsuisse.ihe-europe.net:8093/registry-stored-query?wsdl +* default_path: /registry-stored-query +* default_port: 8093 +* default_mock_name: DocumentRegistry_Binding_Soap11 MockService +* default_mock_path: /opt/simulators/epr-xcmu-responding-gateway-mockup +* default_soapui_path: /usr/local/SmartBear/SoapUI-5.3.0/ +* default_soapui_mock_log: /var/log/soapui/epr-registry-stored-query.log +* default_init.d: /etc/init.d/RegistryStoredQueryMock +* default_keystore_path: /opt/gazelle/cert/jboss.jks + + +## Install SoapUI + +[https://www.soapui.org/](https://www.soapui.org/) + +## Install EPR Assertion Provider MockUp + +### Get the git project + +```bash +git clone https://gitlab.inria.fr/gazelle/specific-tools/epr/metadata-update-responders.git $EPR_XCMU_MOCK_DIR +``` + + +## Mock as a service + +### Prepare the init.d script + +Edit the init.d scripts `$EPR_XCMU_MOCK_DIR/init.d/RegistryStoredQueryMock` and set the following environment variables + +* SOAPUI_PATH => Path of SoapUI folder +* SOAPUI_PROJECT_PATH => Path of SoapUI project script +* SOAPUI_MOCK_NAME => Name of the SoapUI mock +* SOAPUI_MOCK_PORT => Port of the SoapUI mock +* SOAPUI_MOCK_ENDPOINT => Path of the SoapUI mock +* SOAPUI_MOCK_LOG => Path where to publish log file + +### Declare the service + +Type the following commands register the init.d script as service + +```bash +sudo cp $EPR_XCMU_MOCK_DIR/init.d/RegistryStoredQueryMock /etc/init.d/RegistryStoredQueryMock +sudo chmod u+x /etc/init.d/RegistryStoredQueryMock +sudo chmod 775 /etc/init.d/RegistryStoredQueryMock +``` + +If you want the service to start at each machine start up + +```bash +sudo update-rc.d RegistryStoredQueryMock defaults +``` + +Be careful to allow the service to write logs into your target directory. As example + +```bash +sudo mkdir /var/log/soapui +sudo chmod 775 /var/log/soapui +``` + +### Start the mock + +To run the mock + +```bash +sudo /etc/init.d/RegistryStoredQueryMock start +``` + +To stop the mock + +```bash +sudo /etc/init.d/RegistryStoredQueryMock stop +``` + +To get status of the mock + +```bash +sudo /etc/init.d/RegistryStoredQueryMock status +``` + + +## Troubleshouting + +You might need to install those following packets + +```bash +sudo apt-get install -y libxrender1 libxtst6 libxi6 +``` + +You might need to resolve errors when starting the mock + +```bash +sudo mv /root/.soapuios/ /root/.soapuios_old +``` + + + +# EPR ITI-57 Update Metadata Set MockUp + +## Overview + +The ITI-57 Update Metadata Set MockUp is a SoapUI webservice (mock) that provides Update Document Set [ITI-57] Response. + +* default_wsdl_url: http://ehealthsuisse.ihe-europe.net:8094/update-document-set?wsdl +* default_path: /update-document-set +* default_port: 8094 +* default_mock_name: DocumentRegistry_Binding_Soap12 MockService +* default_mock_path: /opt/simulators/epr-xcmu-responding-gateway-mockup +* default_soapui_path: /usr/local/SmartBear/SoapUI-5.3.0/ +* default_soapui_mock_log: /var/log/soapui/epr-update-document-set.log +* default_init.d: /etc/init.d/UpdateMetadataSetMock +* default_keystore_path: /opt/gazelle/cert/jboss.jks + + +## Install SoapUI + +[https://www.soapui.org/](https://www.soapui.org/) + +## Install EPR Assertion Provider MockUp + +### Get the Git project + +```bash +git clone https://gitlab.inria.fr/gazelle/specific-tools/epr/metadata-update-responders.git $EPR_XCMU_MOCK_DIR +``` + + +## Mock as a service + +### Prepare the init.d script + +Edit the init.d scripts `$EPR_XCMU_MOCK_DIR/init.d/xcmuRespondingGatewayMock` and set the following environment variables + +* SOAPUI_PATH => Path of SoapUI folder +* SOAPUI_PROJECT_PATH => Path of SoapUI project script +* SOAPUI_MOCK_NAME => Name of the SoapUI mock +* SOAPUI_MOCK_PORT => Port of the SoapUI mock +* SOAPUI_MOCK_ENDPOINT => Path of the SoapUI mock +* SOAPUI_MOCK_LOG => Path where to publish log file + +### Declare the service + +Type the following commands register the init.d script as service + +```bash +sudo cp $EPR_XCMU_MOCK_DIR/init.d/UpdateMetadataSetMock /etc/init.d/UpdateMetadataSetMock +sudo chmod u+x /etc/init.d/UpdateMetadataSetMock +sudo chmod 775 /etc/init.d/UpdateMetadataSetMock +``` + +If you want the service to start at each machine start up + +```bash +sudo update-rc.d UpdateMetadataSetMock defaults +``` + +Be careful to allow the service to write logs into your target directory. As example + +```bash +sudo mkdir /var/log/soapui +sudo chmod 775 /var/log/soapui +``` + +### Start the mock + +To run the mock + +```bash +sudo /etc/init.d/UpdateMetadataSetMock start +``` + +To stop the mock + +```bash +sudo /etc/init.d/UpdateMetadataSetMock stop +``` + +To get status of the mock + +```bash +sudo /etc/init.d/UpdateMetadataSetMock status +``` + + +## Troubleshouting + +You might need to install those following packets + +```bash +sudo apt-get install -y libxrender1 libxtst6 libxi6 +``` + +You might need to resolve errors when starting the mock + +```bash +sudo mv /root/.soapuios/ /root/.soapuios_old +``` + diff --git a/EPD-XDSMU-Simulator/user.md b/EPD-XDSMU-Simulator/user.md new file mode 100755 index 0000000000000000000000000000000000000000..04f8cb242183a1edbaebd640d65a12e6fe4b2eb7 --- /dev/null +++ b/EPD-XDSMU-Simulator/user.md @@ -0,0 +1,526 @@ +--- +title: User Manual +subtitle: RMU & XDSMU Simulator +author: Youn Cadoret +function: Developer +date: 28/06/2019 +toolversion: 1.1.0 +version: 0.01 +status: to be reviewed +reference: KER1-MAN-IHE-XDSMU_SIMULATOR_USER +customer: IHE-EUROPE +--- + + +eHealthSuisse RMU Update Responder MockUp +----------------------------------------- + +ehealthSuisse RMU Update Responder MockUp simulates a Update Responder actor. + +The RMU profile provides a capability to change selected metadata attributes of documents registered and stored in another community. + +The actors involved in this profile are : Initiator, Responder and Document Registry/recipient. + +* The Update Initiator sends Restricted Update Document Set \[ITI-92\] request to the Responder specifying the homeCommunityID and the patientID. +* The Update Responder checks if the request is valid, if not, the transaction fails. If the request is valid, the Responder sends the request to the Document Registry/Document. Then, the Document Registry responds if the update has been done or not. +* The Update Responder responds according to the Document Registry response. +* To build correctly \[ITI-92\] request, we need to retrieve the last good version of document registry. So first of all, it's important to execute Registry Stored Query \[ITI-18\] request; indeed this request will return the last version Approved of the document registry. And with this response we can build an adapted \[ITI-92\] request + + + +### Data Set + +#### Responder data + + +| PatientID | SourceID | UniqueID | HomeCommunityID | +|--------|:---:|-----:|------| +| CHPAM34^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1218 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM0998^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1229 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM9810^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1232 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM4489^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1111 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM1416^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1112 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM0456^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1113 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM9127^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1114 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM2987^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1115 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM7647^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1116 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM1945^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1117 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM5763^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1118 | urn:oid:1.2.3.4.5.6.2.333.23 | +| CHPAM3946^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO | 1.3.6.1.4.1.12559.11.13.2.5 | 1.3.6.1.4.1.12559.11.13.2.6.1119 | urn:oid:1.2.3.4.5.6.2.333.23 | + + + +### EndPoint + +* [RMU : http://ehealthsuisse.ihe-europe.net:8093/xcmu-responding-gateway?wsdl](http://ehealthsuisse.ihe-europe.net:8095/xcmu-responding-gateway?wsdl) +* [ITI-57 : http://ehealthsuisse.ihe-europe.net:8094/update-document-set?wsdl](http://ehealthsuisse.ihe-europe.net:8094/update-document-set?wsdl) +* [ITI-18 : http://ehealthsuisse.ihe-europe.net:8095/registry-stored-query?wsdl](http://ehealthsuisse.ihe-europe.net:8095/registry-stored-query?wsdl) +* It requires TLS mutual authentication with testing certificate (from GSS PKI). [The wsdl can be browsed here](https://ehealthsuisse.ihe-europe.net:10443/xcmu-responding-gateway?wsdl) + + + +### Restricted Update Document Set \[ITI-92\] Request example + +```xml +<soap12:Envelope xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> + <soap12:Header> + <wsa:Action soap12:mustUnderstand="1">urn:ihe:iti:2018:RestrictedUpdateDocumentSet</wsa:Action> + <wsa:MessageID>urn:uuid:7f24a8b1-05f5-430f-8e2d-87b8ef91dcc0</wsa:MessageID> + <wsa:ReplyTo> + <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> + </wsa:ReplyTo> + <wsa:To/> + <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"/> + </soap12:Header> + <soap12:Body> + <lcm:SubmitObjectsRequest xmlns:lcm="urn:oasis:names:tc:ebxml-regrep:xsd:lcm:3.0" xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" xmlns:rs="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0" xmlns:xdsb="urn:ihe:iti:xds-b:2007" xmlns:xop="http://www.w3.org/2004/08/xop/include"> + <rim:RegistryObjectList> + <rim:RegistryPackage id="urn:uuid:fd22545f-d7f6-4ca1-8ff1-d8bae7364ac1" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:RegistryPackage" home="urn:oid:1.2.3.4.5.6.2.333.23"\> + <rim:Slot name="submissionTime"> + <rim:ValueList> + <rim:Value>20180115120619</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="XDS Submission Set"/> + </rim:Name> + <rim:Classification classificationScheme="urn:uuid:aa543740-bdda-424e-8c96-df4873be8500" classifiedObject="urn:uuid:0216e18f-55d4-4593-b73d-3d23d2bab035" id="urn:uuid:05a39635-af04-4802-8c8a-7640dfde61da" nodeRepresentation="419891008" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Other Composition"/> + </rim:Name> + </rim:Classification> + <rim:Classification classificationNode="urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd" classifiedObject="urn:uuid:fd22545f-d7f6-4ca1-8ff1-d8bae7364ac1" id="urn:uuid:d2947dde-7346-437b-87d5-6f4812f68509" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"/> + <rim:ExternalIdentifier id="urn:uuid:c8f14902-d156-43a4-8513-f3f67d2f5dce" identificationScheme="urn:uuid:554ac39e-e3fe-47fe-b233-965d2a147832" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" registryObject="urn:uuid:fd22545f-d7f6-4ca1-8ff1-d8bae7364ac1" value="1.3.6.1.4.1.21367.2012.2.1.4"\> + <rim:Name> + <rim:LocalizedString value="XDSSubmissionSet.sourceId"/> + </rim:Name> + </rim:ExternalIdentifier> + <rim:ExternalIdentifier id="urn:uuid:f602bd54-7716-4318-9c69-70e65b4e458e" identificationScheme="urn:uuid:96fdda7c-d067-4183-912e-bf5ee74998a8" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" registryObject="urn:uuid:fd22545f-d7f6-4ca1-8ff1-d8bae7364ac1" value="1.3.6.1.4.1.12559.11.1.2.2.1.1.4.101633"> + <rim:Name> + <rim:LocalizedString value="XDSSubmissionSet.uniqueId"/> + </rim:Name> + </rim:ExternalIdentifier> + <rim:ExternalIdentifier id="c5a27d7a-069a-43c9-b3d5-495110b61575" identificationScheme="urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b38446" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" registryObject="urn:uuid:fd22545f-d7f6-4ca1-8ff1-d8bae7364ac1" value="CHPAM34^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO"\> + <rim:Name> + <rim:LocalizedString value="XDSSubmissionSet.patientId"/> + </rim:Name> + </rim:ExternalIdentifier> + </rim:RegistryPackage> + <!--==== /Submission Part ====--> + + <!--==== Folder Part ====--> + <rim:RegistryPackage id="urn:uuid:966276d6-6486-4d0b-a673-a4cf76c90c7a" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:RegistryPackage" status="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved" home="urn:oid:1.2.3.4.5.6.2.333.23"\> + <rim:Slot name="lastUpdateTime"> + <rim:ValueList> + <rim:Value>20180115120619</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="XDS Folder 1"/> + </rim:Name> + <rim:Classification classificationScheme="urn:uuid:1ba97051-7806-41a8-a48b-8fce7af683c5" classifiedObject="urn:uuid:966276d6-6486-4d0b-a673-a4cf76c90c7a" id="urn:uuid:1ebeeb2e-3e78-4132-a8d9-65120824b764" nodeRepresentation="Referrals" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>Connect-a-thon folderCodeList</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Referrals"/> + </rim:Name> + </rim:Classification> + <rim:Classification classificationNode="urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2" classifiedObject="urn:uuid:966276d6-6486-4d0b-a673-a4cf76c90c7a" id="urn:uuid:a6faddff-c304-42e3-9645-750e975d0470" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"/> + <rim:ExternalIdentifier id="urn:uuid:72c6f02b-0fd0-499a-bdbe-4089ac929d95" identificationScheme="urn:uuid:75df8f67-9973-4fbe-a900-df66cefecc5a" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" registryObject="urn:uuid:966276d6-6486-4d0b-a673-a4cf76c90c7a" value="1.3.6.1.4.1.12559.11.1.2.2.1.1.4.101633"> + <rim:Name> + <rim:LocalizedString value="XDSFolder.uniqueId"/> + </rim:Name> + </rim:ExternalIdentifier> + <rim:ExternalIdentifier id="4c762dfb-fba3-4567-95da-2afcb91828a2" identificationScheme="urn:uuid:f64ffdf0-4b97-4e06-b79f-a52b38ec2f8a" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" registryObject="urn:uuid:966276d6-6486-4d0b-a673-a4cf76c90c7a" value="CHPAM34^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO"\> + <rim:Name> + <rim:LocalizedString value="XDSFolder.patientId"/> + </rim:Name> + </rim:ExternalIdentifier> + </rim:RegistryPackage> + <!--==== /Folder Part ====--> + + <rim:Association associationType="urn:oasis:names:tc:ebxml-regrep:AssociationType:HasMember" id="efd55471-b598-4c13-870c-202360a8450d" sourceObject="urn:uuid:fd22545f-d7f6-4ca1-8ff1-d8bae7364ac1" targetObject="urn:uuid:966276d6-6486-4d0b-a673-a4cf76c90c7a"/> + + <!--==== Document Entry Part ====--> + <rim:ExtrinsicObject id="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" mimeType="text/xml" objectType="urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1" status="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved" lid="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" home="urn:oid:1.2.3.4.5.6.2.333.23"\> + <rim:Slot name="repositoryUniqueId"> + <rim:ValueList> + <rim:Value>1.3.6.1.4.1.12559.11.25.1.11.2</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="hash"> + <rim:ValueList> + <rim:Value>e564e98733d1ecdff0255fe0b50a33075940015c</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="size"> + <rim:ValueList> + <rim:Value>9995</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="languageCode"> + <rim:ValueList> + <rim:Value>en-us</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="creationTime"> + <rim:ValueList> + <rim:Value>20180712030836</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="sourcePatientId"> + <rim:ValueList> + <rim:Value>CHPAM34^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="XDSDocument Entry 1"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + <rim:Classification classificationScheme="urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a" classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" id="urn:uuid:6e9c5cff-a1db-4e62-93fd-a257fccc83d5" nodeRepresentation="1241000195103" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Note on Procedure (record artifact)"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:f4f85eac-e6cb-4883-b524-f2705394840f" classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" id="urn:uuid:de59c2f8-75a2-4d1b-80ed-c491666b30b3" nodeRepresentation="1131000195104" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="eingeschrenkt"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d" classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" id="urn:uuid:32641cd9-b238-4d56-99ed-1a97d7c85aeb" nodeRepresentation="\*" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.756.5.30.1.127.77.10.5.2</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="\*"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:f33fb8ac-18af-42cc-ae0e-ed0b0bdb91e1" classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" id="urn:uuid:0e941bd5-e24b-418f-b527-92e0db255fff" nodeRepresentation="394778007" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Client's or patient's home (environment)"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:cccf5598-8b07-4b77-a05e-ae952c785ead" classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" id="urn:uuid:dc659cbe-b5b5-4235-a9b0-fbb9a2de2746" nodeRepresentation="8918198" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Community Medication Treatment Plan"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:f0306f51-975f-434e-a61c-c59651d33983" classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" id="urn:uuid:b6e6d57d-eae0-4391-9146-90aabaff52f9" nodeRepresentation="721912009" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Medication summary document (record artifact)"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:ExternalIdentifier id="urn:uuid:7d976a2b-8784-41fc-a939-af0b0d71cbcd" identificationScheme="urn:uuid:2e82c1f6-a085-4c72-9da3-8640a32e42ab" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" registryObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" value="1.3.6.1.4.1.12559.11.25.1.16.2.20171010072756850"> + <rim:Name> + <rim:LocalizedString value="XDSDocumentEntry.uniqueId"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:ExternalIdentifier> + <rim:ExternalIdentifier id="urn:uuid:355feb7f-a3d2-41f5-9e4e-698ed3ffc4bd" identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427" objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" registryObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" value="CHPAM34^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO"\> + <rim:Name> + <rim:LocalizedString value="XDSDocumentEntry.patientId"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:ExternalIdentifier> + </rim:ExtrinsicObject> + <!--==== /Document Entry Part ====--> + + <rim:Association associationType="urn:oasis:names:tc:ebxml-regrep:AssociationType:HasMember" id="98359cee-59bb-4f9d-a199-151e933eeb66" sourceObject="urn:uuid:fd22545f-d7f6-4ca1-8ff1-d8bae7364ac1" targetObject="urn:uuid:e72a86d7-9d50-4b24-9c8c-2f57f6560ff8"> + <rim:Slot name="SubmissionSetStatus"> + <rim:ValueList> + <rim:Value>Original</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="PreviousVersion"> + <rim:ValueList> + <rim:Value>1</rim:Value> + </rim:ValueList> + </rim:Slot> + </rim:Association> + + </rim:RegistryObjectList> + </lcm:SubmitObjectsRequest> + </soap12:Body> + </soap12:Envelope> +``` + + +### Restricted Update Document Set \[ITI-92\] Success response example +```xml +<soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing"> + <soap12:Header> + <wsa:Action xmlns="http://www.w3.org/2005/08/addressing">urn:ihe:iti:2018:RestrictedUpdateDocumentSetResponse</wsa:Action> + <wsa:MessageID>urn:uuid:247d1b0a-477b-4539-ad61-18833df5b327</wsa:MessageID> + <wsa:To>http://www.w3.org/2005/08/addressing/anonymous</wsa:To> + <wsa:RelatesTo>urn:uuid:43182b89-24d6-43cf-bc86-da4d710650e0</wsa:RelatesTo> + </soap12:Header> + <soap12:Body> + <rs:RegistryResponse status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success" xmlns:rs="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0"/> + </soap12:Body> +</soap12:Envelope> +``` + + +### Restricted Update Document Set \[ITI-92\] Failed response example +```xml +<soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing"> + <soap12:Header> + <wsa:Action>urn:ihe:iti:2018:RestrictedUpdateDocumentSetResponse</wsa:Action> + <wsa:MessageID>urn:uuid:986c0b7a-7fe4-467e-886d-46993ab7fcea</wsa:MessageID> + <wsa:To>http://www.w3.org/2005/08/addressing/anonymous</wsa:To> + <wsa:RelatesTo xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:ae6d7767-c766-475e-85fc-395270831912</wsa:RelatesTo> + </soap12:Header> + <soap12:Body> + <rs:RegistryResponse status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Failure" xmlns:rs="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0"> + <rs:RegistryErrorList> + <rs:RegistryError severity="urn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Error" errorCode="XDSUnknownCommunity" codeContext="A value for the homeCommunityId is not recognize ()" /> + </rs:RegistryErrorList> + </rs:RegistryResponse> + </soap12:Body> +</soap12:Envelope> +``` + + +### Registry Stored Query \[ITI-18\] Request example +```xml +<s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope"> + <s:Header> + <a:Action s:mustUnderstand="1">urn:ihe:iti:2007:RegistryStoredQuery</a:Action> + <a:MessageID>urn:uuid:3cce0135-cedb-4a26-ba00-8698ee8dde04</a:MessageID> + <a:ReplyTo> + <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address> + </a:ReplyTo> + <a:To s:mustUnderstand="1"/> + </s:Header> + <s:Body> + <query:AdhocQueryRequest xmlns:lcm="urn:oasis:names:tc:ebxml-regrep:xsd:lcm:3.0" + xmlns:query="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0" + xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" + xmlns:rs="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0" + xmlns:xdsb="urn:ihe:iti:xds-b:2007" + xmlns:xop="http://www.w3.org/2004/08/xop/include"> + <query:ResponseOption returnComposedObjects="true" returnType="LeafClass"/> + <rim:AdhocQuery home="urn:oid:1.2.3.4.5.6.2.333.23" id="urn:uuid:14d4debf-8f97-4251-9a74-a90016b0af0d"> + <rim:Slot name="$XDSDocumentEntryPatientId"> + <rim:ValueList> + <rim:Value>'CHPAM34^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO'</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="$XDSDocumentEntryStatus"> + <rim:ValueList> + <rim:Value>('urn:oasis:names:tc:ebxml-regrep:StatusType:Approved')</rim:Value> + </rim:ValueList> + </rim:Slot> + </rim:AdhocQuery> + </query:AdhocQueryRequest> + </s:Body> +</s:Envelope> +``` + + +### Registry Stored Query \[ITI-18\] Success response example +```xml +<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"> + <S:Header> + <wsa:Action s:mustUnderstand="1" xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing">urn:ihe:iti:2007:RegistryStoredQueryResponse</wsa:Action> + <wsa:RelatesTo xmlns:wsa="http://www.w3.org/2005/08/addressing">urn:uuid:03630d05-2fe8-4832-9e6f-345e53d4338a</wsa:RelatesTo> + </S:Header> + <S:Body> + <query:AdhocQueryResponse status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success" + xmlns:query="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0"> + <rim:RegistryObjectList xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"> + <rim:ExtrinsicObject id="urn:uuid:e72a86d7-9d50-4b24-9c8c-2f57f6560ff8" + mimeType="text" objectType="urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1" + status="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved" + lid="urn:uuid:e72a86d7-9d50-4b24-9c8c-2f57f6560ff8"> + <rim:Slot name="languageCode"> + <rim:ValueList> + <rim:Value>en-us</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="creationTime"> + <rim:ValueList> + <rim:Value>20180115120556</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Slot name="sourcePatientId"> + <rim:ValueList> + <rim:Value>CHPAM34^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="XDSDocument Entry 1"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + <rim:Classification classificationScheme="urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a" + classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" + id="urn:uuid:6e9c5cff-a1db-4e62-93fd-a257fccc83d5" + nodeRepresentation="\*" + objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="\*"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:f4f85eac-e6cb-4883-b524-f2705394840f" + classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" + id="urn:uuid:de59c2f8-75a2-4d1b-80ed-c491666b30b3" + nodeRepresentation="1131000195104" + objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="eingeschr?nkt"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d" + classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" + id="urn:uuid:32641cd9-b238-4d56-99ed-1a97d7c85aeb" + nodeRepresentation="urn:ihe:rad:1.2.840.10008.5.1.4.1.1.88.59" + objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.756.5.30.1.127.77.10.5.2</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="KOS Dokument"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:f33fb8ac-18af-42cc-ae0e-ed0b0bdb91e1" + classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" + id="urn:uuid:0e941bd5-e24b-418f-b527-92e0db255fff" + nodeRepresentation="394778007" + objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Client's or patient's home (environment)"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:cccf5598-8b07-4b77-a05e-ae952c785ead" + classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" + id="urn:uuid:dc659cbe-b5b5-4235-a9b0-fbb9a2de2746" + nodeRepresentation="394810000" + objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Rheumatology (qualifier value)"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:Classification classificationScheme="urn:uuid:f0306f51-975f-434e-a61c-c59651d33983" + classifiedObject="urn:uuid:811da817-e516-4331-b9e2-f649086a5481" + id="urn:uuid:b6e6d57d-eae0-4391-9146-90aabaff52f9" + nodeRepresentation="721912009" + objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification"> + <rim:Slot name="codingScheme"> + <rim:ValueList> + <rim:Value>2.16.840.1.113883.6.96</rim:Value> + </rim:ValueList> + </rim:Slot> + <rim:Name> + <rim:LocalizedString value="Medication summary document (record artifact)"/> + </rim:Name> + <rim:VersionInfo versionName="1"/> + </rim:Classification> + <rim:ExternalIdentifier id="urn:uuid:b21fc0dd-3ad6-4bb5-95d5-b730ced3b984" + identificationScheme="urn:uuid:2e82c1f6-a085-4c72-9da3-8640a32e42ab" + objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" + registryObject="urn:uuid:e72a86d7-9d50-4b24-9c8c-2f57f6560ff8" + value="1.3.6.1.4.1.12559.11.1.2.2.1.1.4.101633"> + <rim:Name> + <rim:LocalizedString value="XDSDocumentEntry.uniqueId"/> + </rim:Name> + </rim:ExternalIdentifier> + <rim:ExternalIdentifier id="2617f4ec-599b-41c1-9ffe-9039178d9eb5" + identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427" + objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier" + registryObject="urn:uuid:e72a86d7-9d50-4b24-9c8c-2f57f6560ff8" + value="CHPAM34^^^CHPAM&1.3.6.1.4.1.12559.11.20.1&ISO"> + <rim:Name> + <rim:LocalizedString value="XDSDocumentEntry.patientId"/> + </rim:Name> + </rim:ExternalIdentifier> + </rim:ExtrinsicObject> + </rim:RegistryObjectList> + </query:AdhocQueryResponse> + </S:Body> +</S:Envelope> +``` + + +### Registry Stored Query \[ITI-18\] Failed response example +```xml +<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"> + <S:Header> + <wsa:Action s:mustUnderstand="1" xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing">urn:ihe:iti:2007:RegistryStoredQueryResponse</wsa:Action> + <wsa:RelatesTo xmlns:wsa="http://www.w3.org/2005/08/addressing">urn:uuid:88f37191-6659-494a-919e-2bd52f655303</wsa:RelatesTo> + </S:Header> + <S:Body> + <query:AdhocQueryResponse status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Failed" + xmlns:query="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0"> + <Error>no documents with this PatientID 333^^^&2.16.756.5.30.1.127.3.10.3&ISO</Error> + </query:AdhocQueryResponse> + </S:Body> +</S:Envelope +``` \ No newline at end of file