1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
iterate:
At each iteration:
reinit the random generator
maybe vary variable modality/tumorinfo parameters
reset iteration specific variables
perform case simulations (genCases)
genCases:
For each case:
initialize case-specific variables
perform screening rounds (screening)
perform post-screening (postScreen)
screening:
For each screening round:
stop if the case is no longer present
determine the screening age of the current round
stop if the case died or self-detected a tumor (leaving)
perform the screening at the current screening age (screen)
leaving:
before1stRound: true if no screening has as yet been performed (i.e.,
screen hasn't yet been called for the 1st time)
if no tumor exists at this age:
if the natural death age is at most equal to the current screening
age then
if before1stRound then
the case leaves with status NATURAL_PRE
else
the case leaves with status NATURAL_DURING
else
done here
else (there s a tumor):
if the natural death age is before the screening age but the tumor
isn't self-detected before the screening age then
determine the tumor characteristics at the nat. death age
if before1stRound then
the case leaves with status UNDETECTED_PRE
else
the case leaves with status UNDETECTED_DURING
else if the tumor is self-detected before the screening age then
determine the tumor characteristics at the self-detect age
add the treatmentCosts at the self-detect age to the costs for
this case (treatmentCosts: using tumor diameter with BC and tumor
metastasis with LC)
if before1stRound then
the case leaves with status SELF_PRE at the lowest age of
the nat. death age and the tumor causes death age
else (intervalCancer)
[update summary variables]
the case leaves with status SELF_DURING at the lowest age of
the nat. death age and the tumor caused death age
else done here.
screen:
for each of the used modalities:
compute and update the screening costs variables
if there's no tumor at the screening age:
(maybeFalsePositive)
randomly determine using the modality's specificity at the
screening age whether there's a false positive.
if not:
done here
else
add the biop costs and update summary variables
else
(maybeFalseNegative)
determine the tumor characteristics at the screening age
(falseNegative)
randomly determine using the modality's sensitivity at the
screening age whether there's a false false negative.
if so then
update summary variables
else
(tumorDetected)
a tumor has been detected: update counting variables
the case leaves with status SCREEN_DETECTED at the lowest
age of the nat. death age and the tumor caused death age
postscreen:
if the case is no longer present then
done here
if no tumor has developed after the last screening age then
the case leaves with status NATURAL_POST at the natural death age
else
determine the tumor's characteristics at the self-detect age
and set the tumor's deathAge
if self-detection before the natural death age then
update the treatmentCosts using the tumor's selfDetectAge
the case leaves with status UNDETECTED_POST at the lowest age of the
natural death age and the tumor caused death age
|