Calendar Module Customizations - TeleHealth Billing/Reporting and Future Extensions

So I am looking to modify the Calendar to add some additional developer extension points. My main goal is to support Telehealth but what I’m interested in is trying to understand what changes will best support the OpenEMR for reporting and billing on Telehealth specific appointments as I know many providers have different fees/insurance reimbursements for Telehealth visits vs in person.

My biggest requirement is distinguishing an appointment as a Telehealth appointment. The additions that @juggernautsei and @brady.miller worked on for the Lifemesh Telehealth module keys off the name ‘Telehealth’ in the title of the module. What I’m wondering about is if it makes sense to have actual calendar categories specific for telehealth. Similar to our current categories of ‘New Patient’ and ‘Established Patient’. You could have a ‘New Patient Telehealth’ and ‘Established Patient Telehealth’.

Another option would be to add a new category type called ‘Telehealth’ in addition to the ‘Patient’, ‘Provider’, ‘Clinic’, and ‘Therapy Group’ types we have.

A third option would be to have a checkbox on each appointment created that would mark an appointment as being telehealth or not which allows any category / category type to be re-used but may not tie into things like the fee sheet that the system currently does with the appointment categories.

I’d love to hear from billing & reporting folks on if any of these options would have an impact on them.

For future module writers I’m going to make it so you can tie into the calendar appointment and render your own custom html for each rendered appointment. In my case I will be adding a video icon to each Telehealth appointment.

I will also be adding hooks to the patient portal so a module writer can add javascript as well as html to the patient portal page. In my case I will be tying into the system to trigger an event whenever an telehealth appointment is opened to send a patient to a telehealth waiting room.

1 Like

A category would be ideal and generally telehealth visits are recorded in encounter with a Telehealth POS. Appointments that auto generate encounters pass the category along.
Calendar categories are what populate the encounter visit type and is tied to a code(generally CPT4).


Some insurance companies and payers like Medicare like to see the office POS codes instead of telehealth codes. There can also be a distinction between audio only and a/v.

That’s on the biller to decide. You’d go nuts trying to decide that in categories.


@adunsulag I admire the enthusiasm in wanting to change the calendar but right now I would not suggest going beyond the events that are there. There are not real set standards for billing telehealth claims. Adding a Telehealth category as standard part of OpenEMR would be the best thing to do. I would not suggest more. On my other telehealth modules, I did not use the calendar for anything. So, by thinking that “all” telehealth will hook into the calendar is not sound thinking. Unless you want to pigeon whole developers and say this is the only way to connect your module then by all means do what you are planning to do.

That’s my 3 cents worth.

Appointment/encounter category of this project is encounter type which has its specific meaning to other partners. Encounter has an additional attribute - location. We could add a simple dropdown or plain text to appointments and forms specifying where the patient was during the encounter. Just because it was televisit does not diminish the need to classify the encounter as a follow up or new patient etc…

Good point!
This will make 20 characters.:slight_smile:

Pigeon-holing developers isn’t really my style :slight_smile: Otherwise I never would have introduced modules and event listeners into the system to begin with. All I want to do is work with the existing appointment hooks as well as add any additional generic hooks we may need to support telehealth use cases. I may add some into the encounter form experience as well to allow developers to start / launch things from the encounter form if its a telehealth encounter. BTW, I’m pretty sure you’re using the calendar because your module allows launching a telehealth session from inside the appointment edit screen. I’m following a similar process patterned after work you’ve already done.

The process I’m attempting to do is to avoid requiring the provider to put in the text description ‘Telehealth’ in order to trigger the telehealth session. My goal is to provide a bit more structure so it could eventually be extended in the future for reporting / billing purposes when there is more consensus from CMS and insurance companies on how to handle Telehealth for payment processing.

@mdsupport The way FHIR classifies virtual visits is through the ‘class’ property with the code set to ‘VR’ to represent a virtual appointment. FHIR R4 does not currently distinguish between audio,email,video, etc for billing purposes. Location doesn’t really have a means of specifying something as virtual unless we were to create a custom extension (which I think I’d rather extend the class property since that is where most systems will be putting Virtual visit data).

The way this telehealth module is built is that the only place patients can join a telehealth session will be within the OpenEMR patient portal. There is no 3rd party external waiting room a patient is sent to. I plan on tying into the appointments in order to facilitate that interaction at least for this first stage. I think the work I do with telehealth categories / encounter telehealth sessions I will keep in the module for now since it sounds like this won’t provide any consistency across OpenEMR core if I’m understanding everyones comments here.

Stephen, that is true of the Lifemesh module because that is they wanted and made the most sense for their work flow.

For the 8x8 integration I did. It is independent of the calendar. See the two buttons. The SMS button send the link to the patient at the time of the appointment. The provider clicks that when they are ready to start the tele session. The Telehealth button is used to enter a patient specific encrypted room that only the provider and patient has access to. So, whether the calendar appointment is labeled telehealth or not does not matter. In this use case, 90% of the practice is telehealth.

@juggernautsei in that Telehealth practice do they add anything to the encounter form / data to differentiate their telehealth encounters from their non-telehealth encounters? I’m assuming they are still creating encounters in order to facilitate billing. I’m just wondering how they track in their system processes between the 90% that is telehealth and the 10% that is not.

Yes, the telehealth encounters has a POS code of 02. The billing is tricky because some payers require a different modifier in the billing. Started building a class to help them with this but we have not gotten around to finishing the class to apply the proper modifier matched with the payer.

@stephenwaite and I talked about adding a field to the Insurance Edit screen to allow a telehealth modifier. Right now its outside the scope of what I’m contracted to do, but something like that might be helpful in the future. It sounds like you were doing something similar.

@adunsulag Encounter already has service location which is where the service provider is expected to be in addition to the billing location for admin/billing purpose. If there is a patient location (not null), then the encounter can be inferred to be remote.

You are probably correct in class vs type but broader point is to reflect real world as attributes. By combining attributes we burden the practice to set up a complex structure and then every user to follow the narrower meaning.

Re. type/class/whatever of remote encounter, I can see staff grudgingly select/set the location. I don’t see any MD documenting that first 20mins were video and next 10mins were chat due to phone problems.

Thx for soliciting input during design stage. Very rare.


@adunsulag are you still planning a developers training session meetup?

Yes, see this post: OpenEMR Meetup/Training Session - How to create an OpenEMR Module

I agree with Sherwin. We handle telehealth visits by having the provider or billing specialist change the POS (02) in the encounter summary. And for the calendar, we have created a new category with distinct color, which allows for an easy identification of telehealth appointments :slight_smile:

@adunsulag Ola :hugs:
are you still working on the calendar customization? I was wondering if there could be additional feature to capture information associated with a calendar event, for example cold there be layout based forms be filled / associated to calendar events then transferred to encounter when an appointment is converted to an encounter; or could documents (e.g. faxes received for certain appointments) be scanned/uploaded and associated to a calendar event, and viewable at flow board, and eventually associated to the corresponding encounter.