Newer
Older
---
### Prerequisites
- Java 11 with maven.
- WildFly 18.
---
### Build project locally
After cloning this repository to your local installation launch
```bash
> mvn clean install
```
from the project root directory.
The artifact pixm_fhir_server.war will be created in target/ directory.
---
### Deploy on WildFly server
After building the project through Maven, the artifact created just has to be added to your local WildFly installation in the folder
```bash
{$wildfly.home}/standalone/deployments
```
---
### Request a Patient on a specific Target Identifier
Once the project deployed on your WildFly, you can now call it to request a cross Referenced Patient in the Patient Registry.
Parameters allowed are :
- The Patient Identifier and the Target System attributed to this identifier
- The Target System you want the cross reference from.
- The format returned.
Cardinality for these parameters will be described in each profile since it's the main difference between each.
#### IHE Profile
The URL to call is
```http
{wildfly18.address}/pixm_fhir_server/fhir_ihe/Patient/$ihe-pix
```
|Parameter name|Cardinality|Parameter Type|Description|
|--------------|-----------|--------------|-----------|
|sourceIdentifier|1..1|Token|The Patient identifier search parameter that will be used by the Patient Identifier Cross-reference Manager to find cross matching identifiers associated with the Patient Resource
|targetSystem|0..*|uri|The target Patient Identifier Assigning Authority from which the returned identifiers should be selected.|
|_format|0..1|mime-type|The requested format of the response. Accepted values : JSON and XML|
#### CH Profile
The URL to call is
```http
{wildfly18.address}/pixm_fhir_server/fhir_ch/Patient/$ihe-pix
```
|Parameter name|Cardinality|Parameter Type|Description|
|--------------|-----------|--------------|-----------|
|sourceIdentifier|1..1|Token|The Patient identifier search parameter that will be used by the Patient Identifier Cross-reference Manager to find cross matching identifiers associated with the Patient Resource
|targetSystem|1..2|uri|The target Patient Identifier Assigning Authority from which the returned identifiers should be selected.|
|_format|0..1|mime-type|The requested format of the response. Accepted values : JSON and XML|
Given the Patient with the ID 69420 in the Target System 1.3.6.1.4.1.21367.13.20.3000
And you want the cross referenced patient in the target system 1.3.6.1.4.1.21367.13.20.1000
```http
{wildfly18.address}/pixm_fhir_server/fhir_ihe/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
```
---
### Error returned
Malformed requests can cause different types of error, here is a quick overview of how to troubleshoot them :

An error 400 Bad Request is returned when the source domain given within the source identifier parameter is not recognized by the Patient Registry as an asigning authority.
In the case of our request above, the value "urn:oid:1.3.6.1.4.1.21367.13.20.3000" is not a valid source domain able to register Patients
Common mistakes with the source domain include :
- Forgetting the namespace in front of the adress (urn:oid:)
- Malformed source domain.
The source domain can have the form of an url
or of an adress, which must follows the pattern x.x.x.x.x.x.x.x.x.x
```http
sourceIdentifier=urn:oid:x.x.x.x.x.x.x.x.x.x|id
```
---

An error 403 Forbidden is returned when a target domain given in the target system parameter is not recognized by the Patient Registry.
In the case of our request above, the value "urn:oid:1.3.6.1.4.1.21367.13.20.1000" is not recognized as a valid target domain containing Patients.
Common mistakes with the target system are the same as the aformentioned error 400 since the target system and the source domain have the same representation.
---

An error 404 Not Found is returned when the patient identifier given within the source identifier parameter is not recognized by the Patient registry.
In the case of our request above, the value "69420" is not a valid Identifier linked to an existing Patient.