Versions Compared

Key

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

...

The goal of this project is to improve the open-source Insurance Management Information System (openIMIS) interoperability layer for easier and more efficient integration with other health-related systems within OpenHIE (Open Health Information Exchange) architecture, and to allow an efficient installation procedure through enhanced packaging and documentation, and thus, to align the solution with the Instant OpenHIE project and initiative. 

This page is dedicated to the Digital Square Notice E0 project and will be used to specify the developments and the realizations from this project.

From the initial proposal, only two Work Packages were awarded within this project:

Table of Contents

Roadmap

Roadmap Planner
maplinks
timelinetrue
source%7B%22title%22%3A%22Roadmap%20Planner%22%2C%22timeline%22%3A%7B%22startDate%22%3A%222021-04-01%2000%3A00%3A00%22%2C%22endDate%22%3A%222021-12-01%2000%3A00%3A00%22%2C%22displayOption%22%3A%22MONTH%22%7D%2C%22lanes%22%3A%5B%7B%22title%22%3A%22openIMIS%20FHIR%20Module%22%2C%22color%22%3A%7B%22lane%22%3A%22%23f6c342%22%2C%22bar%22%3A%22%23fadb8e%22%2C%22text%22%3A%22%23594300%22%2C%22count%22%3A1%7D%2C%22bars%22%3A%5B%7B%22title%22%3A%221.1%20FHIR%20release%20four%20(R4)%20integration%22%2C%22description%22%3A%22%22%2C%22startDate%22%3A%222021-06-30%2016%3A52%3A16%22%2C%22duration%22%3A3%2C%22rowIndex%22%3A0%2C%22id%22%3A%227db2c4c8-4322b6ab-3017-4322-b96b-08ec032f2849~~~~~7db2c4c8-deb7-4bdf-a9e2-b406d06d3ea7%22%2C%22pageLink%22%3A%7B%7D%7D%2C%7B%22title%22%3A%221.2%20FHIR%20R4%20extensions%20development%22%2C%22description%22%3A%22%22%2C%22startDate%22%3A%222021b406d06d3ea7~~~~~d5e1f590-07-01%2000%3A00%3A00%22%2C%22duration%22%3A2.9900990096450615%2C%22rowIndex%22%3A1%2C%22id%22%3A%22d5e1f590-bedc-bedc-4bd9-8a36-2a36153ae5c9%22%2C%22pageLink%22%3A%7B%7D%7D%2C%7B%22rowIndex%22%3A2%2C%22startDate%22%3A%222021-04-07%2019%3A57%3A37%22%2C%22id%22%3A%224322b6ab-3017-4322-b96b-08ec032f2849%22%2C%22title%22%3A%221.3%20FHIR%20Authentication%20and%20Authorisation%22%2C%22description%22%3A%22%22%2C%22duration%22%3A2.772277227623457%2C%22pageLink%22%3A%7B%7D%7D%2C%7B%22rowIndex%22%3A3%2C%22startDate%22%3A%222021-06-30%2016%3A52%3A16%22%2C%22id%22%3A%22083ccf6d-2a36153ae5c9~~~~~083ccf6d-4036-4932-9332-6742cd0f9c21%22%2C%22title%22%3A%221.4%20openIMIS%20FHIR%20Quality%20Assurance%22%2C%22description%22%3A%22%22%2C%22duration%22%3A3.009900989969136%2C%22pageLink%22%3A%7B%7D%7D%2C%7B%22rowIndex%22%3A4%2C%22startDate%22%3A%222021-09-30%2016%3A52%3A16%22%2C%22id%22%3A%2200eff981-7c84-4f06-a55e-ce2e9f81bb56%22%2C%22title%22%3A%221.5%20openIMIS%20FHIR%20module%20documentation%22%2C%22description%22%3A%22%22%2C%22duration%22%3A2.9986559138167066%2C%22pageLink%22%3A%7B%7D%7D%5D%7D%2C%7B%22title%22%3A%22Packaging%20and%20Installation%22%2C%22color%22%3A%7B%22lane%22%3A%22%233b7fc4%22%2C%22bar%22%3A%22%236c9fd3%22%2C%22text%22%3A%22%23ffffff%22%2C%22count%22%3A1%7D%2C%22bars%22%3A%5B%7B%22title%22%3A%222.1%20Docker%20package%20improvement%22%2C%22description%22%3A%22%22%2C%22startDate%22%3A%222021-04-07%2023%3A31%3A29%22%2C%22duration%22%3A2.7597359733796294%2C%22rowIndex%22%3A0%2C%22id%22%3A%2232a75204-6742cd0f9c21~~~~~32a75204-684b-4924-be5f-cebe98b59b94%22%2C%22pageLink%22%3A%7B%7D%7D%2C%7B%22rowIndex%22%3A1%2C%22startDate%22%3A%222021-09-30%2016%3A52%3A16%22%2C%22id%22%3A%2225280273cebe98b59b94~~~~~25280273-7e1a-4186-b0a2-234241546d29%22%2C%22title%22%3A%222.2%20Developer%20initialisation%20script%22%2C%22description%22%3A%22%22%2C%22duration%22%3A2.9986559138167066%2C%22pageLink%22%3A%7B%7D%7D%5D%7D%5D%2C%22markers%22%3A%5B%5D%7Dpagelinks
titleRoadmap%20Planner
hashe22fdc69e51ac3d648876928acf14901

The following sections will specify the changes and enhancements brought by this project to the two components from each WP.

1 openIMIS FHIR Module

1.1 FHIR release four (R4) integration

...

titleopenIMIS Policies mobile app: Enrol Family payload

...

languagejson

...

234241546d29
timelinetrue
source%7B%22title%22%3A%22Roadmap%20Planner%22%2C%22timeline%22%3A%7B%22startDate%22%3A%222021-04-01%2000%3A00%3A00%22%2C%22endDate%22%3A%222021-12-01%2000%3A00%3A00%22%2C%22displayOption%22%3A%22MONTH%22%7D%2C%22lanes%22%3A%5B%7B%22title%22%3A%22openIMIS%20FHIR%20Module%22%2C%22color%22%3A%7B%22lane%22%3A%22%23f6c342%22%2C%22bar%22%3A%22%23fadb8e%22%2C%22text%22%3A%22%23594300%22%7D%2C%22bars%22%3A%5B%7B%22id%22%3A%227db2c4c8-deb7-4bdf-a9e2-b406d06d3ea7%22%2C%22title%22%3A%221.1%20FHIR%20release%20four%20%28R4%29%20integration%22%2C%22description%22%3A%22%22%2C%22startDate%22%3A%222021-06-30%2016%3A52%3A16%22%2C%22duration%22%3A3.0%2C%22rowIndex%22%3A0%2C%22pageLink%22%3A%7B%22id%22%3A%222922545269%22%2C%22spaceKey%22%3A%22OP%22%2C%22title%22%3A%221.1%20FHIR%20release%20four%20%28R4%29%20integration%22%2C%22type%22%3A%22page%22%2C%22wikiLink%22%3A%22%5BOP%3A1.1%20FHIR%20release%20four%20%28R4%29%20integration%5D%22%7D%7D%2C%7B%22id%22%3A%22d5e1f590-bedc-4bd9-8a36-2a36153ae5c9%22%2C%22title%22%3A%221.2%20FHIR%20R4%20extensions%20development%22%2C%22description%22%3A%22%22%2C%22startDate%22%3A%222021-07-01%2000%3A00%3A00%22%2C%22duration%22%3A2.9900990096450615%2C%22rowIndex%22%3A1%2C%22pageLink%22%3A%7B%22id%22%3A%222923462669%22%2C%22spaceKey%22%3A%22OP%22%2C%22title%22%3A%221.2%20FHIR%20R4%20extensions%20development%22%2C%22type%22%3A%22page%22%2C%22wikiLink%22%3A%22%5BOP%3A1.2%20FHIR%20R4%20extensions%20development%5D%22%7D%7D%2C%7B%22id%22%3A%224322b6ab-3017-4322-b96b-08ec032f2849%22%2C%22title%22%3A%221.3%20FHIR%20Authentication%20and%20Authorisation%22%2C%22description%22%3A%22%22%2C%22startDate%22%3A%222021-04-07%2019%3A57%3A37%22%2C%22duration%22%3A2.772277227623457%2C%22rowIndex%22%3A2%2C%22pageLink%22%3A%7B%22id%22%3A%222922545205%22%2C%22spaceKey%22%3A%22OP%22%2C%22title%22%3A%221.3%20FHIR%20Authentication%20and%20Authorisation%22%2C%22type%22%3A%22page%22%2C%22wikiLink%22%3A%22%5BOP%3A1.3%20FHIR%20Authentication%20and%20Authorisation%5D%22%7D%7D%2C%7B%22id%22%3A%22083ccf6d-4036-4932-9332-6742cd0f9c21%22%2C%22title%22%3A%221.4%20openIMIS%20FHIR%20Quality%20Assurance%22%2C%22description%22%3A%22%22%2C%22startDate%22%3A%222021-06-30%2016%3A52%3A16%22%2C%22duration%22%3A3.009900989969136%2C%22rowIndex%22%3A3%2C%22pageLink%22%3A%7B%22id%22%3A%222922545307%22%2C%22spaceKey%22%3A%22OP%22%2C%22title%22%3A%221.4%20openIMIS%20FHIR%20Quality%20Assurance%22%2C%22type%22%3A%22page%22%2C%22wikiLink%22%3A%22%5BOP%3A1.4%20openIMIS%20FHIR%20Quality%20Assurance%5D%22%7D%7D%2C%7B%22id%22%3A%2200eff981-7c84-4f06-a55e-ce2e9f81bb56%22%2C%22title%22%3A%221.5%20openIMIS%20FHIR%20module%20documentation%22%2C%22description%22%3A%22%22%2C%22startDate%22%3A%222021-09-30%2016%3A52%3A16%22%2C%22duration%22%3A2.9986559138167066%2C%22rowIndex%22%3A4%2C%22pageLink%22%3A%7B%7D%7D%5D%7D%2C%7B%22title%22%3A%22Packaging%20and%20Installation%22%2C%22color%22%3A%7B%22lane%22%3A%22%233b7fc4%22%2C%22bar%22%3A%22%236c9fd3%22%2C%22text%22%3A%22%23ffffff%22%7D%2C%22bars%22%3A%5B%7B%22id%22%3A%2232a75204-684b-4924-be5f-cebe98b59b94%22%2C%22title%22%3A%222.1%20Docker%20package%20improvement%22%2C%22description%22%3A%22%22%2C%22startDate%22%3A%222021-04-07%2023%3A31%3A29%22%2C%22duration%22%3A2.7597359733796294%2C%22rowIndex%22%3A0%2C%22pageLink%22%3A%7B%22id%22%3A%222922545340%22%2C%22spaceKey%22%3A%22OP%22%2C%22title%22%3A%222.1%20Docker%20package%20improvement%22%2C%22type%22%3A%22page%22%2C%22wikiLink%22%3A%22%5BOP%3A2.1%20Docker%20package%20improvement%5D%22%7D%7D%2C%7B%22id%22%3A%2225280273-7e1a-4186-b0a2-234241546d29%22%2C%22title%22%3A%222.2%20Developer%20initialisation%20script%22%2C%22description%22%3A%22%22%2C%22startDate%22%3A%222021-09-30%2016%3A52%3A16%22%2C%22duration%22%3A2.9986559138167066%2C%22rowIndex%22%3A1%2C%22pageLink%22%3A%7B%22id%22%3A%222922545384%22%2C%22spaceKey%22%3A%22OP%22%2C%22title%22%3A%222.2%20Developer%20initialisation%20script%22%2C%22type%22%3A%22page%22%2C%22wikiLink%22%3A%22%5BOP%3A2.2%20Developer%20initialisation%20script%5D%22%7D%7D%5D%7D%5D%2C%22markers%22%3A%5B%5D%7D
pagelinks1.3 FHIR Authentication and Authorisation~~~~~1.1 FHIR release four (R4) integration~~~~~1.2 FHIR R4 extensions development~~~~~1.4 openIMIS FHIR Quality Assurance~~~~~2.1 Docker package improvement~~~~~2.2 Developer initialisation script
titleRoadmap%20Planner
hash23dfcf5735fefe6821aa2c34c5e6bf70

The following sections will specify the changes and enhancements brought by this project to the two components from each WP.

1 openIMIS FHIR Module

1.1 FHIR release four (R4) integration

Expand
titleopenIMIS Policies mobile app: Enrol Family payload
Code Block
languagejson
{
    "family": [{
        "EthnicityFamilyId": "01",
        "ConfirmationNoInsureeId": "Confirm11",
        "ConfirmationTypeLocationId": "C61",
        "isOfflineHOFCHFID": "1131",
        "FamilySMSPoverty": {"0",
            "FamilyIDFamilyType": "1H",
            "ApprovalOfSMSFamilyAddress": true"PermAdress1",

           "LanguageOfSMSEthnicity": "fr"
        }0",
        "insureesConfirmationNo": [{
"Confirm1",
           "InsureeIdConfirmationType": "1C",
            "FamilyIdisOffline": "1",
            "CHFIDFamilySMS": "131",{
            "LastNameFamilyID": "NewTestInsureeLast1",
            "OtherNamesApprovalOfSMS": "NewTestInsureeOther"true,
            "DOBLanguageOfSMS": "2021-06-09",fr"
        },
        "Genderinsurees": "F",[{
            "MaritalInsureeId": "M1",
            "isHeadFamilyId": "1",
            "IdentificationNumberCHFID": "NationaID1131",
            "PhoneLastName": "123123123NewTestInsureeLast",
            "PhotoPathOtherNames": "131_E00002_20210609124332_0_0.jpgNewTestInsureeOther",
            "CardIssuedDOB": "12021-06-09",
            "RelationshipGender": "0F",
            "ProfessionMarital": "1M",
            "EducationisHead": "41",
            "EmailIdentificationNumber": "insuree@mail.comNationaID1",
            "TypeOfIdPhone": "N123123123",
            "HFIDPhotoPath": "4131_E00002_20210609124332_0_0.jpg",
            "CurrentAddressCardIssued": "CurrentInsureeAdress1",
            "GeoLocationRelationship": "0",
            "CurVillageProfession": "621",
            "isOfflineEducation": "14"
  ,
     }],         "policiesEmail": [{"insuree@mail.com",
            "PolicyIdTypeOfId": "1N",
            "FamilyIdHFID": "14",
            "EnrollDateCurrentAddress": "2021-06-09CurrentInsureeAdress",
            "StartDateGeoLocation": "2021-11-01",
            "EffectiveDateCurVillage": "2021-11-0162",
            "ExpiryDateisOffline": "2022-10-31",1"
        }],
        "PolicyStatuspolicies": "2",[{
            "PolicyValuePolicyId": "60001",
            "ProdIdFamilyId": "101",
            "OfficerIdEnrollDate": "62021-06-09",
            "PolicyStageStartDate": "N2021-11-01",
            "isOfflineEffectiveDate": "12021-11-01",
            "premiumExpiryDate": {"2022-10-31",
                "PremiumIdPolicyStatus": "12",
                "PolicyIdPolicyValue": "16000",
                "PayerIdProdId": "010",
 
              "AmountOfficerId": "60006",
                "ReceiptPolicyStage": "REC0001N",
   
            "PayDateisOffline": "2021-06-091",
            "premium": {
  "PayType": "B",
                "isPhotoFeePremiumId": "false1",
                "isOfflinePolicyId": "1",
            }
     "PayerId": "0",
      }],          "insureePolicyAmount": [{"6000",
                "InsureeIdReceipt": "1REC0001",
                "PolicyIdPayDate": "12021-06-09",
                "EffectiveDatePayType": "2021-11-01B",
        }]     }]
}

...

titleopenIMIS Policies mobile app: Modify Family payload

...

languagejson

...

   "isPhotoFee": "false",
      

...

 

...

         "

...

isOffline": "

...

1"

...


          

...

 

...

 }
       

...

 }],
        "

...

insureePolicy": 

...

[{
            "

...

InsureeId": "

...

1",
            "

...

PolicyId": "

...

1",
            "

...

EffectiveDate": "

...

2021-11-01"

...


        

...

}]
    }]
}

Expand
titleopenIMIS Policies mobile app: Modify Family payload
Code Block
languagejson
{
    "ConfirmationNofamily": "CONF002",[{
        "ConfirmationTypeFamilyId": "C-31",
        "isOfflineInsureeId": 0"-145",
        "FamilySMSLocationId": {
  "60",
         "FamilyIDHOFCHFID": "-31121",
   
        "ApprovalOfSMSPoverty": false"0",
            "LanguageOfSMSFamilyType": "frP",
        } "FamilyAddress": "PermAdress1234",
        "insureesEthnicity": [{
"0",
           "InsureeIdConfirmationNo": "-145CONF002",
            "FamilyIdConfirmationType": "-31C",
        "isOffline": 0,
        "CHFIDFamilySMS": "121",{
            "LastNameFamilyID": "Test1@-31",
            "OtherNamesApprovalOfSMS": "Test1@"false,
            "DOBLanguageOfSMS": "2021-06-09",fr"
        },
        "Genderinsurees": "M",[{
            "MaritalInsureeId": "D-145",
            "isHeadFamilyId": "true-31",
            "IdentificationNumberCHFID": "121",
            "PhoneLastName": "Test1@",
            "PhotoPathOtherNames": "121_E00002_20210609121931_0_0.jpg",Test1@",
            "CardIssuedDOB": "true2021-06-09",
            "RelationshipGender": "0M",
            "ProfessionMarital": "0D",
            "EducationisHead": "0true",
            "EmailIdentificationNumber": "",
            "TypeOfIdPhone": "",
            "HFIDPhotoPath": "121_E00002_20210609121931_0_0.jpg",
            "CurrentAddressCardIssued": "true",
            "GeoLocationRelationship": "0",
            "CurVillageProfession": "450",
            "isOfflineEducation": "0",
            "pictureEmail": {"",
                "ImageNameTypeOfId": "",
                "ImageContentHFID": "0",
            }
        }, {"CurrentAddress": "",
             "InsureeIdGeoLocation": "-147",
            "FamilyIdCurVillage": "-3145",
            "CHFIDisOffline": "12210",
            "LastNamepicture": "TestR1",{
                "OtherNamesImageName": "TestR1",
                "DOBImageContent": "2021-06-09","
            }
     "Gender": "M",   }, {
            "MaritalInsureeId": "N-147",
            "isHeadFamilyId": "false-31",
            "IdentificationNumberCHFID": "1221",
            "PhoneLastName": "TestR1",
            "PhotoPathOtherNames": "1221_E00002_20210609122012_0_0.jpgTestR1",
            "CardIssuedDOB": "false2021-06-09",
            "RelationshipGender": "1M",
            "ProfessionMarital": "0N",
            "EducationisHead": "0false",
            "EmailIdentificationNumber": "",
            "TypeOfIdPhone": "",
            "HFIDPhotoPath": "1221_E00002_20210609122012_0_0.jpg",
            "CurrentAddressCardIssued": "false",
            "GeoLocationRelationship": "1",
            "CurVillageProfession": "0",
            "isOfflineEducation": "0",
            "pictureEmail": {
"",
               "ImageNameTypeOfId": "",
   
            "ImageContentHFID": "0",
            }
        }, {
"CurrentAddress": "",
            "InsureeIdGeoLocation": "-148",
            "FamilyIdCurVillage": "-310",
            "CHFIDisOffline": "122210",
            "LastNamepicture": "AddedToExistingLast",{
                "OtherNamesImageName": "AddedToExistingOther",
                "DOBImageContent": "2021-06-09",
            "Gender": "F",
}
        }, {
            "MaritalInsureeId": "D-148",
            "isHeadFamilyId": "0-31",
            "IdentificationNumberCHFID": "PassportID12221",
            "PhoneLastName": "9018231022AddedToExistingLast",
            "PhotoPathOtherNames": "12221_E00002_20210609124855_0_0.jpgAddedToExistingOther",
            "CardIssuedDOB": "12021-06-09",
            "RelationshipGender": "0F",
            "ProfessionMarital": "2D",
            "EducationisHead": "50",
            "EmailIdentificationNumber": "newinsureemail@mail.comPassportID",
            "TypeOfIdPhone": "P9018231022",
            "HFIDPhotoPath": "112221_E00002_20210609124855_0_0.jpg",
            "CurrentAddressCardIssued": "CurrentAdresss0111",
            "GeoLocationRelationship": "0",
            "CurVillageProfession": "622",
            "isOfflineEducation": "15",
        }],
        "policiesEmail": [{"newinsureemail@mail.com",
            "PolicyIdTypeOfId": "1P",
            "FamilyIdHFID": "-311",
            "EnrollDateCurrentAddress": "2021-06-09CurrentAdresss011",
            "StartDateGeoLocation": "2021-06-09",
            "EffectiveDateCurVillage": "2021-06-0962",
            "ExpiryDateisOffline": "2022-06-08",1"
        }],
        "PolicyStatuspolicies": "2",[{
            "PolicyValuePolicyId": "100001",
            "ProdIdFamilyId": "4-31",
            "OfficerIdEnrollDate": "62021-06-09",
            "PolicyStageStartDate": "N2021-06-09",
            "isOfflineEffectiveDate": "12021-06-09",
            "premiumExpiryDate": {"2022-06-08",
                "PremiumId"PolicyStatus": "12",
  
             "PolicyIdPolicyValue": "110000",
                "PayerIdProdId": "04",
 
              "AmountOfficerId": "100006",
                "ReceiptPolicyStage": "REC0002N",
   
            "PayDateisOffline": "2021-06-091",
                "PayTypepremium": "C",{
                "isPhotoFee": "false",
                "isOffline": "1"
            }
        }],
        "insureePolicy": [{
            "InsureeId": "-147",
            "PolicyId": "1",
            "EffectiveDate": "2021-06-09"
        }, {
            "InsureeId": "-145",
            "PolicyId": "1",
            "EffectiveDate": "2021-06-09"
        }, {
            "InsureeId": "148",
            "PolicyId": "1",
            "EffectiveDate": "2021-06-09"
        }]
    }]
}

1.2 FHIR R4 extensions development

1.3 FHIR Authentication and Authorisation

FHIR Authentication

The objective is to manage User authentication directly from the FHIR module. The JWT authentication mechanism is used. FHIR module is using the authentication services so the token can be used in both FHIR REST API and GraphQL queries.

...

FHIR REST API Login endpoint

The /login endpoint has been added to the FHIR R4 module to allow the generation of the JWT token through the FHIR R4 module’s REST API.

Code Block
languagetext
POST /api_fhir_r4/login 

Request body: 
  {
    "username": [username],
    "password": [password]
  }

HTTP 200 Response body: 
  {
    "token": [token]
    "exp": [expire_date]
  }

HTTP 401 Response if credentials are not valid  

FHIR REST API Authorization header

All other FHIR R4 requests should contain the Authorization header with the Bearer token.

Code Block
languagetext
Authorization: Bearer [token]

HTTP 200 Response when token validated (the actual resource payload is returned)

HTTP 401 Response when:
  if Authorization header is missing 
  if Bearer prefix is missing
  if error on decoding Authorization header  
  if token is expired

FHIR Authorisation

In openIMIS, authorisation is based on User’s role and location. A role is a group of authorities or permissions which are well defined and constant (see openIMIS Authorities for an up-to-date list of authorities). During the migrations, some of authorities were not added in the new created modules. Moreover, the query set used to obtain the data related to a resource was fetching all the objects from the DB.

Based on the openIMIS Authorities, used in the legacy openIMIS, we have added the missing permission to the modular openIMIS. Also, we have updated the query sets and retrieved them from the business module (e.g. Claim module) which limits the access based on the Users The following modules have been updated:

...

openimis-be-core_py: PR#61, PR#63, PR#64

...

openimis-be-medical_py: PR#11

...

openimis-be-medical_pricelist_py: PR#9

...

openimis-be-product_py: PR#7

...

openimis-be-payer_py: PR#2

...

openimis-be-claim_py: PR#38

...

openimis-be-claim_batch_py: PR#10

...

openimis-be-location_py: PR#10

...

PremiumId": "1",
                "PolicyId": "1",
                "PayerId": "0",
                "Amount": "10000",
                "Receipt": "REC0002",
                "PayDate": "2021-06-09",
                "PayType": "C",
                "isPhotoFee": "false",
                "isOffline": "1"
            }
        }],
        "insureePolicy": [{
            "InsureeId": "-147",
            "PolicyId": "1",
            "EffectiveDate": "2021-06-09"
        }, {
            "InsureeId": "-145",
            "PolicyId": "1",
            "EffectiveDate": "2021-06-09"
        }, {
            "InsureeId": "148",
            "PolicyId": "1",
            "EffectiveDate": "2021-06-09"
        }]
    }]
}

1.2 FHIR R4 extensions development

1.4 openIMIS FHIR Quality Assurance

...