Source code for emodpy_tbhiv.interventions.diag_treat_neg
from emod_api import schema_to_class as s2c
import emod_api.interventions.common as common
import emod_api.interventions.utils as utils
from emodpy_tbhiv.interventions import purge_campaign_event
[docs]def DiagnosticTreatNeg(
camp,
trigger_treatment_list,
base_sensitivity_smearpos=1.0,
base_sensitivity_smearneg=1.0,
pos_event= 'TBTestPositive',
neg_event= 'TBTestNegative',
def_event= 'TBTestDefault',
treatment_fraction= 1,
start_day=1,
duration=-1,
property_restrictions_list=[],
nodeIDs=[],
cost=0,
black_period=0,
black_trigger='Blackout',
event_name='TB Diagnosis'):
"""
Create and return triggered campaign event that issues an DiagnosticTreatNeg intervention. See :doc:`emod-tbhiv:parameter-campaign-individual-diagnostictreatneg`
Args:
camp: The :py:obj:`emod_api:emod_api.campaign` module instance which serves as the campaign accumulator.
trigger_treatment_list: List of 1 or more triggers (or events or signals) which are listened to and trigger the distribution of the intervention. There is no default.
base_sensitivity_smearpos: Sensitivity. Defaults to 1.0.
base_sensitivity_smearneg: Specificity. Defaults to 1.0.
pos_event: Signal (or trigger) which is broadcast if the test is positive. Defaults to 'TBTestPositive',
neg_event: Defaults to 'TBTestNegative'.
def_event: Defaults to 'TBTestDefault'.
treatment_fraction: Fraction of population testing positive you get the positive result effect.
start_day: The timestep when this campaign event takes effect. Defaults to 1.
duration: How long the campaign event remains in effect. Defaults to forever.
property_restrictions_list: Optiional list of Individual Properties to limit the intervention to.
nodeIDs: Optiona list of node ids to target. Defaults to all.
cost: Per unit 'price' of each intervention.
black_period: Undocumented.
black_trigger: Undocumented.
event_name: Undocumented.
Returns:
New campaign event that can be added to the campaign.
"""
schema_path = camp.schema_path
intervention = s2c.get_class_with_defaults( "DiagnosticTreatNeg", schema_path )
intervention.Base_Sensitivity = base_sensitivity_smearpos
intervention.Base_Specificity = 1.0 - base_sensitivity_smearneg
intervention.Treatment_Fraction = treatment_fraction
intervention.Event_Or_Config = 'Event'
intervention.Positive_Diagnosis_Event = camp.get_send_trigger( pos_event )
intervention.Negative_Diagnosis_Event = camp.get_send_trigger( neg_event )
intervention.Defaulters_Event = camp.get_send_trigger( def_event )
intervention.Cost_To_Consumer = cost
event = common.TriggeredCampaignEvent( camp, start_day,event_name, trigger_treatment_list, [ intervention ], Node_Ids=nodeIDs, Duration=duration, Property_Restrictions=property_restrictions_list )
purge_campaign_event( event )
return event
[docs]def new_intervention_as_file( camp, filename="dtn.json" ):
camp.add( DiagnosticTreatNeg( camp, trigger_treatment_list=[ "Births" ] ) )
camp.save( filename )
return filename