Marwan Alwali 23158e9fbf update
2025-09-08 03:00:23 +03:00

79 lines
4.0 KiB
Python

from django.urls import path
from . import views
app_name = 'blood_bank'
urlpatterns = [
# Dashboard
path('', views.dashboard, name='dashboard'),
# Donor Management
path('donors/', views.DonorListView.as_view(), name='donor_list'),
path('donors/<int:donor_id>/', views.DonorDetailView.as_view(), name='donor_detail'),
path('donors/create/', views.DonorCreateView.as_view(), name='donor_create'),
path('donors/<int:donor_id>/update/', views.DonorUpdateView.as_view(), name='donor_update'),
path('donors/<int:donor_id>/eligibility/', views.donor_eligibility_check, name='donor_eligibility'),
# Blood Unit Management
path('units/', views.BloodUnitListView.as_view(), name='blood_unit_list'),
path('units/<int:unit_id>/', views.BloodUnitDetailView.as_view(), name='blood_unit_detail'),
path('units/create/', views.BloodUnitCreateView.as_view(), name='blood_unit_create'),
path('units/create/<int:donor_id>/', views.BloodUnitCreateView.as_view(), name='blood_unit_create_for_donor'),
# Blood Testing
path('units/<int:unit_id>/test/', views.blood_test_create, name='blood_test_create'),
path('units/<int:unit_id>/crossmatch/<int:patient_id>/', views.crossmatch_create, name='crossmatch_create'),
# Blood Requests
path('requests/', views.BloodRequestListView.as_view(), name='blood_request_list'),
path('requests/<int:request_id>/', views.BloodRequestDetailView.as_view(), name='blood_request_detail'),
path('requests/create/', views.BloodRequestCreateView.as_view(), name='blood_request_create'),
# Blood Issue and Transfusion
path('requests/<int:request_id>/issue/', views.blood_issue_create, name='blood_issue_create'),
path('transfusions/', views.transfusion_list, name='transfusion_list'),
path('transfusions/<int:transfusion_id>/', views.transfusion_detail, name='transfusion_detail'),
path('issues/<int:issue_id>/transfusion/', views.transfusion_create, name='transfusion_create'),
# Inventory Management
path('inventory/', views.inventory_overview, name='inventory_overview'),
# Quality Control
path('quality-control/', views.quality_control_list, name='quality_control_list'),
path('quality-control/create/', views.quality_control_create, name='quality_control_create'),
# Reports
path('reports/', views.reports_dashboard, name='reports_dashboard'),
# API Endpoints
path('api/blood-availability/', views.api_blood_availability, name='api_blood_availability'),
path('api/donor-search/', views.api_donor_search, name='api_donor_search'),
# Blood Unit Management APIs
path('api/units/<int:unit_id>/move/', views.api_move_unit, name='api_move_unit'),
path('api/expiry-report/', views.api_expiry_report, name='api_expiry_report'),
# Blood Request Management APIs
path('api/requests/<int:request_id>/cancel/', views.api_cancel_request, name='api_cancel_request'),
path('api/check-availability/', views.api_check_availability, name='api_check_availability'),
path('api/urgency-report/', views.api_urgency_report, name='api_urgency_report'),
# Quality Control APIs
path('api/initiate-capa/', views.api_initiate_capa, name='api_initiate_capa'),
path('api/review-results/', views.api_review_results, name='api_review_results'),
# Transfusion Management APIs
path('api/record-vital-signs/', views.api_record_vital_signs, name='api_record_vital_signs'),
path('api/transfusions/<int:transfusion_id>/stop/', views.api_stop_transfusion, name='api_stop_transfusion'),
path('api/transfusions/<int:transfusion_id>/complete/', views.api_complete_transfusion,
name='api_complete_transfusion'),
# Inventory Management APIs
path('api/inventory-locations/', views.api_inventory_locations, name='api_inventory_locations'),
path('api/locations/<int:location_id>/update/', views.api_update_location, name='api_update_location'),
# Export and Utility APIs
path('api/export-csv/', views.api_export_csv, name='api_export_csv'),
]