Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

List of content:

Table of Contents

Description:

The OpenIMIS Policy object (from the openimis-be-policy_py module) was mapped to the FHIR Coverage resource. 

Notes / Assumptions:

  • The endpoint uses the UUID

     as

     as a primary key

FHIR resources:

Fields mapping:

Table legend:

Color

Description


Mapped -

 the

 the final choice, the most suitable choice


Need

to be

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


Currently not important - not mapped

Mapping:

OpenIMIS field

DB type

FHIR field

Description

Note

STPH

Mapping status

PolicyID

PK

Identifier



Use only PolicyUUID

This is the Database ID and should be used only internally

PolicyUUID

UniqueIdentifier

Identifier

The unique identifier used as PK for FHIR


Added

mapped

FamilyID

FK(tblFamilies)

policyHolder


We use the policyHolder to represent the reference to the Patient (head of the family). The insurance code is used to point the appropriate Patient.

(was updated by SD) OK

mapped

EnrollDate

date

Extension


The FHIR representation doesn't contain this type of value. If needed we can consider adding the FHIR extension.

Extension


StartDate

date

period



OK

mapped

EffectiveDate

date

Extension


The FHIR representation doesn't contain this type of value. If needed we can consider adding the FHIR extension.

Extension


ExpiryDate

date

period



OK

mapped

PolicyStatus

tinyint

status

Default: 1
1 - Idle
2 - active
4 - suspended
8 - Expired

There are some differences between the Policy and FHIR statuses. List of FHIR coverage statuses:
1) active
2) cancelled
3) draft
4) entered-in-error

ok

mapped

PolicyValue

decimal

contract.valuedItem.net


The FHIR representation doesn't contain this type of value. If needed we can consider adding the FHIR extension.

contract.valuedItem.net


ProdID

FK(tblProduct)

grouping


The FHIR representation doesn't contain exactly the same type of value. The coverage classifications can be contained in the "grouping" field and we can join it with a product using grouping.plan. See example: https://hl7.org/fhir/STU3/coverage-example.json.html

I would suggest to check Contract entity => Coverage.contract 


OfficerID

FK(tblOfficer)

contract.agent.actor


The FHIR representation doesn't contain this type of value. If needed we can consider adding the FHIR extension.

subscriber


PolicyStage

char(1)


Default: N
N - New Policy
R - Renewed Policy

The FHIR representation doesn't contain this type of value. If needed we can consider adding the FHIR extension.


Will be added after when the final approach will be established

ValidityFrom

datetime


Audit information. More information can be found here (on page 113):
https://github.com/openimis/openimis_docs/blob/master/specs/Web%20application%20-%20Functional%20Design%20Specification.pdf

This information are valuable for OpenIMIS but I probably not required by external systems.




Internal field


ValidityTo

datetime



LegacyID

int



AuditUserID

int



RowID

timestamp



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

Internal field


isOffline

int



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.

Internal field



Note:

  • The contract field could be use to map the Insurance Products to the Policies

Endpoint specification:

Coverage endpoint

Example of endpoint URL:

http://localhost:8000/api_fhir/Coverage/

Supported HTTP operation:

  • READ - by default return list of all available resources. To fetch information about a specific object you should add the primary key to URL for instance:
    http://127.0.0.1:8000/api_fhir/Claim/{PolicyCode}
    , where "{PolicyCode}" is the value of the policy primary key. Should be used the GET HTTP method.

  • CREATE - the operation currently not supported

  • UPDATE - the operation currently not supported

  • DELETE - the operation currently not supported

default_audit_user_id

default value which will be used for 'audit_user_id' field

"default_audit_user_id": 1,

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_issue_type_config

configuration of system and codes used to represent the specific types of operation outcome

"stu3_fhir_issue_type_config":{
  "fhir_code_for_exception":"exception",
  "fhir_code_for_not_found":"not-found",
  "fhir_code_for_informational":"informational"
},

stu3_fhir_claim_config

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

"stu3_fhir_coverage_config": {
    "fhir_family_refereence_code": "FamilyReference",
    "fhir_status_idle_code": "Idle",
    "fhir_status_active_code": "active",
    "fhir_status_suspended_code": "suspended",
    "fhir_status_expired_code": "Expired",
    "fhir_item_code": "item",
    "fhir_service_code": "service",
    "fhir_practitioner_role_code": "Practitioner",
    "fhir_product_code": "Product"
    "fhir_effective_date_code": "EffectiveDate",
    "fhir_enroll_date_code": "EnrollDate"
},

Example JSON representation of content:

FHIR Coverage (http://127.0.0.1:8000/api_fhir/Coverage/covCode1):

...

...

Example JOSN
true
linenumbers
Code Block
{
    "resourceType": "Coverage",
    "contract": [
        {
            "resourceType": "Contract",
            "agent": [
                {
                    "actor": {
                        "reference": "Practitioner/officerCode"
                    },
                    "role": [
                        {
                            "text": "Practitioner"
                        }
                    ]
                }
            ],
            "valuedItem": [
                {
                    "net": {
                        "value": policyValue
                    }
                }
            ]
        }
    ],
    "extension": [
        {
            "url": "EffectiveDate"
        },
        {
            "url": "EnrollDate",
            "valueDate": "2019-08-06"
        }
    ],
    "grouping": {
        "group": "Product/productUuid",
        "groupDisplay": "productCode",
        "plan": "Product Name",
        "planDisplay": "{
			'item': ['itemCode1', 'itemCode2', 'itemCode3'], 
			'service': ['serviceCode1', 'serviceCode2']
		}"
    },
    "identifier": [
        {
            "type": {
                "coding": [
                    {
                        "code": "ACSN",
                        "system": "https://hl7.org/fhir/valueset-identifier-type.html"
                    }
                ]
            },
            "use": "usual",
            "value": "covCode1"
        }
    ],
    "period": {
        "end": "2020-08-05",
        "start": "2019-08-06"
    },
    "policyHolder": {
        "reference": "FamilyReference/familyCode0"
    },
    "status": "Idle"
}

...