Source code for emodpy_tbhiv.interventions.art

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

co_event = "ArtDistributed"

[docs]def ART( camp, trigger_treatment_list, start_day=1, duration=-1, property_restrictions_list=[], nodeIDs=[], cost=0, black_period=0, black_trigger='Blackout', event_name='ART'): """ Create and return triggered campaign event that issues an ART intervention. Args: camp: Centralized campaign module instance. 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. 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. """ # First, get the objects schema_path = camp.schema_path act_intervention = s2c.get_class_with_defaults( "ARTBasic", schema_path ) act_intervention.Days_To_Achieve_Viral_Suppression = 183 act_intervention.Viral_Suppression = True act_intervention.Cost_To_Consumer = cost bcast_intervention = s2c.get_class_with_defaults( "BroadcastEvent", schema_path ) bcast_intervention.Broadcast_Event = camp.get_send_trigger( co_event ) event = common.TriggeredCampaignEvent( camp, start_day, event_name, Triggers=trigger_treatment_list, Intervention_List=[ act_intervention, bcast_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="art.json" ): camp.add( ART( camp, trigger_treatment_list=[ "Births" ] ) ) camp.save( filename ) return filename