|
6 | 6 | from care.facility.api.serializers.shifting import has_facility_permission
|
7 | 7 | from care.facility.models.facility import Facility
|
8 | 8 | from care.facility.models.file_upload import FileUpload
|
| 9 | +from care.facility.models.notification import Notification |
9 | 10 | from care.facility.models.patient import PatientRegistration
|
10 | 11 | from care.facility.models.patient_consultation import (
|
11 | 12 | PatientConsent,
|
|
14 | 15 | from care.facility.models.patient_sample import PatientSample
|
15 | 16 | from care.users.api.serializers.user import UserBaseMinimumSerializer
|
16 | 17 | from care.users.models import User
|
| 18 | +from care.utils.notification_handler import NotificationGenerator |
17 | 19 | from config.serializers import ChoiceField
|
18 | 20 |
|
19 | 21 |
|
@@ -156,12 +158,31 @@ def create(self, validated_data):
|
156 | 158 | internal_id = check_permissions(
|
157 | 159 | validated_data["file_type"], validated_data["associating_id"], user
|
158 | 160 | )
|
| 161 | + associating_id = validated_data["associating_id"] |
159 | 162 | validated_data["associating_id"] = internal_id
|
160 | 163 | validated_data["uploaded_by"] = user
|
161 | 164 | validated_data["internal_name"] = validated_data["original_name"]
|
162 | 165 | del validated_data["original_name"]
|
163 | 166 | file_upload: FileUpload = super().create(validated_data)
|
164 | 167 | file_upload.signed_url = file_upload.signed_url(mime_type=mime_type)
|
| 168 | + if validated_data["file_type"] == FileUpload.FileType.CONSULTATION.value: |
| 169 | + consultation = PatientConsultation.objects.get(external_id=associating_id) |
| 170 | + NotificationGenerator( |
| 171 | + event=Notification.Event.CONSULTATION_FILE_UPLOAD_CREATED, |
| 172 | + caused_by=user, |
| 173 | + caused_object=consultation, |
| 174 | + facility=consultation.facility, |
| 175 | + generate_for_facility=True, |
| 176 | + ).generate() |
| 177 | + if validated_data["file_type"] == FileUpload.FileType.PATIENT.value: |
| 178 | + patient = PatientRegistration.objects.get(external_id=associating_id) |
| 179 | + NotificationGenerator( |
| 180 | + event=Notification.Event.PATIENT_FILE_UPLOAD_CREATED, |
| 181 | + caused_by=user, |
| 182 | + caused_object=patient, |
| 183 | + facility=patient.facility, |
| 184 | + generate_for_facility=True, |
| 185 | + ).generate() |
165 | 186 | return file_upload
|
166 | 187 |
|
167 | 188 |
|
|
0 commit comments