Marwan Alwali a710d1c4d8 update
2025-09-11 19:01:55 +03:00

73 lines
4.5 KiB
Python

"""
URL configuration for appointments app.
"""
from django.urls import path, include
from . import views
app_name = 'appointments'
urlpatterns = [
# Main views
path('', views.AppointmentDashboardView.as_view(), name='dashboard'),
path('requests/', views.AppointmentRequestListView.as_view(), name='appointment_list'),
path('<int:pk>/requests/create/', views.AppointmentRequestCreateView.as_view(), name='appointment_create'),
path('requests/<int:pk>/detail/', views.AppointmentRequestDetailView.as_view(), name='appointment_detail'),
path('calendar/', views.SchedulingCalendarView.as_view(), name='scheduling_calendar'),
path('queue/', views.QueueManagementView.as_view(), name='queue_management'),
# Telemedicine
path('telemedicine/', views.TelemedicineView.as_view(), name='telemedicine'),
path('telemedicine/create/', views.TelemedicineSessionCreateView.as_view(), name='telemedicine_session_create'),
path('telemedicine/<int:pk>/', views.TelemedicineSessionDetailView.as_view(), name='telemedicine_session_detail'),
path('telemedicine/<int:pk>/update/', views.TelemedicineSessionUpdateView.as_view(), name='telemedicine_session_update'),
path('telemedicine/<int:pk>/start/', views.start_telemedicine_session, name='start_telemedicine_session'),
path('telemedicine/<int:pk>/end/', views.end_telemedicine_session, name='stop_telemedicine_session'),
path('telemedicine/<int:pk>/cancel/', views.cancel_telemedicine_session, name='cancel_telemedicine_session'),
# HTMX endpoints
path('search/', views.appointment_search, name='appointment_search'),
path('stats/', views.appointment_stats, name='appointment_stats'),
path('calendar/appointments/', views.calendar_appointments, name='calendar_appointments'),
path('slots/available/', views.available_slots, name='available_slots'),
path('queue/<int:queue_id>/status/', views.queue_status, name='queue_status'),
# Actions
path('check-in/<int:appointment_id>/', views.check_in_patient, name='check_in_patient'),
path('queue/<int:queue_id>/call-next/', views.call_next_patient, name='call_next_patient'),
path('queue/list/', views.WaitingQueueListView.as_view(), name='waiting_queue_list'),
path('queue/create/', views.WaitingQueueCreateView.as_view(), name='waiting_queue_create'),
path('queue/<int:pk>/', views.WaitingQueueDetailView.as_view(), name='waiting_queue_detail'),
path('queue/<int:pk>/update/', views.WaitingQueueUpdateView.as_view(), name='waiting_queue_update'),
path('queue/<int:pk>/delete/', views.WaitingQueueDeleteView.as_view(), name='waiting_queue_delete'),
path('queue/entry/create/', views.QueueEntryCreateView.as_view(), name='queue_entry_create'),
path('queue/entry/list/', views.QueueEntryListView.as_view(), name='queue_entry_list'),
path('queue/entry/<int:pk>/', views.QueueEntryDetailView.as_view(), name='queue_entry_detail'),
path('queue/entry/<int:pk>/update/', views.QueueEntryUpdateView.as_view(), name='queue_entry_update'),
path('complete/<int:appointment_id>/', views.complete_appointment, name='complete_appointment'),
path('reschedule/<int:pk>/', views.reschedule_appointment, name='reschedule_appointment'),
path('cancel/<int:appointment_id>/', views.cancel_appointment, name='cancel_appointment'),
path('slots/',views.SlotAvailabilityListView.as_view(), name='slot_list'),
path('slots/<int:pk>/',views.SlotAvailabilityDetailView.as_view(), name='slot_detail'),
path('slots/create/',views.SlotAvailabilityCreateView.as_view(), name='slot_create'),
path('slots/<int:pk>/update/',views.SlotAvailabilityUpdateView.as_view(), name='slot_update'),
path('slots/<int:pk>/delete/',views.SlotAvailabilityDeleteView.as_view(), name='slot_delete'),
path('templates/', views.AppointmentTemplateListView.as_view(), name='appointment_template_list'),
path('templates/<int:pk>/', views.AppointmentTemplateDetailView.as_view(), name='appointment_template_detail'),
path('templates/create/', views.AppointmentTemplateCreateView.as_view(), name='appointment_template_create'),
path('templates/<int:pk>/update/', views.AppointmentTemplateUpdateView.as_view(), name='appointment_template_update'),
path('templates/<int:pk>/delete/', views.AppointmentTemplateDeleteView.as_view(), name='appointment_template_delete'),
# path('get_doctor_schedule/', views.get_provider_schedule, name='get_doctor_schedule')
# API endpoints
# path('api/', include('appointments.api.urls')),
]