@@ -219,7 +219,16 @@ def test_find_worklist_items(self, mock_db, tmp_dir, result):
219219 assert len (results ) == 1
220220 assert results [0 ] == WorklistItem (** result )
221221
222- def test_find_worklist_items_with_filters (self , mock_db , tmp_dir ):
222+ @pytest .mark .parametrize (
223+ "query_param_name, query_param_value" ,
224+ [
225+ ("accession_number" , "ACC123456" ),
226+ ("patient_id" , "999123456" ),
227+ ("modality" , "CT" ),
228+ ("scheduled_date" , "20240101" ),
229+ ],
230+ )
231+ def test_find_worklist_items_with_filters (self , mock_db , tmp_dir , query_param_name , query_param_value ):
223232 mock_cursor = MagicMock ()
224233 mock_cursor .fetchall .return_value = []
225234 mock_connection = MagicMock ()
@@ -229,58 +238,42 @@ def test_find_worklist_items_with_filters(self, mock_db, tmp_dir):
229238 subject = MWLStorage (tmp_dir )
230239 mock_connection .reset_mock ()
231240
232- subject .find_worklist_items (patient_id = "999123456" )
241+ find_args = {query_param_name : query_param_value }
242+ subject .find_worklist_items (** find_args )
233243
234244 mock_connection .execute .assert_called_once_with (
235245 (
236246 "SELECT accession_number, modality, patient_birth_date, patient_id, "
237247 "patient_name, patient_sex, procedure_code, scheduled_date, scheduled_time, "
238248 "source_message_id, study_description, study_instance_uid, status, mpps_instance_uid "
239- "FROM worklist_items WHERE patient_id = ? ORDER BY scheduled_date, scheduled_time"
249+ f "FROM worklist_items WHERE { query_param_name } = ? ORDER BY scheduled_date, scheduled_time"
240250 ),
241- ["999123456" ],
251+ [query_param_value ],
242252 )
243253
244- mock_connection .reset_mock ()
245- subject .find_worklist_items (modality = "CT" )
246-
247- mock_connection .execute .assert_called_once_with (
248- (
249- "SELECT accession_number, modality, patient_birth_date, patient_id, "
250- "patient_name, patient_sex, procedure_code, scheduled_date, scheduled_time, "
251- "source_message_id, study_description, study_instance_uid, status, mpps_instance_uid "
252- "FROM worklist_items WHERE modality = ? ORDER BY scheduled_date, scheduled_time"
253- ),
254- ["CT" ],
255- )
254+ def test_find_worklist_items_with_multiple_filters (self , mock_db , tmp_dir ):
255+ mock_cursor = MagicMock ()
256+ mock_cursor .fetchall .return_value = []
257+ mock_connection = MagicMock ()
258+ mock_connection .execute .return_value = mock_cursor
259+ mock_db .connect .return_value = mock_connection
256260
261+ subject = MWLStorage (tmp_dir )
257262 mock_connection .reset_mock ()
258- subject .find_worklist_items (scheduled_date = "20240101" )
259-
260- mock_connection .execute .assert_called_once_with (
261- (
262- "SELECT accession_number, modality, patient_birth_date, patient_id, "
263- "patient_name, patient_sex, procedure_code, scheduled_date, scheduled_time, "
264- "source_message_id, study_description, study_instance_uid, status, mpps_instance_uid "
265- "FROM worklist_items WHERE scheduled_date = ? "
266- "ORDER BY scheduled_date, scheduled_time"
267- ),
268- ["20240101" ],
263+ subject .find_worklist_items (
264+ accession_number = "ACC123456" , modality = "MG" , scheduled_date = "20240101" , patient_id = "999123456"
269265 )
270266
271- mock_connection .reset_mock ()
272- subject .find_worklist_items (modality = "MG" , scheduled_date = "20240101" , patient_id = "999123456" )
273-
274267 mock_connection .execute .assert_called_once_with (
275268 (
276269 "SELECT accession_number, modality, patient_birth_date, patient_id, "
277270 "patient_name, patient_sex, procedure_code, scheduled_date, scheduled_time, "
278271 "source_message_id, study_description, study_instance_uid, status, mpps_instance_uid "
279272 "FROM worklist_items "
280- "WHERE modality = ? AND scheduled_date = ? AND patient_id = ? "
273+ "WHERE accession_number = ? AND modality = ? AND scheduled_date = ? AND patient_id = ? "
281274 "ORDER BY scheduled_date, scheduled_time"
282275 ),
283- ["MG" , "20240101" , "999123456" ],
276+ ["ACC123456" , " MG" , "20240101" , "999123456" ],
284277 )
285278
286279 def test_get_worklist_item (self , mock_db , tmp_dir , result ):
0 commit comments