Accounting and Receivables

Billing is one thing - collecting the cash is another! Let's look at the tools that we have for managing receivables.

Let's first take a quick look at what we have so far in SQL-Ledger. You can bring it up from the OpenEMR billing screen, and here our accounting guy Randy does that by clicking "[SQL-Ledger]".

Randy logs in with the user name and password that were set up when SQL-Ledger was installed.

Navigating to AR, then Customers, then Reports, Randy finds and displays the customer that we billed for in the previous section. We see that OpenEMR has successfully exported the patient's name, address and some other information.

By navigating to AR, then Reports, then Transactions, we can also see the invoice that was posted to SQL-Ledger during the billing process. A few things are worth noticing here:

The invoice number has been constructed from the patient ID and the encounter ID, separated by a period. The invoice date is the date of the billing run (optionally it could be the date of service). The due date is set to 40 days following the invoice date; this is an installation configuration option. There is an invoice line item for each billing code, including the diagnoses. And finally the Notes field of the invoice is used to store the patient's insurance company names.

In this case no payments have been applied, but if a copay were recorded it would show up here also as a payment.

Let's also look at a trial balance report while we're here. We see that the invoice has posted a debit to the AR account, and a credit to the income account.

Back to the OpenEMR billing screen. Randy has an insurance payment to record, and clicks "[EOBs]" to proceed with that.

This brings up the EOB Search window, which is a very powerful tool. Notice the Help link at the top right! When you run it yourself, be sure to click on that because the help page contains a great deal of essential information.

The input fields at the top are for information from the EOB. Randy puts in the source, which might be a check number or EOB number, the pay date, and the amount of the check. The amount field will be automaticaly decremented as payments are entered into the associated invoices, and if all goes well should end with a zero value.

The next line of input fields, with the blue background, are for searching. The EOB indicates that it covers a particular date of service, so Randy puts in that date to restrict the search to just those invoices. Then he clicks the Search button.

Sure enough, we see our invoice. The "-2" in the "Prv" column tells us that we are needing replies from two insurance companies. Randy clicks the invoice number to open that invoice.

This pops up the "EOB Invoice" window. Notice that the source and pay date from the previous window have been copied over; this saves time in the common case where a single check from the insurance company pays for multiple claims.

Randy fills in the paid amount and also checks the checkbox that requests secondary billing. This will allow the claim to be re-billed to the secondary insurance. He also checks the "Done with Ins1" checkbox to indicate that the primary insurance EOB has been posted.

Then he clicks Save to record the payment.

At this point the claim should be run again through the billing process, selecting the secondary insurance. This time it might need to be a paper claim if the secondary insurance requires paperwork from the primary payment. We won't go over that again here.

By the way you should know that the billing process does not replace or change the SQL-Ledger invoice for re-billed claims. That is, the original invoice will remain as you left it in the case where it already exists.

Now let's say we've received the secondary insurance payment. Randy looks up the invoice as before. This time you'll notice that the Prv column has a -1, indicating that only one insurance payment is outstanding.

Randy clicks the invoice number to bring it up again.

Now the secondary payment is only $30. The EOB indicates that (a) a total of $115.00 is all that should be charged for this procedure, and (b) that the patient should pay the balance of $20. Perhaps we forgot to collect the copayment.

Randy selects the "Now posting for Ins2" option, enters the payment amount, enters a writeoff (adjustment) amount, selects a reason for the adjustment, and also checks the "Done with Ins2" checkbox. The he clicks Save.

Later, Randy wants to run patient statements. He brings up the EOB Search again and selects "Due" invoices. These are invoices that have patient payments due, and will not include any invoices with outstanding insurance billings. Again he clicks Search.

We now see our old invoice showing that the patient owes $20. Randy clicks "Print Selected Statements" which prints the patient statement, and records a note to that effect into the invoice.

The "Prv" column now shows that the patient has previously been billed once for this invoice. This count may be used when printing so that second and later notices may be worded differently from the initial statement.

The statements are printed according to a template that must be customized for your clinic. This is what you get if you fail to customize it!

When the payment is eventually received from the patient, Randy looks up the invoice as before and posts the payment as before. Notice that the "Now posting for Patient" option is chosen this time.

Here's what the final invoice looks like in SQL-Ledger. Notice there's a new line item for the adjustment, and three separate payments recorded. Also notice that OpenEMR has used the "Ship via" field of the invoice to record which insurance companies have responded (this is a bit of a kludge, but it's a lot better than making custom modifications to the SQL-Ledger code and database schema).

The SQL-Ledger trial balance report also reflects the adjustment and payments.

Next: Reports >>