Versions Compared

Key

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

List of content:

...

OpenIMIS fieldDB typeRequest or responseFHIR fieldDescriptionNoteSTPHMapping status
ClaimIDPKRequestclaim.Identifier


this isn't required, most important is the ClaimCode (see below) but FHIR claim can have multiple identifiersI would include ClaimUUID into the Claim instead of ClaimID.This is the Database ID and should be used only internally
ClaimUUIDuniqueidentifierResponseclaim.Identifier

The unique identifier used as PK for FHIR

Will be added when will be available in the python claim module
mapped
InsureeIDFK(tblInsuree)Requestclaim.patient - Reference(Patient)The subject of the Products and ServicesWe can represent the insuree as the FHIR patient resource but the most important is claim.patient.identifierclaim.patient.identifiermapped
ClaimCodenvarcharRequestclaim.IdentifierClaim number
OKmapped
DateFromsmalldatetimeRequest
claim.billablePeriod

Period for charge submission



OKmapped
DateTosmalldatetimeRequest

Period for charge submission



mapped
ICDIDFK(tblICDCodes)Requestclaim.diagnosisList of DiagnosisIf 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.OKmapped
ClaimStatustinyintResponseclaimResponse.outcomeDefault 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
AdjusterFK(tblUsers)Requestclaim.provider - Reference(Practitioner)Responsible providerI'm not sure if this field is used, all records created by me have null values in that field.Only reference to openIMIS user.
AdjustmentntextResponseclaimResponse.payment.adjustmentReason
Used FHIR adjustmentReason because of the IMIS Adjustment is text.claimResponse.payment.adjustmentmapped
ClaimeddecimalRequestclaim.total

Total claim cost



OKmapped
ApproveddecimalResponseclaimResponse.totalBenefit

OKmapped
ReinsureddecimalResponse

If needed we can create the FHIR extension.

ValuateddecimalResponse

If needed we can create the FHIR extension.

DateClaimeddateRequestclaim.createddefault: getDate()
OKmapped
DateProcessedsmalldatetimeResponseclaimResponse.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
Feedbackbit

default value: 0
No need. To see if replaced by FeedbackID
FeedbackIDFK(tblFeedback)ResponseclaimResponse.communicationRequestdefault value: 0
claimResponse.communicationRequestmapped
ExplanationntextRequestclaim.information.valueStringAdditional Data or supporting information
OKmapped
FeedbackStatustinyint-
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
ReviewStatustinyint-
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
ApprovalStatustinyint-
default value: 1;Probably not used field

RejectionReasontinyintResponseclaimResponse.errordefault value: 0
In Web App we have the rejection reason for each Item and Service in a Claim. We should provide these reasons. mapped
ValidityFromdatetime-
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.


ValidityTodatetime-


LegacyIDint-


AuditUserIDint-


ValidityFromReviewdatetimeResponse

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. 


ValidityToReviewdatetimeResponse


AuditUserIDReviewintResponse


RowIDtimestamp-

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. 
HFIDFK(tblHF)Requestclaim.facility - Reference(Location)Servicing Facility

Could also be Claim.organization 



RunIDFK(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.
AuditUserIDSubmitintResponse

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.


AuditUserIDProcessintResponse



SubmitStampdatetimeResponse



ProcessStampdatetimeResponse



RemunerateddecimalResponse

If needed we can create the FHIR extension.

GuaranteeIdnvarcharRequestclaim.information.valueStringAdditional Data or supporting informationI 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
ClaimAdminIdFK(tblClaimAdmin)Requestclaim.enterer - Reference(PractitionerRole)Author
This information is present in the API token?
ICDID1intRequestclaim.diagnosisdiagnosis 1 from List of DiagnosisIf 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
ICDID2intRequestclaim.diagnosisdiagnosis 2 from List of DiagnosisIf 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
ICDID3intRequestclaim.diagnosisdiagnosis 3 from List of DiagnosisIf 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
ICDID4intRequestclaim.diagnosisdiagnosis 4 from List of DiagnosisIf 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
VisitTypecharRequestclaim.typeE - emergency
R - referrals
O - other
"" - select type

OK
ClaimCategorychar-

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"
  }
}

...