@@ -156,6 +156,88 @@ def test_cfind_filters_by_after_scheduled_date(self, event, storage):
156156 assert status == SUCCESS
157157 assert ds is None
158158
159+ def test_cfind_filters_by_scheduled_time_range (self , event , storage ):
160+ event .identifier .ScheduledProcedureStepSequence [0 ].ScheduledProcedureStepStartTime = "090000-093000"
161+
162+ results = list (CFind (storage ).call (event ))
163+
164+ assert len (results ) == 2
165+
166+ status , ds = results [0 ]
167+ assert status == PENDING
168+ assert ds .PatientID == "999123456"
169+ assert ds .PatientName == "SMITH^JANE"
170+ assert ds .PatientBirthDate == "19800101"
171+ assert ds .AccessionNumber == "ACC123456"
172+ assert ds .ScheduledProcedureStepSequence [0 ].Modality == "MG"
173+ assert ds .ScheduledProcedureStepSequence [0 ].ScheduledProcedureStepStartTime == "090000"
174+
175+ status , ds = results [1 ]
176+ assert status == SUCCESS
177+ assert ds is None
178+
179+ def test_cfind_filters_by_before_scheduled_time (self , event , storage ):
180+ event .identifier .ScheduledProcedureStepSequence [0 ].ScheduledProcedureStepStartTime = "-093000"
181+
182+ results = list (CFind (storage ).call (event ))
183+
184+ assert len (results ) == 2
185+
186+ status , ds = results [0 ]
187+ assert status == PENDING
188+ assert ds .PatientID == "999123456"
189+ assert ds .PatientName == "SMITH^JANE"
190+ assert ds .PatientBirthDate == "19800101"
191+ assert ds .AccessionNumber == "ACC123456"
192+ assert ds .ScheduledProcedureStepSequence [0 ].Modality == "MG"
193+ assert ds .ScheduledProcedureStepSequence [0 ].ScheduledProcedureStepStartTime == "090000"
194+
195+ status , ds = results [1 ]
196+ assert status == SUCCESS
197+ assert ds is None
198+
199+ def test_cfind_filters_by_after_scheduled_time (self , event , storage ):
200+ event .identifier .ScheduledProcedureStepSequence [0 ].ScheduledProcedureStepStartTime = "093000-"
201+
202+ results = list (CFind (storage ).call (event ))
203+
204+ assert len (results ) == 2
205+
206+ status , ds = results [0 ]
207+ assert status == PENDING
208+ assert ds .PatientID == "999234567"
209+ assert ds .PatientName == "JONES^MARY"
210+ assert ds .PatientBirthDate == "19900202"
211+ assert ds .AccessionNumber == "ACC234567"
212+ assert ds .ScheduledProcedureStepSequence [0 ].Modality == "MG"
213+ assert ds .ScheduledProcedureStepSequence [0 ].ScheduledProcedureStepStartTime == "094500"
214+
215+ status , ds = results [1 ]
216+ assert status == SUCCESS
217+ assert ds is None
218+
219+ def test_cfind_filters_by_date_and_time_range (self , event , storage ):
220+ event .identifier .ScheduledProcedureStepSequence [0 ].ScheduledProcedureStepStartDate = "20240101-20240201"
221+ event .identifier .ScheduledProcedureStepSequence [0 ].ScheduledProcedureStepStartTime = "090000-093000"
222+
223+ results = list (CFind (storage ).call (event ))
224+
225+ assert len (results ) == 2
226+
227+ status , ds = results [0 ]
228+ assert status == PENDING
229+ assert ds .PatientID == "999123456"
230+ assert ds .PatientName == "SMITH^JANE"
231+ assert ds .PatientBirthDate == "19800101"
232+ assert ds .AccessionNumber == "ACC123456"
233+ assert ds .ScheduledProcedureStepSequence [0 ].Modality == "MG"
234+ assert ds .ScheduledProcedureStepSequence [0 ].ScheduledProcedureStepStartDate == "20240101"
235+ assert ds .ScheduledProcedureStepSequence [0 ].ScheduledProcedureStepStartTime == "090000"
236+
237+ status , ds = results [1 ]
238+ assert status == SUCCESS
239+ assert ds is None
240+
159241 def test_cfind_filters_by_modality (self , event , storage ):
160242 storage .store_worklist_item (
161243 WorklistItem (
0 commit comments