HH/apps/physicians/urls.py
2026-02-22 08:35:53 +03:00

65 lines
2.9 KiB
Python

"""
Physicians URL Configuration
"""
from django.urls import path
from rest_framework.routers import DefaultRouter
from . import api_views, import_views, ui_views, views
app_name = 'physicians'
# API Router
router = DefaultRouter()
router.register(r'api/physicians', views.PhysicianViewSet, basename='physician')
router.register(r'api/physicians/ratings', views.PhysicianMonthlyRatingViewSet, basename='physician-rating')
# UI URL patterns
urlpatterns = [
# Overview pages
path('overview/specialization/', ui_views.specialization_overview, name='specialization_overview'),
path('overview/department/', ui_views.department_overview, name='department_overview'),
# Physician management
path('', ui_views.physician_list, name='physician_list'),
path('<uuid:pk>/', ui_views.physician_detail, name='physician_detail'),
# Leaderboard
path('leaderboard/', ui_views.leaderboard, name='leaderboard'),
# Dashboard
path('dashboard/', ui_views.physician_ratings_dashboard, name='physician_ratings_dashboard'),
path('api/dashboard/', ui_views.physician_ratings_dashboard_api, name='physician_ratings_dashboard_api'),
# Monthly Ratings
path('ratings/', ui_views.ratings_list, name='ratings_list'),
# Individual Ratings & Import
path('individual-ratings/', import_views.individual_ratings_list, name='individual_ratings_list'),
# Doctor Rating Import (CSV Upload)
path('import/', import_views.doctor_rating_import, name='doctor_rating_import'),
path('import/review/', import_views.doctor_rating_review, name='doctor_rating_review'),
path('import/jobs/', import_views.doctor_rating_job_list, name='doctor_rating_job_list'),
path('import/jobs/<uuid:job_id>/', import_views.doctor_rating_job_status, name='doctor_rating_job_status'),
# API Endpoints for Doctor Rating Import
# Single rating import (authenticated)
path('api/ratings/import/single/', api_views.import_single_rating, name='api_import_single_rating'),
# Bulk rating import (authenticated, background processing)
path('api/ratings/import/bulk/', api_views.import_bulk_ratings, name='api_import_bulk_ratings'),
# Import job status
path('api/ratings/import/jobs/', api_views.import_job_list, name='api_import_job_list'),
path('api/ratings/import/jobs/<uuid:job_id>/', api_views.import_job_status, name='api_import_job_status'),
# HIS-compatible endpoint (for direct HIS integration)
path('api/ratings/his/', api_views.his_doctor_rating_handler, name='api_his_doctor_rating'),
# Trigger monthly aggregation
path('api/ratings/aggregate/', api_views.trigger_monthly_aggregation, name='api_trigger_aggregation'),
# AJAX endpoints
path('api/jobs/<uuid:job_id>/progress/', import_views.api_job_progress, name='api_job_progress'),
path('api/match-doctor/', import_views.api_match_doctor, name='api_match_doctor'),
]
# Add API routes
urlpatterns += router.urls