Source code for emodpy_tbhiv.interventions.resist_diag

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

#dupe_policy = "Replace" # or "Add" or "Abort" -- from covid branch

[docs]def ResistanceDiagnostic( camp, trigger_treatment_list, sensitivity=1.0, specificity=1.0, pos_event= 'TBMDRTestPositive', neg_event= 'TBMDRTestNegative', def_event= 'TBMDRTestDefault', treatment_fraction= 1, treatment_fraction_negative_test=1, start_day=1, duration=-1, property_restrictions_list=[], nodeIDs=[], cost=0, black_period=0, black_trigger='Blackout', event_name='TB Diagnosis MDR'): """ Create and return triggered campaign event that issues an ResistanceDiagnostic intervention. 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. sensitivity: Sensitivity. Defaults to 1.0. specificity: Specificity. Defaults to 1.0. pos_event: Signal (or trigger) which is broadcast if the test is positive. Defaults to 'TBMDRTestPositive'. neg_event: Signal (or trigger) which is broadcast if the test is negative. Defaults to 'TBMDRTestNegative'. def_event: Signal (or trigger) which is broadcast if the test is default. Defaults to 'TBMDRTestDefault'. treatment_fraction: Fraction of population testing positive you get the positive result effect. Defaults to 1. treatment_fraction_negative_test: ... Defaults to 1. 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( "MDRDiagnostic", schema_path ) intervention.Base_Sensitivity = sensitivity intervention.Base_Specificity = specificity intervention.Treatment_Fraction = treatment_fraction intervention.Treatment_Fraction_Negative_Diagnosis = treatment_fraction_negative_test intervention.Event_Or_Config = 'Event' # should not be needed 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="resist_diag.json" ): camp.add( ResistanceDiagnostic( camp, trigger_treatment_list=[ "Births" ] ) ) camp.save( filename ) return filename