Appointment Lifecycle¶
Overview¶
Appointments progress through a well-defined lifecycle.
Each state represents a specific stage in the consultation journey.
Lifecycle Diagram¶
stateDiagram-v2
[*] --> Pending
Pending --> Confirmed
Pending --> Cancelled
Confirmed --> Rescheduled
Rescheduled --> Confirmed
Confirmed --> Completed
Confirmed --> Cancelled
Completed --> [*]
Cancelled --> [*]
Hold "Alt" / "Option" to enable pan & zoom
Pending¶
Appointment request has been created but not finalized.
Confirmed¶
The appointment slot has been reserved.
Patients and providers may prepare for consultation.
Rescheduled¶
The appointment has been moved to another slot.
Completed¶
The consultation has concluded successfully.
Cancelled¶
The appointment is no longer active.
Availability is returned to the scheduling system.
Lifecycle Events¶
flowchart LR
CREATED["appointment.created"]
CONFIRMED["appointment.confirmed"]
RESCHEDULED["appointment.rescheduled"]
CANCELLED["appointment.cancelled"]
COMPLETED["appointment.completed"]
Hold "Alt" / "Option" to enable pan & zoom
These events are published through Kafka using the Transactional Outbox pattern.