@@ -289,7 +289,9 @@ def _create_screening_result(
289289 reason : str ,
290290 confidence : float ,
291291 model : str ,
292- screening_type : str
292+ screening_type : str ,
293+ inclusion_criteria_applied : List [str ] = None ,
294+ exclusion_criteria_applied : List [str ] = None
293295 ) -> ScreeningResult :
294296 """Create a ScreeningResult object."""
295297 return ScreeningResult (
@@ -298,7 +300,9 @@ def _create_screening_result(
298300 reason = reason ,
299301 confidence = confidence ,
300302 model_used = model ,
301- screening_type = screening_type
303+ screening_type = screening_type ,
304+ inclusion_criteria_applied = inclusion_criteria_applied or [],
305+ exclusion_criteria_applied = exclusion_criteria_applied or []
302306 )
303307
304308 def _screen_single_study (
@@ -371,10 +375,18 @@ def _screen_single_study(
371375 study .fulltext_exclusion_criteria_applied = getattr (
372376 response , 'exclusion_criteria_applied' , [])
373377
378+ # Get criteria applied from response
379+ inclusion_criteria_applied = getattr (
380+ response , 'inclusion_criteria_applied' , [])
381+ exclusion_criteria_applied = getattr (
382+ response , 'exclusion_criteria_applied' , [])
383+
374384 result = self ._create_screening_result (
375385 study , decision , reason , response .confidence ,
376386 model ,
377- screening_type
387+ screening_type ,
388+ inclusion_criteria_applied ,
389+ exclusion_criteria_applied
378390 )
379391
380392 # Save result to file after each screening operation
@@ -486,7 +498,9 @@ async def screen_studies(
486498 existing_result ["reason" ],
487499 existing_result ["confidence" ],
488500 existing_result ["model_used" ],
489- screening_type
501+ screening_type ,
502+ existing_result .get ("inclusion_criteria_applied" , []),
503+ existing_result .get ("exclusion_criteria_applied" , [])
490504 ))
491505 else :
492506 studies_to_screen .append (study )
0 commit comments