FHIR - Patient

Description

The openIMIS Insuree object (from the openimis-be-insuree_py module) was mapped to the FHIR Patient resource.

Notes / Assumptions

  • The current version of mapping will be focused on aspects of claiming.

  • In the current version of the openimis-be-insuree_py missing services layer which can be used to perform operations (CRUD - Create, Read, Update, Delete) on entities. That's why the current version of API use directly database layer manager for managing the Insuree objects. This leads to differences between operation between legacy and new openIMIS, for instance, the update operation doesn't create the database row with a history of the object and the delete operation permanently remove the object from the database.

  • familyId - missing in the current version of the Insuree model (from the openimis-be-insuree_py module). That's why the current version of API doesn't cover that field. Attribute needs to be nullable type in the Database Schema.

  • photoId - missing in the current version of the Insuree model (from the openimis-be-insuree_py module). That's why the current version of API doesn't cover that field. Attribute need to be nullable type in the Database Schema.

  • typeofid - missing in the current version of the Insuree model (from the openimis-be-insuree_py module). That's why the current version of API doesn't cover that field. Attribute need to be nullable type in the Database Schema.

Mapping

FHIR Resource - Patient

FHIR field

openIMIS field

Notes

Mapping status

FHIR field

openIMIS field

Notes

Mapping status

Identifier

InsureeID / CHFID / passport / TypeOfId

there is a 0..* relation on identifier

InsureeID / CHFID / passport is mapped

RelatedPerson

FamilyID

 

not mapped

name

LastName / OtherNames

name field contains values that are being mapped for both LastName and OtherNames fields

mapped

birthDate

DOB

 

mapped

gender

Gender

 

mapped

maritalStatus

Marital

 

mapped

RelatedPerson.Relationship

IsHead

 

not mapped

telecom

Phone / Email

telecom field contains values that are being mapped for both Phone and Email fields

mapped

photo

PhotoID

 

not mapped

photo.creation

PhotoDate

 

not mapped

managingOrganization

HFID

 

not mapped

address

CurrentAddress / GeoLocation

The patient can contain multiple addresses

mapped

Endpoint specification

Example of endpoint URL

http://127.0.0.1:8000/api_fhir/Patient/

Supported HTTP operation

CREATE - POST HTTP method

Used to create new FHIR Patient (Insuree). List of supported fields can be found in the table which shows the mapping between openIMIS and FHIR. Should be used the POST HTTP method and the body as JSON representation (example can be found below).

  • The `head` model attribute isn't currently covered by the current API (related to the not supported familyId). By the default value is False (can be modified by the module configuration).

  • The `card_issued` model attribute isn't currently covered by the current API. By the default value is False (can be modified by the module configuration).

  • The `validity_from` attribute is set as the current value of date when the object is created

  • The `audit_user_id` - the user which interact with the FHIR API is the `TechnicalUser` (Backend security - Models and Concepts) which hasn't representation in tblUsers. That's why the value of the `audit_user_id` attribute is set based on the following algorithm:

    1. Try to get that value from the 'auditUserId' query parameter

    1. If missing get that value then use the value from the module configuration (by default 1)

READ - GET HTTP method

By default, returns the list of all available Patient resources. To fetch information about a specific object, you should add the UUID (e.g. 01DB0819-69F6-44F9-BF3D-0BCC5D4803E2) key to URL :

http://127.0.0.1:8000/api_fhir/Patient/01DB0819-69F6-44F9-BF3D-0BCC5D4803E2

Should be used the GET HTTP method.

UPDATE - PUT HTTP method

Updates the value of the specific object. List of supported fields can be found in the mapping table. Should be used the PUT HTTP method and the body as JSON representation (example can be found below). The requested URL needs to point to a specific object to do that you should add the UUID (e.g. 01DB0819-69F6-44F9-BF3D-0BCC5D4803E2) key to URL for instance:

http://127.0.0.1:8000/api_fhir/Patient/01DB0819-69F6-44F9-BF3D-0BCC5D4803E2
  • The `head` model attribute isn't updated

  • The `head` model attribute isn't updated

  • The UPDATE operation will update the specific row of the database and doesn't create the history of changes (like in the legacy openIMIS)

DELETE - DELETE HTTP method

The operation can be used to remove the specific object from the database. Should be used the DELETE HTTP method. The requested URL needs to point to a specific object to do that you should add the UUID (e.g. 01DB0819-69F6-44F9-BF3D-0BCC5D4803E2) key to URL for instance:

http://127.0.0.1:8000/api_fhir/Patient/01DB0819-69F6-44F9-BF3D-0BCC5D4803E2

The DELETE operation will permanently remove the row from the database.

Module configuration used by the endpoint:

Configuration key

Description

Default value

Configuration key

Description

Default value

default_audit_user_id

default value which will be used for 'audit_user_id' field

"default_audit_user_id": 1

gender_codes

configuration of codes used by the openIMIS to represent gender (male, female, other)

"gender_codes": {
"male": "M",
"female": "F",
"other": "O"
}

stu3_fhir_identifier_type_config

configuration of system and codes used to represent the specific types of identifiers

"stu3_fhir_identifier_type_config":{
"system":"https://hl7.org/fhir/valueset-identifier-type.html",
"fhir_code_for_imis_db_id_type":"ACSN",
"fhir_code_for_imis_chfid_type":"SB",
"fhir_code_for_imis_passport_type":"PPN",
"fhir_code_for_imis_facility_id_type":"FI",
"fhir_code_for_imis_claim_admin_code_type":"FILL",
"fhir_code_for_imis_claim_code_type":"MR"
}

stu3_fhir_marital_status_config

configuration of system and codes used to represent the specific types of marital status

"stu3_fhir_marital_status_config":{
"system":"https://www.hl7.org/fhir/STU3/valueset-marital-status.html",
"fhir_code_for_married":"M",
"fhir_code_for_never_married":"S",
"fhir_code_for_divorced":"D",
"fhir_code_for_widowed":"W",
"fhir_code_for_unknown":"U"
},

default_value_of_patient_head_attribute

default value for 'head' attribute used for creating new Insuree object

"default_value_of_patient_head_attribute": False,

default_value_of_patient_card_issued_attribute

default value for 'card_issued' attribute used for creating new Insuree object

"default_value_of_patient_card_issued_attribute": False,

Example JSON representation of content:

Did you encounter a problem or do you have a suggestion?

Please contact our Service Desk



This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. https://creativecommons.org/licenses/by-sa/4.0/