Development details

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