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