TEST: OHIE-CR-05-FHIR

This test ensures that the receiver can create a record with minimally useful information linked to another person/patient. This is often useful when registering an infant demographic record where only date of birth, gender and mother's information is known.
This test is a combination of TEST-OHIE-CR05 and TEST-OHIE-CR07 from the HL7v2 test suite.

References

Discussion

A master patient index/client registry is often tasked with the storage of partial registration records and/or records which are only identifiable by their mother's information.
Whereas this information can be registered in one message in HL7v2 (using mother's name and mother's identifier), this test requires the use of either:
  • A FHIR transaction bundle to register a related person (the mother) and patient
  • Two FHIR operations to register the patient and the related person (the mother)
  • A PMIR message with the related person (the mother) and patient.

FHIR Representation of Mother/Child Relationship

SanteMPI supports robust relationships between entities which cannot be easily expressed in FHIR. For example, there may be use cases where the mother is a patient (via delivery) at a hospital and the child is also a patient (receiving care at a NICU). Unfortunately, this type of relationship in FHIR is represented as the following structure:
<Patient>
<id>child</id>
</Patient>
<RelatedPerson>
<id>rp-mother</id>
<patient>
<reference value="Patient/child"/>
</patient>
</RelatedPerson>
<Patient>
<id>pat-mother</id>
<link>
<other value="RelatedPerson/rp-mother"/>
<type value="see-also"/>
</link>
</Patient>
Unfortunately in SanteMPI this type of relationship can only be established when:
  • The three resources are submitted as part of an entire bundle (such as a transaction bundle or PMIR operation)
  • The Registration occurs on the REST interface such that:
    • Mother Patient is registered first with a concrete identifier in the identifier property
    • Baby Patient is registered next with a concrete identifier in the identifier property
    • Mother RelatedPerson is registered using the same concrete identifier as that used in step .
This test suite tests both methods of creating a mother/child relationship

Pre-Conditions / Setup

Ensure that all pre-conditions for OHIE-CR-02-FHIR have been completed.

Authenticate as TEST_HARNESS_FHIR

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: 87
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

Register Mother / Child Demographics in Transaction Bundle

The test harness sends an authenticated request to create a child record with a mother's demographics as a simple related person.
  • Identifier FHR-050 in http://ohie.org/test/test with use official
  • Name: WIN MINH
  • Gender: Male
  • DOB: 2017-04-03
The mother is a simple Related Person with name SU MYAT LWIN.
This test case does not use familial names to mimic contexts where only given names (no surnames) are present.
{
"resourceType": "Bundle",
"type": "message",
"entry": [
{
"fullUrl": "MessageHeader/ohie-cr-05-10-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-05-10-fhir"
}
],
"destination": [
{
"endpoint": "http://ohie.org/test/endpoint/Bundle"
}
]
}
},
{
"fullUrl": "Bundle/ohie-cr-05-10-fhir",
"resource": {
"resourceType": "Bundle",
"type": "history",
"entry": [
{
"fullUrl": "Patient/ohie-cr-05-10-fhir",
"resource": {
"resourceType": "Patient",
"id": "ohie-cr-05-10-fhir",
"active": true,
"identifier": [
{
"use": "official",
"system": "http://ohie.org/test/test",
"value": "FHR-050"
}
],
"name": [
{
"use": "usual",
"given": [
"WIN MINH"
]
}
],
"gender": "male",
"birthDate": "2017-04-03"
},
"request": {
"method": "POST",
"url": "Patient/ohie-cr-05-10-fhir"
}
},
{
"fullUrl": "RelatedPerson/ohie-cr-05-10-fhir-mother",
"resource": {
"resourceType": "RelatedPerson",
"id": "ohie-cr-05-10-fhir-mother",
"patient": {
"reference": "Patient/ohie-cr-05-10-fhir"
},
"relationship": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v3-RoleCode",
"code": "MTH"
}
]
}
],
"name": [
{
"use": "usual",
"given": [
"SU MYAT LWIN"
]
}
],
"gender": "female"
},
"request": {
"method": "POST",
"url": "RelatedPerson/ohie-cr-05-10-fhir-mother"
}
}
]
}
}
]
}

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 the RelatedPerson entry which was created
SHOULD
Include a link to the master identity with code refer

Validate Child Patient Created

The test harness executes a query against the receiver to ensure the record was created domain
GET http://localhost:8080/fhir/Patient?identifier=http%3A%2F%2Fohie.org%2Ftest%2Ftest%7CFHR-050&_revinclude=RelatedPerson%3Apatient 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
Accept the message with HTTP 200 OK
MUST
Include a bundle with exactly 1 patient result
MUST
Include a bundle with exactly 1 RelatedPerson result
MUST
Contain a patient for WIN MINH
MUST
Have an identifier for FHR-050 in system http://ohie.org/test/test
MUST
Contain a RelatedPerson with name SU MYAT LWIN
SHOULD
Contain one or more link entries with type seealso pointing to local records

Register Mother Patient and Newborn Demographics in Transaction Bundle

The test harness sends an authenticated request to create a newborn record with the mother's demographics. This test mimics registering a patient (the Mother) and a nameless newborn (the Baby) in one transaction.
Patient (Mother) details:
  • Identifier FHR-052 in http://ohie.org/test/test with use official
  • Name: SARAH ABELS
  • Gender: Female
  • DOB: 1984-05-25
Newborn information:
  • Identifier FHR-051 in http://ohie.org/test/test
  • Gender: Female
  • DOB: 2021-04-25
The bundle portrayed is using type history and is intended to be tested as part of a PMIR payload. You can also use the bundle as a simple POST of a transaction.
{
"resourceType": "Bundle",
"type": "message",
"entry": [
{
"fullUrl": "MessageHeader/ohie-cr-05-20-fhir",
"resource": {
"resourceType": "MessageHeader",
"id": "1",
"eventUri": "urn:ihe:iti:pmir:2019:patient-feed",
"source": {
"endpoint": "http://ohie.org/test/test_harness"
},
"focus": [
{
"reference": "Bundle/ohie-cr-05-20-fhir"
}
],
"destination": [
{
"endpoint": "http://ohie.org/test/endpoint/Bundle"
}
]
}
},
{
"fullUrl": "Bundle/ohie-cr-05-20-fhir",
"resource": {
"resourceType": "Bundle",
"type": "history",
"entry": [
{
"fullUrl": "Patient/ohie-cr-05-20-fhir-baby",
"resource": {
"resourceType": "Patient",
"id": "ohie-cr-05-20-fhir-baby",
"active": true,
"identifier": [
{
"use": "official",
"system": "http://ohie.org/test/test",
"value": "FHR-051"
}
],
"gender": "female",
"birthDate": "2021-04-25"
},
"request": {
"method": "POST",
"url": "Patient/ohie-cr-05-20-fhir-baby"
}
},
{
"fullUrl": "RelatedPerson/ohie-cr-05-20-fhir-mother-rp",
"resource": {
"resourceType": "RelatedPerson",
"id": "ohie-cr-05-10-fhir-mother-rp",
"identifier": [
{
"use": "official",
"system": "http://ohie.org/test/test",
"value": "FHR-052"
}
],
"patient": {
"reference": "Patient/ohie-cr-05-20-fhir-baby"
},
"relationship": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v3-RoleCode",
"code": "MTH"
}
]
}
]
},
"request": {
"method": "POST",
"url": "RelatedPerson/ohie-cr-05-20-fhir-mother-rp"
}
},
{
"fullUrl": "Patient/ohie-cr-05-20-fhir-mother",
"resource": {
"resourceType": "Patient",
"id": "ohie-cr-05-10-fhir-mother",
"identifier": [
{
"use": "official",
"system": "http://ohie.org/test/test",
"value": "FHR-052"
}
],
"name": [
{
"use": "maiden",
"family": "Abels",
"given": [
"Sarah"
]
}
],
"gender": "female",
"birthDate": "1984-05-25",
"link": [
{
"other": {
"reference":"RelatedPerson/ohie-cr-05-20-fhir-mother-rp"
},
"type": "seealso"
}
]
},
"request": {
"method": "POST",
"url": "Patient/ohie-cr-05-20-fhir-mother"
}
}
]
}
}
]
}

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 patients for
the newborn and mother.
SHOULD
Include a link to the master identity with code refer
The test harness executes a query against the receiver to ensure the record was created domain
GET http://localhost:8080/fhir/Patient?identifier=http%3A%2F%2Fohie.org%2Ftest%2Ftest%7CFHR-051&_revinclude=RelatedPerson%3Apatient 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
Accept the message with HTTP 200 OK
MUST
Include a bundle with exactly 1 patient result.
MUST
Contain the nameless newborn patient details (validated by Gender and DOB)
MUST
Have an identifier for FHR-051 in system http://ohie.org/test/test
MUST
Have a RelatedPerson with identifier FHR-052 for SARAH ABELS
SHOULD
Contain one or more link entries with type seealso pointing to local records

Validate Mother Patient Created

The test harness will query by the identifier of the mother to validate that the receiver created the mother record for a patient.
GET http://localhost:8080/fhir/Patient?identifier=http%3A%2F%2Fohie.org%2Ftest%2Ftest%7CFHR-051&_revinclude=RelatedPerson%3Apatient 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
Accept the message with HTTP 200 OK
MUST
Include a bundle with exactly 1 patient result.
MUST
Contain the mother patient details (name of SARAH ABELS)
MUST
Have an identifier for FHR-052 in system http://ohie.org/test/test
SHOULD
Contain one or more link entries with type seealso pointing to local records

Patient Demographics Query for Mobile Paediatric Query

The test harness will execute a query on the patient resource and will validate that the client registry understands the extended mothersMaidenName parameter supplied.
GET http://localhost:8080/fhir/Patient?mothersMaidenName=Abels 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
Accept the message with HTTP 200 OK
MUST
Include a bundle with exactly 1 patient result.
MUST
Contain the child patient details
MUST
Have an identifier for FHR-051 in system http://ohie.org/test/test
SHOULD
Contain one or more link entries with type seealso pointing to local records