Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified data/Renal_Modelling_Input_File - Fictional Region.xlsx
Binary file not shown.
35 changes: 19 additions & 16 deletions renal_capacity_model/config_values.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,22 +180,25 @@
},
},
"receives_transplant_dist": {
"inc": {
1: 0.88,
2: 0.83,
3: 0.73,
4: 0.56,
5: 0.30,
6: 0.05,
},
"prev": {
1: 0.88,
2: 0.83,
3: 0.73,
4: 0.56,
5: 0.30,
6: 0.05,
},
y: {
"inc": {
1: 0.88,
2: 0.83,
3: 0.73,
4: 0.56,
5: 0.30,
6: 0.05,
},
"prev": {
1: 0.88,
2: 0.83,
3: 0.73,
4: 0.56,
5: 0.30,
6: 0.05,
},
}
for y in range(1, 14)
},
"transplant_type_dist": {
"inc": {
Expand Down
246 changes: 232 additions & 14 deletions renal_capacity_model/load_scenario.py
Original file line number Diff line number Diff line change
Expand Up @@ -372,21 +372,239 @@ def load_scenario_from_excel(
},
}
config_from_excel["receives_transplant_dist"] = {
"inc": {
1: input_scenario.iat[47, 5],
2: input_scenario.iat[48, 5],
3: input_scenario.iat[49, 5],
4: input_scenario.iat[50, 5],
5: input_scenario.iat[51, 5],
6: input_scenario.iat[52, 5],
1: {
"inc": {
1: input_scenario.iat[47, 9],
2: input_scenario.iat[48, 9],
3: input_scenario.iat[49, 9],
4: input_scenario.iat[50, 9],
5: input_scenario.iat[51, 9],
6: input_scenario.iat[52, 9],
},
"prev": {
1: input_scenario.iat[47, 6],
2: input_scenario.iat[48, 6],
3: input_scenario.iat[49, 6],
4: input_scenario.iat[50, 6],
5: input_scenario.iat[51, 6],
6: input_scenario.iat[52, 6],
},
},
"prev": {
1: input_scenario.iat[47, 6],
2: input_scenario.iat[48, 6],
3: input_scenario.iat[49, 6],
4: input_scenario.iat[50, 6],
5: input_scenario.iat[51, 6],
6: input_scenario.iat[52, 6],
2: {
"inc": {
1: input_scenario.iat[47, 10],
2: input_scenario.iat[48, 10],
3: input_scenario.iat[49, 10],
4: input_scenario.iat[50, 10],
5: input_scenario.iat[51, 10],
6: input_scenario.iat[52, 10],
},
"prev": {
1: input_scenario.iat[47, 6],
2: input_scenario.iat[48, 6],
3: input_scenario.iat[49, 6],
4: input_scenario.iat[50, 6],
5: input_scenario.iat[51, 6],
6: input_scenario.iat[52, 6],
},
},
3: {
"inc": {
1: input_scenario.iat[47, 11],
2: input_scenario.iat[48, 11],
3: input_scenario.iat[49, 11],
4: input_scenario.iat[50, 11],
5: input_scenario.iat[51, 11],
6: input_scenario.iat[52, 11],
},
"prev": {
1: input_scenario.iat[47, 6],
2: input_scenario.iat[48, 6],
3: input_scenario.iat[49, 6],
4: input_scenario.iat[50, 6],
5: input_scenario.iat[51, 6],
6: input_scenario.iat[52, 6],
},
},
4: {
"inc": {
1: input_scenario.iat[47, 12],
2: input_scenario.iat[48, 12],
3: input_scenario.iat[49, 12],
4: input_scenario.iat[50, 12],
5: input_scenario.iat[51, 12],
6: input_scenario.iat[52, 12],
},
"prev": {
1: input_scenario.iat[47, 6],
2: input_scenario.iat[48, 6],
3: input_scenario.iat[49, 6],
4: input_scenario.iat[50, 6],
5: input_scenario.iat[51, 6],
6: input_scenario.iat[52, 6],
},
},
5: {
"inc": {
1: input_scenario.iat[47, 13],
2: input_scenario.iat[48, 13],
3: input_scenario.iat[49, 13],
4: input_scenario.iat[50, 13],
5: input_scenario.iat[51, 13],
6: input_scenario.iat[52, 13],
},
"prev": {
1: input_scenario.iat[47, 6],
2: input_scenario.iat[48, 6],
3: input_scenario.iat[49, 6],
4: input_scenario.iat[50, 6],
5: input_scenario.iat[51, 6],
6: input_scenario.iat[52, 6],
},
},
6: {
"inc": {
1: input_scenario.iat[47, 14],
2: input_scenario.iat[48, 14],
3: input_scenario.iat[49, 14],
4: input_scenario.iat[50, 14],
5: input_scenario.iat[51, 14],
6: input_scenario.iat[52, 14],
},
"prev": {
1: input_scenario.iat[47, 6],
2: input_scenario.iat[48, 6],
3: input_scenario.iat[49, 6],
4: input_scenario.iat[50, 6],
5: input_scenario.iat[51, 6],
6: input_scenario.iat[52, 6],
},
},
7: {
"inc": {
1: input_scenario.iat[47, 15],
2: input_scenario.iat[48, 15],
3: input_scenario.iat[49, 15],
4: input_scenario.iat[50, 15],
5: input_scenario.iat[51, 15],
6: input_scenario.iat[52, 15],
},
"prev": {
1: input_scenario.iat[47, 6],
2: input_scenario.iat[48, 6],
3: input_scenario.iat[49, 6],
4: input_scenario.iat[50, 6],
5: input_scenario.iat[51, 6],
6: input_scenario.iat[52, 6],
},
},
8: {
"inc": {
1: input_scenario.iat[47, 16],
2: input_scenario.iat[48, 16],
3: input_scenario.iat[49, 16],
4: input_scenario.iat[50, 16],
5: input_scenario.iat[51, 16],
6: input_scenario.iat[52, 16],
},
"prev": {
1: input_scenario.iat[47, 6],
2: input_scenario.iat[48, 6],
3: input_scenario.iat[49, 6],
4: input_scenario.iat[50, 6],
5: input_scenario.iat[51, 6],
6: input_scenario.iat[52, 6],
},
},
9: {
"inc": {
1: input_scenario.iat[47, 17],
2: input_scenario.iat[48, 17],
3: input_scenario.iat[49, 17],
4: input_scenario.iat[50, 17],
5: input_scenario.iat[51, 17],
6: input_scenario.iat[52, 17],
},
"prev": {
1: input_scenario.iat[47, 6],
2: input_scenario.iat[48, 6],
3: input_scenario.iat[49, 6],
4: input_scenario.iat[50, 6],
5: input_scenario.iat[51, 6],
6: input_scenario.iat[52, 6],
},
},
10: {
"inc": {
1: input_scenario.iat[47, 18],
2: input_scenario.iat[48, 18],
3: input_scenario.iat[49, 18],
4: input_scenario.iat[50, 18],
5: input_scenario.iat[51, 18],
6: input_scenario.iat[52, 18],
},
"prev": {
1: input_scenario.iat[47, 6],
2: input_scenario.iat[48, 6],
3: input_scenario.iat[49, 6],
4: input_scenario.iat[50, 6],
5: input_scenario.iat[51, 6],
6: input_scenario.iat[52, 6],
},
},
11: {
"inc": {
1: input_scenario.iat[47, 19],
2: input_scenario.iat[48, 19],
3: input_scenario.iat[49, 19],
4: input_scenario.iat[50, 19],
5: input_scenario.iat[51, 19],
6: input_scenario.iat[52, 19],
},
"prev": {
1: input_scenario.iat[47, 6],
2: input_scenario.iat[48, 6],
3: input_scenario.iat[49, 6],
4: input_scenario.iat[50, 6],
5: input_scenario.iat[51, 6],
6: input_scenario.iat[52, 6],
},
},
12: {
"inc": {
1: input_scenario.iat[47, 20],
2: input_scenario.iat[48, 20],
3: input_scenario.iat[49, 20],
4: input_scenario.iat[50, 20],
5: input_scenario.iat[51, 20],
6: input_scenario.iat[52, 20],
},
"prev": {
1: input_scenario.iat[47, 6],
2: input_scenario.iat[48, 6],
3: input_scenario.iat[49, 6],
4: input_scenario.iat[50, 6],
5: input_scenario.iat[51, 6],
6: input_scenario.iat[52, 6],
},
},
13: {
"inc": {
1: input_scenario.iat[47, 21],
2: input_scenario.iat[48, 21],
3: input_scenario.iat[49, 21],
4: input_scenario.iat[50, 21],
5: input_scenario.iat[51, 21],
6: input_scenario.iat[52, 21],
},
"prev": {
1: input_scenario.iat[47, 6],
2: input_scenario.iat[48, 6],
3: input_scenario.iat[49, 6],
4: input_scenario.iat[50, 6],
5: input_scenario.iat[51, 6],
6: input_scenario.iat[52, 6],
},
},
}
config_from_excel["transplant_type_dist"] = {
Expand Down
8 changes: 4 additions & 4 deletions renal_capacity_model/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ def generator_prevalent_patient_arrivals(self, patient_type: str, location: str)
# they are suitable for transplant
if (
self.rng.uniform(0, 1)
> self.config.receives_transplant_dist["prev"][p.age_group]
> self.config.receives_transplant_dist[1]["prev"][p.age_group]
):
# they don't receive a transplant in the simulation period
p.transplant_suitable = True
Expand Down Expand Up @@ -238,7 +238,7 @@ def generator_prevalent_patient_arrivals(self, patient_type: str, location: str)
# they are suitable for transplant
if (
self.rng.uniform(0, 1)
> self.config.receives_transplant_dist["prev"][p.age_group]
> self.config.receives_transplant_dist[1]["prev"][p.age_group]
):
# they don't receive a transplant in the simulation period
p.transplant_suitable = True
Expand Down Expand Up @@ -334,7 +334,7 @@ def generator_prevalent_patient_arrivals(self, patient_type: str, location: str)
# they are suitable for transplant
if (
self.rng.uniform(0, 1)
> self.config.receives_transplant_dist["prev"][p.age_group]
> self.config.receives_transplant_dist[1]["prev"][p.age_group]
):
# they don't receive a transplant in the simulation period
p.transplant_suitable = True
Expand Down Expand Up @@ -555,7 +555,7 @@ def start_krt(self, patient: Patient) -> Generator:
patient.transplant_suitable = True
if (
self.rng.uniform(0, 1)
> self.config.receives_transplant_dist["inc"][patient.age_group]
> self.config.receives_transplant_dist[year]["inc"][patient.age_group]
):
# Although suitable for transplant, patient does not receive a transplant in the simulation period
if patient.time_until_death == 0:
Expand Down