<?php if (isset($_POST['field_name'])) { $timer['main_start'] = microtime(true); /** * WORKING SET OF STUDY_IDs */ $timer['start_main'] = microtime(true); //$empty_result = db_query("SELECT * FROM redcap_data WHERE project_id = '$project_id' AND value = '' ORDER BY abs(record) ASC"); /** * exclude dm_subjid from query, as RED-I writes orphan records to this field, and we don't want to screw that up, do we? */ $empty_result = db_query("SELECT * FROM redcap_data WHERE project_id = '$project_id' AND field_name = '{$_POST['field_name']}' ORDER BY abs(record) ASC"); if ($empty_result) { while ($empty_row = db_fetch_assoc($empty_result)) { $history = Form::getDataHistoryLog($empty_row['record'], $empty_row['event_id'], $empty_row['field_name']); $all_fields_hidden = $my_branching_logic->allFieldsHidden($empty_row['record'], $empty_row['event_id'], array($empty_row['field_name'])); if ($debug) { /** * pick apart the hidden field logic - something's not right with fib_lbtest logic. ?'null'? */ $fieldsDependent = getDependentFields(array($empty_row['field_name']), false, true); $unique_event_name = $project->getUniqueEventNames($empty_row['event_id']); $record_data = Records::getSingleRecordData($empty_row['record'], array_merge($fieldsDependent, array($empty_row['field_name']))); $logic = $project->metadata[$empty_row['field_name']]['branching_logic']; if ($longitudinal) { $logic = LogicTester::logicPrependEventName($logic, $unique_event_name); } if (LogicTester::isValid($logic)) { $displayField = LogicTester::apply($logic, $record_data); $displayField = $displayField ? false : true; }
$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; }
LEFT OUTER JOIN (SELECT * FROM redcap_events_arms) arm ON arm.arm_id = events_meta.arm_id 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');