Skip to content

Commit 2e72153

Browse files
Merge pull request #1114 from NHSDigital/feature/kabo5-NRL-1811-ignore-duplicate-warnings-for-test-nhs-nos
NRL-1811 do not log multiple pointer warning if test patient
2 parents f3706f6 + fef2379 commit 2e72153

File tree

4 files changed

+117
-2
lines changed

4 files changed

+117
-2
lines changed

api/producer/createDocumentReference/create_document_reference.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ def handler(
263263
nhs_number, [pointer_type]
264264
)
265265

266-
if existing_pointers_count > 0:
266+
if existing_pointers_count > 0 and not nhs_number.startswith("9"):
267267
logger.log(
268268
LogReference.PROCREATE012,
269269
new_pointer_id=core_model.id,

api/producer/createDocumentReference/tests/test_create_document_reference.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1875,3 +1875,60 @@ def test_create_logs_for_expected_multi_pointer(
18751875
assert not any(
18761876
call[0][0].name == "PROCREATE012" for call in mock_logger.log.call_args_list
18771877
)
1878+
1879+
1880+
@mock_aws
1881+
@mock_repository
1882+
@freeze_uuid("00000000-0000-0000-0000-000000000001")
1883+
@patch("api.producer.createDocumentReference.create_document_reference.logger")
1884+
def test_create_logs_for_test_patient_multi_pointer(
1885+
mock_logger: Mock,
1886+
repository: DocumentPointerRepository,
1887+
):
1888+
doc_ref = load_document_reference("Y05868-736253002-Valid-with-master-id")
1889+
doc_ref.subject.identifier.value = "9999999999"
1890+
doc_pointer = DocumentPointer.from_document_reference(doc_ref)
1891+
repository.create(doc_pointer)
1892+
1893+
event = create_test_api_gateway_event(
1894+
headers=create_headers(),
1895+
body=doc_ref.model_dump_json(exclude_none=True),
1896+
)
1897+
1898+
result = handler(event, create_mock_context())
1899+
body = result.pop("body")
1900+
1901+
assert result == {
1902+
"statusCode": "201",
1903+
"headers": {
1904+
"Location": "/DocumentReference/Y05868-00000000-0000-0000-0000-000000000001",
1905+
**default_response_headers(),
1906+
},
1907+
"isBase64Encoded": False,
1908+
}
1909+
1910+
parsed_body = json.loads(body)
1911+
1912+
assert parsed_body == {
1913+
"resourceType": "OperationOutcome",
1914+
"issue": [
1915+
{
1916+
"severity": "information",
1917+
"code": "informational",
1918+
"details": {
1919+
"coding": [
1920+
{
1921+
"code": "RESOURCE_CREATED",
1922+
"display": "Resource created",
1923+
"system": "https://fhir.nhs.uk/ValueSet/NRL-ResponseCode",
1924+
}
1925+
]
1926+
},
1927+
"diagnostics": "The document has been created",
1928+
}
1929+
],
1930+
}
1931+
1932+
assert not any(
1933+
call[0][0].name == "PROCREATE012" for call in mock_logger.log.call_args_list
1934+
)

api/producer/upsertDocumentReference/tests/test_upsert_document_reference.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1842,3 +1842,61 @@ def test_upsert_logs_for_expected_multi_pointer(
18421842
assert not any(
18431843
call[0][0].name == "PROUPSERT012" for call in mock_logger.log.call_args_list
18441844
)
1845+
1846+
1847+
@mock_aws
1848+
@mock_repository
1849+
@patch("api.producer.upsertDocumentReference.upsert_document_reference.logger")
1850+
def test_upsert_logs_for_test_patient_multi_pointer(
1851+
mock_logger: Mock,
1852+
repository: DocumentPointerRepository,
1853+
):
1854+
doc_ref = load_document_reference("Y05868-736253002-Valid-with-master-id")
1855+
doc_ref.subject.identifier.value = "9999999999"
1856+
doc_pointer = DocumentPointer.from_document_reference(doc_ref)
1857+
repository.create(doc_pointer)
1858+
1859+
doc_ref.id = "Y05868-99999-99999-999999-02"
1860+
1861+
event = create_test_api_gateway_event(
1862+
headers=create_headers(),
1863+
body=doc_ref.model_dump_json(exclude_none=True),
1864+
)
1865+
1866+
result = handler(event, create_mock_context())
1867+
body = result.pop("body")
1868+
1869+
assert result == {
1870+
"statusCode": "201",
1871+
"headers": {
1872+
"Location": "/DocumentReference/Y05868-99999-99999-999999-02",
1873+
**default_response_headers(),
1874+
},
1875+
"isBase64Encoded": False,
1876+
}
1877+
1878+
parsed_body = json.loads(body)
1879+
1880+
assert parsed_body == {
1881+
"resourceType": "OperationOutcome",
1882+
"issue": [
1883+
{
1884+
"severity": "information",
1885+
"code": "informational",
1886+
"details": {
1887+
"coding": [
1888+
{
1889+
"code": "RESOURCE_CREATED",
1890+
"display": "Resource created",
1891+
"system": "https://fhir.nhs.uk/ValueSet/NRL-ResponseCode",
1892+
}
1893+
]
1894+
},
1895+
"diagnostics": "The document has been created",
1896+
}
1897+
],
1898+
}
1899+
1900+
assert not any(
1901+
call[0][0].name == "PROUPSERT012" for call in mock_logger.log.call_args_list
1902+
)

api/producer/upsertDocumentReference/upsert_document_reference.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ def handler(
270270
nhs_number, [pointer_type]
271271
)
272272

273-
if existing_pointers_count > 0:
273+
if existing_pointers_count > 0 and not nhs_number.startswith("9"):
274274
logger.log(
275275
LogReference.PROUPSERT012,
276276
new_pointer_id=core_model.id,

0 commit comments

Comments
 (0)