List of content:
...
OpenIMIS field | DB type | Request or response | FHIR field | Description | Note | STPH | Mapping status |
ClaimID | PK | Request | claim.Identifier | this isn't required, most important is the ClaimCode (see below) but FHIR claim can have multiple identifiers | I would include ClaimUUID into the Claim instead of ClaimID. | This is the Database ID and should be used only internally | |
ClaimUUID | uniqueidentifier | Response | claim.Identifier | The unique identifier used as PK for FHIR | Will be added when will be available in the python claim module | mapped | |
InsureeID | FK(tblInsuree) | Request | claim.patient - Reference(Patient) | The subject of the Products and Services | We can represent the insuree as the FHIR patient resource but the most important is claim.patient.identifier | claim.patient.identifier | mapped |
ClaimCode | nvarchar | Request | claim.Identifier | Claim number | OK | mapped | |
DateFrom | smalldatetime | Request | claim.billablePeriod | Period for charge submission | OK | mapped | |
DateTo | smalldatetime | Request | Period for charge submission | mapped | |||
ICDID | FK(tblICDCodes) | Request | claim.diagnosis | List of Diagnosis | If ICD is some fixed set of coded value then we can use the CodeableCondept to describe this. The sequence field can be used to create an order of diagnosis. | OK | mapped |
ClaimStatus | tinyint | Response | claimResponse.outcome | Default value: 2; 1 - rejected 2 - entered 4 - checked 8 - processed 16 - valuated | Used the FHIR codeable concept (code = imis_status, text = displayed status) | Can be also a combination of claimResponse.status and claimResponse.outcome but limited in values. Extension required? | mapped |
Adjuster | FK(tblUsers) | Request | claim.provider - Reference(Practitioner) | Responsible provider | I'm not sure if this field is used, all records created by me have null values in that field. | Only reference to openIMIS user. | |
Adjustment | ntext | Response | claimResponse.payment.adjustmentReason | Used FHIR adjustmentReason because of the IMIS Adjustment is text. | claimResponse.payment.adjustment | mapped | |
Claimed | decimal | Request | claim.total | Total claim cost | OK | mapped | |
Approved | decimal | Response | claimResponse.totalBenefit | OK | mapped | ||
Reinsured | decimal | Response | If needed we can create the FHIR extension. | ||||
Valuated | decimal | Response | If needed we can create the FHIR extension. | ||||
DateClaimed | date | Request | claim.created | default: getDate() | OK | mapped | |
DateProcessed | smalldatetime | Response | claimResponse.payment.date | claimResponse.created is used is the request date | If different endpoint to claimResponse, claimResponse.created will be the request date. Maybe claimResponse.payment.date | mapped | |
Feedback | bit | default value: 0 | No need. To see if replaced by FeedbackID | ||||
FeedbackID | FK(tblFeedback) | Response | claimResponse.communicationRequest | default value: 0 | claimResponse.communicationRequest | mapped | |
Explanation | ntext | Request | claim.information.valueString | Additional Data or supporting information | OK | mapped | |
FeedbackStatus | tinyint | - | default value: 1 1 - idle 2 - not selected 4 - selected for feedback 8 - delicered 16 - by passed else select status | This field probably is used only by the OpenIMIS and isn't requirement by external systems. | Only used internally | ||
ReviewStatus | tinyint | - | default value: 1 1 - idle 2 - not selected 4 - selected for review 8 - reviewed 16 - by passed else select status | This field probably is used only by the OpenIMIS and isn't requirement by external systems. | Only used internally | ||
ApprovalStatus | tinyint | - | default value: 1; | Probably not used field | |||
RejectionReason | tinyint | Response | claimResponse.error | default value: 0 | In Web App we have the rejection reason for each Item and Service in a Claim. We should provide these reasons. | mapped | |
ValidityFrom | datetime | - | Audit information. More information can be found here (on page 113): Web application - Functional Design Specification.pdf | This information are valuable for OpenIMIS but probably not required by external systems. | |||
ValidityTo | datetime | - | |||||
LegacyID | int | - | |||||
AuditUserID | int | - | |||||
ValidityFromReview | datetime | Response | I'm not sure if this information are valuable for external systems. If needed we can try to use the claimResponse.processNote or add the FHIR extensions. | I don't think this information is valuable for external systems. It's only used internally. | |||
ValidityToReview | datetime | Response | |||||
AuditUserIDReview | int | Response | |||||
RowID | timestamp | - | I'm not sure but this is probably some unique value used to distinguish database rows. Probably not useful for external systems. | Not used by external systems. | |||
HFID | FK(tblHF) | Request | claim.facility - Reference(Location) | Servicing Facility | Could also be Claim.organization | ||
RunID | FK(tblBatchRun) | - | This is probably useful only for the internal system not for external systems. If needed add the FHIR extension can be considered. | Not used by external systems. | |||
AuditUserIDSubmit | int | Response | I'm not sure if this information are valuable for external systems. If needed we can try to use the claimResponse.processNote or add the FHIR extensions. | ||||
AuditUserIDProcess | int | Response | |||||
SubmitStamp | datetime | Response | |||||
ProcessStamp | datetime | Response | |||||
Remunerated | decimal | Response | If needed we can create the FHIR extension. | ||||
GuaranteeId | nvarchar | Request | claim.information.valueString | Additional Data or supporting information | I couldn't find a better place for information about the guarantee Id. The FHIR claim can consider multiple information elements. We can use the information category to distinguish the type of information. | Claim.insurance.preAuthRef | |
ClaimAdminId | FK(tblClaimAdmin) | Request | claim.enterer - Reference(PractitionerRole) | Author | This information is present in the API token? | ||
ICDID1 | int | Request | claim.diagnosis | diagnosis 1 from List of Diagnosis | If ICD is some fixed set of coded value then we can use the CodeableCondept to describe this. The sequence field can be used to create an order of diagnosis. | OK | |
ICDID2 | int | Request | claim.diagnosis | diagnosis 2 from List of Diagnosis | If ICD is some fixed set of coded value then we can use the CodeableCondept to describe this. The sequence field can be used to create an order of diagnosis. | OK | |
ICDID3 | int | Request | claim.diagnosis | diagnosis 3 from List of Diagnosis | If ICD is some fixed set of coded value then we can use the CodeableCondept to describe this. The sequence field can be used to create an order of diagnosis. | Ok | |
ICDID4 | int | Request | claim.diagnosis | diagnosis 4 from List of Diagnosis | If ICD is some fixed set of coded value then we can use the CodeableCondept to describe this. The sequence field can be used to create an order of diagnosis. | OK | |
VisitType | char | Request | claim.type | E - emergency R - referrals O - other "" - select type | OK | ||
ClaimCategory | char | - | I didn't find the logic related to this field. | I don't think is used externally. |
...
Example JSON representation of content:
FHIR Claim (http://127.0.0.1:8000/api_fhir/Claim/clCode1):
Code Block |
---|
{ "resourceType":"Claim", "billablePeriod":{ "end":"2019-06-12T00:00:00", "start":"2019-06-01T00:00:00" }, "created":"2019-06-12T00:00:00", "diagnosis":[ { "diagnosisCodeableConcept":{ "coding":[ { "code":"ICD_CD" } ] }, "sequence":1, "type":[ { "text":"icd_0" } ] } ], "enterer":{ "reference":"Practitioner/1234abcd" }, "facility":{ "reference":"Location/12345678" }, "id":"code", "identifier":[ { "type":{ "coding":[ { "code":"ACSN", "system":"https://hl7.org/fhir/valueset-identifier-type.html" } ] }, "use":"usual", "value":"E9B13CFA-62D0-4B2C-B08B-477265B1587D" }, { "type":{ "coding":[ { "code":"MR", "system":"https://hl7.org/fhir/valueset-identifier-type.html" } ] }, "use":"usual", "value":"code" } ], "information":[ { "category":{ "text":"guarantee_id" }, "sequence":1, "valueString":"guarantee_id" }, { "category":{ "text":"explanation" }, "sequence":2, "valueString":"explanation" }, { "category":{ "text":"item_explanation" }, "sequence":3, "valueString":"item_explanation" }, { "category":{ "text":"item_explanation" }, "sequence":4, "valueString":"service_explanation" } ], "item":[ { "category":{ "text":"item" }, "informationLinkId":[ 3 ], "quantity":{ "value":4 }, "sequence":1, "service":{ "text":"iCode" }, "unitPrice":{ "value":21.1 } }, { "category":{ "text":"service" }, "informationLinkId":[ 4 ], "quantity":{ "value":3 }, "sequence":2, "service":{ "text":"sCode" }, "unitPrice":{ "value":16.1 } } ], "patient":{ "reference":"Patient/TEST_CHF_ID" }, "total":{ "value":42 }, "type":{ "text":"E" } } |
FHIR ClaimResponse (http://127.0.0.1:8000/api_fhir/ClaimResponse/clCode1/):
Code Block |
---|
{ "resourceType": "ClaimResponse", "communicationRequest": [ { "reference": "CommunicationRequest/F719B223-83A7-44A1-8F21-7B80E5B9FDD0" } ], "error": [ { "code": { "coding": [ { "code": "1" } ] } } ], "id": "code", "identifier": [ { "type": { "coding": [ { "code": "ACSN", "system": "https://hl7.org/fhir/valueset-identifier-type.html" } ] }, "use": "usual", "value": "E9B13CFA-62D0-4B2C-B08B-477265B1587D" }, { "type": { "coding": [ { "code": "MR", "system": "https://hl7.org/fhir/valueset-identifier-type.html" } ] }, "use": "usual", "value": "code" } ], "item": [ { "adjudication": [ { "amount": { "value": 2 }, "category": { "text": "general" }, "reason": { "coding": [ { "code": "1", "system": "passed" } ] }, "value": 4 }, { "category": { "text": "rejected_reason" }, "reason": { "coding": [ { "code": "1" } ] } } ], "noteNumber": [ 1 ], "sequenceLinkId": 1 }, { "adjudication": [ { "amount": { "value": 4 }, "category": { "text": "general" }, "reason": { "coding": [ { "code": "2", "system": "rejected" } ] }, "value": 3 }, { "category": { "text": "rejected_reason" }, "reason": { "coding": [ { "code": "3" } ] } } ], "noteNumber": [ 2 ], "sequenceLinkId": 2 } ], "outcome": { "coding": [ { "code": "1" } ], "text": "rejected" }, "payment": { "adjustmentReason": { "text": "adjustment" }, "date": "2010-11-16T00:00:00" }, "processNote": [ { "number": 1, "text": "item justification" }, { "number": 2, "text": "service justification" } ], "totalBenefit": { "value": 214.25 } "request": { "reference": "Claim/clCode1" } } |
...