Feat/adding statuses for queues upgradation
MR Title Queue workflow updates: add know_your_patient and post-consultation stages
MR Description
Summary
This MR updates the clinical queue flow to prevent direct movement from vitals to waiting, and extends queue tracking after consultation.
New flow: vitals -> know_your_patient -> waiting -> in_consultation -> consultation_completed -> medicine_prescribed -> medicine_verified -> counselling_done
What changed
- Added new queue statuses in
QueueStatusEnum:
know_your_patientmedicine_prescribedmedicine_verifiedcounselling_done
- Updated queue transition rules in
consultation_queue_service:
- Enforced
vitals -> know_your_patient -> waiting - Added post-consultation transitions:
consultation_completed -> medicine_prescribedmedicine_prescribed -> medicine_verifiedmedicine_verified -> counselling_done
- Fixed auto-transition behavior:
- Removed legacy route-level forced transition
vitals -> waiting - Added compatibility guard in
/queue/status-update:- If client sends
vitals -> waiting, backend normalizes tovitals -> know_your_patient
- If client sends
- Synced queue progression with
patient_visit_details.statusfor:
consultation_completedmedicine_prescribedmedicine_verifiedcounselling_done
- Updated queue visibility/counts:
- Included new statuses in Socket.IO queue data (doctor/coordinator + websocket manager)
- Updated doctor pending queue counts to include new active stages
Database migrations
Run:
d3e4f5a6b7c8_add_know_your_patient_to_queuestatus.pye4f5a6b7c8d9_add_post_consultation_statuses_to_queuestatus.py
Command:
alembic upgrade head
API/Frontend impact
- Frontend can now use
PUT /queue/status-updatewith:know_your_patientmedicine_prescribedmedicine_verifiedcounselling_done
- Frontend should follow the new strict sequence and not skip stages.
Notes
- Existing records already in
waitingfrom older behavior are not auto-corrected by this MR.