Skip to content

Commit 363274b

Browse files
committed
Fix serializing
1 parent c83d0af commit 363274b

2 files changed

Lines changed: 22 additions & 4 deletions

File tree

autonima/models/types.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,8 @@ class ScreeningResult:
301301
model_used: str
302302
screening_type: str # "abstract" or "fulltext"
303303
timestamp: datetime = field(default_factory=datetime.now)
304+
inclusion_criteria_applied: List[str] = field(default_factory=list)
305+
exclusion_criteria_applied: List[str] = field(default_factory=list)
304306

305307
def to_dict(self) -> Dict[str, Any]:
306308
"""Convert screening result to dictionary."""
@@ -312,6 +314,8 @@ def to_dict(self) -> Dict[str, Any]:
312314
"model_used": self.model_used,
313315
"screening_type": self.screening_type,
314316
"timestamp": self.timestamp.isoformat(),
317+
"inclusion_criteria_applied": self.inclusion_criteria_applied,
318+
"exclusion_criteria_applied": self.exclusion_criteria_applied,
315319
}
316320

317321

autonima/screening/screener.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)