Referrals in OpenMRS

Tags: #<Tag:0x00007f23d153df80>

I with a team are working on some reference application distribution ATM for a certain international NGO, we have requirements around managing patient referrals and transfers across facilities for certain services. From my search am thinking this is one area every implementation is handling on a basic level.

Most implementation have a concept(s) they call either referral* or transfer* which track down whether the patient was referred to another facility for any services and when transferring in or out. This means they handle patient transfers as observational information which is not appropriate, it makes sense for us to begin figuring out some generic solution to address referrals. Referrals can either be internal (same facility) or external(to another facility) and am thinking they are better managed as orders technically. Can we know if someone out there has addressed similar requirements or else get ideas on how best we can architecture out some generic solution to manage patient referrals!

1 Like

just came across

makes me think, what i called internal referral is manageable as a disposition whereas an external referral as an order.

others posts of this include:

@slubwama FYI

Referral order is when a provider is requesting that patient receive service or is asking a question from another department or service. Examples include Cardiology referral, Dietician referral, or Physical Therapy referral. These requests are orders because they follow the same workflow (e.g., can be part of a treatment plan, can be discontinued, etc.).

Disposition specifies where the patient should go following this encounter. It generally answers the question “where should the patient go next” and aids in clinical workflow. It’s not needed for many encounters (e.g., a lab visit or a specialist visit), but it is nearly always used for discharge orders from a hospital (e.g., is the patient being discharged home, to another facility, or died) and can be used during an outpatient encounter to indicate whether the patient should be sent home or admitted to the hospital.

So, the short answer is, if it’s a request for service or answer to a question, it’s clearly a referral; if it’s driving the clinical workflow – specifically answering the question of where should the patient go next following this encounter – then it’s a disposition.

If you have specific examples that are unclear, I’m happy to help think through them with you.


We are working on a similar problem as well in the outpatient setting.

@burke, do you recommend attaching such orders to an encounter (even if the encounter is solely to house the order)? To a visit? I can’t tell but I think that orders may be required to be attached to encounters, is that right? We had been planning to create a separate UI for managing referrals of patients into new clinical programs. We hadn’t planned use encounters + forms to do this but would you suggest that?

1 Like

Greetings, I think this indicates the difference between (Electronic Medical Record) & (Personal Health Record). The (Electronic health / medical record) is administered by healthcare professionals.

The (Personal Health Record) is administered by the patient and the family of the patient.

So, the personal health record PHR can include some details that cannot be in the disposition in the electronic health record EHR and/or EMR.



Orders require an encounter, but a visit is optional. The reasoning was to ensure that we could capture the transaction for every order (or orders) placed. We have discussed creating a (technical) transaction resource to track transactions that, in part, could remove the requirement for an encounter for every order. But, for now, encounter is serving to represent both the clinical transaction and the technical transaction.

1 Like


Referral order starts an encounter when the patient attends the referral. Future referrals have future encounters that will never start unless the patient goes to the referral. So, disposition of the patient cannot open an encounter of (waiting for the patient). However, scheduling of the referrals then having a (no-show patient) who had a scheduled physician visit, but the patient did not attend the referral, can help us have some pre-encounter session.



@burke, in our use case, we want to record that a patient was referred to a particular clinical program (say Diabetes Care) at a particular facility. For the order, we could use the concept-id for the program but how would we represent the location (it would be a different location_id than the facility where the orderer is located)? We do not want to change the location_id of the encounter (I don’t think this make sense).

@jdick we should probably be introducing a new database table and Java class to represent ReferralOrder (just like we have TestOrder and DrugOrder). It should also be possible to first introduce this in a module, and then merge it into core when ready.

So I’d imagine this new class would have an optional field for “where referring to” which maps to ReferralRequest.recipient in FHIR.

(I would add that FHIR’s ReferralRequest covers both referrals and transfers, and if you haven’t look at that resource yet, you should.)

1 Like

ReferralRequest.recipient is defined as provider(s) or organization, so it’s more of a who than a where.

ReferralRequest.recipient can also be a HealthcareService, which is “used to describe a single healthcare service or category of services that are provided by an organization at a location”. And they give an example of “Smallville Hospital Emergency Services”, and an example usage as

Health Network internal directory Used for tracking available services offered internally, and also those offered by business partners.

Anyway, let’s not get bogged down by the specifics of the FHIR mappings (yet).

In the big picture:

  1. We want to add ReferralOrder to the OpenMRS domain model. We have always wanted to do this, it just hasn’t had a project to drive it.
  2. The first project to take this up can be the primary drivers of the design, and what features get prioritized.
  3. And: it should be easy to build and iterate on this in a module first before merging it into openmrs-core.
  4. Therefore there is no need to do any quick hacks (e.g. to storing the location-referred-to), since it should be straightforward to build the right long-term thing quickly.
1 Like

It may be worth noting that ProcedureRequest (i.e., labs & test orders) and ReferralRequest (referral orders) are being merged into ServiceRequest in FHIR, which will include nursing orders & activity orders and, possibly, call orders.

@jdick just bringing this back up - were you ever able to go further with the referral to another facility?

@burke @k.joseph is there any documented reference on how to work with orders??

I think we may consider (primary care networks), where a community pharmacy is attached to a physician’s clinic, and the patients are referred from the clinic to the attached pharmacy. What do you think about this?

Are you looking for this?

@norman we are looking at two projects for CommCare integrated with Partners in Health OpenMRS, referrals are central to both. We don’t have a best practice for how we implement thse in OpenMRS yet (but we should). But it looks like from your Welcome section comment that the integration can share observations (and presumably encounters) but not orders or dispositions yet?
If that is the case we need to have our referrals be an observation in order to work with the integration, is that right?

Did this work ever happen to create Referral Orders? Or anything done towards doing this?

Yes, @dmunson the referral needs to be included in the encounters atom feed for CommCare to discover it. I know bed assignments appear in the encounters feed. Can it also include orders? … I’m not sure, but assuming it doesn’t, the referral would need to be an observation.