/** * for egfr from imported, we need a standardized creat, it must be numeric and the trust field must not be 'N' */ } elseif ($event['creat_im_lbstresn'] != '' && is_numeric($event['creat_im_lbstresn']) && $event['creat_im_nxtrust'] != 'N') { if ($race != '' && $sex != '' && $age != '') { $egfr = round((175 * pow($event['creat_im_lbstresn'], -1.154) * pow($age, -.203) * $sex_factor * $race_factor), 2); } else { $egfr = ''; } update_field_compare($subject_id, $project_id, $event_id, $egfr, $event['egfr_im_lborres'], 'egfr_im_lborres', $debug); $is_baseline = ($event['creat_lbblfl'] == 'Y' && $egfr != '') ? 'Y' : ''; update_field_compare($subject_id, $project_id, $event_id, $is_baseline, $event['egfr_im_lbblfl'], 'egfr_im_lbblfl', $debug); } elseif ($event['creat_lbstresn'] == '') { $egfr = ''; update_field_compare($subject_id, $project_id, $event_id, $egfr, $event['egfr_lborres'], 'egfr_lborres', $debug); $is_baseline = ($event['creat_lbblfl'] == 'Y' && $egfr != '') ? 'Y' : ''; update_field_compare($subject_id, $project_id, $event_id, $is_baseline, $event['egfr_lbblfl'], 'egfr_lbblfl', $debug); } elseif ($event['creat_im_lbstresn'] == '') { $egfr = ''; update_field_compare($subject_id, $project_id, $event_id, $egfr, $event['egfr_im_lborres'], 'egfr_im_lborres', $debug); $is_baseline = ($event['creat_lbblfl'] == 'Y' && $egfr != '') ? 'Y' : ''; update_field_compare($subject_id, $project_id, $event_id, $is_baseline, $event['egfr_im_lbblfl'], 'egfr_im_lbblfl', $debug); } } } } if ($debug) { $timer['main_end'] = microtime(true); $init_time = benchmark_timing($timer); echo $init_time; }
$first_event_id = $Proj->firstEventId; $plugin_title = "Reset SVR DATA PENDING flag when hidden by branching logic"; $my_branching_logic = new BranchingLogic(); /** * plugin title */ echo "<h3>$plugin_title</h3>"; /** * MAIN */ if ($debug) { $timer['main_start'] = microtime(true); } $fields = array('dis_suppds_funcmprsn', 'hcv_suppfa_svr12dt', 'hcv_suppfa_svr24dt', 'hcv_suppfa_fuelgbl'); $data = REDCap::getData('array', $subjects, $fields, $first_event_id); foreach ($data AS $subject_id => $subject) { /** * MAIN EVENT LOOP */ foreach ($subject AS $event_id => $event) { $field_is_hidden = $my_branching_logic->allFieldsHidden($subject_id, $event_id, array('dis_suppds_funcmprsn')); if ($field_is_hidden /*&& $event['dis_suppds_funcmprsn'] == 'SVR_DATA_PENDING' && ($event['hcv_suppfa_svr12dt'] != '' || $event['hcv_suppfa_fuelgbl'] == 'N')*/) { update_field_compare($subject_id, $project_id, $event_id, '', $event['dis_suppds_funcmprsn'], 'dis_suppds_funcmprsn', $debug, $plugin_title); } } } if ($debug) { $timer['main_end'] = microtime(true); $init_time = benchmark_timing($timer); echo $init_time; }
$stack[] = $event[$endt_prefix . '_cmendtc']; } } } sort($start_stack); sort($stack); if ($debug) { show_var($start_stack, 'START STACK sort', 'red'); show_var($stack, 'STACK sort', 'red'); } $last_date_in_start_stack = array_pop($start_stack); $last_date_in_stack = array_pop($stack); $stop_date = $last_date_in_stack <= $last_date_in_start_stack ? null : $last_date_in_stack; update_field_compare($subject_id, $project_id, $first_event_id, $stop_date, $subject[$first_event_id]['dm_rfendtc'], 'dm_rfendtc', $debug); /** * HCV treatment duration * dm_rfstdtc, dm_rfendtc, dis_dsstdy */ if (isset($stop_date)) { $tx_start_date_obj = new DateTime($tx_start_date); $tx_stop_date_obj = new DateTime($stop_date); $tx_duration = $tx_start_date_obj->diff($tx_stop_date_obj); $dis_dsstdy = $tx_duration->format('%R%a') + 1; update_field_compare($subject_id, $project_id, $first_event_id, $dis_dsstdy, $subject[$first_event_id]['dis_dsstdy'], 'dis_dsstdy', $debug); } } } $timer['main_end'] = microtime(true); $init_time = benchmark_timing($timer); echo $init_time;
WHERE arm.project_id = '$project_id' AND forms.form_name = '$this_form_name'"); if ($event_result) { while ($events_row = db_fetch_assoc($event_result)) { $events[] = $events_row['event_id']; } $data = REDCap::getData('array', '', array($_POST['field_name'], $this_form_name . '_complete'), $events); $form_complete = isset($_POST['form_complete']) && $_POST['form_complete'] == 'on' ? true : false; //d($data); foreach ($data AS $subject_id => $subject) { foreach ($subject AS $event_id => $event) { $do_if_complete = $form_complete ? $event[$this_form_name . '_complete'] == '2' : true; $all_fields_hidden = $my_branching_logic->allFieldsHidden($subject_id, $event_id, array($_POST['field_name'])); //d($event); if (!$all_fields_hidden && $event[$_POST['field_name']] != $_POST['default_value'] && $do_if_complete) { update_field_compare($subject_id, $project_id, $event_id, $_POST['default_value'], $event[$_POST['field_name']], $_POST['field_name'], $debug); } } } } } else { print "<h3>You must select field name and default value</h3>"; } ?> <script type="text/javascript"> $(document).ready(function () { $("#field_name").change(function () { $("#field_val_select").trigger('submit'); }); }); </script>
update_field_compare($subjid, $project_id, $event_id, $lbstresu, $this_lab['lbstresu'], $prefix . '_im_lbstresu', $debug); } /** * if the standardized value has changed since it was last standardized, reset the nxtrust flag * Thank you , REDi. */ /*if ($has_valid_units && $lbstresn != $this_lab['lbstresn'] && $prefix != 'hcv') { update_field_compare($subjid, $project_id, $event_id, '', $this_lab['nxtrust'], $prefix . '_im_nxtrust', $debug); }*/ } elseif ($this_lab['lborresu'] == '' && $this_lab['lborres'] != '') { /** * NO BLANK UNITS */ update_field_compare($subjid, $project_id, $event_id, '', $this_lab['lbstresn'], $prefix . '_im_lbstresn', $debug); update_field_compare($subjid, $project_id, $event_id, '', $this_lab['lbstresu'], $prefix . '_im_lbstresu', $debug); /*if ($prefix != 'hcv') { update_field_compare($subjid, $project_id, $event_id, '', $this_lab['nxtrust'], $prefix . '_im_nxtrust', $debug); }*/ } else { update_field_compare($subjid, $project_id, $event_id, $this_lab['lborres'], $this_lab['lbstresn'], $prefix . '_im_lbstresn', $debug); update_field_compare($subjid, $project_id, $event_id, $this_lab['lborresu'], $this_lab['lbstresu'], $prefix . '_im_lbstresu', $debug); } } /** * @TODO: set form_complete */ } } $timer['main_end'] = microtime(true); $init_time = benchmark_timing($timer); echo $init_time;
$this_baseline_flag = 'Y'; } else { /** * Now reset all other flags that have changed */ foreach ($data[$subject_id] AS $flag_event_id => $flag_event) { $reset[$flag_event_id] = $flag_event[$lab_prefix . '_im_lbblfl']; } foreach ($reset AS $reset_event_id => $reset_event) { foreach ($reset_event as $reset_field => $reset_val) { update_field_compare($subject_id, $project_id, $reset_event_id, '', $reset_val, $lab_prefix . "_im_lbblfl", $debug); } } } /** * Baseline flag belongs in the event where the date occurs */ update_field_compare($subject_id, $project_id, $this_data['event_id'], $this_baseline_flag, $data[$subject_id][$this_data['event_id']][$lab_prefix . "_im_lbblfl"], $lab_prefix . "_im_lbblfl", $debug); /** * Baseline date belongs in Baseline event - one date for both abstracted and imported */ d($baseline_date); update_field_compare($subject_id, $project_id, $initial_event, $baseline_date, get_single_field($subject_id, $project_id, $initial_event, $lab_prefix . "_supplb_lbdtbl", ''), $lab_prefix . "_supplb_lbdtbl", $debug); } } } } } $timer['main_end'] = microtime(true); $init_time = benchmark_timing($timer); echo $init_time;
* restricted use */ $allowed_pids = array('38'); REDCap::allowProjects($allowed_pids); /** * MAIN */ /** * initial dose */ $fields = array('imminit_cmdose', 'imminit_cmdosrgm'); $data = REDCap::getData('array', '', $fields); foreach ($data AS $subject_id => $subject) { foreach ($subject AS $event_id => $event) { if ($event['imminit_cmdose'] != '') { update_field_compare($subject_id, $project_id, $event_id, 'FIXED', $event['imminit_cmdosrgm'], 'imminit_cmdosrgm', $debug); } } } /** * final dose */ $fields = array('immfinl_cmdose', 'immfinl_cmdosrgm'); $data = REDCap::getData('array', '', $fields); foreach ($data AS $subject_id => $subject) { foreach ($subject AS $event_id => $event) { if ($event['immfinl_cmdose'] != '') { update_field_compare($subject_id, $project_id, $event_id, 'FIXED', $event['immfinl_cmdosrgm'], 'immfinl_cmdosrgm', $debug); } } }
} /** * set overall hcvrna followup eligibility and reason if ineligible */ update_field_compare($subject_id, $project_id, $baseline_event_id, $eligible, $date_event['hcv_suppfa_fuelgbl'], 'hcv_suppfa_fuelgbl', $debug); update_field_compare($subject_id, $project_id, $baseline_event_id, $reason, $date_event['hcv_suppfa_nlgblrsn'], 'hcv_suppfa_nlgblrsn', $debug); /** * set follow up timing - is it due? */ update_field_compare($subject_id, $project_id, $baseline_event_id, $data_due, $date_event['hcv_suppfa_fudue'], 'hcv_suppfa_fudue', $debug); /** * set outcome */ update_field_compare($subject_id, $project_id, $baseline_event_id, $outcome, $date_event['hcv_suppfa_hcvout'], 'hcv_suppfa_hcvout', $debug); /** * set 10 HCV RNA? */ update_field_compare($subject_id, $project_id, $baseline_event_id, $wk10_rna, $date_event['hcv_suppfa_wk10rna'], 'hcv_suppfa_wk10rna', $debug); /** * set HCV RNA BLOQ? */ update_field_compare($subject_id, $project_id, $baseline_event_id, $last_bloq, $date_event['hcv_suppfa_lastbloq'], 'hcv_suppfa_lastbloq', $debug); /** * set re-treat window start date */ update_field_compare($subject_id, $project_id, $baseline_event_id, $re_treat_date, $date_event['dm_suppdm_rtrtsdtc'], 'dm_suppdm_rtrtsdtc', $debug); } } $timer['main_end'] = microtime(true); $init_time = benchmark_timing($timer); echo $init_time;
$subjects_result = db_query("SELECT DISTINCT record FROM redcap_data WHERE project_id = '$project_id' AND field_name = 'dm_usubjid' AND left(value, 3) = '017'"); if ($subjects_result) { while ($subjects_row = db_fetch_array($subjects_result)) { $subjects[] = $subjects_row['record']; } } d($subjects); //$subjects = '42'; /** * labs field names */ $change_message = 'Purging imported labs, standardizations and related derivations for site 017 (Yale) prior to REDI refresh for this site'; $forms = array('cbc_imported', 'cbc_im_standard', 'chemistry_imported', 'chemistry_im_standard', 'inr_imported', 'hcv_rna_imported', 'hcv_rna_im_standard', 'derived_values_baseline', 'derived_values'); //$forms = array('derived_values_baseline', 'derived_values'); foreach ($forms AS $form) { $fields = REDCap::getFieldNames($form); if (in_array($form, array('derived_values_baseline', 'derived_values'))) { $fields = array_filter($fields, "is_imported"); } d($form, $fields); $data = REDCap::getData('array', $subjects, $fields); foreach ($data AS $subject_id => $subject) { foreach ($subject AS $event_id => $event) { foreach ($event AS $field => $value) { if ($value != '' && strpos($field, 'complete') === false) { update_field_compare($subject_id, $project_id, $event_id, '', $value, $field, $debug, $change_message); } } } } }
foreach ($data as $subject_id => $subject) { foreach ($subject as $event_id => $event) { if (isset($event['xfsn_cmtrt']) && $event['xfsn_cmtrt'] != '') { $med = array(); $med_result = db_query("SELECT DISTINCT drug_coded FROM _target_xfsn_coding WHERE drug_name = '" . prep($event['xfsn_cmtrt']) . "'"); if ($med_result) { $med = db_fetch_assoc($med_result); if (isset($med['drug_coded']) && $med['drug_coded'] != '') { update_field_compare($subject_id, $project_id, $event_id, $med['drug_coded'], $event['xfsn_cmdecod'], 'xfsn_cmdecod', $debug); } } if ($debug) { error_log("DEBUG: Coded Transfusion: subject={$subject_id}, event={$event_id} for CMTRT {$event['xfsn_cmtrt']}"); } } else { update_field_compare($subject_id, $project_id, $event_id, '', $event['xfsn_cmdecod'], 'xfsn_cmdecod', $debug); } } } /** * XFSN_SUPPCM_INDCOD */ $fields = array("xfsn_cmindc", "xfsn_suppcm_indcod"); $data = REDCap::getData('array', $record, $fields, $redcap_event_name); foreach ($data as $subject_id => $subject) { foreach ($subject as $event_id => $event) { code_llt($project_id, $subject_id, $event_id, fix_case($event['xfsn_cmindc']), fix_case($event['xfsn_oth_cmindc']), $event['xfsn_suppcm_indcod'], 'xfsn_suppcm_indcod', $debug, $recode_llt); if ($debug) { error_log("DEBUG: Coded XFSN INDC: subject={$subject_id}, event={$event_id} for CONMED {$event['xfsn_cmdecod']}"); } }
echo('<div class = "yellow">DAA MODERATE'); echo('<h4>AE: ' . $event[$decod_prefix . '_aedecod'] . '</h4>'); echo('<h4>TRTAE: ' . $tx_event[$prefix . '_aedecod'] . '</h4>'); echo('<h4>TRTACN: ' . $tx_event[$prefix . '_suppae_daaacn'] . '</h4>'); echo('</div>'); } } } } } //} } /** * find the highest grade */ //d('MOST SEVERE', $ae_grade); $this_grade_array = $ae_grade; sort($this_grade_array); $this_grade = array_pop($this_grade_array); d('GRADE', array_search($this_grade, $ae_grade)); if ($debug) { error_log("INFO: AE " . $event[$decod_prefix . '_aedecod'] . " grade = " . $this_grade); } update_field_compare($subject_id, $project_id, $event_id, array_search($this_grade, $ae_grade), $event[$decod_prefix . '_suppae_aesevdrv'], $decod_prefix . '_suppae_aesevdrv', $debug); } } } } $timer['main_end'] = microtime(true); $init_time = benchmark_timing($timer); echo $init_time;
/** * @param $record * @param $redcap_event_name * @param $instrument * @param $debug */ public static function code_terms($record, $redcap_event_name, $instrument, $debug) { global $Proj, $project_id, $tx_fragment_labels; $this_event_id = $Proj->getEventIdUsingUniqueEventName($redcap_event_name); switch ($instrument) { case 'ae_coding': $recode_llt = false; $recode_pt = true; $recode_soc = true; $prefix = 'ae'; /** * AE_AEMODIFY */ $fields = array("ae_aeterm", "ae_oth_aeterm", "ae_aemodify"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_llt($project_id, $record, $this_event_id, fix_case($data[$record][$this_event_id]['ae_aeterm']), fix_case($data[$record][$this_event_id]['ae_oth_aeterm']), $data[$record][$this_event_id]['ae_aemodify'], 'ae_aemodify', $debug, $recode_llt); if ($debug) { error_log("DEBUG: Coded AE_AEMODIFY {$data[$record][$this_event_id]['ae_aemodify']}: subject={$record}, event={$this_event_id} for AE {$data[$record][$this_event_id]['ae_aeterm']} - {$data[$record][$this_event_id]['ae_oth_aeterm']}"); } /** * PREFIX_AEDECOD * uses $tx_prefixes preset array */ $fields = array($prefix . "_aemodify", $prefix . "_aedecod"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_pt($project_id, $record, $this_event_id, $data[$record][$this_event_id][$prefix . "_aemodify"], $data[$record][$this_event_id][$prefix . "_aedecod"], $prefix . "_aedecod", $debug, $recode_pt); if ($debug) { error_log("DEBUG: Coded " . strtoupper($prefix) . "_AEDECOD {$data[$record][$this_event_id][$prefix . '_aedecod']}: subject={$record}, event={$this_event_id} for AEMODIFY {$data[$record][$this_event_id][$prefix . '_aemodify']}"); } /** * PREFIX_AEBODSYS * uses $tx_prefixes preset array */ $fields = array($prefix . "_aedecod", $prefix . "_aebodsys"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_bodsys($project_id, $record, $this_event_id, $data[$record][$this_event_id][$prefix . "_aedecod"], $data[$record][$this_event_id][$prefix . "_aebodsys"], $prefix . "_aebodsys", $debug, $recode_soc); if ($debug) { error_log("DEBUG: Coded SOC: subject={$record}, event={$this_event_id} for AE {$data[$record][$this_event_id][$prefix . "_aedecod"]}"); } unset($data); break; /** * ADVERSE EVENTS * ACTION: auto-code AE */ /** * ADVERSE EVENTS * ACTION: auto-code AE */ case 'adverse_events': $recode_llt = true; $recode_pt = true; $recode_soc = true; /** * AE_AEDECOD */ $fields = array("ae_aeterm", "ae_oth_aeterm", "ae_aemodify"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_llt($project_id, $record, $this_event_id, fix_case($data[$record][$this_event_id]['ae_aeterm']), fix_case($data[$record][$this_event_id]['ae_oth_aeterm']), $data[$record][$this_event_id]['ae_aemodify'], 'ae_aemodify', $debug, $recode_llt); if ($debug) { error_log("DEBUG: Coded AE_AEMODIFY {$data[$record][$this_event_id]['ae_aemodify']}: subject={$record}, event={$this_event_id} for AE {$data[$record][$this_event_id]['ae_aeterm']} - {$data[$record][$this_event_id]['ae_oth_aeterm']}"); } /** * AE_AEDECOD */ $fields = array("ae_aemodify", "ae_aedecod"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_pt($project_id, $record, $this_event_id, fix_case($data[$record][$this_event_id]['ae_aemodify']), $data[$record][$this_event_id]['ae_aedecod'], 'ae_aedecod', $debug, $recode_pt); if ($debug) { error_log("DEBUG: Coded AE_AEDECOD {$data[$record][$this_event_id]['ae_aedecod']}: subject={$record}, event={$this_event_id} for AE {$data[$record][$this_event_id]['ae_aemodify']}"); } /** * AE_AEBODSYS */ $fields = array("ae_aedecod", "ae_aebodsys"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_bodsys($project_id, $record, $this_event_id, $data[$record][$this_event_id]['ae_aedecod'], $data[$record][$this_event_id]['ae_aebodsys'], 'ae_aebodsys', $debug, $recode_soc); if ($debug) { error_log("DEBUG: Coded SOC: subject={$record}, event={$this_event_id} for AE {$data[$record][$this_event_id]['ae_aedecod']}"); } unset($data); break; /** * MEDICAL HISTORY * ACTION: auto-code MH */ /** * MEDICAL HISTORY * ACTION: auto-code MH */ case 'key_medical_history': $recode_llt = false; $recode_pt = true; $recode_soc = true; $mh_prefixes = array('othpsy', 'othca'); /** * MH_MHMODIFY */ foreach ($mh_prefixes as $prefix) { $fields = array($prefix . "_oth_mhterm", $prefix . "_mhmodify"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_llt($project_id, $record, $this_event_id, fix_case($data[$record][$this_event_id][$prefix . "_oth_mhterm"]), '', $data[$record][$this_event_id][$prefix . "_mhmodify"], $prefix . "_mhmodify", $debug, $recode_llt); if ($debug) { error_log("DEBUG: Coded " . strtoupper($prefix) . "_MHMODIFY {$data[$record][$this_event_id][$prefix . "_mhmodify"]}: subject={$record}, event={$this_event_id} for MH {$data[$record][$this_event_id][$prefix . "_oth_mhterm"]}"); } /** * PREFIX_MHDECOD * uses $mh_prefixes preset array */ $fields = array($prefix . "_mhmodify", $prefix . "_mhdecod"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_pt($project_id, $record, $this_event_id, $data[$record][$this_event_id][$prefix . "_mhmodify"], $data[$record][$this_event_id][$prefix . "_mhdecod"], $prefix . "_mhdecod", $debug, $recode_pt); if ($debug) { error_log("DEBUG: Coded " . strtoupper($prefix) . "_MHDECOD {$data[$record][$this_event_id][$prefix . '_mhdecod']}: subject={$record}, event={$this_event_id} for MHMODIFY {$data[$record][$this_event_id][$prefix . '_mhmodify']}"); } /** * PREFIX_mhBODSYS * uses $mh_prefixes preset array */ $fields = array($prefix . "_mhdecod", $prefix . "_mhbodsys"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_bodsys($project_id, $record, $this_event_id, $data[$record][$this_event_id][$prefix . "_mhdecod"], $data[$record][$this_event_id][$prefix . "_mhbodsys"], $prefix . "_mhbodsys", $debug, $recode_soc); if ($debug) { error_log("DEBUG: Coded " . strtoupper($prefix) . "_MHBODSYS {$data[$record][$this_event_id][$prefix . "_mhbodsys"]}: subject={$record}, event={$this_event_id} for MHDECOD {$data[$record][$this_event_id][$prefix . "_mhdecod"]}"); } } unset($data); break; /** * EOT */ /** * EOT */ case 'early_discontinuation_eot': $recode_llt = true; $recode_pt = true; $recode_soc = true; /** * EOT_AEDECOD */ $data = REDCap::getData('array', $record, array("eot_suppds_ncmpae", "eot_oth_suppds_ncmpae", "eot_aemodify", "eot_dsterm"), $this_event_id); $ptdata = REDCap::getData('array', $record, array("eot_aemodify", "eot_aedecod"), $this_event_id); $soc_data = REDCap::getData('array', $record, array("eot_aedecod", "eot_aebodsys"), $this_event_id); foreach ($data[$record][$this_event_id] as $event) { if ($event['eot_dsterm'] == 'ADVERSE_EVENT') { code_llt($project_id, $record, $this_event_id, fix_case($event['eot_suppds_ncmpae']), fix_case($event['eot_oth_suppds_ncmpae']), $event['eot_aemodify'], 'eot_aemodify', $debug, $recode_llt); if ($debug) { error_log("INFO (TESTING EOT): Coded EOT_AEMODIFY {$event['eot_aemodify']}: subject={$record}, event={$this_event_id} for AE {$event['eot_suppds_ncmpae']} - {$event['eot_oth_suppds_ncmpae']}"); } /** * AE_AEDECOD */ foreach ($ptdata[$record][$this_event_id] as $ptevent) { code_pt($project_id, $record, $this_event_id, fix_case($ptevent['eot_aemodify']), $ptevent['eot_aedecod'], 'eot_aedecod', $debug, $recode_pt); if ($debug) { error_log("DEBUG: Coded EOT_AEDECOD {$ptevent['eot_aedecod']}: subject={$record}, event={$this_event_id} for AEMODIFY {$ptevent['eot_aemodify']}"); } } /** * EOT_AEBODSYS */ foreach ($soc_data[$record][$this_event_id] as $soc_event) { code_bodsys($project_id, $record, $this_event_id, $soc_event['eot_aedecod'], $soc_event['eot_aebodsys'], 'eot_aebodsys', $debug, $recode_soc); if ($debug) { error_log("DEBUG: Coded SOC: subject={$record}, event={$this_event_id} for AE {$soc_event['eot_aedecod']}"); } } } } unset($data); unset($ptdata); unset($soc_data); break; /** * TX stop AEs */ /** * TX stop AEs */ case 'interferon_administration': case 'ribavirin_administration': case 'telaprevir_administration': case 'boceprevir_administration': case 'simeprevir_administration': case 'sofosbuvir_administration': case 'daclatasvir_administration': case 'harvoni_administration': case 'ombitasvir_paritaprevir': case 'dasabuvir': case 'zepatier_administration': $recode_llt = true; $recode_pt = true; $recode_soc = true; $tx_prefix = array_search(substr($instrument, 0, strpos($instrument, '_')), $tx_fragment_labels); /** * AE_AEMODIFY */ $fields = array($tx_prefix . '_suppcm_cmncmpae', $tx_prefix . '_oth_suppcm_cmncmpae', $tx_prefix . '_aemodify'); $data = REDCap::getData('array', $record, $fields, $this_event_id); foreach ($data[$record][$this_event_id] as $event) { code_llt($project_id, $record, $this_event_id, fix_case($event[$tx_prefix . '_suppcm_cmncmpae']), fix_case($event[$tx_prefix . '_oth_suppcm_cmncmpae']), $event[$tx_prefix . '_aemodify'], $tx_prefix . '_aemodify', $debug, $recode_llt); if ($debug) { error_log("DEBUG: Coded AE_AEMODIFY {$event[$tx_prefix . '_aemodify']}: subject={$record}, event={$this_event_id} for AE {$event[$tx_prefix . '_suppcm_cmncmpae']} - {$event[$tx_prefix . '_oth_suppcm_cmncmpae']}"); } } /** * AE_AEDECOD */ $fields = array($tx_prefix . '_aemodify', $tx_prefix . "_aedecod"); $data = REDCap::getData('array', $record, $fields, $this_event_id); foreach ($data[$record][$this_event_id] as $event) { code_pt($project_id, $record, $this_event_id, fix_case($event[$tx_prefix . '_aemodify']), $event[$tx_prefix . '_aedecod'], $tx_prefix . '_aedecod', $debug, $recode_pt); if ($debug) { error_log("DEBUG: Coded AE_AEDECOD {$event[$tx_prefix . '_aedecod']}: subject={$record}, event={$this_event_id} for AE {$event[$tx_prefix . '_aemodify']}"); } } /** * AE_AEBODSYS */ $fields = array($tx_prefix . '_aedecod', $tx_prefix . '_aebodsys'); $data = REDCap::getData('array', $record, $fields, $this_event_id); foreach ($data[$record][$this_event_id] as $event) { code_bodsys($project_id, $record, $this_event_id, $event[$tx_prefix . '_aedecod'], $event[$tx_prefix . '_aebodsys'], $tx_prefix . '_aebodsys', $debug, $recode_soc); if ($debug) { error_log("DEBUG: Coded SOC: subject={$record}, event={$this_event_id} for AE {$event[$tx_prefix . '_aedecod']}"); } } unset($data); break; /** * CONMEDS * ACTION: auto-code CONMEDS */ /** * CONMEDS * ACTION: auto-code CONMEDS */ case 'conmeds': /** * CM_CMDECOD */ $recode_cm = true; $recode_llt = true; $recode_pt = true; $recode_soc = true; $recode_atc = true; $fields = array("cm_cmtrt", "cm_cmdecod", "cm_cmindc", "cm_oth_cmindc", "cm_suppcm_indcod"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_cm($project_id, $record, $this_event_id, $data[$record][$this_event_id], $debug, $recode_cm); /** * cm_suppcm_mktstat * PRESCRIPTION or OTC */ $fields = array("cm_cmdecod", "cm_suppcm_mktstat"); $data = REDCap::getData('array', $record, $fields, $this_event_id); foreach ($data as $subject_id => $subject) { foreach ($subject as $event_id => $event) { if (isset($event['cm_cmdecod']) && $event['cm_cmdecod'] != '') { update_field_compare($subject_id, $project_id, $event_id, get_conmed_mktg_status($event['cm_cmdecod']), $event['cm_suppcm_mktstat'], 'cm_suppcm_mktstat', $debug); if ($debug) { error_log("DEBUG: {$subject_id} Marketing Status = " . get_conmed_mktg_status($event['cm_cmdecod'])); } } } } /** * CM_SUPPCM_INDCOD */ $fields = array("cm_cmindc", "cm_oth_cmindc", "cm_suppcm_indcmodf"); $data = REDCap::getData('array', $record, $fields, $this_event_id); /** * re-code all nutritional support to nutritional supplement */ if ($data[$record][$this_event_id]['cm_oth_cmindc'] == 'Nutritional support') { $data[$record][$this_event_id]['cm_oth_cmindc'] = 'Nutritional supplement'; } code_llt($project_id, $record, $this_event_id, fix_case($data[$record][$this_event_id]['cm_cmindc']), fix_case($data[$record][$this_event_id]['cm_oth_cmindc']), $data[$record][$this_event_id]['cm_suppcm_indcmodf'], 'cm_suppcm_indcmodf', $debug, $recode_llt); if ($debug) { error_log("DEBUG: Coded INDC LLT: {} subject={$record}, event={$this_event_id} for INDICATION {$data[$record][$this_event_id]['cm_cmindc']}"); } /** * CM_SUPPCM_INDCOD */ $fields = array("cm_suppcm_indcmodf", "cm_suppcm_indcod"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_pt($project_id, $record, $this_event_id, $data[$record][$this_event_id]['cm_suppcm_indcmodf'], $data[$record][$this_event_id]['cm_suppcm_indcod'], 'cm_suppcm_indcod', $debug, $recode_pt); if ($debug) { error_log("DEBUG: Coded INDC PT: subject={$record}, event={$this_event_id} for INDICATION {$data[$record][$this_event_id]['cm_suppcm_indcod']}"); } /** * CM_SUPPCM_INDCSYS */ $fields = array("cm_suppcm_indcod", "cm_suppcm_indcsys"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_bodsys($project_id, $record, $this_event_id, $data[$record][$this_event_id]['cm_suppcm_indcod'], $data[$record][$this_event_id]['cm_suppcm_indcsys'], 'cm_suppcm_indcsys', $debug, $recode_soc); if ($debug) { error_log("DEBUG: Coded INDCSYS: subject={$record}, event={$this_event_id} for INDC {$data[$record][$this_event_id]['cm_suppcm_indcod']}"); } /** * CM_SUPPCM_ATCNAME * CM_SUPPCM_ATC2NAME */ $fields = array("cm_cmdecod", "cm_suppcm_atcname", "cm_suppcm_atc2name"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_atc($project_id, $record, $this_event_id, $data[$record][$this_event_id]['cm_cmdecod'], $data[$record][$this_event_id]['cm_suppcm_atcname'], $data[$record][$this_event_id]['cm_suppcm_atc2name'], $debug, $recode_atc); if ($debug) { error_log("DEBUG: Coded ATCs: subject={$record}, event={$this_event_id} for CONMED {$data[$record][$this_event_id]['cm_cmdecod']}"); } break; case 'transfusions': $recode_cm = true; $recode_llt = true; $recode_soc = true; $recode_atc = true; /** * XFSN_CMDECOD */ $fields = array("xfsn_cmtrt", "xfsn_cmdecod", "xfsn_cmindc", "xfsn_suppcm_indcod"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_cm($project_id, $record, $this_event_id, $data[$record][$this_event_id], $debug, $recode_cm); /** * XFSN_SUPPCM_INDCOD */ $fields = array("xfsn_cmindc", "xfsn_suppcm_indcod"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_llt($project_id, $record, $this_event_id, fix_case($data[$record][$this_event_id]['xfsn_cmindc']), fix_case($data[$record][$this_event_id]['xfsn_oth_cmindc']), $data[$record][$this_event_id]['xfsn_suppcm_indcod'], 'xfsn_suppcm_indcod', $debug, $recode_llt); if ($debug) { error_log("DEBUG: Coded XFSN INDC: subject={$record}, event={$this_event_id} for CONMED {$data[$record][$this_event_id]['xfsn_cmdecod']}"); } /** * XFSN_SUPPCM_INDCSYS */ $fields = array("xfsn_suppcm_indcod", "xfsn_suppcm_indcsys"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_bodsys($project_id, $record, $this_event_id, $data[$record][$this_event_id]['xfsn_suppcm_indcod'], $data[$record][$this_event_id]['xfsn_suppcm_indcsys'], 'xfsn_suppcm_indcsys', $debug, $recode_soc); if ($debug) { error_log("DEBUG: Coded XFSN INDCSYS: subject={$record}, event={$this_event_id} for INDC {$data[$record][$this_event_id]['xfsn_suppcm_indcod']}"); } /** * XFSN_SUPPCM_ATCNAME * XFSN_SUPPCM_ATC2NAME */ $fields = array("xfsn_cmdecod", "xfsn_suppcm_atcname", "xfsn_suppcm_atc2name"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_atc_xfsn($project_id, $record, $this_event_id, $data[$record][$this_event_id]['xfsn_cmdecod'], $data[$record][$this_event_id]['xfsn_suppcm_atcname'], $data[$record][$this_event_id]['xfsn_suppcm_atc2name'], $debug, $recode_atc); if ($debug) { error_log("DEBUG: Coded XFSN ATCs: subject={$record}, event={$this_event_id} for CONMED {$data[$record][$this_event_id]['xfsn_cmdecod']}"); } unset($data); break; case 'mh_coding': $recode_llt = false; $recode_pt = true; $recode_soc = true; $mh_prefixes = array('othpsy', 'othca'); /** * MH_MHMODIFY */ foreach ($mh_prefixes as $prefix) { $fields = array($prefix . "_oth_mhterm", $prefix . "_mhmodify"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_llt($project_id, $record, $this_event_id, fix_case($data[$record][$this_event_id][$prefix . "_oth_mhterm"]), '', $data[$record][$this_event_id][$prefix . "_mhmodify"], $prefix . "_mhmodify", $debug, $recode_llt); if ($debug) { error_log("DEBUG: Coded " . strtoupper($prefix) . "_MHMODIFY {$data[$record][$this_event_id][$prefix . "_mhmodify"]}: subject={$record}, event={$this_event_id} for MH {$data[$record][$this_event_id][$prefix . "_oth_mhterm"]}"); } /** * PREFIX_MHDECOD * uses $mh_prefixes preset array */ $fields = array($prefix . "_mhmodify", $prefix . "_mhdecod"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_pt($project_id, $record, $this_event_id, $data[$record][$this_event_id][$prefix . "_mhmodify"], $data[$record][$this_event_id][$prefix . "_mhdecod"], $prefix . "_mhdecod", $debug, $recode_pt); if ($debug) { error_log("DEBUG: Coded " . strtoupper($prefix) . "_MHDECOD {$data[$record][$this_event_id][$prefix . '_mhdecod']}: subject={$record}, event={$this_event_id} for MHMODIFY {$data[$record][$this_event_id][$prefix . '_mhmodify']}"); } /** * PREFIX_mhBODSYS * uses $mh_prefixes preset array */ $fields = array($prefix . "_mhdecod", $prefix . "_mhbodsys"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_bodsys($project_id, $record, $this_event_id, $data[$record][$this_event_id][$prefix . "_mhdecod"], $data[$record][$this_event_id][$prefix . "_mhbodsys"], $prefix . "_mhbodsys", $debug, $recode_soc); if ($debug) { error_log("DEBUG: Coded " . strtoupper($prefix) . "_MHBODSYS {$data[$record][$this_event_id][$prefix . "_mhbodsys"]}: subject={$record}, event={$this_event_id} for MHDECOD {$data[$record][$this_event_id][$prefix . "_mhdecod"]}"); } } unset($data); break; case 'cm_coding': $recode_llt = false; $recode_pt = true; $recode_soc = true; $recode_atc = false; $recode_cm = true; /** * CM_CMDECOD */ $fields = array("cm_cmtrt", "cm_cmdecod", "cm_cmindc", "cm_oth_cmindc", "cm_suppcm_indcod"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_cm($project_id, $record, $this_event_id, $data[$record][$this_event_id], $debug, $recode_cm); if ($debug) { error_log("DEBUG: Coded CONMED: subject={$record}, event={$this_event_id} for CMTRT {$data[$record][$this_event_id]['cm_cmtrt']}"); } /** * cm_suppcm_mktstat * PRESCRIPTION or OTC */ $fields = array("cm_cmdecod", "cm_suppcm_mktstat"); $data = REDCap::getData('array', $record, $fields, $this_event_id); foreach ($data as $subject_id => $subject) { foreach ($subject as $event_id => $event) { if (isset($event['cm_cmdecod']) && $event['cm_cmdecod'] != '') { update_field_compare($subject_id, $project_id, $event_id, get_conmed_mktg_status($event['cm_cmdecod']), $event['cm_suppcm_mktstat'], 'cm_suppcm_mktstat', $debug); if ($debug) { error_log("DEBUG: {$subject_id} Marketing Status = " . get_conmed_mktg_status($event['cm_cmdecod'])); } } } } /** * CM_SUPPCM_INDCOD */ $fields = array("cm_cmindc", "cm_oth_cmindc", "cm_suppcm_indcmodf"); $data = REDCap::getData('array', $record, $fields, $this_event_id); /** * re-code all nutritional support to nutritional supplement */ if ($data[$record][$this_event_id]['cm_oth_cmindc'] == 'Nutritional support') { $data[$record][$this_event_id]['cm_oth_cmindc'] = 'Nutritional supplement'; } code_llt($project_id, $record, $this_event_id, fix_case($data[$record][$this_event_id]['cm_cmindc']), fix_case($data[$record][$this_event_id]['cm_oth_cmindc']), $data[$record][$this_event_id]['cm_suppcm_indcmodf'], 'cm_suppcm_indcmodf', $debug, $recode_llt); if ($debug) { error_log("DEBUG: Coded INDC LLT: {} subject={$record}, event={$this_event_id} for INDICATION {$data[$record][$this_event_id]['cm_cmindc']}"); } /** * CM_SUPPCM_INDCOD */ $fields = array("cm_suppcm_indcmodf", "cm_suppcm_indcod"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_pt($project_id, $record, $this_event_id, $data[$record][$this_event_id]['cm_suppcm_indcmodf'], $data[$record][$this_event_id]['cm_suppcm_indcod'], 'cm_suppcm_indcod', $debug, $recode_pt); if ($debug) { error_log("DEBUG: Coded INDC PT: subject={$record}, event={$this_event_id} for INDICATION {$data[$record][$this_event_id]['cm_suppcm_indcod']}"); } /** * CM_SUPPCM_INDCSYS */ $fields = array("cm_suppcm_indcod", "cm_suppcm_indcsys"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_bodsys($project_id, $record, $this_event_id, $data[$record][$this_event_id]['cm_suppcm_indcod'], $data[$record][$this_event_id]['cm_suppcm_indcsys'], 'cm_suppcm_indcsys', $debug, $recode_soc); if ($debug) { error_log("DEBUG: Coded INDCSYS: subject={$record}, event={$this_event_id} for INDC {$data[$record][$this_event_id]['cm_suppcm_indcod']}"); } /** * CM_SUPPCM_ATCNAME * CM_SUPPCM_ATC2NAME */ $fields = array("cm_cmdecod", "cm_suppcm_atcname", "cm_suppcm_atc2name"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_atc_soc($project_id, $record, $this_event_id, $data[$record][$this_event_id]['cm_cmdecod'], $data[$record][$this_event_id]['cm_suppcm_atcname'], $data[$record][$this_event_id]['cm_suppcm_atc2name'], $debug, $recode_atc); if ($debug) { error_log("DEBUG: Coded ATCs: subject={$record}, event={$this_event_id} for CONMED {$data[$record][$this_event_id]['cm_cmdecod']}"); } /** * XFSN_CMDECOD */ $fields = array("xfsn_cmtrt", "xfsn_cmdecod", "xfsn_cmindc", "xfsn_suppcm_indcod"); $data = REDCap::getData('array', $record, $fields, $this_event_id); foreach ($data as $subject_id => $subject) { foreach ($subject as $event_id => $event) { if (isset($event['xfsn_cmtrt']) && $event['xfsn_cmtrt'] != '') { $med = array(); $med_result = db_query("SELECT DISTINCT drug_coded FROM _target_xfsn_coding WHERE drug_name = '" . prep($event['xfsn_cmtrt']) . "'"); if ($med_result) { $med = db_fetch_assoc($med_result); if (isset($med['drug_coded']) && $med['drug_coded'] != '') { update_field_compare($subject_id, $project_id, $event_id, $med['drug_coded'], $event['xfsn_cmdecod'], 'xfsn_cmdecod', $debug); } } if ($debug) { error_log("DEBUG: Coded Transfusion: subject={$subject_id}, event={$event_id} for CMTRT {$event['xfsn_cmtrt']}"); } } else { update_field_compare($subject_id, $project_id, $event_id, '', $event['xfsn_cmdecod'], 'xfsn_cmdecod', $debug); } } } /** * XFSN_SUPPCM_INDCOD */ $fields = array("xfsn_cmindc", "xfsn_suppcm_indcod"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_llt($project_id, $record, $this_event_id, fix_case($data[$record][$this_event_id]['xfsn_cmindc']), fix_case($data[$record][$this_event_id]['xfsn_oth_cmindc']), $data[$record][$this_event_id]['xfsn_suppcm_indcod'], 'xfsn_suppcm_indcod', $debug, $recode_llt); if ($debug) { error_log("DEBUG: Coded XFSN INDC: subject={$record}, event={$this_event_id} for CONMED {$data[$record][$this_event_id]['xfsn_cmdecod']}"); } /** * XFSN_SUPPCM_INDCSYS */ $fields = array("xfsn_suppcm_indcod", "xfsn_suppcm_indcsys"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_bodsys($project_id, $record, $this_event_id, $data[$record][$this_event_id]['xfsn_suppcm_indcod'], $data[$record][$this_event_id]['xfsn_suppcm_indcsys'], 'xfsn_suppcm_indcsys', $debug, $recode_soc); if ($debug) { error_log("DEBUG: Coded XFSN INDCSYS: subject={$record}, event={$this_event_id} for INDC {$data[$record][$this_event_id]['xfsn_suppcm_indcod']}"); } /** * XFSN_SUPPCM_ATCNAME * XFSN_SUPPCM_ATC2NAME */ $fields = array("xfsn_cmdecod", "xfsn_suppcm_atcname", "xfsn_suppcm_atc2name"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_atc_xfsn($project_id, $record, $this_event_id, $data[$record][$this_event_id]['xfsn_cmdecod'], $data[$record][$this_event_id]['xfsn_suppcm_atcname'], $data[$record][$this_event_id]['xfsn_suppcm_atc2name'], $debug, $recode_atc); if ($debug) { error_log("DEBUG: Coded XFSN ATCs: subject={$record}, event={$this_event_id} for CONMED {$data[$record][$this_event_id]['xfsn_cmdecod']}"); } unset($data); break; case 'ex_coding': $recode_pt = true; $recode_soc = true; $prefix = 'eot'; /** * PREFIX_AEDECOD * uses $tx_prefixes preset array */ $fields = array($prefix . "_aemodify", $prefix . "_aedecod"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_pt($project_id, $record, $this_event_id, $data[$record][$this_event_id][$prefix . "_aemodify"], $data[$record][$this_event_id][$prefix . "_aedecod"], $prefix . "_aedecod", $debug, $recode_pt); if ($debug) { error_log("DEBUG: Coded " . strtoupper($prefix) . "_AEDECOD {$data[$record][$this_event_id][$prefix . '_aedecod']}: subject={$record}, event={$this_event_id} for AEMODIFY {$data[$record][$this_event_id][$prefix . '_aemodify']}"); } /** * PREFIX_AEBODSYS * uses $tx_prefixes preset array */ $fields = array($prefix . "_aedecod", $prefix . "_aebodsys"); $data = REDCap::getData('array', $record, $fields, $this_event_id); code_bodsys($project_id, $record, $this_event_id, $data[$record][$this_event_id][$prefix . "_aedecod"], $data[$record][$this_event_id][$prefix . "_aebodsys"], $prefix . "_aebodsys", $debug, $recode_soc); if ($debug) { error_log("DEBUG: Coded SOC: subject={$record}, event={$this_event_id} for AE {$data[$record][$this_event_id][$prefix . "_aedecod"]}"); } unset($data); break; case 'hcc_treatment': case 'hcc_coding': $recode_llt = $instrument == 'hcc_treatment' ? true : false; $recode_pt = true; $recode_soc = true; /** * AE_AEDECOD */ $fields = array("hcctrt_prtrt", "hcctrt_oth_prtrt", "hcctrt_prmodify"); $data = REDCap::getData('array', $record, $fields, $redcap_event_name); code_llt($project_id, $record, $this_event_id, fix_case($data[$record][$this_event_id]['hcctrt_prtrt']), fix_case($data[$record][$this_event_id]['hcctrt_oth_prtrt']), $data[$record][$this_event_id]['hcctrt_prmodify'], 'hcctrt_prmodify', $debug, $recode_llt); if ($debug) { error_log("DEBUG: Coded PRMODIFY {$data[$record][$this_event_id]['hcctrt_prtrt']}: subject={$record}, event={$this_event_id} for PR {$data[$record][$this_event_id]['hcctrt_prtrt']} - {$data[$record][$this_event_id]['hcctrt_oth_prtrt']}"); } /** * AE_AEDECOD */ $fields = array("hcctrt_prmodify", "hcctrt_prdecod"); $data = REDCap::getData('array', $record, $fields, $redcap_event_name); code_pt($project_id, $record, $this_event_id, fix_case($data[$record][$this_event_id]['hcctrt_prmodify']), $data[$record][$this_event_id]['hcctrt_prdecod'], 'hcctrt_prdecod', $debug, $recode_pt); if ($debug) { error_log("DEBUG: Coded PRDECOD {$data[$record][$this_event_id]['hcctrt_prdecod']}: subject={$record}, event={$this_event_id} for PR {$data[$record][$this_event_id]['hcctrt_prmodify']}"); } /** * AE_AEBODSYS */ $fields = array("hcctrt_prdecod", "hcctrt_prbodsys"); $data = REDCap::getData('array', $record, $fields, $redcap_event_name); code_bodsys($project_id, $record, $this_event_id, $data[$record][$this_event_id]['hcctrt_prdecod'], $data[$record][$this_event_id]['hcctrt_prbodsys'], 'hcctrt_prbodsys', $debug, $recode_soc); if ($debug) { error_log("DEBUG: Coded SOC: subject={$record}, event={$this_event_id} for PR {$data[$record][$this_event_id]['hcctrt_prdecod']}"); } unset($data); break; default: break; } }
/** * @param $record * @param $form_event * @param $debug */ function set_ppi($record, $form_event = null, $debug) { global $project_id; /** * Proton pump inhibitor? */ $fields = array('cm_cmdecod', 'cm_suppcm_cmppi'); $data = REDCap::getData('array', $record, $fields, $form_event); foreach ($data AS $subject_id => $subject) { foreach ($subject AS $event_id => $event) { if ($event['cm_cmdecod'] != '') { $ppi_flag = 'N'; $ppi_meds = array(); $ppi_meds_result = db_query("SELECT * FROM _target_meds_of_interest WHERE cm_cmcat = 'PPI' AND cm_cmtrt = '{$event['cm_cmdecod']}'"); if ($ppi_meds_result) { while ($ppi_meds_row = db_fetch_assoc($ppi_meds_result)) { $ppi_meds[] = $ppi_meds_row['cm_cmtrt']; } db_free_result($ppi_meds_result); } if (count($ppi_meds) != 0) { $ppi_flag = 'Y'; } update_field_compare($subject_id, $project_id, $event_id, $ppi_flag, $event['cm_suppcm_cmppi'], 'cm_suppcm_cmppi', $debug); } } } }
$chem_fields = array('chem_lbdtc', 'creat_lbstresn'); $fields = array('dm_brthyr', 'weight_suppvs_wtkg', 'dm_sex'); $data = REDCap::getData('array', $record, $fields, $project->firstEventId); foreach ($data as $vitals) { foreach ($vitals as $vital) { if ($vital['dm_brthyr'] != '' && $vital['weight_suppvs_wtkg'] != '' && $vital['dm_sex'] != '') { $chem_data = REDCap::getData('array', $record, $chem_fields, $redcap_event_name); foreach ($chem_data as $chem_values) { foreach ($chem_values as $chem_event => $values) { unset($creatinine_clearance); if ($values['chem_lbdtc'] != '' && $values['creat_lbstresn'] != '') { $sex = isset($vital['dm_sex']) ? $vital['dm_sex'] : 'F'; $chem_age = (substr($values['chem_lbdtc'], 0, 4)) - $vital['dm_brthyr']; $sex_factor = $sex == 'F' ? .85 : 1; $creatinine_clearance = round(((140 - $chem_age) * $vital['weight_suppvs_wtkg'] * $sex_factor) / (72 * $values['creat_lbstresn'])); update_field_compare($record, $project_id, $chem_event, $creatinine_clearance, get_single_field($record, $project_id, $chem_event, 'crcl_lborres', ''), 'crcl_lborres', $debug); } } } } } } $timer_stop = microtime(true); $timer_time = number_format(($timer_stop - $timer_start), 2); if ($debug) { error_log("DEBUG: This DET action (Standardize $instrument) took $timer_time seconds"); } break; /** * all other forms do nothing */
/** * restricted use */ $allowed_pids = array('26'); REDCap::allowProjects($allowed_pids); global $Proj; Kint::enabled($debug); /** * APRI */ $uln = 40; $chem_fields = array('chem_lbdtc', 'ast_lbstresn'); $cbc_fields = array('cbc_lbdtc', 'plat_lbstresn', 'apri_lborres'); $cbc_data = REDCap::getData('array', '', $cbc_fields); foreach ($cbc_data AS $subject_id => $subject) { $chem_events = array(); $chem_data = REDCap::getData('array', $subject_id, $chem_fields); foreach ($subject AS $event_id => $event) { $apri_score = ''; if ($event['cbc_lbdtc'] != '' && $event['plat_lbstresn'] != '' && is_numeric($event['plat_lbstresn'])) { foreach ($chem_data AS $chem_subject) { foreach ($chem_subject AS $chem_event) { if ($chem_event['chem_lbdtc'] != '' && $chem_event['ast_lbstresn'] != '' && $chem_event['chem_lbdtc'] == $event['cbc_lbdtc'] && is_numeric($chem_event['ast_lbstresn'])) { $apri_score = (string)round(((($chem_event['ast_lbstresn'] / $uln) / $event['plat_lbstresn']) * 100), 2); } } } } update_field_compare($subject_id, $project_id, $event_id, $apri_score, $event['apri_lborres'], 'apri_lborres', $debug); } }
/** * Baseline date belongs in Baseline event */ update_field_compare($subject_id, $project_id, $initial_event, $baseline_date, $event['meld_im_supplb_lbdtbl'], "meld_im_supplb_lbdtbl", $debug); d($baseline_date); /** * Now reset all other flags that have changed */ $flag_reset_data = REDCap::getData('array', $subject_id, "meld_im_lbblfl"); foreach ($flag_reset_data AS $reset) { d($reset); foreach ($reset AS $reset_event_id => $reset_event) { foreach ($reset_event as $reset_field => $reset_val) { if ($reset_event_id != $this_data['event_id']) { update_field_compare($subject_id, $project_id, $reset_event_id, '', $reset_val, "meld_im_lbblfl", $debug); } } } } } /** * Baseline flag belongs in the event where the date occurs */ update_field_compare($subject_id, $project_id, $this_data['event_id'], $baseline_flag, $this_data['meld_im_lbblfl'], "meld_im_lbblfl", $debug); } } } } $timer['end_main'] = microtime(true); $init_time = benchmark_timing($timer); echo $init_time;
// $decompensated = true; // d($event); // } // if ($subject[$first_event]['dcp_mhoccur'] == 'Y') { // if history of decomp // } else { // no history of decomp or unknown // if ((in_array($event['ae_aedecod'], $decomp_pts) && $event['ae_suppae_aexacerb'] != 'Y') || // ($event['cm_suppcm_cmprtrt'] == 'N' && $event['cm_suppcm_exacindc'] != 'Y' && $event['cm_suppcm_prphindc'] != 'Y' && in_array($event['cm_cmdecod'], $decomp_conmeds)) || // (in_array($event['ae_oth_aeterm'], $decomp_llt) && $event['ae_suppae_aexacerb'] != 'Y') // ) { // $decompensated = true; // d($event); // } // } // } d($event); if (!$decompensated && ( in_array($event['ae_aedecod'], $decomp_pts) || ($event['cm_suppcm_cmprtrt'] == 'N' && $event['cm_suppcm_prphindc'] != 'Y' && in_array($event['cm_cmdecod'], $decomp_conmeds)) ) ) { $decompensated = true; } } $decomp = $decompensated ? 'Y' : 'N'; update_field_compare($subject_id, $project_id, $first_event, $decomp, $_decomp, 'cirr_suppfa_decomp', $debug); } if ($debug) { $timer['main_end'] = microtime(true); $init_time = benchmark_timing($timer); echo $init_time; }
<?php if (isset($_POST['field_name']) && isset($_POST['new_field'])) { $fields[] = $field_name = $_POST['field_name']; $fields[] = $new_field = $_POST['new_field']; /** * move any data found in redcap_data WHERE field_name = $field_name into $field_name * then delete the original data, while logging all actions */ $data = REDCap::getData('array', '', $fields); foreach ($data AS $subject_id => $subject) { if ($debug) { show_var($subject_id, 'SUBJID', 'blue'); } foreach ($subject AS $event_id => $event) { update_field_compare($subject_id, $project_id, $event_id, $event[$field_name], $event[$new_field], $new_field, $debug); update_field_compare($subject_id, $project_id, $event_id, '', $event[$field_name], $field_name, $debug); } } /** * re-assign any OPEN data quality queries assigned to $field_name */ $data_quality_status_result = db_query("SELECT record, event_id FROM redcap_data_quality_status WHERE project_id = '$project_id' AND field_name = '$field_name' AND query_status != 'CLOSED'"); if ($data_quality_status_result) { while ($dq_status = db_fetch_assoc($data_quality_status_result)) { $data_quality_status_query = "UPDATE redcap_data_quality_status SET field_name = '$new_field' WHERE record = '{$dq_status['record']}' AND project_id = '$project_id' AND event_id = '{$dq_status['event_id']}' AND field_name = '$field_name'"; if (!$debug) { if (db_query($data_quality_status_query)) { //target_log_event($data_quality_status_query, 'redcap_data_quality_status', 'update', $subject_id, "field_name = '$new_field'", 'Update data quality status', '', $project_id); REDCap::logEvent('Update data quality status', "field_name = '$new_field'", $data_quality_status_query, $dq_status['record'], $dq_status['event_id']); } else { error_log(db_error() . ': ' . $data_quality_status_query);
show_var($outcome, 'Outcome', 'brown'); } else { show_var('NO TX START', '', 'red'); } } /** * set overall hcvrna followup eligibility and reason if ineligible */ update_field_compare($subject_id, $project_id, $first_event_id, $eligible, $date_event['hcv_suppfa_fuelgbl'], 'hcv_suppfa_fuelgbl', $debug); update_field_compare($subject_id, $project_id, $first_event_id, $reason, $date_event['hcv_suppfa_nlgblrsn'], 'hcv_suppfa_nlgblrsn', $debug); /** * set follow up timing - is it due? */ update_field_compare($subject_id, $project_id, $first_event_id, $data_due, $date_event['hcv_suppfa_fudue'], 'hcv_suppfa_fudue', $debug); /** * set outcome */ update_field_compare($subject_id, $project_id, $first_event_id, $outcome, $date_event['hcv_suppfa_hcvout'], 'hcv_suppfa_hcvout', $debug); /** * set week 10 HCV RNA */ update_field_compare($subject_id, $project_id, $first_event_id, $wk10_rna, $date_event['hcv_suppfa_wk10rna'], 'hcv_suppfa_wk10rna', $debug); /** * set HCV RNA BLOQ */ update_field_compare($subject_id, $project_id, $first_event_id, $last_bloq, $date_event['hcv_suppfa_lastbloq'], 'hcv_suppfa_lastbloq', $debug); } } $timer['main_end'] = microtime(true); $init_time = benchmark_timing($timer); echo $init_time;
/** * @param $subject_id * @param $debug * determine completeness of all survey-containing events */ function events_completion($subject_id, $debug) { if (isset($subject_id)) { global $Proj, $project_id; $today = date("Y-m-d"); $fields = array(); $arms = get_arms(array_keys($Proj->eventsForms)); $baseline_event_id = $Proj->firstEventId; $enrollment_event_id = getNextEventId($baseline_event_id); $tx_duration = get_single_field($subject_id, $project_id, $enrollment_event_id, 'dm_suppdm_actarmdur', null); $tx_first_event = array_search_recursive($tx_duration . ' Weeks', $arms) !== false ? array_search_recursive($tx_duration . ' Weeks', $arms) : null; $survey_event_ids = isset($tx_first_event) ? array_merge(array($baseline_event_id), $Proj->getEventsByArmNum($arms[$tx_first_event]['arm_num'])) : array($baseline_event_id); foreach ($survey_event_ids AS $survey_event_id) { $survey_event_name = $Proj->getUniqueEventNames($survey_event_id); $survey_prefix = substr($survey_event_name, 0, strpos($survey_event_name, '_')); $fields[] = $survey_prefix . '_completed'; $fields[] = $survey_prefix . '_date'; $fields[] = $survey_prefix . '_startdate'; $fields[] = $survey_prefix . '_deadline'; } $data = REDCap::getData('array', $subject_id, $fields, $baseline_event_id); foreach ($survey_event_ids AS $survey_event_id) { $data_event_name = $Proj->getUniqueEventNames($survey_event_id); $prefix = substr($data_event_name, 0, strpos($data_event_name, '_')); $is_t_complete = is_t_complete($subject_id, $survey_event_id); $t_complete = $is_t_complete ? '1' : '0'; foreach ($data[$subject_id] AS $data_event_id => $data_event) { foreach ($data_event AS $key => $value) { /** * derive intra-event timing variables */ switch ($key) { case $prefix . '_completed': update_field_compare($subject_id, $project_id, $data_event_id, $t_complete, $value, $key, $debug); break; case $prefix . '_date': if ($value == '' && $is_t_complete) { update_field_compare($subject_id, $project_id, $data_event_id, $today, $value, $key, $debug); } break; default: break; } } } /** * derive inter-event timing variables */ $complete_value = get_single_field($subject_id, $project_id, $baseline_event_id, $prefix . '_completed', null); $start_date_value = get_single_field($subject_id, $project_id, $baseline_event_id, $prefix . '_startdate', null); $deadline_value = get_single_field($subject_id, $project_id, $baseline_event_id, $prefix . '_deadline', null); $missed_value = get_single_field($subject_id, $project_id, $baseline_event_id, $prefix . '_missed', null); $t_missed = $complete_value == '0' && $today > $deadline_value && isset($deadline_value) && $deadline_value != '' ? '1' : '0'; switch ($prefix) { case 't1': $t_base_date = get_single_field($subject_id, $project_id, $baseline_event_id, $prefix . '_date', null); $t_start_date = $t_base_date; $t_deadline_date = add_date($t_base_date, 89); break; default: $t_base_date = get_single_field($subject_id, $project_id, $enrollment_event_id, 'dm_rfstdtc', null); $t_start_date = add_date($t_base_date, ($arms[$data_event_name]['day_offset'] - $arms[$data_event_name]['offset_min'])); $t_deadline_date = add_date($t_base_date, ($arms[$data_event_name]['day_offset'] + $arms[$data_event_name]['offset_max']) - 1); break; } update_field_compare($subject_id, $project_id, $baseline_event_id, $t_complete, $complete_value, $prefix . '_completed', $debug); update_field_compare($subject_id, $project_id, $baseline_event_id, $t_missed, $missed_value, $prefix . '_missed', $debug); if (isset($t_base_date) && $t_base_date != '') { update_field_compare($subject_id, $project_id, $baseline_event_id, $t_start_date, $start_date_value, $prefix . '_startdate', $debug); update_field_compare($subject_id, $project_id, $baseline_event_id, $t_deadline_date, $deadline_value, $prefix . '_deadline', $debug); } } } }
d($subject); d($data[$subject_id]); } } /** * pop the latest of these off the $subject array and set the ae_aeacn for the AE */ foreach (array_pop($subject) AS $ae_event_id => $ae_event) { foreach ($ae_event AS $tx_prefix => $ae_acn) { d($tx_prefix); d($ae_acn); $this_action = get_single_field($subject_id, $project_id, $ae_event_id, 'ae_aeacn', ''); d(array_search($ae_acn['txacn'], $action_priority)); d(array_search($this_action, $action_priority)); /** * make sure we have priorities for both $this_action and $ae_acn['txacn'] */ if (array_search($ae_acn['txacn'], $action_priority) !== false && array_search($this_action, $action_priority) !== false) { /** * determine priority of the current action. If its priority is higher than the one recorded, update. */ if (array_search($ae_acn['txacn'], $action_priority) > array_search($this_action, $action_priority)) { update_field_compare($subject_id, $project_id, $ae_event_id, $ae_acn['txacn'], $this_action, 'ae_aeacn', $debug); } } } } } $timer['main_end'] = microtime(true); $init_time = benchmark_timing($timer); echo $init_time;
$this_event_id = $Proj->getEventIdUsingUniqueEventName($event_count); /** * get the next available field group on this event to accept the new samples */ $next_field = (count($state_array[$record][$this_event_id]) - 1) / 3; /** * check for new samples on this stream date to add to state */ foreach ($stream_samples AS $barcode => $type) { if (!array_key_exists_recursive($barcode, $state_array[$record])) { foreach ($base_fields_array AS $field_type => $field_name) { $$field_type = str_replace('%', $next_field, $field_name); } update_field_compare($record, $project_id, $this_event_id, $barcode, $data[$record][$this_event_id][$sample_code], $sample_code, $debug); update_field_compare($record, $project_id, $this_event_id, $enum[strtolower($type)], $data[$record][$this_event_id][$sample_type], $sample_type, $debug); update_field_compare($record, $project_id, $this_event_id, 'Y', array_search('1', $data[$record][$this_event_id][$sample_onhand]), $sample_onhand, $debug); $next_field++; } } $event_count++; } } } } } else { echo "<span class='red'><h3>Unable to comply. Could not open file handle.</h3></span>"; } } else { echo "<span class='red'><h1>Please return to the previous page and select a CSV file.</h1></span>"; } }
/** * @param $record * @param $debug * determine completeness of all survey-containing events */ function set_survey_completion($record, $debug) { if (isset($record)) { global $Proj, $project_id; $today = date("Y-m-d"); $fields = array(); $arms = get_arms(array_keys($Proj->eventsForms)); $baseline_event_id = $Proj->firstEventId; $trt = Treatment::getTrtInfo($record); /** * use the selected duration ($trt['arm']) to set timings */ $tx_first_event = array_search_recursive($trt['arm'], $arms) !== false ? array_search_recursive($trt['arm'], $arms) : null; $survey_event_ids = isset($tx_first_event) ? $Proj->getEventsByArmNum($arms[$tx_first_event]['arm_num']) : null; foreach ($survey_event_ids AS $survey_event_id) { $data_event_name = $Proj->getUniqueEventNames($survey_event_id); $prefix = substr($data_event_name, 0, strpos($data_event_name, '_')); /** * derive inter-event timing variables */ $start_date_value = get_single_field($record, $project_id, $baseline_event_id, $prefix . '_startdate', null); $deadline_value = get_single_field($record, $project_id, $baseline_event_id, $prefix . '_deadline', null); /** * for baseline surveys, reference date is randomization date. For all other survey events, * reference date is dm_rfxstdtc, recorded treatment start date NOT dm_rfstdtc, the * treatment start derived from the treatment med data */ $t_base_date = in_array($prefix, array('baseline', 'eot1year', 'eot3year')) ? $trt['rand_date'] : $trt['rfxstdtc']; if (isset($t_base_date) && $t_base_date != '') { $t_start_date = add_date($t_base_date, ($arms[$data_event_name]['day_offset'] - $arms[$data_event_name]['offset_min'])); update_field_compare($record, $project_id, $baseline_event_id, $t_start_date, $start_date_value, $prefix . '_startdate', $debug); $t_deadline_date = add_date($t_base_date, ($arms[$data_event_name]['day_offset'] + $arms[$data_event_name]['offset_max']) - 1); update_field_compare($record, $project_id, $baseline_event_id, $t_deadline_date, $deadline_value, $prefix . '_deadline', $debug); } } foreach ($survey_event_ids AS $survey_event_id) { $survey_event_name = $Proj->getUniqueEventNames($survey_event_id); $survey_prefix = substr($survey_event_name, 0, strpos($survey_event_name, '_')); $fields[] = $survey_prefix . '_completed'; $fields[] = $survey_prefix . '_date'; $fields[] = $survey_prefix . '_startdate'; $fields[] = $survey_prefix . '_deadline'; } $data = REDCap::getData('array', $record, $fields, $baseline_event_id); /** * switch to the scheduled arm to determine completion * this is done to avoid subjects switching arms and orphaning surveys completed * prior to duration change. This should (almost) never happen, but we still need to handle if it does */ $tx_first_event = array_search_recursive($trt['timing_arm'], $arms) !== false ? array_search_recursive($trt['timing_arm'], $arms) : null; $survey_event_ids = isset($tx_first_event) ? $Proj->getEventsByArmNum($arms[$tx_first_event]['arm_num']) : null; foreach ($survey_event_ids AS $survey_event_id) { $data_event_name = $Proj->getUniqueEventNames($survey_event_id); $prefix = substr($data_event_name, 0, strpos($data_event_name, '_')); $is_t_complete = is_t_complete($record, $survey_event_id); $t_complete = $is_t_complete ? '1' : '0'; $complete_value = get_single_field($record, $project_id, $baseline_event_id, $prefix . '_completed', null); $deadline_value = get_single_field($record, $project_id, $baseline_event_id, $prefix . '_deadline', null); $t_missed = $complete_value == '0' && $today > $deadline_value && isset($deadline_value) && $deadline_value != '' ? '1' : '0'; foreach ($data[$record] AS $data_event_id => $data_event) { foreach ($data_event AS $key => $value) { /** * derive completion variables */ switch ($key) { case $prefix . '_completed': update_field_compare($record, $project_id, $data_event_id, $t_complete, $value, $key, $debug); break; case $prefix . '_date': if ($value == '' && $is_t_complete) { update_field_compare($record, $project_id, $data_event_id, $today, $value, $key, $debug); } break; case $prefix . '_missed': update_field_compare($record, $project_id, $data_event_id, $t_missed, $value, $key, $debug); break; default: break; } } } } } }
$immun_flag = 'N'; $immun_meds = array(); $immun_meds_result = db_query("SELECT * FROM _target_meds_of_interest WHERE cm_cmcat != 'steroid' AND cm_cmtrt = '{$event['cm_cmdecod']}'"); if ($immun_meds_result) { while ($immun_meds_row = db_fetch_assoc($immun_meds_result)) { $immun_meds[] = $immun_meds_row['cm_cmtrt']; } db_free_result($immun_meds_result); } if (count($immun_meds) != 0) { $immun_flag = 'Y'; if ($debug) { show_var($immun_meds); } } update_field_compare($subject_id, $project_id, $event_id, $immun_flag, $event['cm_suppcm_cmimmuno'], 'cm_suppcm_cmimmuno', $debug); } /** * CM_SUPPCM_INDCOD */ /** * re-code all nutritional support to nutritional supplement */ if ($event['cm_oth_cmindc'] == 'Nutritional support') { $event['cm_oth_cmindc'] = 'Nutritional supplement'; } code_llt($project_id, $subject_id, $event_id, fix_case($event['cm_cmindc']), fix_case($event['cm_oth_cmindc']), $event['cm_suppcm_indcod'], 'cm_suppcm_indcod', $debug, $recode_llt); /** * CM_SUPPCM_INDCSYS */ code_bodsys($project_id, $subject_id, $event_id, $event['cm_suppcm_indcod'], $event['cm_suppcm_indcsys'], 'cm_suppcm_indcsys', $debug, $recode_soc);
/** * restrict access to one or more pids */ $allowed_pids = array('38'); REDCap::allowProjects($allowed_pids); /** * project metadata */ global $Proj; /** * initialize variables */ $plugin_title = "Derive Treatment Started (trt_suppex_txstat)"; /** * plugin title */ echo "<h3>$plugin_title</h3>"; /** * MAIN LOOP */ $fields = array("dm_rfstdtc", "trt_suppex_txstat"); $data = REDCap::getData('array', $subjects, $fields, $Proj->firstEventId); if ($debug && $subjects != '') { show_var($data); } foreach ($data AS $subject_id => $subject) { foreach ($subject AS $event_id => $event) { $started = $event['dm_rfstdtc'] == '' ? 'N' : 'Y'; update_field_compare($subject_id, $project_id, $event_id, $started, $event['trt_suppex_txstat'], 'trt_suppex_txstat', $debug); } }
if ($subject[$first_event_id]['dm_brthyr'] != '') { $birth_year = $subject[$first_event_id]['dm_brthyr']; } elseif ($subject[$first_event_id]['dm_brthdtc'] != '') { $birth_year = substr($subject[$first_event_id]['dm_brthdtc'], 0, 4); } else { $birth_year = ''; } if ($birth_year != '' && $subject[$first_event_id]['weight_suppvs_wtkg'] != '') { foreach ($chem_values as $chem_event => $values) { unset($creatinine_clearance); $chem_age = (substr($values['chem_lbdtc'], 0, 4)) - $birth_year; $creatinine_clearance = round(((140 - $chem_age) * $subject[$first_event_id]['weight_suppvs_wtkg'] * $sex_factor) / (72 * $values['creat_lbstresn'])); update_field_compare($subject_id, $project_id, $chem_event, $creatinine_clearance, $values['crcl_lborres'], 'crcl_lborres', $debug); $chem_im_age = (substr($values['chem_im_lbdtc'], 0, 4)) - $birth_year; $creatinine_im_clearance = round(((140 - $chem_im_age) * $subject[$first_event_id]['weight_suppvs_wtkg'] * $sex_factor) / (72 * $values['creat_im_lbstresn'])); update_field_compare($subject_id, $project_id, $chem_event, $creatinine_im_clearance, $values['crcl_im_lborres'], 'crcl_im_lborres', $debug); } } /** * APRI */ // $chem_fields = array('chem_lbdtc', 'ast_lbstresn'); // $cbc_data = REDCap::getData('array', '', $cbc_fields); // foreach ($cbc_values AS $cbc_event => $values) { // $apri_score = ''; // if ($event['cbc_lbdtc'] != '' && $event['plat_lbstresn'] != '' && is_numeric($event['plat_lbstresn'])) { // foreach ($chem_data AS $chem_subject) { // foreach ($chem_subject AS $chem_event) { // if ($chem_event['chem_lbdtc'] != '' && $chem_event['ast_lbstresn'] != '' && $chem_event['chem_lbdtc'] == $event['cbc_lbdtc'] && is_numeric($chem_event['ast_lbstresn'])) { // $apri_score = (string)round(((($chem_event['ast_lbstresn'] / $uln) / $event['plat_lbstresn']) * 100), 2); // }
/** * @param $record * @param $debug */ public static function setTrtDuration($record, $debug) { /** * derive treatment duration and therefore arm from randomized treatment and duration selected in this form */ global $Proj, $project_id; $first_event_id = $Proj->firstEventId; $trt = self::getTrtInfo($record); if ($debug) { error_log(print_r($trt, true)); } $prescribed_duration = get_single_field($record, $project_id, $first_event_id, 'dm_suppex_trtdur', null); if (!isset($prescribed_duration) || $prescribed_duration == '') { update_field_compare($record, $project_id, $first_event_id, $trt['dur'], $prescribed_duration, 'dm_suppex_trtdur', $debug); } }
$stack[] = $event[$endt_prefix . '_cmendtc']; } } } sort($start_stack); sort($stack); if ($debug) { show_var($start_stack, 'START STACK sort', 'red'); show_var($stack, 'STACK sort', 'red'); } $last_date_in_start_stack = array_pop($start_stack); $last_date_in_stack = array_pop($stack); $stop_date = $last_date_in_stack <= $last_date_in_start_stack ? null : $last_date_in_stack; update_field_compare($subject_id, $project_id, $baseline_event_id, $stop_date, $subject[$baseline_event_id]['dis_suppfa_txendt'], 'dis_suppfa_txendt', $debug); /** * HCV treatment duration * dm_rfstdtc, dis_suppfa_txendt, dis_dsstdy */ if (isset($stop_date)) { $tx_start_date_obj = new DateTime($tx_start_date); $tx_stop_date_obj = new DateTime($stop_date); $tx_duration = $tx_start_date_obj->diff($tx_stop_date_obj); $dis_dsstdy = $tx_duration->format('%R%a') + 1; update_field_compare($subject_id, $project_id, $baseline_event_id, $dis_dsstdy, $subject[$baseline_event_id]['dis_dsstdy'], 'dis_dsstdy', $debug); } } } $timer['main_end'] = microtime(true); $init_time = benchmark_timing($timer); echo $init_time;