Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 22 additions & 34 deletions lambdas/services/upload_document_reference_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -164,38 +164,23 @@ def _process_preliminary_document_reference(
preliminary_document_reference.uploaded = True
preliminary_document_reference.uploading = False

if self.doc_type.code != SnomedCodes.PATIENT_DATA.value.code:
updated_doc_status = None
if virus_scan_result != VirusScanResult.CLEAN:
updated_doc_status = "cancelled"

preliminary_document_reference.doc_status = updated_doc_status
self._update_dynamo_table(preliminary_document_reference)
else:
updated_doc_status = "final"
preliminary_document_reference.doc_status = updated_doc_status

self._finalize_and_supersede_with_transaction(
preliminary_document_reference
)
preliminary_document_reference.doc_status = (
"cancelled" if virus_scan_result != VirusScanResult.CLEAN else "final"
)

# Update NRL Pointer
# TODO: PRMP-390
#
else:
try:
preliminary_document_reference.doc_status = (
"cancelled"
if virus_scan_result != VirusScanResult.CLEAN
else "final"
)
if (
preliminary_document_reference.doc_status == "final"
and self.doc_type.code != SnomedCodes.PATIENT_DATA.value.code
):
self._finalize_and_supersede_with_transaction(
preliminary_document_reference
)

self._update_dynamo_table(preliminary_document_reference)
except Exception as e:
logger.error(
f"Error processing document reference {preliminary_document_reference.id}: {str(e)}"
)
raise
# Update NRL Pointer
# TODO: PRMP-390
#
else:
self._update_dynamo_table(preliminary_document_reference)

except TransactionConflictException as e:
logger.error(
Expand Down Expand Up @@ -390,8 +375,13 @@ def copy_files_from_staging_bucket(
"""Copy files from staging bucket to destination bucket"""
try:
logger.info("Copying files from staging bucket")
dest_file_key = f"{document_reference.nhs_number}/{document_reference.id}"
if self.doc_type.code != SnomedCodes.PATIENT_DATA.value.code:

if self.doc_type.code == SnomedCodes.PATIENT_DATA.value.code:
dest_file_key = (
f"{document_reference.nhs_number}/{document_reference.id}"
)
document_reference.s3_file_key = dest_file_key
else:
dest_file_key = document_reference.s3_file_key

copy_result = self.s3_service.copy_across_bucket(
Expand All @@ -400,8 +390,6 @@ def copy_files_from_staging_bucket(
dest_bucket=self.destination_bucket_name,
dest_file_key=dest_file_key,
)
if self.doc_type.code == SnomedCodes.PATIENT_DATA.value.code:
document_reference.s3_file_key = dest_file_key
document_reference.s3_bucket_name = self.destination_bucket_name
document_reference.file_location = document_reference._build_s3_location(
self.destination_bucket_name, dest_file_key
Expand Down
Loading