HIVDelayedIntervention¶
HIVDelayedIntervention is an intermediate intervention class based on DelayedIntervention, but adds several features that are specific to the HIV model. This intervention provides new types of distributions for setting the delay and also enables event broadcasting after the delay period expires.
Note
Parameters are casesensitive. For Boolean parameters, set to 1 for true or 0 for false. Minimum, maximum, or default values of “NA” indicate that those values are not applicable for that parameter.
EMOD does not use true defaults; that is, if the dependency relationships indicate that a parameter is required, you must supply a value for it. However, many of the tools used to work with EMOD will use the default values provided below.
JSON does not permit comments, but you can add “dummy” parameters to add contextual information to your files.
The table below describes all possible parameters with which this class can be configured. The JSON example that follows shows one potential configuration.
Parameter 
Data type 
Minimum 
Maximum 
Default 
Description 
Example 

Broadcast_Event 
string 
NA 
NA 
“” 
The event that should occur at the end of the delay period. See Event list for possible values. 
{
"Broadcast_Event": "LTFU0"
}

Broadcast_On_Expiration_Event 
string 
NA 
NA 
“” 
If the delay intervention expires before arriving at the end of the delay period, this specifies the event that should occur. For example, if loss to followup occurs at a high rate for the first 6 months of care, and then later transitions to a lower rate, then the Expiration_Period should be set to 183 days and Broadcast_On_Expiration_Event can link to another delay intervention with a longer average delay time until loss to follow up (LTFU). If LTFU does not occur in the first 6 months, then the expiration will allow the first rate to give way to the post6month rate. See the list of available events for possible values. See Event list for possible values. 
{
"Broadcast_On_Expiration_Event": "OnART8"
}

Coverage 
float 
0 
1 
1 
The proportion of individuals who receive the DelayedIntervention that actually receive the configured interventions. 
{
"Coverage": 1.0
}

Delay_Period_Constant 
float 
0 
3.40282E+38 
6 
The delay period to use for all interventions when Delay_Period_Distribution is set to CONSTANT_DISTRIBUTION. 
{
"Delay_Period_Distribution": "CONSTANT_DISTRIBUTION",
"Delay_Period_Constant": 8
}

Delay_Period_Distribution 
enum 
NA 
NA 
NOT_INITIALIZED 
The distribution type to use for assigning the delay period for distributing interventions. Each assigned value is a random draw from the distribution. Possible values are:

{
"Delay_Period_Distribution": "GAUSSIAN_DISTRIBUTION",
"Delay_Period_Gaussian_Mean": 8,
"Delay_Period_Gaussian_Std_Dev": 1.5
}

Delay_Period_Exponential 
float 
0 
3.40282E+38 
6 
The mean of the delay period when Delay_Period_Distribution is set to EXPONENTIAL_DISTRIBUTION. 
{
"Delay_Period_Distribution": "EXPONENTIAL_DISTRIBUTION",
"Delay_Period_Exponential": 4.25
}

Delay_Period_Gaussian_Mean 
float 
0 
3.40282E+38 
6 
The mean of the delay period when Delay_Period_Distribution is set to GAUSSIAN_DISTRIBUTION. 
{
"Delay_Period_Distribution": "GAUSSIAN_DISTRIBUTION",
"Delay_Period_Gaussian_Mean": 8,
"Delay_Period_Gaussian_Std_Dev": 1.5
}

Delay_Period_Gaussian_Std_Dev 
float 
1.17549E38 
3.40282E+38 
1 
The standard deviation of the delay period when Delay_Period_Distribution is set to GAUSSIAN_DISTRIBUTION. 
{
"Delay_Period_Distribution": "GAUSSIAN_DISTRIBUTION",
"Delay_Period_Gaussian_Mean": 8,
"Delay_Period_Gaussian_Std_Dev": 1.5
}

Delay_Period_Kappa 
float 
1.17549E38 
3.40282E+38 
1 
The shape value for the delay period when Delay_Period_Distribution is set to WEIBULL_DISTRIBUTION. 
{
"Delay_Period_Distribution": "WEIBULL_DISTRIBUTION",
"Delay_Period_Kappa": 0.9,
"Delay_Period_Lambda": 1.5
}

Delay_Period_Lambda 
float 
1.17549E38 
3.40282E+38 
1 
The scale value for the delay period when Delay_Period_Distribution is set to WEIBULL_DISTRIBUTION. 
{
"Delay_Period_Distribution": "WEIBULL_DISTRIBUTION",
"Delay_Period_Kappa": 0.9,
"Delay_Period_Lambda": 1.5
}

Delay_Period_Log_Normal_Mu 
float 
3.40282e+38 
3.40282E+38 
6 
The mean of the natural log of the delay period when Delay_Period_Distribution is set to LOG_NORMAL_DISTRIBUTION. 
{
"Delay_Period_Distribution": "LOG_NORMAL_DISTRIBUTION",
"Delay_Period_Log_Normal_Mu": 9,
"Delay_Period_Log_Normal_Sigma": 2
}

Delay_Period_Log_Normal_Sigma 
float 
3.40282e+38 
3.40282E+38 
1 
The standard deviation of the natural log of the delay period when Delay_Period_Distribution is set to LOG_NORMAL_DISTRIBUTION. 
{
"Delay_Period_Distribution": "LOG_NORMAL_DISTRIBUTION",
"Delay_Period_Log_Normal_Mu": 9,
"Delay_Period_Log_Normal_Sigma": 2
}

Delay_Period_Max 
float 
0 
3.40282E+38 
1 
The maximum delay period when Delay_Period_Distribution is set to UNIFORM_DISTRIBUTION. 
{
"Delay_Period_Distribution": "UNIFORM_DISTRIBUTION",
"Delay_Period_Min": 2,
"Delay_Period_Max": 7
}

Delay_Period_Mean_1 
float 
1.17549E38 
3.40282E+38 
1 
The mean of the first exponential distribution when Delay_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION. 
{
"Delay_Period_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
"Delay_Period_Mean_1": 4,
"Delay_Period_Mean_2": 12,
"Delay_Period_Proportion_1": 0.2
}

Delay_Period_Mean_2 
float 
1.17549E38 
3.40282E+38 
1 
The mean of the second exponential distribution when Delay_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION. 
{
"Delay_Period_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
"Delay_Period_Mean_1": 4,
"Delay_Period_Mean_2": 12,
"Delay_Period_Proportion_1": 0.2
}

Delay_Period_Min 
float 
0 
3.40282E+38 
0 
The minimum delay period when Delay_Period_Distribution is set to UNIFORM_DISTRIBUTION. 
{
"Delay_Period_Distribution": "UNIFORM_DISTRIBUTION",
"Delay_Period_Min": 2,
"Delay_Period_Max": 7
}

Delay_Period_Peak_2_Value 
float 
0 
3.40282E+38 
1 
The delay period value to assign to the remaining interventions when Delay_Period_Distribution is set to DUAL_CONSTANT_DISTRIBUTION. 
{
"Delay_Period_Distribution": "DUAL_CONSTANT_DISTRIBUTION",
"Delay_Period_Proportion_0": 0.25,
"Delay_Period_Peak_2_Value": 5
}

Delay_Period_Poisson_Mean 
float 
0 
3.40282E+38 
6 
The mean of the delay period when Delay_Period_Distribution is set to POISSON_DISTRIBUTION. 
{
"Delay_Period_Distribution": "POISSON_DISTRIBUTION",
"Delay_Period_Poisson_Mean": 5
}

Delay_Period_Proportion_0 
float 
0 
1 
1 
The proportion of interventions to assign a value of zero delay when Delay_Period_Distribution is set to DUAL_CONSTANT_DISTRIBUTION. 
{
"Delay_Period_Distribution": "DUAL_CONSTANT_DISTRIBUTION",
"Delay_Period_Proportion_0": 0.25,
"Delay_Period_Peak_2_Value": 5
}

Delay_Period_Proportion_1 
float 
0 
1 
1 
The proportion of interventions in the first exponential distribution when Delay_Period_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION. 
{
"Delay_Period_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
"Delay_Period_Mean_1": 4,
"Delay_Period_Mean_2": 12,
"Delay_Period_Proportion_1": 0.2
}

Disqualifying_Properties 
array of strings 
NA 
NA 
[] 
A list of IndividualProperty key:value pairs that cause an intervention to be aborted (persistent interventions will stop being distributed to individuals with these values). See NodeProperties and IndividualProperties parameters for more information. Generally used to control the flow of health care access. For example, to prevent the same individual from accessing health care via two different routes at the same time. 
{
"Disqualifying_Properties": [
"InterventionStatus:LostForever"
]
}

Dont_Allow_Duplicates 
boolean 
0 
1 
0 
If an individual’s container has an intervention, set to true (1) to prevent them from receiving another copy of the intervention. Supported by all intervention classes. 
{
"Dont_Allow_Duplicates": 0
}

Event_Or_Config 
enum 
NA 
NA 
Config 
Specifies whether the current intervention (or a positive diagnosis, depending on the intervention class) distributes a nested intervention (the Config option) or an event will be broadcast which may trigger other interventions in the campaign file (the Event option). Possible values are:

{
"Event_Or_Config": "Config"
}

Expiration_Period 
float 
0 
3.40E+3 
3.40E+38 
A fixed time period, in days, after which the Broadcast_On_Expiration_Event occurs instead of the Broadcast_Event. Only applied if the Expiration_Period occurs earlier than the end of the delay period. For example, if loss to followup (LTFU) occurs at a high rate for the first 6 months of care, and then later transitions to a lower rate, then the Expiration_Period should be set to 183 days and Broadcast_On_Expiration_Event can link to another delay intervention with a longer average delay time until LTFU. If LTFU does not occur in the first 6 months, then the expiration will allow the first rate to give way to the post6month rate. 
{
"Expiration_Period": 183
}

Intervention_Name 
string 
NA 
NA 
NA 
The optional name used to refer to this intervention as a means to differentiate it from others that use the same class. 
{
"Intervention_Config": {
"class": "HIVDelayedIntervention",
"Intervention_Name": "Time to return for test results"
}
}

New_Property_Value 
string 
NA 
NA 
NA 
An optional IndividualProperty key:value pair that will be assigned when the intervention is distributed. See NodeProperties and IndividualProperties parameters for more information. Generally used to indicate the broad category of health care cascade to which an intervention belongs to prevent individuals from accessing care through multiple pathways. For example, if an individual must already be taking a particular medication to be prescribed a new one. 
{
"New_Property_Value": "InterventionStatus:None"
}

Times 
array of floats 
0 
999999 
NA 
An array of years. 
{
"Times": [
1998,
2000,
2003,
2006,
2009
],
"Values": [
0,
0.26,
0.08,
0.14,
0.54
]
}

Values 
array of floats 
0 
3.40E+3 
NA 
An array of values to match the defined Times. 
{
"Times": [
1998,
2000,
2003,
2006,
2009
],
"Values": [
0,
0.26,
0.08,
0.14,
0.54
]
}

{
"Use_Defaults": 1,
"Campaign_Name": "35_HIV_Delayed_Intervention",
"Events": [
{
"class": "CampaignEvent",
"Event_Name": "LTFU0 broadcasts should proceed the expiration period of 9 days",
"Start_Day": 1,
"Nodeset_Config": {
"class": "NodeSetAll"
},
"Event_Coordinator_Config": {
"class": "StandardInterventionDistributionEventCoordinator",
"Demographic_Coverage": 1,
"Intervention_Config": {
"class": "HIVDelayedIntervention",
"Disqualifying_Properties": [],
"New_Property_Value": "",
"Delay_Period_Distribution": "CONSTANT_DISTRIBUTION",
"Delay_Period_Constant": 8,
"Expiration_Period": 9,
"Broadcast_Event": "LTFU0"
}
}
},
{
"class": "CampaignEvent",
"Event_Name": "LTFU1 broadcasts should be truncated by the expiration period of 7 days",
"Start_Day": 1,
"Nodeset_Config": {
"class": "NodeSetAll"
},
"Event_Coordinator_Config": {
"class": "StandardInterventionDistributionEventCoordinator",
"Demographic_Coverage": 1,
"Intervention_Config": {
"class": "HIVDelayedIntervention",
"Disqualifying_Properties": [],
"New_Property_Value": "",
"Delay_Period_Distribution": "CONSTANT_DISTRIBUTION",
"Delay_Period_Constant": 8,
"Expiration_Period": 7,
"Broadcast_Event": "LTFU1"
}
}
}
]
}