Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 16199e67 authored by Alexandre Pocinho's avatar Alexandre Pocinho
Browse files

update documentation for Pixm connector 3.0.2 and patient registry 2.2.2

parent 518473f1
Branches
No related tags found
No related merge requests found
---
title: Release note
subtitle: PatientRegistry
toolversion: 2.2.1
toolversion: 2.2.2
releasedate: 2024-01-31
author: Franck Desaize / Alexandre POCINHO
author: Alexandre POCINHO
function: Software Engineer
customer: IHE Europe
reference: KER1-RNO-IHE-PATIENT_MANAGER
---
# PIXm Connector 3.0.1
_Release date: 2024-08-07_
__Bug__
* \[[PATREG-225](https://gazelle.ihe.net/jira/browse/PATREG-225)\] [Pixm Connector] hard coded mandatory targetSystem
# Patient Registry 2.2.2
_Release date: 2025-07-09_
__Improvement__
* \[[PATREG-226](https://gazelle.ihe.net/jira/browse/PATREG-226)\] [Pixm Connector] Upgrade HAPI FHIR version to 7.2.2
__Bug__
* \[[IHESOFT-5659](https://gazelle.ihe.net/jira/browse/IHESOFT-5659)\] Correction of methods for ITI-104 transaction and related catching exception mechanism
# Patient Registry 2.2.1
......@@ -25,37 +23,11 @@ _Release date: 2024-06-27_
__Epic__
* \[[PATREG-224](https://gazelle.ihe.net/jira/browse/PATREG-224)\] Implement Search with params
# PIXm Connector 3.0.0
_Release date: 2024-02-02_
__New Feature__
* \[[PATREG-220](https://gazelle.ihe.net/jira/browse/PATREG-220)\] Implementation of ITI-104
* \[[PATREG-221](https://gazelle.ihe.net/jira/browse/PATREG-221)\] Validation Feature w/ Matchbox
* \[[PATREG-222](https://gazelle.ihe.net/jira/browse/PATREG-222)\] Validation Feature w/ HTTP-Validator
* \[[PATREG-223](https://gazelle.ihe.net/jira/browse/PATREG-223)\] Upgrade to Java 17 and Jakarta
# Patient Registry 2.2.0
_Release date: 2024-01-31_
__Epic__
* \[[PATREG-216](https://gazelle.ihe.net/jira/browse/PATREG-216)\] [CH] Adaptation of the new PIXm specifications
# PIXm Connector 2.0.0
_Release date: 2021-09-10_
## Story
* \[[PATREG-169](https://gazelle.ihe.net/jira/browse/PATREG-169)\] [Pixm Connector] Implement Feed requests in new provider
* \[[PATREG-199](https://gazelle.ihe.net/jira/browse/PATREG-199)\] [Patient Registry] Implement GITB Webservice
## Task
* \[[PATREG-166](https://gazelle.ihe.net/jira/browse/PATREG-166)\] [Pixm CH] Implement feed query Soap Client CH :ITI93
* \[[PATREG-188](https://gazelle.ihe.net/jira/browse/PATREG-188)\] [PIXm Connector] Implement Create method
* \[[PATREG-189](https://gazelle.ihe.net/jira/browse/PATREG-189)\] [PIXm Connector] Implement Update Method#APO
* \[[PATREG-190](https://gazelle.ihe.net/jira/browse/PATREG-190)\] [PIXm Connector] Implement Read Method
* \[[PATREG-191](https://gazelle.ihe.net/jira/browse/PATREG-191)\] [PIXm Connector] Implement Merge method #PVM
* \[[PATREG-192](https://gazelle.ihe.net/jira/browse/PATREG-192)\] [PIXm Connector] Implement Delete Method#FDE
* \[[PATREG-210](https://gazelle.ihe.net/jira/browse/PATREG-210)\] [PIXm Connector] Implement Update Method#PVM
# Patient Registry 2.1.0
_Release date: 2021-09-10_
......@@ -76,24 +48,6 @@ _Release date: 2021-09-10_
* \[[PATREG-205](https://gazelle.ihe.net/jira/browse/PATREG-205)\] [Patient Registry] Refactor on existing DAO
# PIXm Connector 1.0.0
_Release date: 2021-07-12_
## Epic
* \[[PATREG-154](https://gazelle.ihe.net/jira/browse/PATREG-154)\] [Pixm Hapi Srv] Implement Pixm FhirServer
* \[[PATREG-156](https://gazelle.ihe.net/jira/browse/PATREG-156)\] [Pixm] implement CH:Pixm
## Story
* \[[PATREG-146](https://gazelle.ihe.net/jira/browse/PATREG-146)\] [Pixm Hapi Srv] Implement Pixm Simulator (Hapi Fhir) Client and Server
* \[[PATREG-147](https://gazelle.ihe.net/jira/browse/PATREG-147)\] [Pixm Hapi srv] Implement Hapi Server
* \[[PATREG-150](https://gazelle.ihe.net/jira/browse/PATREG-150)\] [Pixm Hapi Srv] Implement Ch:pixm provider
* \[[PATREG-152](https://gazelle.ihe.net/jira/browse/PATREG-152)\] [Pixm Client] Implement a Soap Client (GWT) ITI-83
## Task
* \[[PATREG-148](https://gazelle.ihe.net/jira/browse/PATREG-148)\] [Pixm Hapi Srv] Implement the Server Hapi Fhir
* \[[PATREG-149](https://gazelle.ihe.net/jira/browse/PATREG-149)\] [Pixm Hapi Srv] Implement Provider for Hapi Server (ITI-83)
* \[[PATREG-165](https://gazelle.ihe.net/jira/browse/PATREG-165)\] [Pixm Client] CH:Pixm implement CH:ITI83
* \[[PATREG-166](https://gazelle.ihe.net/jira/browse/PATREG-166)\] [Pixm CH] Implement feed query Soap Client CH :ITI93
# Patient Registry 2.0.0
_Release date: 2021-07-12_
......@@ -110,16 +64,6 @@ _Release date: 2021-07-12_
* \[[PATREG-159](https://gazelle.ihe.net/jira/browse/PATREG-159)\] [PatientRegistry] Implement DAO For targetDomains
* \[[PATREG-162](https://gazelle.ihe.net/jira/browse/PATREG-162)\] [Patient Registry] Implement Java Webservice Client for X-ref search on Identifier
# PDQm Connector 1.0.0
_Release date: 2020-04-24_
__Story__
* \[[PATREG-37](https://gazelle.ihe.net/jira/browse/PATREG-37)\] [PDQm] PDS query on uuid
* \[[PATREG-41](https://gazelle.ihe.net/jira/browse/PATREG-41)\] [PDQm] PDS retrieve on uuid
# Patient Registry 1.0.0
_Release date: 2020-04-22_
......
SHELL := /bin/bash
include ../Makefile.generic
---
title: Installation Manual
subtitle: PixM Connector
author: Alexandre POCINHO
releasedate: 2024-02-02
toolversion: 3.0.2
function: Developer
version: 0.01
status: Draft document
customer: IHE-EUROPE
---
## PIXm Connector installation
PIXm Connector is a connector for Patient Registry. It is dedicated to interface FHIR requests defined in PIXm standard to and the
Patient Registry API for patient demographics and identifiers test data management.
### Sources & binaries (PIXm)
The sources are accessible here: <https://gitlab.inria.fr/gazelle/applications/test-execution/simulator/pixm-connector>.
Bugs and issue tracking are accessible in the same project as the EHSSoftware :
<https://gazelle.ihe.net/jira/projects/EHSSOFT/issues>.
The name of the latest release, can be obtained in the "Releases" section.
To get official artifact (binaries), search for `pixm-connector-service` in IHE Nexus : [https://nexus.ihe-catalyst.net/](https://nexus.ihe-catalyst.net/#browse/search=keyword%3D%22pixm-connector-service%22)
and select the **pixm-connector-service.war** artifact for download.
### Installation (PIXm)
#### Patient Manager dependency (PIXm)
Same as [Patient Manager dependency for PATREG](#patient-manager-dependency)
PIXm also needs Patient Registry to be installed:
#### Matchbox and Http-Validator dependencies (PIXm)
Since `3.0.0` PIXm needs two deployed applications for validation:
* HTTP-validator with the install documentation [here](https://gitlab.inria.fr/gazelle/public/validation/http-validator/-/blob/master/documentation/installation.md).
* Matchbox with the install documentation [here](https://github.com/ahdis/matchbox/blob/main/README.md)
#### Operational Preferences
PIXm connector defines mandatory Operational Preferences that you will have to define in your Application server.
To know how to do that, see [General considerations for WildFly 18](/gazelle-documentation/General/wildfly18.html)
/!\ Since `3.0.0` PIXm connector needs to be installed in Wildfly version 30.0.1.Final that supports `JDK 17`. But the tutorial remains the same as Wildfly 18.
Define a resource in your server with name *java:/app/gazelle/pixm-connector/operational-preferences*.
```xml
<subsystem xmlns="urn:jboss:domain:naming:2.0">
<bindings>
<object-factory name="java:/app/gazelle/pixm-connector/operational-preferences" module="net.ihe.gazelle.factories" class="net.ihe.gazelle.factories.PropertiesFactory">
<environment>
<property name="path" value="${DEPLOYMENT_PROPERTIES}"/>
</environment>
</object-factory>
</bindings>
<remote-naming/>
</subsystem>
```
Replace this property `${DEPLOYMENT_PROPERTIES}` with the path to the `deployment.properties` file (like `/opt/pixm-connector/deployment.properties`)
This file shall contain the following properties :
|Property Name| Description | Example value |
|:---:|:---:|:---:|
| patientregistry.url | URL of the Patient Registry Processing Service used to manage patients.| <https://example.com/patient-registry/PatientProcessingService/patient-processing-service?wsdl>|
| xrefpatientregistry.url | URL of the CrossReference Processing Service used to XReference. | <https://example.com/patient-registry/CrossReferenceService/xref-processing-service?wsdl> |
#### Deployment
Copy the **war** artifact `pixm-connector-X.X.X.war` (< 3.0.0) or `pixm-connector-service-X.X.X.war` (>= 3.0.0) in the deployment folder of the wildfly installation under the name
`pixm-connector.war`.
This is important for the path on which connector's web services will be exposed.
Before `3.0.0`:
```bash
cp pixm-connector-X.X.X.war /usr/local/wildfly18/standalone/deployments/pixm-connector.war
```
Since `3.0.0`:
```bash
cp pixm-connector-service-X.X.X.war /usr/local/wildfly30/standalone/deployments/pixm-connector.war
```
Start wildfly.
The API can be accessed at (depending on your configured host and port):
* ITI-104 : PUT/DELETE <https://example.com/pixm-connector/fhir/Patient?identifier=patient.system%7Cpatient.id>
* ITI-83 : GET <https://example.com/pixm-connector/fhir/Patient/$ihe-pix?sourceIdentifier=patient.system%7Cpatient.id&targetSystem=targetSystem>
* Capability statement : <https://example.com/pixm-connector/fhir/metadata>
---
title: Release note
subtitle: PixM Connector
toolversion: 3.0.2
releasedate: 2025-07-10
author: Alexandre POCINHO
function: Software Engineer
customer: eHealthSuisse
---
# PIXm Connector 3.0.2
_Release date: 2025-07-09_
__Bug__
* \[[EHSSOFT-252](https://gazelle.ihe.net/jira/browse/EHSSOFT-252)\] Correction of methods for ITI-104 transaction
# PIXm Connector 3.0.1
_Release date: 2024-08-07_
__Bug__
* \[[PATREG-225](https://gazelle.ihe.net/jira/browse/PATREG-225)\] [Pixm Connector] hard coded mandatory targetSystem
__Improvement__
* \[[PATREG-226](https://gazelle.ihe.net/jira/browse/PATREG-226)\] [Pixm Connector] Upgrade HAPI FHIR version to 7.2.2
# PIXm Connector 3.0.0
_Release date: 2024-02-02_
__New Feature__
* \[[PATREG-220](https://gazelle.ihe.net/jira/browse/PATREG-220)\] Implementation of ITI-104
* \[[PATREG-221](https://gazelle.ihe.net/jira/browse/PATREG-221)\] Validation Feature w/ Matchbox
* \[[PATREG-222](https://gazelle.ihe.net/jira/browse/PATREG-222)\] Validation Feature w/ HTTP-Validator
* \[[PATREG-223](https://gazelle.ihe.net/jira/browse/PATREG-223)\] Upgrade to Java 17 and Jakarta
# PIXm Connector 2.0.0
_Release date: 2021-09-10_
## Story
* \[[PATREG-169](https://gazelle.ihe.net/jira/browse/PATREG-169)\] [Pixm Connector] Implement Feed requests in new provider
* \[[PATREG-199](https://gazelle.ihe.net/jira/browse/PATREG-199)\] [Patient Registry] Implement GITB Webservice
## Task
* \[[PATREG-166](https://gazelle.ihe.net/jira/browse/PATREG-166)\] [Pixm CH] Implement feed query Soap Client CH :ITI93
* \[[PATREG-188](https://gazelle.ihe.net/jira/browse/PATREG-188)\] [PIXm Connector] Implement Create method
* \[[PATREG-189](https://gazelle.ihe.net/jira/browse/PATREG-189)\] [PIXm Connector] Implement Update Method#APO
* \[[PATREG-190](https://gazelle.ihe.net/jira/browse/PATREG-190)\] [PIXm Connector] Implement Read Method
* \[[PATREG-191](https://gazelle.ihe.net/jira/browse/PATREG-191)\] [PIXm Connector] Implement Merge method #PVM
* \[[PATREG-192](https://gazelle.ihe.net/jira/browse/PATREG-192)\] [PIXm Connector] Implement Delete Method#FDE
* \[[PATREG-210](https://gazelle.ihe.net/jira/browse/PATREG-210)\] [PIXm Connector] Implement Update Method#PVM
# PIXm Connector 1.0.0
_Release date: 2021-07-12_
## Epic
* \[[PATREG-154](https://gazelle.ihe.net/jira/browse/PATREG-154)\] [Pixm Hapi Srv] Implement Pixm FhirServer
* \[[PATREG-156](https://gazelle.ihe.net/jira/browse/PATREG-156)\] [Pixm] implement CH:Pixm
## Story
* \[[PATREG-146](https://gazelle.ihe.net/jira/browse/PATREG-146)\] [Pixm Hapi Srv] Implement Pixm Simulator (Hapi Fhir) Client and Server
* \[[PATREG-147](https://gazelle.ihe.net/jira/browse/PATREG-147)\] [Pixm Hapi srv] Implement Hapi Server
* \[[PATREG-150](https://gazelle.ihe.net/jira/browse/PATREG-150)\] [Pixm Hapi Srv] Implement Ch:pixm provider
* \[[PATREG-152](https://gazelle.ihe.net/jira/browse/PATREG-152)\] [Pixm Client] Implement a Soap Client (GWT) ITI-83
## Task
* \[[PATREG-148](https://gazelle.ihe.net/jira/browse/PATREG-148)\] [Pixm Hapi Srv] Implement the Server Hapi Fhir
* \[[PATREG-149](https://gazelle.ihe.net/jira/browse/PATREG-149)\] [Pixm Hapi Srv] Implement Provider for Hapi Server (ITI-83)
* \[[PATREG-165](https://gazelle.ihe.net/jira/browse/PATREG-165)\] [Pixm Client] CH:Pixm implement CH:ITI83
* \[[PATREG-166](https://gazelle.ihe.net/jira/browse/PATREG-166)\] [Pixm CH] Implement feed query Soap Client CH :ITI93
---
title: User Manual
subtitle: PixM Connector
author: Alexandre POCINHO
releasedate: 2025-07-10
toolversion: 3.0.2
function: Engineer
version: 0.1
status: validated
---
# PIXm Connector Component
## Outline
- [PIXm Connector Component](#pixm-connector-component)
- [Overview](#overview)
- [Validation Process](#validation-process)
- [ITI-83 Request cross reference identifiers](#request-a-patient-cross-reference-on-a-specific-target-identifier-iti-83)
- [ITI-104 Request on Patient Resources](#requests-on-patient-resources-iti-104)
- [Create/Update](#createupdate)
- [Merge duplicated patient](#merge-for-resolving-duplicated-patient)
- [Delete patient](#delete-one-or-more-patients)
- [Errors returned](#errors-returned)
## Overview
Here is a quick overview of the available functionality from PIXm connector
| Operation | HTTP Methods | URL to call | Entry parameter | Returned value |
|--------------------------------|--------------|--------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------|------------------------------------------|
| Create/Update Patient | PUT | ```https://example.com/pixm-connector/fhir/Patient?identifier=patient.system%7Cpatient.id``` | ITI-104 Patient identifier | ITI-104 FHIR Patient |
| Delete Patient | DELETE | ```https://example.com/pixm-connector/fhir/Patient/?identifier=patient.system%7Cpatient.id``` | ITI-104 Patient identifier | / |
| Merge Patient | PUT | ```https://example.com/pixm-connector/fhir/Patient/?identifier=patient.system%7Cpatient.id``` | ITI-104 Patient identifier w/ patient.link to Patient to keep | ITI-104 FHIR Patient |
| Check Cross Referenced Patient | GET | ```https://example.com/pixm-connector/fhir/Patient/$ihe-pix?sourceIdentifier=patient.system%7Cpatient.id&targetSystem=targetSystem``` | A Patient sourceIdentifier and a TargetDomain | ITI-83 FHIR Parameters with X-ref values |
Capability statement of the application can be found with : <https://example.com/pixm-connector/fhir/metadata>
As described in [HAPI FHIR resources](https://hapifhir.io/hapi-fhir/docs/server_plain/rest_operations_operations.html), some strings are automatically escaped when the FHIR server parses URLs:
|Given String|Parsed as|
| :---: | :---: |
|\||%7C|
|=>=|=%3E%3D|
|=<=|=%3C%3D|
|=>|=%3E|
|=<|=%3C|
## Validation process
Each operation implies a validation of requests for both `ITI-104` and `ITI-83` transactions.
Validation is done by calling:
- [HTTP Validator](https://gitlab.inria.fr/gazelle/applications/test-execution/validator/http-validator) for URL and Headers.
- [Matchbox](https://www.matchbox.health/) for Body with FHIR Resource.
Both validators allow to perform validation and have high customization if specifications changed for both transactions without refactoring pixm-connector application.
An error during validation process will result with an OperationOutcome with error `400 Bad Request` with issues describing where it failed.
## Request a Patient Cross Reference on a specific Target Identifier (ITI-83)
- [IHE Specifications](https://profiles.ihe.net/ITI/PIXm/ITI-83.html)
Request a cross-referenced Patient is possible thanks to the `$ihe-pixm`.
Parameters allowed are :
- The Patient Identifier and the Target System attributed to this identifier as `sourceIdentfier`
- The Target System you want the cross-reference from as `targetSystem`.
- The format returned as `_format`: **xml** or **json**.
The URL to call is:
```http
GET https://example.com/pixm-connector/fhir/Patient/$ihe-pix
```
For example :
Given the Patient with the `id=69420` with the `system=urn:oid:1.3.6.1.4.1.21367.13.20.3000` as `sourceIdentifer=system|id`
And you want the cross-referenced patient in the `targetSystem=1.3.6.1.4.1.21367.13.20.1000`
And you want the returned response as a `json`.
The corresponding url will be :
```http
https://example.com/pixm-connector/fhir/Patient/$ihe-pix?sourceIdentifier=urn:oid:1.3.6.1.4.1.21367.13.20.3000|69420&targetSystem=urn:oid:1.3.6.1.4.1.21367.13.20.1000&_format=json
```
---
## Requests on Patient resources (ITI-104)
- [IHE Specifications](https://profiles.ihe.net/ITI/PIXm/ITI-104.html)
---
### Create/Update
Link: <https://profiles.ihe.net/ITI/PIXm/ITI-104.html#2310441-add-or-revise-patient>
PIXm connector accepts the creation of a Patient in the Patient Manager.
Although a Patient could be created without any information in the HL7 model, PIXm connector will only allow a Patient
to be created with minimum and/or mandatory information to permits cross-reference thanks to validation with Matchbox.
The Resource could not be parsed or failed basic FHIR validation rules.
In the case of an error `400 Bad Request` or `422 Unprocessable Entity` being returned,
please check the following guidelines to verify your query.
Create/Update request is done through a FHIR conditional update mechanism ([cond-update](http://hl7.org/fhir/http.html#cond-update)) where the patient identifier has to be given as following.
```http
PUT https://example.com/pixm-connector/fhir/Patient/identifier=urn:oid:1.3.6.1.4.1.21367.13.20.1000|IHERED-m94
```
With body :
```json
{
"resourceType" : "Patient",
"id" : "Patient-MaidenAlice-Red",
"meta" : {
"profile" : [
"https://profiles.ihe.net/ITI/PIXm/StructureDefinition/IHE.PIXm.Patient"
]
},
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p style=\"border: 1px #661aff solid; background-color: #e6e6ff; padding: 10px;\"><b>ALICE MOHR </b> female, DoB: 1958-01-30 ( id:\u00a0IHERED-m94)</p><hr/><table class=\"grid\"><tr><td style=\"background-color: #f3f5da\" title=\"Record is active\">Active:</td><td colspan=\"3\">true</td></tr></table></div>"
},
"identifier" : [
{
"system" : "urn:oid:1.3.6.1.4.1.21367.13.20.1000",
"value" : "IHERED-m94"
}
],
"active" : true,
"name" : [
{
"family" : "MOHR",
"given" : [
"ALICE"
]
}
],
"gender" : "female",
"birthDate" : "1958-01-30"
}
```
If the patient exists then it is updated otherwise it is created.
The response will return the updated/created patient.
---
### Merge for resolving duplicated patient
Link : <https://profiles.ihe.net/ITI/PIXm/ITI-104.html#2310442-resolve-duplicate-patient>
The merge method allows the user to merge two patients together if two registered patients represent the same people.
This action is **irreversible** as it deactivates a resource making it only readable and immutable.
The request is a PUT method with the Patient to deactivate with a `activate: false` attribute and a `link` field with identifier for the kept patient resource.
```http
PUT http://example.org/fhir/Patient?identifier=urn:oid:1.3.6.1.4.1.21367.13.20.1000|IHERED-m94 HTTP/1.1
Accept: application/fhir+json
Content-Type: application/fhir+json
```
```json
{
"resourceType": "Patient",
"identifier": [
{
"system": "urn:oid:1.3.6.1.4.1.21367.13.20.1000",
"value": "IHERED-m94"
}
],
"active": false,
"name": [
{
"family": "MOHR",
"given": [
"MAIDEN"
]
}
],
"gender": "female",
"birthDate": "1958-01-30",
"link": [
{
"other": {
"identifier": {
"system": "urn:oid:1.3.6.1.4.1.21367.13.20.1000",
"value": "IHERED-994"
}
},
"type": "replaced-by"
}
]
}
```
### Delete one or more patient(s)
Link: <https://profiles.ihe.net/ITI/PIXm/ITI-104.html#2310443-remove-patient>
The delete operation allows suppression of the patient with its identifier thanks to a conditional deletion.
This application allows multiple deletion if the identifier returned more than one Patient.
````http
DELETE http://example.org/fhir/Patient?identifier=urn:oid:1.3.6.1.4.1.21367.13.20.1000|IHERED-994 HTTP/1.1
Accept: application/fhir+json
````
if the delete is successful the application returns a `200 OK` response otherwise it would be a `204 No Content`.
### Errors returned
---
Malformed requests can cause different types of error, for now `422 Unprocessable Entity` is mostly returned.
Future features will allow a better granularity for code returned.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment