xray/orthanc/views.py
The unwasted guests 8ec69c5d16 back-end 1.0
2025-01-28 21:43:26 +10:00

77 lines
3.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# from rest_framework.views import APIView
# from rest_framework.response import Response
# from rest_framework import status
# from .models import Patient
# from .serializers import PatientSerializer
# from .tasks import fetch_patients, fetch_patient_details, sync_patients
#
#
# class PatientListView(APIView):
# def get(self, request):
# patients = Patient.objects.all()
# serializer = PatientSerializer(patients, many=True)
# return Response(serializer.data)
#
# class SyncPatientsView(APIView):
# def post(self, request):
# try:
# patient_ids = fetch_patients()
# for orthanc_id in patient_ids:
# patient_data = fetch_patient_details(orthanc_id)
# patient, created = Patient.objects.update_or_create(
# orthanc_id=orthanc_id,
# defaults={
# "patient_id": patient_data["MainDicomTags"].get("PatientID"),
# "patient_name": patient_data["MainDicomTags"].get("PatientName"),
# "patient_sex": patient_data["MainDicomTags"].get("PatientSex"),
# "patient_birth_date": patient_data["MainDicomTags"].get("PatientBirthDate"),
# "studies": patient_data.get("Studies", []),
# "patient_metadata": patient_data,
# },
# )
# return Response({"message": "Synchronization completed successfully"})
# except Exception as e:
# return Response({"error": str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
#
# class SyncPatientsView(APIView):
# def post(self, request):
# try:
# sync_patients()
# return Response({"detail": "Synchronization completed successfully."}, status=status.HTTP_200_OK)
# except Exception as e:
# return Response({"detail": str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from .models import Patient
from .serializers import PatientSerializer
from .tasks import fetch_patients, fetch_patient_details, sync_patients
from rest_framework.permissions import IsAuthenticated
class ProtectedView(APIView):
permission_classes = [IsAuthenticated]
def get(self, request):
return Response({"message": f"Привет, {request.user.username}! Вы авторизованы."})
# Эндпоинт для получения списка пациентов
class PatientListView(APIView):
def get(self, request):
patients = Patient.objects.all()
serializer = PatientSerializer(patients, many=True)
return Response(serializer.data)
# Эндпоинт для синхронизации данных с Orthanc
class SyncPatientsView(APIView):
def post(self, request):
try:
sync_patients()
return Response({"detail": "Synchronization completed successfully."}, status=status.HTTP_200_OK)
except Exception as e:
return Response({"error": str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)