Skip to content

Commit f43fc5f

Browse files
committed
Fail for no accession number when creating items
1 parent 5b748f8 commit f43fc5f

2 files changed

Lines changed: 18 additions & 10 deletions

File tree

src/services/mwl/create_worklist_item.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,10 @@ def __init__(self, storage: MWLStorage):
1212

1313
def call(self, payload: dict):
1414
try:
15-
action_id = payload.get("action_id")
16-
if not action_id:
17-
raise ValueError("Missing action_id in payload")
18-
15+
action_id = payload["action_id"]
1916
params = payload.get("parameters", {})
20-
2117
item = params.get("worklist_item", {})
22-
accession_number = item.get("accession_number")
18+
accession_number = item["accession_number"]
2319
participant = item.get("participant", {})
2420
scheduled = item.get("scheduled", {})
2521
procedure = item.get("procedure", {})
@@ -43,6 +39,9 @@ def call(self, payload: dict):
4339
except WorklistItemExistsError:
4440
logger.info(f"Worklist item exists: accession_number={accession_number}, action_id={action_id!r}")
4541
return {"status": "exists", "action_id": action_id}
42+
except KeyError as e:
43+
logger.error(f"Missing key in payload: {e}")
44+
return {"status": "error", "message": f"Missing key: {e}"}
4645
except Exception as e:
4746
logger.error(f"Failed to create worklist item: {e}")
48-
return {"status": "error", "action_id": action_id, "error": str(e)}
47+
return {"status": "error", "message": str(e)}

tests/services/mwl/test_create_worklist_item.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def db_file(tmp_path):
1212
return f"{tmp_path}/test.db"
1313

1414
@pytest.fixture
15-
def mwl_storage(db_file):
15+
def mwl_storage(self, db_file):
1616
return MWLStorage(str(db_file))
1717

1818
def test_call_success(self, mwl_storage, listener_payload):
@@ -28,7 +28,16 @@ def test_call_missing_action_id(self, mwl_storage, listener_payload):
2828

2929
response = subject.call(listener_payload)
3030
assert response["status"] == "error"
31-
assert "Missing action_id" in response["error"]
31+
assert response["message"] == "Missing key: 'action_id'"
32+
33+
def test_call_missing_accession_number(self, mwl_storage, listener_payload):
34+
subject = CreateWorklistItem(mwl_storage)
35+
36+
del listener_payload["parameters"]["worklist_item"]["accession_number"]
37+
38+
response = subject.call(listener_payload)
39+
assert response["status"] == "error"
40+
assert response["message"] == "Missing key: 'accession_number'"
3241

3342
def test_call_existing_worklist_item(self, mwl_storage, listener_payload):
3443
CreateWorklistItem(mwl_storage).call(listener_payload)
@@ -44,4 +53,4 @@ def test_call_storage_exception(self, _, mwl_storage, listener_payload):
4453

4554
response = subject.call(listener_payload)
4655
assert response["status"] == "error"
47-
assert "DB error" in response["error"]
56+
assert "DB error" in response["message"]

0 commit comments

Comments
 (0)