TEST: OHIE-CR-06-FHIR

Patient Identity Cross Referencing
This test ensures that the receiver registers patients in two different identity domains (TEST_Aand TEST_B ) and ensures that the receiver can appropriately cross reference the two identifiers in the identity domains using the IHE Patient Identity Cross Referencing (PIXm) transactions.

References

Discussion

The IHE PIXm transaction is used in scenarios where only cross-referenced identities are disclosed to callers. The transaction is implemented as an operation on the Client Registry and is invoked returning a collection of parameters which represent the cross referenced identities and no further patient information.

Pre-Conditions

Prior to running this test ensure that the pre-conditions from TEST: OHIE-CR-04 have been run.

Create NID Domain

The NID domain is a sample domain which is being used to simulate a globally assignable national identifier (such as a citizen card, etc.) which can be used by the receiver to eliminate fuzzy matching from this test case.
<dataset id="NID Domain" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://santedb.org/data">
<!-- TEST -->
<insert skipIfError="false" skipIfExists="true">
<AssigningAuthority xmlns="http://santedb.org/model">
<name>OHIE NID TEST Domain</name>
<domainName>NID</domainName>
<oid>2.16.840.1.113883.3.72.5.9.9</oid>
<url>http://ohie.org/test/nid</url>
<isUnique>true</isUnique>
</AssigningAuthority>
</insert>
</dataset>

Authenticate as TEST_HARNESS_FHIR_A

The test harness authenticates against the SanteMPI IdP using a client_credentials grant for the test-harness-a account.
POST http://localhost:8080/auth/oauth2_token HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Content-Length: 94
Host: localhost:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)
grant_type=client_credentials&scope=*&client_secret=TEST_HARNESS&client_id=TEST_HARNESS_FHIR_A

Execute PIXm Query for Non-Existent Patient in TEST_A

The test harness sends an IHE PIXm query for a patient with identifier FHIRA-8767 to the receiver.
GET http://localhost:8080/fhir/Patient/$ihe-pix?sourceIdentifier=http%3A%2F%2Fohie.org%2Ftest%2Ftest_a%7CFHRA-060 HTTP/1.1
Accept-Encoding: gzip,deflate
Authorization: BEARER XXXXXXX
accept: application/fhir+json
Host: localhost:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

Expected Behaviour

Requirement
Option
Description
MUST
Return HTTP code of 404 NOT FOUND
MUST
Include an OperationOutcome entry in the response
MUST
Include have a detail with issue type not-found
SHOULD
Indicate the the identifier pair which is not found

Register New Patient Identity in TEST_A

The test harness sends an authenticated request to create a new patient with a new identifier in TEST_A domain. Patient details:
  • Identifier FHRA-061 in http://ohie.org/test/test_a with use official
  • Identifier NID061 in http://ohie.org/test/nid
  • Name: JIM SMITH
  • Gender: Male
  • DOB: 1984-05-25
{
"resourceType": "Bundle",
"type": "message",
"entry": [
{
"fullUrl": "MessageHeader/ohie-cr-06-20-fhir",
"resource": {
"resourceType": "MessageHeader",
"id": "1",
"eventUri": "urn:ihe:iti:pmir:2019:patient-feed",
"source": {
"endpoint": "http://ohie.org/test/test_harness_b"
},
"focus": [
{
"reference": "Bundle/ohie-cr-06-10-fhir"
}
],
"destination": [
{
"endpoint": "http://ohie.org/test/endpoint/Bundle"
}
]
}
},
{
"fullUrl": "Bundle/ohie-cr-06-10-fhir",
"resource": {
"resourceType": "Bundle",
"type": "history",
"entry": [
{
"fullUrl": "Patient/ohie-cr-06-10-fhir",
"resource": {
"resourceType": "Patient",
"id": "ohie-cr-06-10-fhir",
"active": true,
"identifier": [
{
"use": "official",
"type": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v2-0203",
"code": "PI"
}
]
},
"system": "http://ohie.org/test/test_a",
"value": "FHRA-061",
"assigner": {
"display": "Test Harness A Patient Identity"
}
},
{
"use":"usual",
"system": "http://ohie.org/test/nid",
"value":"NID061"
}
],
"name": [
{
"use": "official",
"family": "SMITH",
"given": [
"JIM"
]
}
],
"gender": "male",
"birthDate": "1984-05-25",
},
"request": {
"method": "POST",
"url": "Patient/ohie-cr-06-10-fhir"
}
}
]
}
}
]
}

Expected Behaviour

Requirement
Option
Description
MUST
PMIR Only
Return MessageHeader with response.code = ok
MUST
Return HTTP code of 201 Created
SHOULD
PMIR Only
Include an OperationOutcome entry in the response
SHOULD
Include a Patient entry in response containing created patient
SHOULD
Include a link to the master identity with code refer

Execute PIXm Query Patient in TEST_A

The test harness sends an IHE PIXm query for a patient with identifier FHRA-061 to the receiver.
GET http://localhost:8080/fhir/Patient/$ihe-pix?sourceIdentifier=http%3A%2F%2Fohie.org%2Ftest%2Ftest_a%7CFHRA-061 HTTP/1.1
Accept-Encoding: gzip,deflate
Authorization: BEARER XXXXXXX
Host: localhost:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

Expected Behaviour

Requirement
Option
Description
MUST
Return HTTP code of 200 OK
MUST
Include a Parameters resource in the response
MUST
Have two parameters carrying the identifier in TEST_A and NID
with parameter name of targetIdentifier
MUST
Include a parameter with name targetId which has a resource link
to the created resource from the previous step.

Authenticate as TEST_HARNESS_FHIR_B

The test harness authenticates against the SanteMPI IdP using a client_credentials grant for the test-harness-a account.
POST http://localhost:8080/auth/oauth2_token HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Content-Length: 94
Host: localhost:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)
grant_type=client_credentials&scope=*&client_secret=TEST_HARNESS&client_id=TEST_HARNESS_FHIR_B

Register New Patient Identity in TEST_B

The test harness sends an authenticated request to create a new patient with a new identifier in TEST_B domain. Patient details:
  • Identifier FHRB-062 in http://ohie.org/test/test_b with use official
  • Identifier NID061 in http://ohie.org/test/nid
  • Name: JIM SMITH
  • Gender: Male
{
"resourceType": "Bundle",
"type": "message",
"entry": [
{
"fullUrl": "MessageHeader/ohie-cr-06-20-fhir",
"resource": {
"resourceType": "MessageHeader",
"id": "1",
"eventUri": "urn:ihe:iti:pmir:2019:patient-feed",
"source": {
"endpoint": "http://ohie.org/test/test_harness_b"
},
"focus": [
{
"reference": "Bundle/ohie-cr-06-20-fhir"
}
],
"destination": [
{
"endpoint": "http://ohie.org/test/endpoint/Bundle"
}
]
}
},
{
"fullUrl": "Bundle/ohie-cr-06-20-fhir",
"resource": {
"resourceType": "Bundle",
"type": "history",
"entry": [
{
"fullUrl": "Patient/ohie-cr-06-20-fhir",
"resource": {
"resourceType": "Patient",
"id": "ohie-cr-06-20-fhir",
"active": true,
"identifier": [
{
"use": "official",
"type": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v2-0203",
"code": "PI"
}
]
},
"system": "http://ohie.org/test/test_b",
"value": "FHRB-062",
"assigner": {
"display": "Test Harness B Patient Identity"
}
},
{
"use":"usual",
"system": "http://ohie.org/test/nid",
"value":"NID061"
}
],
"name": [
{
"use": "official",
"family": "SMITH",
"given": [
"JIM"
]
}
],
"gender": "male"
},
"request": {
"method": "POST",
"url": "Patient/ohie-cr-06-20-fhir"
}
}
]
}
}
]
}

Expected Behaviour

Requirement
Option
Description
MUST
PMIR Only
Return MessageHeader with response.code = ok
MUST
Return HTTP code of 201 Created
SHOULD
PMIR Only
Include an OperationOutcome entry in the response
SHOULD
Include a Patient entry in response containing created patient
SHOULD
Include a link to the master identity with code refer

Execute PIXm Query Patient using NID for TEST_A

The test harness sends an IHE PIXm query for a patient with identifier NID061 to the receiver and explicitly requests a resolve to TEST_A.
GET http://localhost:8080/fhir/Patient/$ihe-pix?sourceIdentifier=http%3A%2F%2Fohie.org%2Ftest%2Fnid%7CNID061&targetSystem=http%3A%2F%2Fohie.org%2Ftest%2Ftest_a HTTP/1.1
Accept-Encoding: gzip,deflate
Authorization: BEARER XXXXXXX
accept: application/fhir+json
Host: localhost:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

Expected Behaviour

Requirement
Option
Description
MUST
Return HTTP code of 200 OK
MUST
Include a Parameters resource in the response
MUST
Have one parameter carrying the identifier FHRA-061 in TEST_A
MUST
Include a parameter with name targetId which has a resource link
to the created resource from the previous step.

Execute PIXm Query Patient using TEST_B for TEST_X

The test harness sends an IHE PIXm query for a patient with identifier FHRB-062 to the receiver asking for identities in TEST_X.
GET http://localhost:8080/fhir/Patient/$ihe-pix?sourceIdentifier=http%3A%2F%2Fohie.org%2Ftest%2Ftest_b%7CFHRB-062&targetSystem=http%3A%2F%2Fohie.org%2Ftest%2Ftest_x HTTP/1.1
Accept-Encoding: gzip,deflate
Authorization: BEARER XXXXXXX
accept: application/fhir+json
Host: localhost:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

Expected Behaviour

Requirement
Option
Description
MUST
Return HTTP code of 403 FORBIDDEN
MUST
Include an OperationOutcome resource in the response
MUST
Carry an issue type code-invalid
SHOULD
Include a description that indicates the domain which caused the error condition