Recurrence : Schedule or Slot

Hi,
we are about to implement Appointment resource as well as Schedule and Slot resources.
Concerning the Schedule we need to define “dynamic” slots based on recurrence pattern like “from 10AM to 8PM every monday”.
Since FHIR is currently not handling this, we are planning on adding an extension.
Our first doubt is whether the recurrence pattern should be defined in the Schedule resource or the Slot resource.
Any advice?

This is an interesting question, before I give some more concrete answers, I’m interested if you’re referring to recurring appointments, or representing usual hours?
You might put an extension on the Schedule for yourself, but that shouldnt be expected that client’s need to understand that. Another alternative would be to use the healthcareservice resource that has this structure on it for describing the template available.
But you will still want to “expand” the slots into something real when searched, not expect clients to do this logic.
As I’m sure you’ll have exceptions that you also want to apply.
If/when you do apply the recurrence, please do consider how timezones, and daylight savings times will interact there.
(I wrote an article with similar issues as they apply to birth dates… https://brianpos.com/2016/10/19/patient-birth-date-no-time/)

Thanks for your reply,
first, you are right about warning us about time zone issues. We are very concern about this and we do notice that Appointment and Slot “start” and “end” use “instant” datatype. By the way I believe that there is sometimes a mix behind the meaning of time zone and time shift. 'instant" datatype does handle time shift which is enough but does not handle time zone. The difference is that time zone can have different time shift depending on season (daylight saving) or local political choices at key dates. More over multiple time zones have the same time shift, thus you cannot know in which time zone you are based on time shift.

About my question, we are currently working on recurring Slot, not Appointment. The goal is to exchange that information between two systems that will handle by their own the availability computation. Each system will “expand” the slots into something real. We do need this because we cannot afford having one system requesting the other to get Slots for performance reasons.
I hope this help