Realtime Eligibility

I’m working on eligibility checks in my new module, and I have no one here to bounce ideas and plans off of. So, here is my plan. Let me know if it sounds good and if there are any holes in it. It’s not very complicated but maybe something I’m missing. My goal is not to touch any core code.

Eligibility is in multiple parts.

1st, the service table:

This table is a new table and kinda the hub of all the eligibility. It contains the patient id, payer responsibility, request json, response json,status, create date, last update date. The columns may change as I go on but those are the main ones now. A patient can only have 1 record per payer responsibility. So that means if a patient has 3 insurances, he could have 3 entries in that table.

2nd, the manual part:

In the patient dashboard, I’ve added a new card called “ClaimRev Eligibility”. In this card I get all the insurances that are attached to a patient Primary → whatever. I make a tab for each of the different insurances. On each of the tab is a “check” button. This does the manual check for the respective insurance. This check will create a json object that will be saved to the service table. If someone does a check for primary, the module will check that table and see if primary is already there and replace or insert new. There is a setting called “age” this tells the module how old an eligibility can be. So if this patient had a check done today and he comes back tomorrow and age is set to 10, then a new eligibility won’t be run.

3rd, the RTE part:

I’m subscribing to the appointment set event. I use the event id to get the patient id and then create the object as I do in the manual part. At this point it all works the same, just done automatically. There is a setting to turn this on and off.

4th, service:

This part works like the sending of claims, it has a service that scans that table a set interval. when it finds an eligibility waiting it sends it to my service then updates the table with the results and marks the record complete or retry. This retry option will be run again later if my service couldn’t provide results right away. Sometimes the payer is down.

5th results:
Results are going to be shown on the card created in the 1st part. Also, I’ll save select values to table that need to be saved to like co-pay and others. I’m not there yet, so where else to save is a mystery. If anybody has ideas and wants let me know which table and which data and I’ll do what I can. This can always be improved upon too.

6th Configuration:

Several configuration options are available, service type codes to check will be a comma delimited list. including Point of service for facility is also configurable. I get the POS from the facility table and it’s a true/false as to send it or not. Also if we send provider or facility is configurable. The provider will be the one selected off of patient_data.
Turning on and off RTE is also an option
Adding eligibility card to dashboard is an option
Age of eligibility is also configurable. The value of 0 would basically make eligibility run every time it’s requested for a patient.

So I think that is everything right now. I may come up with more stuff over the weekend as I work on it but if anyone has any other ideas I’m all ears.

1 Like

Where are you storing the settings for your module? Are you using the globals hook?

Hopefully you have a description of ‘age’ in your setting as that could really throw people off as a clinician will think of age in terms of the patient age.

I looked over what you’ve described and it seems to be sound to me. Let us know if you need additional hooks/events in the system (or submit a PR).

all my settings are in the globals hook. I felt like that was the correct place to put them. I’ve included a screen shot of the settings as of right now. I swear it changes daily :slight_smile:

So far I haven’t needed any additional hooks. I’m working on the screen in the patient dashboard now. There isn’t much to show there yet.


Looks great Brad. BTW, you can mark a setting as a User Setting and it allows users to override settings on a user by user basis if you find that would be of value to you in your module.

That would be great for the username and password. do you have an example of one that is overridable?

Look at how I do it with the Carecoordination sections here:

Note user preferences won’t save until someone has at least done a save once in the global admin area (updating a global’s setting or the initial setup).

Is there a place where I can find the scanned insurance card? stored as base64 or something? Also is there a place where I can find the text of the card OCR’d?