BroadcastEventToOtherNodes#
The BroadcastEventToOtherNodes intervention class allows events to be sent from one node to another. For example, if an individual in one node has been diagnosed, drugs may be distributed to individuals in surrounding nodes.
When this intervention is updated, the event to be broadcast is cached to be distributed to the nodes. After the people have migrated, the event information is distributed to the nodes (i.e. it does support multi-core). During the next time step, the nodes will update their node-level interventions and then broadcast the events from other nodes to ALL the people in the node. This is different from interventions that only broadcast the event in the current node for the person who had the intervention. Distances between nodes use the Longitude and Latitude defined in the demographics file, and use the Haversine Formula for calculating the great-circle distance.
Note
Parameters are case-sensitive. 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 format does not permit comments, but you can add “dummy” parameters to add contextual information to your files. Any keys that are not EMOD parameter names will be ignored by the model.
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 |
---|---|---|---|---|---|---|
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_Trigger |
enum |
NA |
NA |
“” |
The name of the event to broadcast to selected nodes. See Event list for possible values. |
{
"Event_Trigger": "VaccinateNeighbors"
}
|
Include_My_Node |
boolean |
0 |
1 |
0 |
Set to true (1) to broadcast the event to the current node. |
{
"Actual_IndividualIntervention_Config": {
"class": "BroadcastEventToOtherNodes",
"Event_Trigger": "VaccinateNeighbors",
"Include_My_Node": 1,
"Node_Selection_Type": "DISTANCE_AND_MIGRATION",
"Max_Distance_To_Other_Nodes_Km": 1
}
}
|
Intervention_Name |
string |
NA |
NA |
BroadcastEventToOtherNodes |
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": "BroadcastEventToOtherNodes",
"Intervention_Name": "Malaria diagnosis triggering reactive case detection"
}
}
|
Max_Distance_To_Other_Nodes_Km |
float |
0 |
3.40282e+38 |
3.40282e+38 |
The maximum distance, in kilometers, to the destination node for the node to be selected. The location values used are those entered in the demographics file. Used only if Node_Selection_Type is either DISTANCE_ONLY or DISTANCE_AND_MIGRATION. |
{
"Actual_IndividualIntervention_Config": {
"class": "BroadcastEventToOtherNodes",
"Event_Trigger": "VaccinateNeighbors",
"Include_My_Node": 1,
"Node_Selection_Type": "DISTANCE_AND_MIGRATION",
"Max_Distance_To_Other_Nodes_Km": 1
}
}
|
New_Property_Value |
string |
NA |
NA |
“” |
An optional IndividualProperty key:value pair that will be assigned when the intervention is applied. 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"
}
|
Node_Selection_Type |
enum |
NA |
NA |
DISTANCE_ONLY |
The method by which to select nodes to receive the event. Possible values are:
|
{
"Actual_IndividualIntervention_Config": {
"class": "BroadcastEventToOtherNodes",
"Event_Trigger": "VaccinateNeighbors",
"Include_My_Node": 1,
"Node_Selection_Type": "DISTANCE_AND_MIGRATION",
"Max_Distance_To_Other_Nodes_Km": 1
}
}
|
{
"Use_Defaults": 1,
"Events": [{
"Event_Name": "Broadcast to Other Households If Person Infected",
"class": "CampaignEvent",
"Start_Day": 0,
"Nodeset_Config": {
"class": "NodeSetAll"
},
"Event_Coordinator_Config": {
"class": "StandardInterventionDistributionEventCoordinator",
"Demographic_Coverage": 1,
"Intervention_Config": {
"class": "NodeLevelHealthTriggeredIV",
"Trigger_Condition_List": ["NewClinicalCase"],
"Blackout_Event_Trigger": "Blackout",
"Blackout_Period": 0.0,
"Blackout_On_First_Occurrence": 0,
"Actual_IndividualIntervention_Config": {
"class": "BroadcastEventToOtherNodes",
"Event_Trigger": "VaccinateNeighbors",
"Include_My_Node": 1,
"Node_Selection_Type": "DISTANCE_AND_MIGRATION",
"Max_Distance_To_Other_Nodes_Km": 1
}
}
}
},
{
"Event_Name": "Get Vaccinated If Neighbor Infected",
"class": "CampaignEvent",
"Start_Day": 0,
"Nodeset_Config": {
"class": "NodeSetAll"
},
"Event_Coordinator_Config": {
"class": "StandardInterventionDistributionEventCoordinator",
"Demographic_Coverage": 1,
"Intervention_Config": {
"class": "NodeLevelHealthTriggeredIV",
"Trigger_Condition_List": ["VaccinateNeighbors"],
"Blackout_Event_Trigger": "Blackout",
"Blackout_Period": 0.0,
"Blackout_On_First_Occurrence": 0,
"Actual_IndividualIntervention_Config": {
"class": "AntimalarialDrug",
"Cost_To_Consumer": 10,
"Dosing_Type": "FullTreatmentParasiteDetect",
"Drug_Type": "Chloroquine",
"Dont_Allow_Duplicates": 1
}
}
}
}
]
}