Location - Concept and Behaviors Clarification

Hi everyone,

I’m new to OpenMRS and I’ve been studying the Information Model, especially the section about Locations. The documentation mentions that locations should not be used for logical concepts like “All District Hospitals”, and instead should represent actual physical places where patients can be seen. Ref OpenMRS Information Model

  1. Could someone help me understand the reasoning behind this? Why is it discouraged to use Locations for logical groupings, and what would be the recommended way to represent something like a group of facilities (e.g., all district hospitals)?
  2. Also, I’d like to ask: Are there other recommended ways to define or control location behavior besides using Location Tags? For example, if I want a location to behave in a specific way within workflows or modules, is tagging the only approach, or are there alternatives?
  3. Is there a way to assign specialties and services to the location except configuration which can be done on appointments ?
  4. Is there any feature or concept to relate providers with specialties and services which they should provide ?
  5. I’m little bit confused with service definitions on appointment and services which are defined on open lab which are used and related with billing features. Can any body clarify this

Thank you very much for your guidance. I really appreciate the help as I’m still learning how to model data properly in OpenMRS.

The recommendation is there because that’s what the model is intended to support. With “abstract” locations, you tend to run into the need to express multiple hierarchies between things (“All District Hospitals”, “Rukungiri County Hospitals”, “Referral Hospitals”) are all distinct logical groups that might apply to a single facility. Tying things to physical locations makes it easier to work with the single hierarchy of locations (e.g., “Consulting Room 1 is part of Amani Clinic”).

Locations are also attributable

There’s nothing in the default data model that supports that, but it’s all meant to be configurable precisely so you aren’t locked into the default assumptions.

Provider Role, which was added to Core in 2.8.0 and part of the providermanagement module before that.

I’m not sure I understand what you’re asking about here.

First of all, I want to thank you @ibacher for the quick responses. I really appreciate the guidance.

Related to the Q5 - I was trying to find a way to define specialties and services based on location I mean to connect them will locations. During exploring OpenMRS docs/talk I fond that specialties/services are configurable on appointments module/data structure.

Also I have seen service items on Concept Dictionary like records in screen below

Any way, my question is: are these records linked to each other in any way, or are they completely separate and used for different purposes? I’m trying to understand whether they share any relationship in the data model, or if they function independently within the system.

They’re completely independent unless some module is using them in a coordinated way. The appointments module kind of adds it’s own thing for services (hence “appointment_services”)

1 Like

I think the idea is that you can use concepts as attributes to do grouping and other analytics on locations. The reference maps to standard codes are also important if you want to be able to say that a particular location is OB/GYN, etc. and have the OB/GYN mapping move across different facilities. Ian, I haven’t configured this myself since probably version 1.6 or earlier… so perhaps a reference implementation might help folks understand what is possible?

1 Like