diff --git a/api/producer/createDocumentReference/create_document_reference.py b/api/producer/createDocumentReference/create_document_reference.py index 0e0c70021..f69ac65e9 100644 --- a/api/producer/createDocumentReference/create_document_reference.py +++ b/api/producer/createDocumentReference/create_document_reference.py @@ -263,7 +263,7 @@ def handler( nhs_number, [pointer_type] ) - if existing_pointers_count > 0: + if existing_pointers_count > 0 and not nhs_number.startswith("9"): logger.log( LogReference.PROCREATE012, new_pointer_id=core_model.id, diff --git a/api/producer/createDocumentReference/tests/test_create_document_reference.py b/api/producer/createDocumentReference/tests/test_create_document_reference.py index a702d78c5..a737da62d 100644 --- a/api/producer/createDocumentReference/tests/test_create_document_reference.py +++ b/api/producer/createDocumentReference/tests/test_create_document_reference.py @@ -1875,3 +1875,60 @@ def test_create_logs_for_expected_multi_pointer( assert not any( call[0][0].name == "PROCREATE012" for call in mock_logger.log.call_args_list ) + + +@mock_aws +@mock_repository +@freeze_uuid("00000000-0000-0000-0000-000000000001") +@patch("api.producer.createDocumentReference.create_document_reference.logger") +def test_create_logs_for_test_patient_multi_pointer( + mock_logger: Mock, + repository: DocumentPointerRepository, +): + doc_ref = load_document_reference("Y05868-736253002-Valid-with-master-id") + doc_ref.subject.identifier.value = "9999999999" + doc_pointer = DocumentPointer.from_document_reference(doc_ref) + repository.create(doc_pointer) + + event = create_test_api_gateway_event( + headers=create_headers(), + body=doc_ref.model_dump_json(exclude_none=True), + ) + + result = handler(event, create_mock_context()) + body = result.pop("body") + + assert result == { + "statusCode": "201", + "headers": { + "Location": "/DocumentReference/Y05868-00000000-0000-0000-0000-000000000001", + **default_response_headers(), + }, + "isBase64Encoded": False, + } + + parsed_body = json.loads(body) + + assert parsed_body == { + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "information", + "code": "informational", + "details": { + "coding": [ + { + "code": "RESOURCE_CREATED", + "display": "Resource created", + "system": "https://fhir.nhs.uk/ValueSet/NRL-ResponseCode", + } + ] + }, + "diagnostics": "The document has been created", + } + ], + } + + assert not any( + call[0][0].name == "PROCREATE012" for call in mock_logger.log.call_args_list + ) diff --git a/api/producer/upsertDocumentReference/tests/test_upsert_document_reference.py b/api/producer/upsertDocumentReference/tests/test_upsert_document_reference.py index 26280ed6e..5b464c79a 100644 --- a/api/producer/upsertDocumentReference/tests/test_upsert_document_reference.py +++ b/api/producer/upsertDocumentReference/tests/test_upsert_document_reference.py @@ -1842,3 +1842,61 @@ def test_upsert_logs_for_expected_multi_pointer( assert not any( call[0][0].name == "PROUPSERT012" for call in mock_logger.log.call_args_list ) + + +@mock_aws +@mock_repository +@patch("api.producer.upsertDocumentReference.upsert_document_reference.logger") +def test_upsert_logs_for_test_patient_multi_pointer( + mock_logger: Mock, + repository: DocumentPointerRepository, +): + doc_ref = load_document_reference("Y05868-736253002-Valid-with-master-id") + doc_ref.subject.identifier.value = "9999999999" + doc_pointer = DocumentPointer.from_document_reference(doc_ref) + repository.create(doc_pointer) + + doc_ref.id = "Y05868-99999-99999-999999-02" + + event = create_test_api_gateway_event( + headers=create_headers(), + body=doc_ref.model_dump_json(exclude_none=True), + ) + + result = handler(event, create_mock_context()) + body = result.pop("body") + + assert result == { + "statusCode": "201", + "headers": { + "Location": "/DocumentReference/Y05868-99999-99999-999999-02", + **default_response_headers(), + }, + "isBase64Encoded": False, + } + + parsed_body = json.loads(body) + + assert parsed_body == { + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "information", + "code": "informational", + "details": { + "coding": [ + { + "code": "RESOURCE_CREATED", + "display": "Resource created", + "system": "https://fhir.nhs.uk/ValueSet/NRL-ResponseCode", + } + ] + }, + "diagnostics": "The document has been created", + } + ], + } + + assert not any( + call[0][0].name == "PROUPSERT012" for call in mock_logger.log.call_args_list + ) diff --git a/api/producer/upsertDocumentReference/upsert_document_reference.py b/api/producer/upsertDocumentReference/upsert_document_reference.py index b57a1bf2b..788f4854f 100644 --- a/api/producer/upsertDocumentReference/upsert_document_reference.py +++ b/api/producer/upsertDocumentReference/upsert_document_reference.py @@ -270,7 +270,7 @@ def handler( nhs_number, [pointer_type] ) - if existing_pointers_count > 0: + if existing_pointers_count > 0 and not nhs_number.startswith("9"): logger.log( LogReference.PROUPSERT012, new_pointer_id=core_model.id,