Discontinuation Manager Module
Discontinuation management for treatment simulations.
This module provides a configurable framework for managing treatment discontinuation in both Agent-Based Simulation (ABS) and Discrete Event Simulation (DES) models. It handles various discontinuation criteria, post-discontinuation monitoring, and treatment re-entry based on disease recurrence.
Key Features
Configuration-driven discontinuation criteria
Multiple discontinuation types (stable at max interval, administrative, time-based)
Post-discontinuation monitoring
Treatment re-entry based on disease recurrence
Consistent implementation across simulation types
Classes
- DiscontinuationManager
Main class for managing treatment discontinuation logic
- class simulation.discontinuation_manager.DiscontinuationManager(config)[source]
Bases:
objectManager for treatment discontinuation decisions and monitoring.
This class encapsulates all discontinuation-related logic, providing a consistent interface for both ABS and DES simulations. It evaluates different discontinuation criteria, handles patient monitoring after discontinuation, and manages re-entry into treatment when eligible.
- Parameters:
config (Dict[str, Any]) – Configuration dictionary containing discontinuation parameters
- Variables:
enabled (bool) – Whether discontinuation is enabled
config (Dict[str, Any]) – Configuration dictionary
criteria (Dict[str, Any]) – Discontinuation criteria configuration
monitoring (Dict[str, Any]) – Post-discontinuation monitoring configuration
retreatment (Dict[str, Any]) – Treatment re-entry configuration
stats (Dict[str, int]) – Statistics tracking discontinuation events
- __init__(config)[source]
Initialize the discontinuation manager with configuration.
- Parameters:
config (Dict[str, Any]) – Configuration dictionary containing discontinuation parameters
- evaluate_discontinuation(patient_state, current_time, treatment_start_time=None)[source]
Evaluate whether a patient should discontinue treatment.
- Parameters:
patient_state (Dict[str, Any]) – Current patient state including disease activity and treatment history
current_time (datetime) – Current simulation time
treatment_start_time (Optional[datetime], optional) – Time when treatment started, by default None
- Returns:
Tuple containing: - discontinue: Whether to discontinue treatment - reason: Reason for discontinuation (if applicable) - probability: Probability that was used for the decision
- Return type:
Tuple[bool, str, float]
- schedule_monitoring(discontinuation_time)[source]
Schedule post-discontinuation monitoring visits.
- Parameters:
discontinuation_time (datetime) – Time when treatment was discontinued
- Returns:
List of monitoring visit events to schedule
- Return type:
List[Dict[str, Any]]
- evaluate_retreatment(patient_state)[source]
Evaluate whether a discontinued patient should re-enter treatment.
- Parameters:
patient_state (Dict[str, Any]) – Current patient state including disease activity and vision
- Returns:
Tuple containing: - retreatment: Whether to restart treatment - probability: Probability that was used for the decision
- Return type:
Tuple[bool, float]
- process_monitoring_visit(patient_state, actions)[source]
Process a monitoring visit for a discontinued patient.
- Parameters:
patient_state (Dict[str, Any]) – Current patient state
actions (List[str]) – Actions performed during the visit
- Returns:
Tuple containing: - retreatment: Whether to restart treatment - updated_state: Updated patient state
- Return type:
Tuple[bool, Dict[str, Any]]