Main Assignment:

As you can see we are working with the Medicare payment data used in the previous assignment. Imagine you are writing a simplified program to create a "State Medicare Ledger" that allows querying of a state's data in a roll up fashion . (A ledger is an entity that manages detailed Medicare records and produces summary data from the detail.) The primary interaction involves selecting a state from the ledger, and then calculating the average percentage reimbursement for that state, as well as the average percent reimbursement for each ambulatory payment classification (APC) service done in all the medical centers across the state. Completing this assignment involves:

  • adding an interface to the existing MedicarePayment class and accompanying compareTo method that will allow the payment data to be easily sorted in the order needed. Since you want the ledger to roll up by state as well as the APC within a state, the primary sort should be on state, and a secondary sort on APC within state.
  • writing a class to implement the StateMedicareLedger. The StateMedicareLedger class constructor should construct an ArrayList of MedicarePayment objects, by reading a file of medicare payment records as was done for the previous assignment. The constructor should also sort the array list in the appropriate order
  • writing a method in the StateMedicareLedger class to calculate the average percent reimbursement for a chosen state, by averaging all payments across all APCs performed in that state.
  • writing a method in the MedicarePayment class to calculate the average percent reimbursement for EACH AND EVERY APC performed in the state.
  • creating the GUI class needed to manage working with the ledger.

Two different input files containing medicare payment records are provided. These are the same files used in Assignment 8. The first is named MedicareData.txt, and contains 2,595 records in the same format as was used in Assignment 8. The second, named MedicareDataTest.txt, contains 20 records. You should use this second file to simplify your testing and debugging as it has so few records. You should familiarize yourself with these 20 records, and note that certain states like MS, GA, and NJ have multiple APC records that will allow for testing your breakdown by APC logic. As a general rule of thumb, you should also check that data from the first record and last record is handled appropriately, as handling these unique conditions are often where problems arise.

Background Knowledge:

  • Reimbursement percentages can run anywhere from 0 to 100%
  • To calculate the state average reimbursement percent do the following :
    • for each payment associated with the state, multiply the average submitted charge by the number of such outpatient services performed, and then sum all these products (refer to below as B)
    • for each payment associated with the state, multiply the average total payment by the number of such outpatient services performed, and then sum all the products (refer to below as A)
    • divide A by B express as a percent with 2 decimal places
  • Use the same process for calculating the average reimbursement percent, but instead of grouping by state, group by the combination of state and APC

User Interface:

  • Don't worry too much about making the GUI interface nice. See my simple sample screenprint below - Dont let that constrain your creativity. Use it to help understand what I see as inputs and outputs.
  • Reimbursement percentages should be expressed to 2 decimal positions (e.g. 27.67%)
  • Help me grade - DO put your name on the GUI form as a label.

Task Details:

  • Make sure you read the Javadoc documentation on the MedicarePayment class, which can be found in Canvas.
  • Make sure you read the documentation on the StateMedicareLedger class, and use as the template for your implementation of the StateMedicareLedger class.
  • Feel free to take the expedient path and just include your GUI class, MedicarePayment class, and StateMedicareLedger class all in the same project/package. It's not what you will be wanting to do for later bigger projects, but for getting started
  • As mentioned for previous assignment, the file contains one line for every Medicare payment. If you read in a line at a time you are well on your way to creating the ArrayList of medicare payments. There is a MedicarePayment constructor that will be very valuable for creating an object from a string, so consider using it.
  • In reading the file, catch exceptions involving the file not being found and display an error message.
  • Your combo box with list of state abbreviations should contain only those states for which there are records. Warning: there may not be records for all 50 states in the data file. Recognize that once your ArrayList of objects are sorted (by state), you will need to write a routine that processes through the list to create a distinct list of state abbreviations that can then be used to populate the combo box in the GUI
  • A large part of this assignment is working with a sorted set of objects. You will need to leverage this sort order especially when calculating the average percent reimbursement for a state and APC combination. This will involve remembering what was in the immediately preceding object when processing the current object, and taking action based on comparing the two.
Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.