/** Arezzo Guideline: Hypertension **/ /** 12/02/2001, 18:14:53 **/ plan :: Hypertension ; caption :: 'Hypertension' ; component :: Current_therapy ; component :: Comorbidities ; component :: Additional_drug_choice ; schedule_constraint :: completed(Current_therapy) ; schedule_constraint :: completed(Comorbidities) ; component :: Target_BP_decision ; autonomous :: yes ; schedule_constraint :: completed(Comorbidities) ; component :: Prescribe_additional_drug ; schedule_constraint :: completed(Additional_drug_choice) ; schedule_constraint :: completed(Target_BP_decision) ; component :: Assess_response ; schedule_constraint :: completed(Prescribe_additional_drug) ; number_of_cycles :: -1 ; end plan . decision :: Additional_drug_choice ; caption :: 'Additional drug choice' ; choice_mode :: single ; support_mode :: symbolic ; candidate :: ACEI ; argument :: excluding, ( Current_Rx = ACEI ) ; argument :: excluding, ( Pregnancy = Yes ) ; argument :: confirming, ( Heart_failure = Yes ) ; argument :: confirming, ( MI = Yes and Systolic_dysfunction = Yes ) ; argument :: excluding, ( Current_Rx = K_sparing_diuretic ) ; argument :: confirming, ( Type_1_Diabetes = Yes and Proteinuria <> None ) ; recommendation :: Netsupport( Additional_drug_choice, ACEI ) >= 1 ; candidate :: ISA_beta_blocker ; argument :: excluding, ( Asthma = Yes or COPD = Yes ) ; argument :: excluding, ( STD_Heart_block = Yes ) ; argument :: excluding, ( Current_Rx = Ca_blocker_non_DHP ) ; argument :: for, ( Current_Rx = Thiazide_diuretic ) ; argument :: for, ( Current_Rx = Ca_blocker_DHP_long or Current_Rx = Ca_blocker_DHP_short ) ; argument :: excluding, ( Current_Rx = Beta_blocker_ISA or Current_Rx = Beta_blocker_non_ISA ) ; argument :: against, ( Type_1_Diabetes = Yes and Proteinuria <> None ) ; recommendation :: Netsupport( Additional_drug_choice, ISA_beta_blocker ) >= 1 ; candidate :: Non_ISA_beta_blocker ; argument :: excluding, ( Asthma = Yes or COPD = Yes ) ; argument :: excluding, ( STD_Heart_block = Yes ) ; argument :: confirming, ( MI = Yes ) ; argument :: excluding, ( Current_Rx = Ca_blocker_non_DHP ) ; argument :: for, ( Current_Rx = Thiazide_diuretic ) ; argument :: for, ( Current_Rx = Ca_blocker_DHP_long or Current_Rx = Ca_blocker_DHP_short ) ; argument :: excluding, ( Current_Rx = Beta_blocker_non_ISA or Current_Rx = Beta_blocker_ISA ) ; argument :: against, ( Type_1_Diabetes = Yes and Proteinuria <> None ) ; recommendation :: Netsupport( Additional_drug_choice, Non_ISA_beta_blocker ) >= 1 ; candidate :: Ca_channel_dihydro_long ; argument :: confirming, ( Isolated_Sys_hypertension = Yes and Age_group = Older ) ; argument :: excluding, ( Current_Rx = Ca_blocker_non_DHP ) ; argument :: for, ( Current_Rx = Beta_blocker_ISA or Current_Rx = Beta_blocker_non_ISA ) ; argument :: excluding, ( Current_Rx = Ca_blocker_DHP_long or Current_Rx = Ca_blocker_DHP_short or Current_Rx = Ca_blocker_non_DHP ) ; argument :: for, ( Type_1_Diabetes = Yes and Proteinuria <> None ) ; recommendation :: Netsupport( Additional_drug_choice, Ca_channel_dihydro_long ) >= 1 ; candidate :: Ca_channel_non_dihydro ; argument :: excluding, ( STD_Heart_block = Yes ) ; argument :: excluding, ( Current_Rx = Beta_blocker_ISA or Current_Rx = Beta_blocker_non_ISA ) ; argument :: excluding, ( Current_Rx = Ca_blocker_DHP_long or Current_Rx = Ca_blocker_DHP_short ) ; argument :: excluding, ( Current_Rx = Ca_blocker_DHP_long or Current_Rx = Ca_blocker_DHP_short or Current_Rx = Ca_blocker_non_DHP ) ; argument :: for, ( Type_1_Diabetes = Yes and Proteinuria <> None ) ; recommendation :: Netsupport( Additional_drug_choice, Ca_channel_non_dihydro ) >= 1 ; candidate :: Thiazide_diuretic ; argument :: confirming, ( Isolated_Sys_hypertension = Yes and Age_group = Older ) ; argument :: for, ( Current_Rx = Beta_blocker_ISA or Current_Rx = Beta_blocker_non_ISA ) ; argument :: excluding, ( Current_Rx = Thiazide_diuretic or Current_Rx = K_sparing_diuretic or Current_Rx = Loop_diuretic ) ; recommendation :: Netsupport( Additional_drug_choice, Thiazide_diuretic ) >= 1 ; candidate :: Loop_diuretic ; argument :: confirming, ( Heart_failure = Yes ) ; argument :: confirming, ( Isolated_Sys_hypertension = Yes and Age_group = Older ) ; argument :: excluding, ( Current_Rx = Thiazide_diuretic or Current_Rx = K_sparing_diuretic or Current_Rx = Loop_diuretic ) ; recommendation :: Netsupport( Additional_drug_choice, Loop_diuretic ) >= 1 ; candidate :: K_sparing_diuretic ; argument :: confirming, ( Isolated_Sys_hypertension = Yes and Age_group = Older ) ; argument :: excluding, ( Current_Rx = ACEI ) ; argument :: excluding, ( Current_Rx = Thiazide_diuretic or Current_Rx = K_sparing_diuretic or Current_Rx = Loop_diuretic ) ; recommendation :: Netsupport( Additional_drug_choice, K_sparing_diuretic ) >= 1 ; candidate :: Ca_channel_dihydro_short ; argument :: confirming, ( Isolated_Sys_hypertension = Yes and Age_group = Older ) ; argument :: excluding, ( Current_Rx = Ca_blocker_non_DHP ) ; argument :: for, ( Current_Rx = Beta_blocker_ISA or Current_Rx = Beta_blocker_non_ISA ) ; argument :: excluding, ( Current_Rx = Ca_blocker_DHP_long or Current_Rx = Ca_blocker_DHP_short or Current_Rx = Ca_blocker_non_DHP ) ; argument :: for, ( Type_1_Diabetes = Yes and Proteinuria <> None ) ; recommendation :: Netsupport( Additional_drug_choice, Ca_channel_dihydro_short ) >= 1 ; end decision . plan :: Assess_response ; caption :: 'Assess response' ; goal :: DBP < targetDBP and SBP < targetSBP ; component :: Monitor_BP ; component :: Await_adequate_response ; end plan . action :: Await_adequate_response ; caption :: 'Await adequate response' ; procedure :: 'Continue therapy until target BPs reached' ; end action . enquiry :: Comorbidities ; source :: Proteinuria ; mandatory :: yes ; source :: Heart_failure ; mandatory :: yes ; source :: Isolated_Sys_hypertension ; mandatory :: yes ; source :: Age_group ; mandatory :: yes ; source :: MI ; mandatory :: yes ; source :: Systolic_dysfunction ; mandatory :: yes ; source :: Asthma ; mandatory :: yes ; source :: COPD ; mandatory :: yes ; source :: Pregnancy ; mandatory :: yes ; source :: Type_1_Diabetes ; mandatory :: no ; source :: STD_Heart_block ; mandatory :: no ; end enquiry . enquiry :: Current_therapy ; caption :: 'Current therapy' ; source :: Current_Rx ; mandatory :: yes ; end enquiry . enquiry :: Monitor_BP ; caption :: 'Monitor BP' ; source :: SBP ; mandatory :: yes ; source :: DBP ; mandatory :: yes ; end enquiry . action :: Prescribe_additional_drug ; caption :: 'Prescribe additional drug' ; procedure :: 'Prescribe additional drug as chosen.' ; end action . decision :: Target_BP_decision ; caption :: 'Target BP decision' ; postcondition :: TargetSBP = if( result_of( Target_BP_decision) = Standard, 140, if( result_of( Target_BP_decision) = Medium, 130, 125)) and TargetDBP = if( result_of( Target_BP_decision) = Standard, 90, if( result_of( Target_BP_decision) = Medium, 85, 75)) ; choice_mode :: single ; support_mode :: symbolic ; candidate :: Standard ; argument :: for, ( Proteinuria = None and Type_1_Diabetes = No ) ; recommendation :: Netsupport( Target_BP_decision, Standard ) >= 1 ; candidate :: Medium ; argument :: for, ( Type_1_Diabetes = Yes or Proteinuria = '<1 g / 24 hrs' ) ; recommendation :: Netsupport( Target_BP_decision, Medium ) >= 1 ; candidate :: Low ; argument :: confirming, ( Proteinuria = '>1 g / 24 hrs' ) ; recommendation :: Netsupport( Target_BP_decision, Low ) >= 1 ; end decision . data :: Age_group ; type :: text ; caption :: 'Patients age group' ; range :: Younger, Older ; end data . data :: Asthma ; type :: boolean ; caption :: 'Does the patient have asthma?' ; true_value :: Yes ; false_value :: No ; end data . data :: COPD ; type :: boolean ; caption :: 'Does that patient have COPD?' ; true_value :: Yes ; false_value :: No ; end data . data :: Current_Rx ; type :: text ; caption :: 'Patients current therapy' ; range :: ACEI, Beta_blocker_ISA, Beta_blocker_non_ISA, Ca_blocker_DHP_long, Ca_blocker_DHP_short, Ca_blocker_non_DHP, Thiazide_diuretic, Loop_diuretic, K_sparing_diuretic ; end data . data :: DBP ; type :: integer ; caption :: 'Diastolic BP' ; end data . data :: Heart_failure ; type :: boolean ; caption :: 'Does the patient have heart failure?' ; true_value :: Yes ; false_value :: No ; end data . data :: Isolated_Sys_hypertension ; type :: boolean ; caption :: 'Isolated systolic hypertension?' ; true_value :: Yes ; false_value :: No ; end data . data :: MI ; type :: boolean ; caption :: 'Previous MI?' ; true_value :: Yes ; false_value :: No ; end data . data :: Pregnancy ; type :: boolean ; caption :: 'Is the patient pregnant?' ; true_value :: Yes ; false_value :: No ; end data . data :: Proteinuria ; type :: text ; caption :: 'Proteinuria?' ; range :: None, '<1 g / 24 hrs', '>1 g / 24 hrs' ; end data . data :: SBP ; type :: integer ; caption :: 'Systolic BP' ; end data . data :: STD_Heart_block ; type :: boolean ; caption :: 'Second or third degree heart block' ; true_value :: Yes ; false_value :: No ; end data . data :: Systolic_dysfunction ; type :: boolean ; caption :: 'Systolic dysfunction' ; true_value :: Yes ; false_value :: No ; end data . data :: targetDBP ; type :: integer ; end data . data :: targetSBP ; type :: integer ; end data . data :: Type_1_Diabetes ; type :: boolean ; caption :: 'Type 1 diabetes?' ; true_value :: Yes ; false_value :: No ; end data .