List of content:

Description:

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

Notes / Assumptions:

FHIR resources:

Patient
RelatedPerson

Fields mapping:

Table legend:

ColorDescription

Mapped - the final choice, the most suitable choice

Need to be found the best place for the field (not mapped currently)

Currently not important - not mapped

Mapping:

OpenIMIS fieldDB typeFHIR fieldDescriptionNoteSTPHMapping status
InsureeIDPK, intidentifier


This is the Database ID and should be used only internally
InsureeUUIDuniqueidentifieridentifierThe unique identifier used as PK for FHIR

mapped
FamilyIDFK (tblFamilies)RelatedPerson
To represent the relationship between patients we can use the RelatedPerson resource.It could be related to Group entity but not in this direction
Another solution is to use the contact field and relate to another Patient (the head of the family)
Will be added after when the final approach will be established
CHFIDncarchar(12)Identifier


mapped
LastNamenvarchar(110)name


mapped
OtherNamesnvarchar(110)name


mapped
DOBdatebirthDateDate of birth

mapped
GenderFK (tblGender)gender


mapped
Maritalchar(1)maritalStatus


mapped
IsHeadbitRelatedPerson.relationship
I'm not sure if this information is important for external systems.It depends on how we relate to the FamilyIs related to FamilyID 
passportnvarchar(25)identifierIdentification Numberhttps://hl7.org/fhir/STU3/datatypes.html#identifier0..* relation on identifiermapped
Phonenvarchar(50)telecom


mapped
PhotoIDFK (tblPhotos)photo


That field isn't supported by the current version of openimis-be-insuree (0.0.1).
PhotoDatedatephoto.creation


Is related to PhotoID
CardIssuedbit

I'm not sure if this information is important for external systems.not importantnot important
ValidityFromdatetime
Audit information. More information can be found here (on page 113):
Functional%20Design%20Specification.pdf

this could be used to update the insuree information
ValidityTodatetime


LegacyIDint


AuditUserIDint


RowIDtimestamp

I'm not sure but this is probably some unique value used to distinguish database rows. Probably not useful for external systems.

RelationshipFK(tblRelations)
1 Brother/Sister
2 Father/Mother
3 Uncle/Aunt
4 Son/Daughter
5 Grand parents
6 Employee
7 Others
8 Spouse
The FHIR representation doesn't provide this information. We can consider adding the FHIR extensions if needed (if it will be useful for external systems).
not for Claimingnot for Claiming
ProfessionFK(tblProfessions)
1 Housewife
2 Employee
3 Self Employee
4 Others
not for Claimingnot for Claiming
EducationFK(tblEducations)
1 Nursery
2 Primary school
3 Secondary school
4 University
5 Postgraduate studies
6 PHD
7 Other
not for Claimingnot for Claiming
Emailnvarchar(100)telecom


mapped
isOfflinebit

I'm not sure but this is probably used to determine the source of row (offline/online app). Probably information isn't valuable for external systems.

TypeOfIdFK(tblIdentificationTypes)identifierIdentification Type
D - Driver's License
N - National ID
P - Passport
V - Voter Card
As far as I am concerned this is the type of identifier from "passport" field. We can put these values into one FHIR identifier object.Related to the password field. 

That field isn't supported by the current version of openimis-be-insuree (0.0.1).

When will be added then the approach of mapping the passport field needs to be changed.

HFIDFK (tblHF)managingOrganization
It depends on mapping the HF to FHIR resource. If the FHIR Organization will be choosen then it shouldn't be an issue but when the FHIR Location will be used there can be an issue. Probably we can add in this field reference to Location instead of Organization (should be verify).This is important for Claiming as it will be used in the calculation of costs (done manually in Nepal). Represents, for example, the family doctor and the Patient need to go to this First Service Point and to be refered to another HF.

Will be added after when the final approach will be established.

Should be changed after creating the mapping for the HF resource.

CurrentAddressnvarchar(200)address


mapped
GeoLocationnvarchar(250)addressIf this information is important for external systems we can put that information as other address. The patient can contain multiple addresses.

mapped
CurrentVillageint

I'm not sure if this information is important for external systems.This information is related to CurrentAddress.

Endpoint specification:

Example of endpoint URL:

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

Supported HTTP operation:

Module configuration used by the endpoint: 

Configuration keyDescriptionDefault value
default_audit_user_iddefault value which will be used for 'audit_user_id' field"default_audit_user_id": 1,
gender_codesconfiguration of codes used by the OpenIMIS to represent gender (male, female, other)"gender_codes": {
  "male": "M",
  "female": "F",
  "other": "O"
},
stu3_fhir_identifier_type_configconfiguration 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_configconfiguration 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_attributedefault value for 'head' attribute used for creating new Insuree object"default_value_of_patient_head_attribute": False, 
default_value_of_patient_card_issued_attributedefault value for 'card_issued' attribute used for creating new Insuree object"default_value_of_patient_card_issued_attribute": False,

Example JSON representation of content:

{
    "resourceType": "Patient",
    "address": [
        {
            "text": "address",
            "type": "physical",
            "use": "home"
        },
        {
            "text": "geolocation",
            "type": "both",
            "use": "home"
        }
    ],
    "birthDate": "2000-01-02",
    "gender": "female",
    "id": "01DB0819-69F6-44F9-BF3D-0BCC5D4803E2",
    "identifier": [
        {
            "type": {
                "coding": [
                    {
                        "code": "ACSN",
                        "system": "https://hl7.org/fhir/valueset-identifier-type.html"
                    }
                ]
            },
            "use": "usual",
            "value": "01DB0819-69F6-44F9-BF3D-0BCC5D4803E2"
        },
        {
            "type": {
                "coding": [
                    {
                        "code": "SB",
                        "system": "https://hl7.org/fhir/valueset-identifier-type.html"
                    }
                ]
            },
            "use": "usual",
            "value": "chfid"
        },
        {
            "type": {
                "coding": [
                    {
                        "code": "PPN",
                        "system": "https://hl7.org/fhir/valueset-identifier-type.html"
                    }
                ]
            },
            "use": "usual",
            "value": "passport"
        }
    ],
    "maritalStatus": {
        "coding": [
            {
                "code": "U",
                "system": "https://www.hl7.org/fhir/STU3/valueset-marital-status.html"
            }
        ]
    },
    "name": [
        {
            "family": "test patient",
            "given": [
                "test patient"
            ],
            "use": "usual"
        }
    ],
    "telecom": [
        {
            "system": "phone",
            "use": "home",
            "value": "phoneNum"
        },
        {
            "system": "email",
            "use": "home",
            "value": "email@email.com"
        }
    ]
}