""" Quality app URLs with comprehensive CRUD operations. """ from django.urls import path, include from . import views app_name = 'quality' urlpatterns = [ # ============================================================================ # DASHBOARD AND OVERVIEW # ============================================================================ path('', views.QualityDashboardView.as_view(), name='dashboard'), # ============================================================================ # QUALITY INDICATOR URLS (FULL CRUD - Master Data) # ============================================================================ path('indicators/', views.QualityIndicatorListView.as_view(), name='quality_indicator_list'), path('indicators/create/', views.QualityIndicatorCreateView.as_view(), name='quality_indicator_create'), path('indicators//', views.QualityIndicatorDetailView.as_view(), name='quality_indicator_detail'), path('indicators//update/', views.QualityIndicatorUpdateView.as_view(), name='quality_indicator_update'), path('indicators//delete/', views.QualityIndicatorDeleteView.as_view(), name='quality_indicator_delete'), # ============================================================================ # IMPROVEMENT PROJECT URLS (FULL CRUD - Operational Data) # ============================================================================ path('projects/', views.ImprovementProjectListView.as_view(), name='improvement_project_list'), path('projects/create/', views.ImprovementProjectCreateView.as_view(), name='improvement_project_create'), path('projects//', views.ImprovementProjectDetailView.as_view(), name='improvement_project_detail'), path('projects//update/', views.ImprovementProjectUpdateView.as_view(), name='improvement_project_update'), path('projects//delete/', views.ImprovementProjectDeleteView.as_view(), name='improvement_project_delete'), # ============================================================================ # AUDIT PLAN URLS (LIMITED CRUD - Operational Data) # ============================================================================ path('audits/', views.AuditPlanListView.as_view(), name='audit_plan_list'), path('audits/create/', views.AuditPlanCreateView.as_view(), name='audit_plan_create'), path('audits//', views.AuditPlanDetailView.as_view(), name='audit_plan_detail'), path('audits//update/', views.AuditPlanUpdateView.as_view(), name='audit_plan_update'), # Note: No delete view for audit plans - use status updates instead # ============================================================================ # QUALITY MEASUREMENT URLS (LIMITED CRUD - Operational Data) # ============================================================================ path('measurements/', views.QualityMeasurementListView.as_view(), name='measurement_list'), path('measurements/create/', views.QualityMeasurementCreateView.as_view(), name='measurement_create'), path('measurements//', views.QualityMeasurementDetailView.as_view(), name='measurement_detail'), path('measurements//update/', views.QualityMeasurementUpdateView.as_view(), name='measurement_update'), # Note: No delete view for measurements - operational tracking data # ============================================================================ # RISK ASSESSMENT URLS (RESTRICTED CRUD - Clinical/Operational Data) # ============================================================================ path('risks/', views.RiskAssessmentListView.as_view(), name='risk_assessment_list'), path('risks/create/', views.RiskAssessmentCreateView.as_view(), name='risk_assessment_create'), path('risks//', views.RiskAssessmentDetailView.as_view(), name='risk_assessment_detail'), path('risks//update/', views.RiskAssessmentUpdateView.as_view(), name='risk_assessment_update'), # Note: No delete view for risk assessments - limited updates after approval # ============================================================================ # INCIDENT REPORT URLS (APPEND-ONLY - Clinical Records) # ============================================================================ path('incidents/', views.IncidentReportListView.as_view(), name='incident_report_list'), path('incidents/create/', views.IncidentReportCreateView.as_view(), name='incident_report_create'), path('incidents//', views.IncidentReportDetailView.as_view(), name='incident_report_detail'), # Note: No update/delete views for incident reports - append-only for patient safety # ============================================================================ # AUDIT FINDING URLS (APPEND-ONLY - Audit Records) # ============================================================================ path('findings/', views.AuditFindingListView.as_view(), name='audit_finding_list'), path('findings/create/', views.AuditFindingCreateView.as_view(), name='audit_finding_create'), path('findings//', views.AuditFindingDetailView.as_view(), name='audit_finding_detail'), # Note: No update/delete views for audit findings - append-only for compliance # ============================================================================ # HTMX ENDPOINTS FOR REAL-TIME UPDATES # ============================================================================ path('htmx/stats/', views.quality_stats, name='quality_stats'), path('htmx/incident-search/', views.incident_search, name='incident_search'), # ============================================================================ # ACTION URLS FOR WORKFLOW OPERATIONS # ============================================================================ path('risks//approve/', views.approve_risk_assessment, name='approve_risk_assessment'), path('measurements//verify/', views.verify_measurement, name='verify_measurement'), path('incidents//close/', views.close_incident, name='close_incident'), # ============================================================================ # API ENDPOINTS # ============================================================================ path('api/', include('quality.api.urls')), ]