4949
5050
5151class BulkUploadService :
52- def __init__ (self , strict_mode ):
52+ def __init__ (self , strict_mode , pds_fhir_always_true = False ):
5353 self .dynamo_repository = BulkUploadDynamoRepository ()
5454 self .sqs_repository = BulkUploadSqsRepository ()
5555 self .s3_repository = BulkUploadS3Repository ()
@@ -58,6 +58,7 @@ def __init__(self, strict_mode):
5858 self .unhandled_messages = []
5959 self .file_path_cache = {}
6060 self .pdf_stitching_queue_url = os .environ ["PDF_STITCHING_SQS_URL" ]
61+ self .pds_fhir_always_true = pds_fhir_always_true
6162
6263 def process_message_queue (self , records : list ):
6364 for index , message in enumerate (records , start = 1 ):
@@ -120,6 +121,7 @@ def handle_sqs_message(self, message: dict):
120121 raise InvalidMessageException (str (e ))
121122
122123 logger .info ("SQS event is valid. Validating NHS number and file names" )
124+
123125 try :
124126 file_names = [
125127 os .path .basename (metadata .file_path )
@@ -134,43 +136,44 @@ def handle_sqs_message(self, message: dict):
134136 patient_ods_code = (
135137 pds_patient_details .get_ods_code_or_inactive_status_for_gp ()
136138 )
137- if not self .strict_mode :
138- (
139- name_validation_accepted_reason ,
140- is_name_validation_based_on_historic_name ,
141- ) = validate_filename_with_patient_details_lenient (
142- file_names , pds_patient_details
143- )
144- accepted_reason = self .concatenate_acceptance_reason (
145- accepted_reason , name_validation_accepted_reason
146- )
147- else :
148- is_name_validation_based_on_historic_name = (
149- validate_filename_with_patient_details_strict (
139+ if not self .pds_fhir_always_true :
140+ if not self .strict_mode :
141+ (
142+ name_validation_accepted_reason ,
143+ is_name_validation_based_on_historic_name ,
144+ ) = validate_filename_with_patient_details_lenient (
150145 file_names , pds_patient_details
151146 )
152- )
153- if is_name_validation_based_on_historic_name :
154- accepted_reason = self .concatenate_acceptance_reason (
155- accepted_reason , "Patient matched on historical name"
156- )
147+ accepted_reason = self .concatenate_acceptance_reason (
148+ accepted_reason , name_validation_accepted_reason
149+ )
150+ else :
151+ is_name_validation_based_on_historic_name = (
152+ validate_filename_with_patient_details_strict (
153+ file_names , pds_patient_details
154+ )
155+ )
156+ if is_name_validation_based_on_historic_name :
157+ accepted_reason = self .concatenate_acceptance_reason (
158+ accepted_reason , "Patient matched on historical name"
159+ )
157160
158- if not allowed_to_ingest_ods_code (patient_ods_code ):
159- raise LGInvalidFilesException ("Patient not registered at your practice" )
160- patient_death_notification_status = (
161- pds_patient_details .get_death_notification_status ()
162- )
163- if patient_death_notification_status :
164- deceased_accepted_reason = (
165- f"Patient is deceased - { patient_death_notification_status .name } "
166- )
167- accepted_reason = self .concatenate_acceptance_reason (
168- accepted_reason , deceased_accepted_reason
169- )
170- if patient_ods_code is PatientOdsInactiveStatus .RESTRICTED :
171- accepted_reason = self .concatenate_acceptance_reason (
172- accepted_reason , "PDS record is restricted"
161+ if not allowed_to_ingest_ods_code (patient_ods_code ):
162+ raise LGInvalidFilesException (
163+ "Patient not registered at your practice"
164+ )
165+ patient_death_notification_status = (
166+ pds_patient_details .get_death_notification_status ()
173167 )
168+ if patient_death_notification_status :
169+ deceased_accepted_reason = f"Patient is deceased - { patient_death_notification_status .name } "
170+ accepted_reason = self .concatenate_acceptance_reason (
171+ accepted_reason , deceased_accepted_reason
172+ )
173+ if patient_ods_code is PatientOdsInactiveStatus .RESTRICTED :
174+ accepted_reason = self .concatenate_acceptance_reason (
175+ accepted_reason , "PDS record is restricted"
176+ )
174177
175178 except (
176179 InvalidNhsNumberException ,
0 commit comments