People
- Abhishek Gupta (IIIT student)
- Jatin Thapar (IIIT student)
- Amarjeet (IIIT mentor)
- John V Stoecker (Raxa)
- Nathan Leiby (Raxa)
Intro
This page is to outline the steps and progress for the billing module, which is being led by students at IIIT as a semester project.
Timeline
- Week of August 26th - September 1st
- Fri Aug 24: [Nathan] Complete short spec/designs on billing -- add to Wiki]
- Sat Aug 25 - Sun 26: Review existing billing modules in OpenMRS and lots of other billing systems... consider lots of possible alternatives
- Mon Aug 27 - Tues 28: improve architecture plans (database tables needed), review UI to see if we have screens yet to meet JSS's needs
- Wed Aug 29: Call with JSS - review our designs
- ... Update timeline
- Week of September 2nd - 8th
- Completing the back end resources(Billing,BillingItem,BillingItemAdjustment).
- Hoping to learn something about front end(reading some existing examples).
Notes
Kick-off meeting notes from 2012-08-23 Billing Module Meeting
Throughout the experience, we'd like you to blog weekly about your progress / experience. (on the Raxa.org blog - we'll give you accounts)
Please test your work thoroughly; write automated tests.
Please look at these following pages as good exmaples of project pages. This page ideally should look something like these in order to track your work and progress. Most important is to create a resource so that others can share your learning on the billing module, things like: 1)why you made the decisions you did for UX, functionality 2) code design decisions you made.
- Lab Administration Pages: GSoC 2012
- Front end development : GSoC 2012
- User Interface for Outpatient Module : GSOC 2012
Back End Development
Work on billing resource , billing item , billing item adjustment has been started.
Billing table has the following fields:
- bill_Id - id of the bill[auto increment]
- bill_status - keeping status of the bill( pending, paid, partially paid, approved)[not null]
- patient_id - id of the patient whose bill is being created.[not null]
- provider_id: id of the provider [ not null]
- other stndard OpenMRS fields.
DAO has the following functions
public Billing saveBill(Billing bill) ; for saving the bill.
public void deleteBill(Billing bill); deleting a bill, might be required in case of an mistake.
public Billing getBillByPatientUuid(String uuid) retrieving bill using the uuid of the patient.
public List<Billing> getAllBills() ; retrieving all the bills.
public List<Billing> getAllBillsByStatus(String status); retrieving bills by status of the bill(might want to get the bills which are unpaid or partially paid)
public Billing updateBill(Billing bill); updating the bill (if some other tests or medicines/drug to be added to the bill)
public List<Billing> getAllBillsByProvider(Integer providerId); retrieving bills by provider of the bill
BillingItem table has following fields :
- bill_item_id
- bill_id -->as foreign key
- provider_id
- concept_id
- encounter_id
- order_id
- quantity
- value
- other standard openmrs fields
BillingItemDAO has the following functions
BillingItem saveBillingItem(BillingItem item) throws DAOException;
void deleteBillingItem(BillingItem item) throws DAOException;
BillingItem getBillingItemByUuid(String uuid);
List<BillingItem> getAllBillingItems() throws DAOException;
List<BillingItem> getAllBillingItemsByBill(Integer billid);
BillingItem updateBillingItem(BillingItem item);
List<BillingItem> getAllBillingItemsByProvider(Integer providerId);
List<BillingItem> getAllBillingItemsByEncounter(Integer encounterId);
List<BillingItem> getAllBillingItemsByConcept(Integer conceptId);
List<BillingItem> getAllBillingItemsByOrder(Integer orderId);
BillingItemAdjustment fields :
- adjustment_id
- reason
- value
- bill_item_id
- other standard fields
BillingItemAdjustmentDAO has the following functions
BillingItemAdjustment saveBillingItemAdjustment(BillingItemAdjustment adjustment) throws DAOException;
void deleteBillingItemAdjustment(BillingItemAdjustment adjustment) throws DAOException;
BillingItemAdjustment getBillingItemAdjustmentByUuid(String uuid);
List<BillingItemAdjustment> getAllBillingItemAdjustments() throws DAOException;
List<BillingItemAdjustment> getAllBillingItemAdjustmentsByReason(String reason);
BillingItemAdjustment updateBillingItemAdjustment(BillingItemAdjustment adjustment);
List<BillingItemAdjustment> getAllBillingItemAdjustmentsByBillingItem(Integer billingitemid);