Untitled
user_7854577
plain_text
a year ago
4.3 kB
4
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