Hi there,
We do not include any history for appointments, so the easiest way for you to differentiate between an appointment that is new vs. one that is rescheduled would be to compare between your background calls. When an appointment in Millennium is rescheduled it retains the Appointment identifier you are already familiar with.
If the versionId has changed, then you know something has been modified - but many actions inside Millennium can increment the version so that must be used in association with some additional logic on your side.
Since the Appointment ID remains the same, you could tell if a particular Appointment is rescheduled based on if the version is different AND the status is booked AND one ore more of the following are true
- Appointment Start has changed
- Appointment End has changed
- Appointment Duration has changed
- Appointment Service Type
- A non-patient actor has changed (Location, Practitioner)
Note: The Slot resource tied to an appointment may change between the time that an appointment is booked, and when it is subsequently retrieved, so you should not use that element in any diff operations.
Hope this is helpful!
Richard