- Introduced `evaluate.py` for time-dependent evaluation of models, including data loading and model inference.
- Added `evaluation_time_dependent.py` to compute various evaluation metrics such as AUC, average precision, and precision/recall at specified thresholds.
- Implemented CIF calculation methods in `losses.py` for different loss types, including exponential and piecewise exponential models.
- Created utility functions in `utils.py` for context selection and multi-hot encoding of events within specified horizons.
- Introduced parallel processing for per-disease metrics using ThreadPoolExecutor.
- Added command-line arguments for metric workers and progress visualization options.
- Refactored evaluation functions to compute metrics for all diseases and summarize results.
- Updated output CSV filenames for clarity and consistency.
- Introduced a new JSON file `models_eval_example.json` containing evaluation configurations for various models.
- Included configurations for `delphi_fork` and `sap_delphi` models with different loss types and full covariance settings.
- Each model entry specifies the model name, type, loss type, full covariance flag, and checkpoint path.
- Implemented ExponentialNLLLoss and WeibullNLLLoss in losses.py for negative log-likelihood calculations.
- Developed TabularEncoder class in model.py for encoding tabular features.
- Created DelphiFork and SapDelphi classes in model.py for time-to-event prediction using transformer architecture.
- Added data preparation scripts in prepare_data.R and prepare_data.py for processing UK Biobank data, including handling field mappings and event data extraction.