Clarification on Resource Usage for Calendar Sched...
# support
b
Hey Medplum Team, I wanted to provide you with an overview of our project: Our project involves implementing patient and caregiver scheduling features within our EHR platform. Our primary goal is to enable our operations team to efficiently manage appointments for patients and caregivers using a weekly calendar view. Key aspects of our project include handling scheduling validation, error management, and strict regulatory requirements for time overlaps and appointment durations. Currently, we don't have a concept of requesting appointments; all appointments will be set manually. The flexibility of time slots is determined by the UI, which allows our operations team to select and create appointments seamlessly. Additionally, we have different user roles with varying permissions, including our Care Ops and Registered Nurses. Given this context, we'd greatly appreciate your insights on the following: Resource Choice: Should we primarily work with the "Appointment" resource for our scheduling features to help reduce complexity, or would it make sense to include the "Schedule" and/or "Slot" resources in our implementation? What are the benefits of using the 'Schedule' and 'Slot' resources in our scenario? Data Modeling: If we do include "Schedule" and/or "Slot," how should we model our data to best represent our scheduling needs? Are there any best practices or recommendations you can provide? Future-Proofing: We're also thinking about future features like requesting appointment time slots from patients or caregivers. How can we structure our data model to accommodate potential future requirements? We're eager to hear your thoughts and recommendations! Thank you very much for your assistance.
The more I think about it the more I'm leaning towards the need for us to use FHIR Slots since they may be the cleanest way for us to handle regulations. Still would love to hear thoughts from the medplum team.
r
Are these personal calendars? Like each practitioner has a single one? Or do they have facility requirements or geographic constraings?
b
There's one calendar that is the same view (accessing same data) for all of our Nurses. The calendar itself is a weekly view that can transition by week. This is a calendar that can show a display of all appointments for any patient and caregiver in our system (But will only display based on one caregiver or patient selected at a time). i.e. showing 6-7 appointments for the week for a single patient or a single caregiver but never multiple. Not sure if that's sufficient to answer your question, let me know if I can provide more information for you. I also setup a sync for tomorrow if that's easier.
r
Schedule, Slot and Appointment are the typical 3, but usually linked to person or facilities
b
In order to reduce complexity for this project and based on our current requirements it seems like we would be able to fully deliver our feature just using the “Appointment” resource. I was curious if that’s an unconventional approach or if there’s any pitfalls to use it without a “Schedule” and/or “Slot” resources
Appointments will be linked to a Patient and a Caregiver, so I’m not sure what we would use the “Schedule” resource for right now if the same schedule is shared across all nurses.
r
Hi @boogiecoco. - have you checked out the usage docs for both
Appointment
and
Schedule
? They give a pretty good overview of the full lifecycle of these resources, and related resources https://www.medplum.com/docs/api/fhir/resources/appointment?section=usage https://www.medplum.com/docs/api/fhir/resources/schedule?section=usage
Given the description of your use case as primarily being about validating shedules and calendar management, I'd defintitely recommend using
Schedule
and
Slot
resources.
You would model the availability of each role (e.g. nurse, MD) within a workgroup as a schedule, and then can use Bots to run your business logic to enforce that Slots have the correct durations, overlaps, etc.
b
Yes I've looked at the usage and that's made me feel more torn about whether we should implement the concept of 'Slots' and a 'Schedule' for our use case. After speaking with your team it sounds like it's not recommended to use Appointments without including the concept of slots, even if those slots are static and we were planning on handling overlaps/conflicts with UI validations. Do you have an example of how slots, appointment, and schedule work together. Also is the bot required or would it make things easier ?
r
This is all based on a limited understanding of the use case . The last thing I'd want to do is overcomplicate your build 😅 However, given your emphasis on availability management, Schedule and Slots seem prudent
b
Sent you a DM to see if we can iron out details a little more !
r
b
If we are to use 'Slots' would it be reasonable to treat each day as a single slot to start off in order to keep things simple? (8am to 8pm) for a single day is a slot. Just to reduce initial complexity when it comes to our feature.
r
We just add ed a bit more information on our docs: https://www.medplum.com/docs/scheduling
I would say it really depends on what you're solving for. Ultimately, this depends on your clinical operations *
Schedule/Slot
solve for the provider availability challenge - making sure there is a Dr. available to take the call *
Appointment
solves for the administration challenge - making sure that Dr.s actually meet with the patient at the right time. I suggested the
Slots
because it seemed like your operations involve a lot of constraints and business logic around availability (as is common in most virtual practices). Having a great, data driven way of keeping track of availability then becomes important. In our experience, we've seen digital health companies struggle with this as they scale, so building a good foundation is useful If, on the other hand, availabilty is not a concern right now (e.g. doctors are available all day / every weekday), then maybe this doesn't make sense right now
> If we are to use 'Slots' would it be reasonable to treat each day as a single slot to start off in order to keep things simple? (8am to 8pm) for a single day is a slot. Just to reduce initial complexity when it comes to our feature. A single slot would indicate that the provider / service is available for 1 or more 12-hour appointments. I worry that adding the
Slot
resource in this case isn't actually providing you any benefit
162 Views