Development details
How to use project Jira?
Link to project Jira space:
https://issues.openmrs.org/projects/ICLM/issues/?filter=allopenissues
How does the development workflow in the Jira Project Board looks like?
Supported version of OpenMRS Platform
In the beginning the insurance claims module will be compatible with the 2.1.3 version of OpenMRS Platform.
Module entities
The entities which can be found in the insurance claim module are shown below (note: diagram show class fields and relations between class but class methods were skipped).
Note!
Note: work in progress. This isn't the final version of the diagram.
Note!
All presented classes below extend the BaseOpenmrsData which contain the following fields.
BaseOpenmrsData | ||||
Field name | Type | DB Type | Description | Database constraints |
|---|---|---|---|---|
creator | User | FK(users) | Information about user who created the row | |
dateCreated | Date | DATETIME | Date of creating the row | nullable = false |
changedBy | User | FK(users) | Information about user who changed the row | |
dateChanged | Date | DATETIME | Date of changing the row | |
voided | Boolean | BOOLEAN | If true that mean that the row was voided | nullable = false, defaultValueBoolean="false" |
dateVoided | Date | DATETIME | Date of voiding the row | |
voidedBy | User | FK(users) | Information about user who voided the row | |
voidedReason | String | varchar(255) | The voided reason message | length = 255 |
BaseOpenmrsObject | ||||
uuid | String | char(38) | The row universally unique identifier (UUID) | nullable="false", unique="true" |
InsuranceClaim
This object should be used to contain information about the requested insurance claim and additionally contains information about the adjudication of the request.
InsuranceClaim (table name: iclm_claim) | ||||
Field name | Type | DB Type | Description | Database constraints |
|---|---|---|---|---|
id | Iinteger | PK | ||
provider | Provider | FK(provider) | Information about the provider which is the author of the claim request | |
patient | Patient | FK(patient) | The subject of the Products and Services | nullable = false |
location | Location | FK(location) | Servicing Facility | |
claimCode | String | varchar(255) | Claim number | nullable = false, length = 255 |
dateFrom | Date | DATETIME | Start date for requesting period | nullable = false |
dateTo | Date | DATETIME | End date for requesting period | nullable = false |
adjustment | String | TEXT | The contents of the disposition message (getting from response) | |
claimedTotal | BigDecimal | decimal(10,2) | Total claim cost | |
approvedTotal | BigDecimal | decimal(10,2) | Total benefit payable for the Claim | |
dateCreated | Date | DATETIME | Date of creating claim | nullable = false |
dateProcessed | Date | DATETIME | Date of processing claim | |
explanation | String | TEXT | The additional explanation for claim request | |
rejectionReason | String | varchar(255) | Optional rejection reason message | length = 255 |
guaranteeId | String | varchar(255) | Optional information about guarantee | length = 255 |
visitType | VisitType | FK(visit_type) | Information about the visit type | |
status | InsuranceClaimStatus | varchar(50) | Information about current claim status | nullable = false |
bill | Bill | FH(item_biill) | The related bill | |
InsuranceClaimStatus
The enum which contains possible claim statuses.
InsuranceClaimStatus |
Value |
|---|
rejected |
entered |
checked |
processed |
valuated |
InsuranceClaimDiagnosis
This object should be used to contain information about the claimed diagnosis (relation between claim and claim diagnosis). One claim can have relationships with many diagnoses.
InsuranceClaimDiagnosis (table name: iclm_claim_diagnosis) | ||||
Field name | Type | DB Type | Description | Database constraints |
|---|---|---|---|---|
id | Integer | PK | ||
concept | Concept | FK(concept) | The value of concept which describe the diagnosis | nullable = false |
claim | InsuranceClaim | FK(iclm_claim) | The claim which is connect with the diagnosis | nullable = false |
ProvidedItem
This object contains information about the goods and services provided by the health facility to the specific patients. Each row represents a single operation. Because we want to combine multiple operation into a single bill that's why each item has a status which indicates if item was performed.
ProvidedItem (table name: iclm_provided_item) | ||||
Field name | Type | DB Type | Description | Database constraints |
|---|---|---|---|---|
id | Integer | PK | ||
price | BigDecimal | decimal(10,2) | The value of the price at the moment on serving the item or service. | nullable = false, length = 255 |
dateOfServed | Date | DATETIME | Date of serving the item or service. | |
item | Concept | FK(concept) | The concept which represent specific item or service. | nullable = false |
patient | Patient | FK(patient) | The patient who receives the item/service. | nullable = false |
status | ProcessStatus | VARCHAR(50) | Information about process status | nullable = false |
bill | Bill | FK(bill) | Information about the related bill. The column should be filled after creating related bill. | |
Note:
The relatedItem is represented by the OpenMRS resource named Concept. Each Concept which is to be used as an item/service need to contain the following information:
name - stored in the concept table
description - stored in the concept table
careService - The value used to determine if the item is the good or service. Stored as a concept attribute.
price - The value of price. Stored as a concept attribute.
insuranceSystemCode - stored as the concept relationship
ProcessStatus
The enum which contains possible process statuses.
ProcessStatus |
Value |
|---|
entered |
processed |
Bill
The object provides combine information about the set of provided items.
Bill (table name: iclm_bill) | ||||
Field name | Type | DB Type | Description | Database constraints |
|---|---|---|---|---|
id | Integer | PK | ||
startDate | Date | DATETIME | The start date of the requested range | nullable = false |
endDate | Date | DATETIME | The end date of the requested range | nullable = false |
totalAmount | BigDecimal | decimal(10,2) | The total requested amount | |
paymentStatus | PaymentStatus | VARCHAR(50) | The status of payment | nullable = false |
paymentType | PaymentType | VARCHAR(50) | The type of payment | |
diagnosis | Concept | FK(concept) | The concept which represent related diagnosis. | |
Note:
The relatedDiagnosis is just represented by the OpenMRS and doesn't need to provide any additional information.
PaymentStatus
The enum which contains possible payment statuses.
PaymentStatus |
Value |
|---|
entered |
requested |
completed |
PaymentType
The enum which contains possible payment types.
PaymentType |
Value |
|---|
cash |
insuranceClaim |
InsuranceClaimItem
This object should be used to represent the relation between the claim and the item. Contains additional attributes related to this relationship.
InsuranceClaimItem (table name: iclm_claim_item) | ||||
Field name | Type | |||
|---|---|---|---|---|