Beispiel #1
0
	function DisplayLonitudinalQC($groupid, $protocol) {
	
		$urllist['Groups'] = "longqc.php";
		NavigationBar("Longitudinal QC", $urllist,0,'','','','');
		
		# this only works for study groups
		$sqlstring = "select a.*, b.* from groups a left join group_data b on a.group_id = b.group_id where a.group_id = $groupid";
		//PrintSQL($sqlstring);
		$result = mysql_query($sqlstring) or die("Query failed: " . mysql_error() . "<br><i>$sqlstring</i><br>");
		while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
			$name = $row['group_name'];
			$ownerusername = $row['ownerusername'];
			$grouptype = $row['group_type'];
			$studyid = $row['data_id'];
			$modality = $row['modality'];
			$seriesid = $row[$modality . "series_id"];
			
			$sqlstringA = "select *, unix_timestamp(DATE(series_datetime)) 'seriesdate' from $modality"."_series where study_id = $studyid and series_desc = '$protocol' order by seriesdate asc";
			//PrintSQL($sqlstringA);
			$resultA = mysql_query($sqlstringA) or die("Query failed: " . mysql_error() . "<br><i>$sqlstringA</i><br>");
			while ($rowA = mysql_fetch_array($resultA, MYSQL_ASSOC)) {
				$seriesid = $rowA[$modality."series_id"];
				$seriesdate = $rowA['seriesdate'];
				list($path, $uid, $studynum, $studyid, $subjectid) = GetDataPathFromSeriesID($seriesid, $modality);
				
				$qadir = "$path/qa";
				//echo "$qadir: ";
				
				$sqlstringB = "select * from mr_qa where mrseries_id = $seriesid";
				$resultB = mysql_query($sqlstringB) or die("Query failed: " . mysql_error() . "<br><i>$sqlstringB</i><br>");
				$rowB = mysql_fetch_array($resultB, MYSQL_ASSOC);
				$iosnr = $rowB["io_snr"];
				$pvsnr = $rowB["pv_snr"];
				$motion_rsq = $rowB["motion_rsq"];
				$moveminx = $rowB["move_minx"];
				$moveminy = $rowB["move_miny"];
				$moveminz = $rowB["move_minz"];
				$movemaxx = $rowB["move_maxx"];
				$movemaxy = $rowB["move_maxy"];
				$movemaxz = $rowB["move_maxz"];

				$iosnrs[$seriesdate]['studyid'] = $studyid;
				$iosnrs[$seriesdate]['uid'] = $uid;
				$iosnrs[$seriesdate]['studynum'] = $studynum;
				$iosnrs[$seriesdate]['subjectid'] = $subjectid;
				$iosnrs[$seriesdate]['value']= $iosnr;
				
				$pvsnrs[$seriesdate]['studyid'] = $studyid;
				$pvsnrs[$seriesdate]['uid'] = $uid;
				$pvsnrs[$seriesdate]['studynum'] = $studynum;
				$pvsnrs[$seriesdate]['subjectid'] = $subjectid;
				$pvsnrs[$seriesdate]['value'] = $pvsnr;
				
				$motionrsqs[$seriesdate] = $motion_rsq;
				$moves[$seriesdate]['minx'] = $moveminx;
				$moves[$seriesdate]['miny'] = $moveminy;
				$moves[$seriesdate]['minz'] = $moveminz;
				$moves[$seriesdate]['maxx'] = $movemaxx;
				$moves[$seriesdate]['maxy'] = $movemaxy;
				$moves[$seriesdate]['maxz'] = $movemaxz;
			}
		}
		ksort($iosnrs);
		ksort($pvsnrs);
		ksort($motionrsqs);
		ksort($moves);

		DisplayChart($iosnrs, "IO SNR", 250, 1);
		DisplayChart($pvsnrs, "PV SNR", 250, 2);
		DisplayChart($motionrsqs, "Motion r^2", 250, 3);
	}
Beispiel #2
0
function SearchQC(&$result, $s_resultorder, $s_qcbuiltinvariable, $s_qcvariableid)
{
    //PrintSQLTable($result);
    /* gather scans into longitudinal format */
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        $uid = strtoupper(trim($row['uid']));
        $studydate = trim($row['studydate']);
        $seriesdesc = trim($row['series_desc']);
        $qc[$seriesdesc][$studydate]['io_snr'] = trim($row['io_snr']);
        $qc[$seriesdesc][$studydate]['pv_snr'] = trim($row['pv_snr']);
        $qc[$seriesdesc][$studydate]['move_minx'] = trim($row['move_minx']);
        $qc[$seriesdesc][$studydate]['move_miny'] = trim($row['move_miny']);
        $qc[$seriesdesc][$studydate]['move_minz'] = trim($row['move_minz']);
        $qc[$seriesdesc][$studydate]['move_maxx'] = trim($row['move_maxx']);
        $qc[$seriesdesc][$studydate]['move_maxy'] = trim($row['move_maxy']);
        $qc[$seriesdesc][$studydate]['move_maxz'] = trim($row['move_maxz']);
        $qc[$seriesdesc][$studydate]['totaldispx'] = $row['move_maxx'] - $row['move_minx'];
        $qc[$seriesdesc][$studydate]['totaldispy'] = $row['move_maxy'] - $row['move_miny'];
        $qc[$seriesdesc][$studydate]['totaldispz'] = $row['move_maxz'] - $row['move_minz'];
        $qc[$seriesdesc][$studydate]['motion_rsq'] = trim($row['motion_rsq']);
    }
    ksort($qc);
    //echo "<pre>";
    //print_r($qc);
    //echo "</pre>";
    $i = 0;
    foreach ($qc as $series => $value) {
        ksort($value);
        foreach ($value as $date => $vals) {
            if ($vals['io_snr'] > 0) {
                $iosnrs[$date]['value'] = $vals['io_snr'];
            }
            if ($vals['pv_snr'] > 0) {
                $pvsnrs[$date]['value'] = $vals['pv_snr'];
            }
            if ($vals['totaldispx'] != 0) {
                $dispx[$date]['value'] = $vals['totaldispx'];
            }
            if ($vals['totaldispy'] != 0) {
                $dispy[$date]['value'] = $vals['totaldispy'];
            }
            if ($vals['totaldispz'] != 0) {
                $dispz[$date]['value'] = $vals['totaldispz'];
            }
        }
        if (count($dispx) > 2 || count($iosnrs) > 2 || count($pvsnrs) > 2) {
            ?>
				<table width="100%" style="border: 1px solid #888">
					<tr>
						<td colspan="2"><b>Charts for <?php 
            echo $series;
            ?>
</b></td>
					</tr>
					<tr>
						<td width="50%" valign="top">
						<?php 
            if (count($dispx) > 2) {
                DisplayChart($dispx, $dispy, $dispz, "Total displacement", "X", "Y", "Z", 200, "totaldisp{$i}", 0);
            }
            ?>
						</td>
						<td width="50%" valign="top">
						<?php 
            if (count($iosnrs) > 2) {
                DisplayChart($iosnrs, "", "", "IO SNR", "SNR", "", "", 200, "iosnr{$i}", 0);
            }
            if (count($pvsnrs) > 2) {
                DisplayChart($pvsnrs, "", "", "PV SNR", "SNR", "", "", 200, "pvsnr{$i}", 0);
            }
            ?>
						</td>
					</tr>
				</table>
				<br>
				<?php 
        }
        $dispx = $dispy = $dispz = $iosnr = $pvsnr = "";
        $i++;
    }
}