});

	});
</script>

<?php 
echo heading($page_title, 2);
?>
<div id="accordion">
	<?php 
echo heading(lang('contact_details'), 3);
?>
	<div class="pure-g">
		<div class="pure-u-3-5">	
			<?php 
echo sprintf(lang('now_calling'), name($participant), gender($participant->gender), dob($participant->dateofbirth), age_in_months($participant));
?>
			<?php 
if ($participation->nrcalls > 0 && !empty($previous_call)) {
    echo '<p><em>';
    echo sprintf(lang('already_called'), name($participant), $participation->nrcalls, output_date($participation->lastcalled), lcfirst(lang($previous_call->status)));
    echo '</em></p>';
}
?>
		
				<!-- Contact details -->
			<?php 
echo sprintf(lang('call_contact'), $participant->firstname, parent_name($participant));
?>
		
			<br> <br>
 /** Creates a .csv-file from a table of scores (testinvite_id -> score) */
 function scores_to_csv($test_code, $score_table, $experiment_id = NULL)
 {
     $CI =& get_instance();
     // Retrieve the headers
     $headers = array(lang('reference_number'), lang('gender'), lang('age'), lang('age_md'), lang('dyslexicparent'), lang('multilingual'));
     if ($experiment_id) {
         array_unshift($headers, lang('part_number'));
     }
     // Add test categories
     $test = $CI->testModel->get_test_by_code($test_code);
     $testcats = $CI->testCatModel->get_testcats_by_test($test->id, FALSE, TRUE);
     foreach ($testcats as $testcat) {
         $headers[] = $testcat->code . ' - ' . $testcat->name;
     }
     // For N-CDI: add parent test categories
     if ($test_code == 'ncdi_wz') {
         $parent_testcats = $CI->testCatModel->get_testcats_by_test($test->id, TRUE);
         foreach ($parent_testcats as $parent) {
             $headers[] = $parent->name . ' - ' . lang('raw_score');
             $headers[] = $parent->name . ' - ' . lang('percentile');
             $headers[] = $parent->name . ' - ' . lang('language_age');
         }
     }
     // Add headers to the csv array (later used in fputscsv)
     $csv_array = array();
     $csv_array[] = $headers;
     // Generate array for each row and put in total array
     foreach ($score_table as $testinvite_id => $scores) {
         $testinvite = $CI->testInviteModel->get_testinvite_by_id($testinvite_id);
         $participant = $CI->testInviteModel->get_participant_by_testinvite($testinvite);
         // Add participant data
         $refnr = reference_number($participant);
         $g = $participant->gender;
         $age = age_in_months($participant, $testinvite->datecompleted);
         $agemd = age_in_months_and_days($participant->dateofbirth, $testinvite->datecompleted);
         $d = $participant->dyslexicparent ? $participant->dyslexicparent : lang('no');
         $m = $participant->multilingual ? lang('yes') : lang('no');
         $csv_row = array($refnr, $g, $age, $agemd, $d, $m);
         if ($experiment_id) {
             $participation = $CI->participationModel->get_participation($experiment_id, $participant->id);
             array_unshift($csv_row, $participation->part_number);
         }
         // Add score data
         foreach ($testcats as $testcat) {
             $score = isset($scores[$testcat->id]) ? $scores[$testcat->id] : '';
             array_push($csv_row, $score);
         }
         // For N-CDI: total score data
         if ($test_code == 'ncdi_wz') {
             $totals = create_ncdi_score_array($test, $testinvite, TRUE);
             foreach ($totals as $total) {
                 array_push($csv_row, $total['score'], $total['percentile'], $total['age']);
             }
         }
         // Add row to csv array
         $csv_array[] = $csv_row;
     }
     // Create a new output stream and capture the result in a new object
     $fp = fopen('php://output', 'w');
     ob_start();
     // Create a new row in the CSV file for every in the array
     foreach ($csv_array as $row) {
         fputcsv($fp, $row, ';');
     }
     // Capture the output as a string
     $csv = ob_get_contents();
     // Close the object and the stream
     ob_end_clean();
     fclose($fp);
     return $csv;
 }
Example #3
0
 public function percentiles($test_code, $testinvite_id = NULL)
 {
     $table = array();
     $table['cols'] = array(array('label' => lang('testcat'), 'type' => 'string'), array('label' => lang('gender'), 'type' => 'string'), array('label' => lang('age'), 'type' => 'number'), array('label' => '50ste percentiel', 'type' => 'number'), array('type' => 'string', 'role' => 'tooltip'), array('label' => '99e percentiel', 'type' => 'number', 'role' => 'interval'), array('label' => '85e percentiel', 'type' => 'number', 'role' => 'interval'), array('label' => '15e percentiel', 'type' => 'number', 'role' => 'interval'), array('label' => '1e percentiel', 'type' => 'number', 'role' => 'interval'));
     if ($testinvite_id) {
         $testinvite = $this->testInviteModel->get_testinvite_by_id($testinvite_id);
         $participant = $this->testInviteModel->get_participant_by_testinvite($testinvite);
         $p_gender = $participant->gender;
         $p_age = age_in_months($participant, $testinvite->datecompleted);
         array_push($table['cols'], array('label' => 'Score kind', 'type' => 'number'), array('type' => 'string', 'role' => 'tooltip'));
     }
     $testcat_ids = $this->get_testcat_ids($test_code);
     $percentiles1 = $this->percentileModel->get_percentiles_by_testcats($testcat_ids, array(50));
     $percentiles2 = $this->percentileModel->get_percentiles_by_testcats($testcat_ids, array(1, 15, 50, 85, 99));
     $percentiles = array_merge($percentiles1, $percentiles2);
     $rows = array();
     foreach ($percentiles as $percentile) {
         $unique = implode('_', array($percentile->testcat_id, $percentile->gender, $percentile->age));
         $testcat = $this->testCatModel->get_testcat_by_id($percentile->testcat_id)->name;
         $gender = !empty($percentile->gender) ? gender_sex($percentile->gender) : NULL;
         $rows[$unique]['t'] = array('v' => $testcat);
         $rows[$unique]['g'] = array('v' => $gender);
         $rows[$unique]['a'] = array('v' => intval($percentile->age));
         $rows[$unique][$percentile->percentile] = array('v' => $percentile->score);
         if ($percentile->percentile == 50) {
             $tooltip = 'Score 50ste percentiel na ' . $percentile->age . ' maanden: ' . $percentile->score;
             $rows[$unique]['tt'] = array('v' => $tooltip);
         }
         if (isset($participant) && $percentile->percentile == 1) {
             if ((empty($percentile->gender) || $percentile->gender === $p_gender) && $percentile->age == $p_age) {
                 $score = $this->testCatModel->total_score($percentile->testcat_id, $testinvite_id);
                 $rows[$unique][100] = array('v' => intval($score->score));
                 $tooltip = 'Score kind na ' . $percentile->age . ' maanden: ' . $score->score;
                 $rows[$unique][101] = array('v' => $tooltip);
             } else {
                 $rows[$unique][100] = array('v' => NULL);
                 $rows[$unique][101] = array('v' => NULL);
             }
         }
     }
     $table['rows'] = $this->flatten($rows);
     echo json_encode($table);
 }