InterventionForCurrentPartners#

The InterventionForCurrentPartners intervention class provides a mechanism for the partners of individuals in the care system to also seek care. Partners do not need to seek testing at the same time; a delay may occur between the initial test and the partner’s test. If a relationship has been paused, such as when a partner migrates to a different node, the partner will not be contacted.

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

Broadcast_Event

string

NA

NA

“”

The event that is immediately broadcast to the partner. Required if Event_or_Config is set to Event. See Event list for possible built-in values, or create custom values using Custom_Individual_Events.

{
  "Event_Or_Config": "Event",
  "Broadcast_Event": "HIVNewlyDiagnosed"
}

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

  • Config

{
  "Event_Or_Config": "Event"
}

Intervention_Config

json object

NA

NA

NA

The intervention definition that is immediately distributed to the partner. Required if Event_Or_Config is set to Config.

{
  "class": "CampaignEvent",
  "Start_Day": 1,
  "Nodeset_Config": {
    "class": "NodeSetAll"
  },
  "Event_Coordinator_Config": {
    "class": "StandardInterventionDistributionEventCoordinator",
    "Target_Demographic": "ExplicitGender",
    "Target_Gender": "FEMALE",
    "Demographic_Coverage": 1,
    "Intervention_Config": {
      "class": "InterventionForCurrentPartners",
      "Cost_To_Consumer": 1,
      "Disqualifying_Properties": [],
      "New_Property_Value": "",
      "Minimum_Duration_Years": 0,
      "Dont_Allow_Duplicates": 0,
      "Prioritize_Partners_By": "OLDER_AGE",
      "Relationship_Types": [],
      "Maximum_Partners": 1,
      "Event_Or_Config": "Config",
      "Intervention_Config": {
        "class": "HIVSimpleDiagnostic",
        "Event_Or_Config": "Event",
        "Treatment_Fraction": 1,
        "Dont_Allow_Duplicates": 1,
        "Positive_Diagnosis_Event": "HIVTestedPositive",
        "Negative_Diagnosis_Event": "HIVTestedNegative"
      }
    }
  }
}

Intervention_Name

string

NA

NA

InterventionForCurrentPartners

The optional name used to refer to this intervention as a means to differentiate it from others that use the same class.

{
  "Intervention_Config": {
    "Intervention_Name": "Intervention_For_Spouse",
    "class": "InterventionForCurrentPartnersr"
  }
}

Maximum_Partners

integer

0

1000

100

The maximum number of partners that will receive the intervention. Required when Prioritize_Partners_By is not set to NO_PRIORITIZATION.

{
  "Prioritize_Partners_By": "NO_PRIORITIZATION",
  "Maximum_Partners": 2
}

Minimum_Duration_Years

float

0

200

0

The minimum amount of time, in years, between relationship formation and the current time for the partner to qualify for the intervention.

{
  "Minimum_Duration_Years": 0.5
}

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"
}

Prioritize_Partners_By

enum

NA

NA

NO_PRIORITIZATION

How to prioritize partners for the intervention, as long as they have been in a relationship longer than Minimum_Duration_Years. Possible values are:

NO_PRIORTIZATION

All partners are contacted.

CHOSEN_AT_RANDOM

Partners are randomly selected until Maximum_Partners have received the intervention.

LONGER_TIME_IN_RELATIONSHIP

Partners are sorted in descending order of the duration of the relationship. Partners are contacted from the beginning of this list until Maximum_Partners have received the intervention.

SHORTER_TIME_IN RELATIONSHIP

Partners are sorted in ascending order of the duration of the relationship. Partners are contacted from the beginning of the list until Maximum_Partners have received the intervention.

OLDER_AGE

Partners are sorted in descending order of their age. Partners are contacted from the beginning of this list until Maximum_Partners have received the intervention.

YOUNGER_AGE

Partners are sorted in ascending order of the duration of the relationship. Partners are contacted from the beginning of this list until Maximum_Partners have received the intervention.

RELATIONSHIP_TYPE

Partners are sorted based on the order of relationship types defined in the Relationship_Types array. For example, “Relationship_Types” : [“MARITAL”, “INFORMAL”, “TRANSITORY”, “COMMERCIAL”], will prioritize marital first, then informal, then transitory, then commercial, with random selection between mulitple partners of the same type.

{
  "Prioritize_Partners_By": "LONGER_TIME_IN_RELATIONSHIP"
}

Relationship_Types

array of strings

NA

NA

[]

An array listing all possible relationship types for which partners can qualify for the intervention. Supported partnerships include TRANSITORY, INFORMAL, MARITAL, and COMMERCIAL. If Prioritize_Partners_By is set to RELATIONSHIP_TYPE, then the order of these types is used. The array may not contain duplicates, and cannot be empty.

{
  "Relationship_Types": [
    "MARITAL",
    "INFORMAL",
    "TRANSITORY",
    "COMMERCIAL"
  ]
}
{
    "class": "CampaignEvent",
    "Start_Day": 50,
    "Nodeset_Config": {
        "class": "NodeSetAll"
    },
    "Event_Coordinator_Config": {
        "class": "StandardInterventionDistributionEventCoordinator",
        "Target_Demographic": "ExplicitGender",
        "Target_Gender": "FEMALE",
        "Demographic_Coverage": 1.0,
        "Intervention_Config": {
            "class": "InterventionForCurrentPartners",
            "Disqualifying_Properties": [],
            "New_Property_Value": "",
            "Minimum_Duration_Years": 0.05,
            "Prioritize_Partners_By": "LONGER_TIME_IN_RELATIONSHIP",
            "Relationship_Types": [],
            "Maximum_Partners": 5,
            "Event_Or_Config": "Config",
            "Intervention_Config": {
                "class": "MaleCircumcision",
                "Circumcision_Reduced_Acquire": 1.0,
                "Distributed_Event_Trigger": "Reduced_Acquire_Lowest",
                "Apply_If_Higher_Reduced_Acquire": 1
            }
        }
    }
}