Untitled
user_7854577
plain_text
4 months ago
4.3 kB
2
Indexable
# nurse_management/models.py from django.db import models from user_management.models import User from patient_management.models import PatientProfile from room_management.models import Room from doctor_management.models import DoctorProfile class PatientUpdate(models.Model): nurse = models.ForeignKey(User, on_delete=models.CASCADE, related_name='updates') patient = models.ForeignKey(PatientProfile, on_delete=models.CASCADE, related_name='updates') doctor = models.ForeignKey(DoctorProfile, on_delete=models.CASCADE, related_name='patient_updates') update_text = models.TextField() timestamp = models.DateTimeField(auto_now_add=True) class RoomAssignment(models.Model): nurse = models.ForeignKey(User, on_delete=models.CASCADE, related_name='room_assignments') room = models.ForeignKey(Room, on_delete=models.CASCADE, related_name='assignments') patient = models.ForeignKey(PatientProfile, on_delete=models.CASCADE, related_name='room_assignments') assigned_date = models.DateTimeField(auto_now_add=True) is_active = models.BooleanField(default=True) # nurse_management/serializers.py from rest_framework import serializers from .models import PatientUpdate, RoomAssignment class PatientUpdateSerializer(serializers.ModelSerializer): class Meta: model = PatientUpdate fields = ['id', 'nurse', 'patient', 'doctor', 'update_text', 'timestamp'] class RoomAssignmentSerializer(serializers.ModelSerializer): class Meta: model = RoomAssignment fields = ['id', 'nurse', 'room', 'patient', 'assigned_date', 'is_active'] # nurse_management/views.py from rest_framework.views import APIView from rest_framework.response import Response from rest_framework.permissions import IsAuthenticated from rest_framework import status from .models import PatientUpdate, RoomAssignment from .serializers import PatientUpdateSerializer, RoomAssignmentSerializer class PatientUpdateView(APIView): permission_classes = [IsAuthenticated] def get(self, request): if request.user.role != 'Nurse': return Response({'error': 'Only nurses can access this resource.'}, status=status.HTTP_403_FORBIDDEN) updates = PatientUpdate.objects.filter(nurse=request.user) serializer = PatientUpdateSerializer(updates, many=True) return Response(serializer.data) def post(self, request): if request.user.role != 'Nurse': return Response({'error': 'Only nurses can send updates.'}, status=status.HTTP_403_FORBIDDEN) serializer = PatientUpdateSerializer(data=request.data) if serializer.is_valid(): serializer.save(nurse=request.user) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) class RoomAssignmentView(APIView): permission_classes = [IsAuthenticated] def get(self, request): if request.user.role != 'Nurse': return Response({'error': 'Only nurses can view room assignments.'}, status=status.HTTP_403_FORBIDDEN) assignments = RoomAssignment.objects.filter(nurse=request.user, is_active=True) serializer = RoomAssignmentSerializer(assignments, many=True) return Response(serializer.data) def post(self, request): if request.user.role != 'Nurse': return Response({'error': 'Only nurses can manage room assignments.'}, status=status.HTTP_403_FORBIDDEN) serializer = RoomAssignmentSerializer(data=request.data) if serializer.is_valid(): serializer.save(nurse=request.user) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) # nurse_management/urls.py from django.urls import path from .views import PatientUpdateView, RoomAssignmentView urlpatterns = [ path('updates/', PatientUpdateView.as_view(), name='patient_update'), path('room-assignments/', RoomAssignmentView.as_view(), name='room_assignment'), ] # settings.py (additional INSTALLED_APPS configuration) INSTALLED_APPS += [ 'nurse_management', ]
Editor is loading...
Leave a Comment