AdherentDrug

The AdherentDrug class is an individual-level intervention that extends AntimalarialDrug class and allows for incorporating different patterns of adherence for taking packs of anti-malarial drugs. Non-adherence means that the drugs will not be taken on the prescribed schedule; this will lengthen the time taken to clear parasites from the person’s system, and can lengthen the duration that a feeding mosquito may become infected.

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

Adherence_Config

json object

NA

NA

NA

Configuration for the probability of taking a dose of the specified anti-malarial. Use a waning effect class, Waning effect classes, to specify how this probability changes over time.

{
  "Adherence_Config": {
    "class": "WaningEffectMapCount",
    "Initial_Effect": 1.0,
    "Durability_Map": {
      "Times": [
        1.0,
        2.0,
        3.0,
        4.0
      ],
      "Values": [
        0.1,
        0.1,
        0.1,
        0.1
      ]
    }
  }
}

Cost_To_Consumer

float

0

99999

10

The unit cost per drug (unamortized).

{
  "Cost_To_Consumer": 10
}

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

Dose_Interval

float

0

1000

1

The number of days to wait between the doses, defined in the Doses parameter.

{
  "Dose_Interval": 10
}

Doses

array of strings

NA

NA

[]

This is a two dimensional array of the drug names defined in the config. parameter Malaria_Drug_Params. Each inner array defines the drugs to be taken for a single dose. The number of doses is determined by the number of inner arrays. An empty dose is allowed and counts as if the person did not take any doses that day. If multiple pills of the same drug are taken in the same dose, that drug name can be specified multiple times.

{
  "Doses": [
    [
      "TestDrugA",
      "TestDrugB"
    ],
    [
      "TestDrugA"
    ],
    [
      "TestDrugA",
      "TestDrugB"
    ],
    [
      "TestDrugB"
    ]
  ]
}

Intervention_Name

string

NA

NA

AdherentDrug

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": "AdherentDrug",
    "Intervention_Name": "Isoniazid with mediocre adherence"
  }
}

Max_Dose_Consideration_Duration

float

1.0/24.0 (1hr)

3.40E+038

3.40E+038

The maximum number of days that an individual will consider taking the doses of the drug.

{
  "Adherence_Config": {
    "Durability_Map": {
      "Times": [
        1,
        2,
        3
      ],
      "Values": [
        1,
        0,
        1
      ]
    },
    "Initial_Effect": 1,
    "class": "WaningEffectMapCount"
  },
  "Cost_To_Consumer": 1,
  "Doses": [
    [
      "Piperaquine"
    ],
    [
      "Piperaquine"
    ],
    [
      "Piperaquine"
    ]
  ],
  "Max_Dose_Consideration_Duration": 4,
  "Non_Adherence_Distribution": [
    1
  ],
  "Non_Adherence_Options": [
    "NEXT_DOSAGE_TIME"
  ],
  "Took_Dose_Event": "Took_Piperaquine",
  "class": "AdherentDrug"
}

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

Non_Adherence_Distribution

array of floats

0

1

0

The non adherence probability value(s) assigned to the corresponding options in Non_Adherence_Options. The sum of non adherence distribution values must equal a total of 1.

{
  "Non_Adherence_Distribution": [
    0.7,
    0.3
  ]
}

Non_Adherence_Options

array of strings

NA

NA

NEXT_UPDATE

Defines the action the person takes if they do not take a particular dose, are not adherent. Possible values are:

NEXT_UPDATE

The person does not take the dose during this update, but will consider taking during the next update (and may not take the dose then). If this person is infected, the time to the next update depends on Infection_Updates_Per_Timestep.

LOST_TAKE_NEXT

The person lost the dose and so takes the next dose in the pill pack (so the total number of pills is reduced).

NEXT_DOSAGE_TIME

The person missed a dose and waits until the next dosage time to take the pill, in order to remain on the prescribed dosage schedule.

STOP

The person decides to stop taking the pills (or has lost the pill pack). Pills taken prior to STOP will have an effect, no remaining pills will be taken.

{
  "AD_Non_Adherence_Options": [
    "NEXT_DOSAGE_TIME",
    "NEXT_UPDATE"
  ]
}

Took_Dose_Event

string

NA

NA

“”

This event is broadcast each time a person takes a dose from the pill pack.

{
  "Took_Dose_Event": "TakingDrug"
}
{
    "class": "AdherentDrug",
    "Dont_Allow_Duplicates": 1,
    "Cost_To_Consumer": 1,
    "Doses": [
        ["TestDrugA", "TestDrugB"],
        ["TestDrugA"],
        ["TestDrugA", "TestDrugB"],
        [],
        ["TestDrugB"]
    ],
    "Dose_Interval": 5,
    "Adherence_Config": {
        "class": "WaningEffectCombo",
        "Add_Effects": 0,
        "Expires_When_All_Expire": 0,
        "Effect_List": [{
                "class": "WaningEffectMapLinearAge",
                "Initial_Effect": 1.0,
                "Durability_Map": {
                    "Times": [0.0, 12.99999, 13.0, 125.0],
                    "Values": [0.0, 0.0, 1.0, 1.0]
                }
            },
            {
                "class": "WaningEffectMapCount",
                "Initial_Effect": 1.0,
                "Durability_Map": {
                    "Times": [1.0, 2.0, 3.0, 4.0, 5.0],
                    "Values": [0.1, 0.2, 0.3, 0.4, 0.5]
                }
            }
        ]
    },
    "Non_Adherence_Options": ["NEXT_UPDATE", "NEXT_DOSAGE_TIME", "LOST_TAKE_NEXT", "STOP"],
    "Non_Adherence_Distribution": [0.4, 0.3, 0.2, 0.1],
    "Max_Dose_Consideration_Duration": 40,
    "Took_Dose_Event": "TakingDrug"
}