Telemedicine teleconsultation feature
Status: REQUIREMENTS IN PROGRESS IN PROGRESS
Technical Complexity: EASY MEDIUM HARD / COMPLEX
Summary:
Give OpenMRS O3 a first-class way to record and support telemedicine encounters — clinical consultations conducted over video/teleconference rather than in person — so that a virtual visit is captured in the patient record the same way an in-person visit is, and so that the operational details a virtual visit needs (the meeting link, the platform, the session times, any recording) have a defined home in the data model instead of being improvised per implementation.
A teleconsultation should generate a virtual visit and one or more encounters, exactly like an in-person visit. The meeting link belongs on the appointment (not the person, not the clinical record). The video vendor is pluggable — the platform stores and launches the link; it is not a video provider.
If a site has no telemedicine setup, nothing changes: ordinary in-person visits and appointments work exactly as they do today.
1. Problem
Telemedicine is already in active clinical use across the OpenMRS ecosystem, but the platform has no agreed, first-class model for it. Implementations each solve the same problems differently, and one concrete piece — where does the meeting link live? — has no answer in the reference application at all.
The clinical reality (why this matters). At Moi Teaching and Referral Hospital (MTRH), AMPATH's Telemedicine and Telepathology Center connects rural clinics in western Kenya to Kenya's few fully trained oncology specialists, so a woman diagnosed with breast cancer, for example, can receive specialist care despite having no reliable transport to Eldoret. The same rooms host virtual tumour boards and case conferences between Moi University and Indiana University, and telemedicine has extended referral pathways to Tenwek Hospital. Telemedicine here does three jobs at once — direct patient care, specialist referral, and clinical education — and none of it is currently captured as structured data.
The platform gaps (surfaced repeatedly on Talk).
No home for the meeting link. An implementer building an external scheduling app that generated a video link per appointment found no field on the OpenMRS Appointment to store or display it; Person Attribute was rejected as a poor fit. The link had nowhere to go. (Ezequiel Flores; Gurpreet Luthra.)
No agreement on visit vs. encounter modelling and how either maps to FHIR. (Kushboo Jain.) — now resolved in §2.
Coupling to the Appointments module that implementers want decoupled. (Kushboo Jain.)
Fragile video integration — self-hosting Jitsi to escape the 5-minute public cap, with no clear place to configure it. (Arun Kumar.)
Point solutions exist but aren't generalised — the Connecting Kids with Care module and the Nigeria Telemedicine App show demand but are bespoke.
We need a documented, agreed V1 that: creates a virtual visit + encounter for a teleconsult; gives the meeting link a defined home on the appointment; keeps the video vendor pluggable; and does none of this at the expense of ordinary in-person workflows.
2. User Stories
In V1 scope
Attach a link to a virtual appointment.As a scheduler, I want to mark an appointment as virtual and store a meeting link on it, so both provider and patient can join the right session.Launch from the schedule.As a provider, I want the join link on the appointment inside O3 with a "Join call" action, so I don't hunt for it in email or a separate system.Virtual visit = normal documentation.As a clinician, I want a virtual consultation to create a visit and encounter just like an in-person one, so notes, orders, and observations are captured in the normal workflow.Distinguish virtual from in-person.As a records officer, I want virtual visits visibly distinct on the chart and in data, so reporting and audit can tell them apart.Multi-provider session.As a clinician in a session where a patient is handed between providers, I want each hand-off as its own encounter under one visit, so each contribution is attributable.Configure the video platform.As an implementer, I want to set my video platform / self-hosted server as configuration, so I'm not locked to a bundled vendor or the 5-minute public-Jitsi cap.
Deferred (recorded, not V1)
Virtual tumour board / case review. As a tumour board coordinator, I want multidisciplinary case-review outcomes recorded against each patient discussed, and a review that ends in a referral to flow into the referral workflow (MTRH↔Tenwek pattern). (Depends on O3 Referrals; strong AMPATH use case.)
Care vs. education. As a program lead, I want to distinguish a patient-facing teleconsult from a provider-to-provider educational session, so education isn't miscounted as clinical care. (May not belong in a patient chart at all — see §8.)
Asynchronous modalities (e-visits & eConsults). As a patient with poor connectivity, I want to complete a telemedicine interaction over messaging rather than live video; as a local clinician, I want to ask a specialist a question with chart context and get a documented answer without a formal referral. (Both Epic and Oracle Health treat these as core telemedicine; well-suited to low-bandwidth rural settings — see §5, §8.)
Patient-side join delivery. As a patient, I want the join link sent to me by SMS/email, so I can join without a separate app. (Commercial EMRs own this; OpenMRS has no patient portal — see §8.)
Telepathology artifacts. As a pathologist, I want slide/image artifacts attached to a virtual review. (Model vs. generic recording is open — see §8.)
3. Market Analysis
Both dominant enterprise EMRs treat telehealth as native, EHR-integrated virtual care, and both use exactly the pattern this document proposes: the video session hangs off the scheduled appointment, the provider launches the visit from inside the EHR, and documentation flows into the normal record. This is strong external validation for the appointment-attribute + virtual-visit approach.
Cerner / Oracle Health — "Video Visits" (Oracle Health Virtual Care). Cerner Telehealth is an enterprise virtual-care platform integrated into the Millennium EHR; post-acquisition it is marketed as Oracle Health Virtual Care. The clinician launches a secure "Video Visit" from the patient's longitudinal record in PowerChart, retaining real-time chart access during the call. It was originally built for rural patient access and delivered through the cloud-based CommunityWorks offering — a rural-access origin story directly analogous to AMPATH/MTRH reaching rural western Kenya. External video (a now-deprecated Microsoft Teams EHR connector; third-party workflows such as VSee) plugs in. Lesson: launch-from-record UX, and video vendor is swappable.
Epic — native Telehealth / Telehealth Anywhere. The clinician launches a video visit directly from the EHR (Hyperspace/Hyperdrive); the native platform is an Epic-hosted web app built on Twilio's video API. Patients join via MyChart with a "Join Video Visit" button active shortly before the appointment. Implementers can swap in third-party vendors (Vidyo, Pexip, Zoom) through Epic's integration framework. Epic also offers message-based e-visits and eConsults (provider-to-provider), virtual rounding, and remote patient monitoring; Telehealth Anywhere delivers visits via partner organisations. Lesson: async modalities (e-visits/eConsults) and provider-to-provider consults are mainstream, not edge cases — they map to our tumour-board and rural-eConsult use cases.
FHIR. Encounter.class (extensible binding, v3-ActEncounterCode includes a virtual class VR) is where "virtual" is expressed and maps to visit type; Encounter.type maps to encounter type; a recording maps to DocumentReference / complex media (our complex obs); the meeting link is not clinical-record data and stays with the scheduling artifact. Keeping our shape translatable to these is the north star.
Existing OpenMRS-ecosystem approaches. Bahmni enables teleconsult via the Appointments module with Jitsi video (public server capped at 5 min). The Mekom pattern already deploys one encounter per teleconsult, of a specific type, holding a complex-obs recording plus start/end datetime obs. Connecting Kids with Care is an add-on module that requests external-specialist consults and exports a CCD; the Nigeria Telemedicine App is a country-specific build. These confirm both the demand and the appointment-centric, pluggable-video shape.
Common threads: (1) telehealth pre-fills and launches from the appointment/record; it never becomes a separate silo; (2) the video vendor is pluggable; (3) provider-to-provider and asynchronous modalities are first-class in commercial EMRs; (4) the real OpenMRS gap is patient-join tooling and link storage, not the clinical model.
Gaps in our understanding (to close during review)
Whether implementers want the platform to generate links or only store externally-generated ones (Talk evidence = store only).
Whether provider-to-provider education belongs in the patient record at all.
How telepathology artifacts differ from a generic recording.
Consent, recording retention, and data protection expectations across jurisdictions.
4. Technical Considerations & Dependencies
4.1 Architecture/dependencies
Appointment attribute for the meeting link. Add an Appointment attribute type (existing OpenMRS attribute pattern) for the session URL, and optionally platform/provider identifier. Requires confirming the Appointments module and O3 Appointments ESM support appointment attributes end-to-end (API → REST → frontend). This is the single change that closes the headline gap.
Virtual visit type + Teleconsultation encounter type. Seed a visit type mapped to FHIR
Encounter.class = VR (virtual)and an encounter type ("Teleconsultation") mapped toEncounter.type; confirm both surface correctly in the FHIR2 module.Session artifacts as complex obs. Recording/session document → complex obs; session start/end → datetime obs where needed.
Video platform config. Implementer-set base URL / self-hosted server; OpenMRS stores, displays, and launches the link only.
4.2 Assist, don't disrupt
Telemedicine support must be purely additive: a site with no telemedicine setup sees no change to in-person visits, appointments, or ordering. Marking an appointment virtual is a flag/type, never a hard dependency — a virtual visit can be created ad-hoc without a preceding appointment (the decoupling the community asked for).
4.3 V1 scope
Appointment attribute for the meeting link, surfaced + launchable ("Join call") in the O3 Appointments ESM.
Virtual visit type + Teleconsultation encounter type, FHIR-mapped and verified in FHIR2.
Virtual-visit indicator (banner/chip) on the chart, consistent with existing O3 banner patterns.
Recording as complex obs; optional session start/end datetime obs.
Implementer configuration for the video platform base URL / self-hosted server.
5. Sketches
6. Outstanding Queries
Question | Proposed Position |
|---|---|
Generate vs. store the link — should the platform mint meeting links, or only persist externally-generated ones? | Store only for V1 (all Talk evidence is external generation). Revisit generation later if implementers ask. |
Appointment attribute vs. a small first-class field — attribute keeps the core model clean; a first-class field is easier to surface. | Use the appointment attribute for V1 (no core schema change; matches the community's rejection of over-modelling). Reconsider a first-class field only if the ESM can't surface attributes cleanly. |
Synchronous only, or asynchronous too? — does V1 include e-visits / eConsults? | Synchronous video only for V1. Async is core in Epic/Oracle Health and suits low-bandwidth settings, so record it as the leading fast-follow — but it widens V1 and has no Talk precedent yet. |
Patient-side join delivery — platform-delivered SMS/email link, or always an external patient app? | Out of V1; OpenMRS has no patient portal. Flag as a dependency (outbound-notification trigger) for a later iteration. |
Education sessions — model provider-to-provider case conferences/lectures in OpenMRS, or keep them out of the patient record? | Deferred. Lean toward keeping pure education out of the patient chart; needs its own design discussion. |
Telepathology artifacts — generic complex obs, or dedicated handling? | Complex obs for V1; revisit only if a slide/image workflow needs more. |
Consent & recording retention — platform-enforced minimum vs. implementer-configured? | Implementer-configured for V1; document expectations, don't hard-code policy. |
Multi-provider convention — is "multiple encounters within one virtual visit" acceptable as default guidance? | Yes — ratify Burke's model as the documented default. |
FHIR | Verify before build; file a FHIR2 issue if the mapping isn't supported. |
8. References
OpenMRS Talk (telemedicine tag)
Tele-consultation (core modelling thread). https://talk.openmrs.org/t/tele-consultation/37547
Integrating Jitsi with teleconsultation in Bahmni. https://talk.openmrs.org/t/integrating-jitsi-with-teleconsultation-in-bahmni/42853
Telemedicine consultancy service & module. https://talk.openmrs.org/t/telemedicine-consultancy-service-module/23284
AMPATH — clinical context / requestor evidence
Telemedicine Center: Improving Access to Care & Training. https://www.ampathkenya.org/news-blog-feed/2018/4/20/telemedicine-center-improving-access-to-care-training
Cancer program (telemedicine as an oncology area of focus). https://www.ampathkenya.org/cancer
AMPATH Surgery Uses Teleconference to Improve Care. https://www.ampathkenya.org/news-blog-feed/2019/3/26/ampath-surgery-uses-teleconference-to-improve-care