65 lines
2.9 KiB
Python
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
|