Skip to content

Commit ac0380d

Browse files
authored
Merge pull request #188 from The-Strategy-Unit/hhd_intervention_logging
fix to the HHD intervention in the event log
2 parents a014dd8 + cf56453 commit ac0380d

3 files changed

Lines changed: 179 additions & 87 deletions

File tree

renal_capacity_model/config.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,19 @@
33
It can be adapted to take inputs from users
44
"""
55

6-
from renal_capacity_model.helpers import (
7-
get_yearly_arrival_rate,
8-
get_mean_iat_over_time_from_arrival_rate,
9-
)
106
from renal_capacity_model.config_values import (
11-
national_config_dict,
127
load_time_to_event_curves,
8+
national_config_dict,
139
ttd_con_care_values,
14-
tw_before_dialysis_values,
1510
ttd_krt_values,
11+
tw_before_dialysis_values,
1612
tw_cadTx,
1713
tw_liveTx,
1814
)
15+
from renal_capacity_model.helpers import (
16+
get_mean_iat_over_time_from_arrival_rate,
17+
get_yearly_arrival_rate,
18+
)
1919
from renal_capacity_model.utils import get_logger
2020

2121
logger = get_logger(__name__)
@@ -47,7 +47,7 @@ def __init__(
4747
self.sim_duration = config_dict.get(
4848
"sim_duration", int(13 * 365)
4949
) # in days, but should be a multiple of 365 i.e. years.
50-
self.random_seed = config_dict.get("random_seed", 0)
50+
self.random_seed = config_dict.get("random_seed", 0) ### our base random seed
5151
self.arrival_rate = config_dict["arrival_rate"]
5252
# how often to take a snapshot of the results_df
5353
self.snapshot_interval = config_dict.get("snapshot_interval", int(365))

renal_capacity_model/helpers.py

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22
Module with helper functions
33
"""
44

5-
from renal_capacity_model.utils import get_logger
6-
import pandas as pd
7-
import numpy as np
8-
from itertools import product
95
import math
6+
from itertools import product
107
from typing import TYPE_CHECKING
118

9+
import numpy as np
10+
import pandas as pd
11+
12+
from renal_capacity_model.utils import get_logger
13+
1214
if TYPE_CHECKING:
1315
from renal_capacity_model.config import Config
1416

@@ -238,7 +240,7 @@ def adjust_next_modality(event_log: pd.DataFrame) -> pd.DataFrame:
238240

239241

240242
def process_event_log(event_log: pd.DataFrame) -> pd.DataFrame:
241-
"""Processes event log for easier validation and debugging
243+
"""Processes event log for easier validation and debugging. Also removes unnecessary rows that were outdated by the HHD intervention if applied.
242244
243245
Args:
244246
event_log (pd.DataFrame): event log
@@ -247,6 +249,21 @@ def process_event_log(event_log: pd.DataFrame) -> pd.DataFrame:
247249
pd.DataFrame with additional columns ("year_start", "end_time", "year_end")
248250
and clearer information on which modality was next
249251
"""
252+
## loop through the patient ids and remove any rows where time_starting_activity_from is equal to time_starting_activity from in the row below.
253+
for patient_id in event_log["patient_id"].unique():
254+
if (
255+
event_log.loc[
256+
event_log["patient_id"] == patient_id, "time_starting_activity_from"
257+
]
258+
.duplicated()
259+
.any()
260+
):
261+
df = event_log.loc[
262+
event_log["patient_id"] == patient_id, "time_starting_activity_from"
263+
]
264+
duplicates_mask = df.duplicated(keep=False)
265+
duplicate_index = df.index[duplicates_mask].tolist()[0]
266+
event_log = event_log.drop(duplicate_index)
250267
event_log["year_start"] = event_log["time_starting_activity_from"].apply(
251268
calculate_lookup_year
252269
)

0 commit comments

Comments
 (0)