Files
config-pacs-docker/nv/html/nv-nopdf/viewer.php
2025-02-26 14:49:25 +07:00

839 lines
36 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
if (!defined("INDEXPHP")) {
die('Direct access not permitted');
}
// include_once("config.php");
// $db = new Database("localhost","root","12Digit","pacsdb_his",3306);
// $dbhis = new Database("192.168.2.7","remote","12Digit","rsabt201107",3306);
global $thumb, $session_uniqid;
$session_uniqid = uniqid();
$AccessionNumber = "CT.181001.017";
$AccessionNumber = "MR.180913.007";
$AccessionNumber = "MR.180915.014";
$AccessionNumber = "MRBRAIN19";
$AccessionNumber = "MR.WHOLE.01";
$AccessionNumber = "MR.180505.026";
$AccessionNumber = "CT.181001.017";
$AccessionNumber = $_GET["AccessionNumber"];
$url = XOCP_SERVER . XOCP_SERVER_SUBDIR . "/query.php?method=view&AccessionNumber=${AccessionNumber}";
$json = file_get_contents($url);
$thumb = "";
$rstudy = "";
$patient_mrn = "";
$expvars = array();
if ($vars = json_decode($json, TRUE)) {
$patient_mrn = $vars["study"]["patient_mrn"];
// var_dump($vars);
$url = XOCP_SERVER . XOCP_SERVER_SUBDIR . "/query.php?PatientID=" . urlencode($patient_mrn);
$json_studies = file_get_contents($url);
// var_dump(json_decode($json_studies, TRUE));
if ($studies = json_decode($json_studies, TRUE)) {
$study_no = 0;
foreach ($studies["studies"] as $ks => $vs) {
$accession_nox = $vs["accession_no"];
$study_descriptionx = strtoupper($vs["study_description"]);
$study_no++;
$study_datetimex = $vs["study_datetime"];
$hdr_id = uniqid();
if ($accession_nox == $AccessionNumber) {
$vars["study"]["study_no"] = $study_no;
$thumb .= "<div class='thumbnailHeader current' onclick='toggle_thumb(\"thumb_header_${hdr_id}\",this,event);' data-value='$study_no'>"
. "<div class='thumbnailStudyNumber'>$study_no</div>"
. "$study_descriptionx"
. "<div class='thumbnailStudyDatetime'>$study_datetimex <span style='padding-left:3em;'>$accession_nox</span></div>"
. "</div>";
$thumb .= "<div id='thumb_header_${hdr_id}' class='thumbNailContainer active'>";
if (is_array($vars["study"]["expertise"]) && count($vars["study"]["expertise"]) > 0) {
foreach ($vars["study"]["expertise"] as $exp) {
$exp_id = uniqid();
$thumb .= "
<div class='expertiseEntry noselect m-t-1 m-b-2' draggable='false'>
<div class='p-x-1' draggable='false'>
<div class='thumb-expertise' data-value='$exp_id'>Expertise</div>
</div>
</div>";
$exp["study_no"] = $study_no;
$exp["study_description"] = $study_descriptionx;
$exp["study_datetime"] = $study_datetimex;
$exp["accession_no"] = $accession_nox;
$expvars[$exp_id] = $exp;
}
}
$study_description = $vars["study"]["study_description"];
foreach ($vars["study"]["series"] as $k => $v) {
$number_of_instances = $v["number_of_instances"];
$series_number = $v["series_number"];
$series_iuid = $v["series_iuid"];
$img_url = $v["thumbnail"];
// $imgs = resize_center_image(193,123,file_get_contents($img_url),90);
// $img_base64 = base64_encode($imgs);
$series_description = strtoupper($v["series_description"]);
$thumb_id = uniqid();
// <!-- img class='static-image' src='data:image/jpeg;base64,${img_base64}' draggable='false'/ -->
$thumb .= "
<div id='$thumb_id' class='thumbnailEntry noselect m-t-1 m-b-2 draggable' draggable='true' data-value='$series_iuid'>
<div class='p-x-1' draggable='false'>
<div class='imageThumbnail' draggable='false'>
<div class='imageThumbnailCanvas' draggable='false'>
<img class='static-image' src='$img_url' draggable='false'/>
</div>
</div>
</div>
<div class='seriesDetails flex-h m-x-1'>
<div class='seriesDescription flex-grow'>
${series_description}
</div>
<div class='seriesInformation'>
<div class='item item-series clearfix'>
<div class='icon'>S:</div>
<div class='value'>${series_number}</div>
</div>
<div class='item item-frames clearfix'>
<div class='icon'><div></div></div>
<div class='value'>${number_of_instances}</div>
</div>
</div>
</div>
</div>
";
}
$thumb .= "</div>";
} else {
$thumb .= "<div class='thumbnailHeader' onclick='toggle_thumb(\"thumb_header_${hdr_id}\",this,event);' data-value='$study_no'>"
. "<div class='thumbnailStudyNumber'>$study_no</div>"
. "$study_descriptionx"
. "<div class='thumbnailStudyDatetime'>$study_datetimex <span style='padding-left:3em;'>$accession_nox</span></div>"
. "</div>";
$thumb .= "<div id='thumb_header_${hdr_id}' class='thumbNailContainer' data-value='$accession_nox'>"
. "<div class='thumbNailContainerloadingIndicator'><p>Loading... <i class='fa fa-spin fa-circle-o-notch fa-fw'></i></p></div>"
. "</div>";
}
}
}
$json = json_encode($vars);
}
$json_exp = json_encode($expvars);
/// 1.3.46.670589.33.1.20396240832008323910.30472447403454280556
// http://192.168.2.5:8080/wado?requestType=WADO&studyUID=${study_iuid}&seriesUID=${series_iuid}&objectUID=${sop_iuid}&columns=128
?><html>
<head>
<meta charset="utf-8" />
<title><?php echo XOCP_BANNER_TITLE; ?></title>
<meta name="description" content="<?php echo XOCP_BANNER_TITLE; ?>">
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1,maximum-scale=1,user-scalable=no">
<link rel="shortcut icon" type="image/png" href="images/logo.png" sizes="16x16 32x32 64x64">
<!--Best display for mobile devices-->
<meta http-equiv="cleartype" content="on">
<meta name="MobileOptimized" content="320">
<meta name="HandheldFriendly" content="True">
<meta name="apple-mobile-web-app-capable" content="yes">
<link rel="stylesheet" type="text/css" href="styles/main.css?serial=<?php echo $session_uniqid; ?>">
<link rel="stylesheet" type="text/css" href="styles/inline.css?serial=<?php echo $session_uniqid; ?>">
<script type="text/javascript" src="scripts/main.js?serial=<?php echo $session_uniqid; ?>"></script>
<!-- include dialog polyfill -->
<link rel="stylesheet" type="text/css" href="styles/dialog-polyfill.css?serial=<?php echo $session_uniqid; ?>">
<script type="text/javascript" src="scripts/dialog-polyfill.js"></script>
<script type="text/javascript" src="scripts/hammer.js"></script>
<!-- include the cornerstone library -->
<script type="text/javascript" src="scripts/cornerstone/cornerstone.js"></script>
<script type="text/javascript" src="scripts/cornerstone/cornerstoneMath.min.js"></script>
<script type="text/javascript" src="scripts/cornerstone/cornerstoneTools.min.js"></script>
<!-- include the dicomParser library as the WADO image loader depends on it -->
<script type="text/javascript" src="scripts/dicom/uids.js"></script>
<script type="text/javascript" src="scripts/dicom/dicomParser.min.js"></script>
<!-- include the dicomParser library as the WADO image loader depends on it -->
<script type="text/javascript" src="scripts/dicom/dicomParser.min.js"></script>
<!-- BEGIN Optional Codecs -->
<!-- OpenJPEG based jpeg 2000 codec -->
<script type="text/javascript" src="scripts/codecs/openJPEG-FixedMemory.js"></script>
<!-- JPEG-LS codec -->
<script type="text/javascript" src="scripts/codecs/charLS-FixedMemory-browser.js"></script>
<!-- JPEG Lossless codec -->
<script type="text/javascript" src="scripts/codecs/jpegLossless.js"></script>
<!-- JPEG Baseline codec -->
<script type="text/javascript" src="scripts/codecs/jpeg.js"></script>
<!-- Deflate transfer syntax codec -->
<script type="text/javascript" src="scripts/codecs/pako.min.js"></script>
<!-- END Optional Codecs -->
<!-- include the cornerstoneWADOImageLoader library -->
<script type="text/javascript" src="scripts/cornerstone/cornerstoneWADOImageLoader.js?serial=1"></script>
<!-- <script type="text/javascript" src="scripts/cornerstone/cornerstoneWADOImageLoaderCodecs.js"></script> -->
<!-- <script type="text/javascript" src="scripts/cornerstone/cornerstoneWADOImageLoaderWebWorker.js"></script> -->
<script type="text/javascript" src="scripts/initWebWorker.js?serial=5"></script>
</head>
<body class="stretch">
<dialog id='image_download_dialog' style="z-index: 1065;">
<div data-key="" class="modal-c">
<div class="modal-header">
<button class="close">
<span>×</span>
</button>
<h4 class="modal-title">
<span>Download Image</span>
</h4>
</div>
<div class='modal-body'>
<div>Please specify filename. Output file will be PNG type.</div>
<div class="form-themed">
<div style="padding:0.5em;">
<table class="modal-table" style="width:80%">
<tbody>
<tr>
<td style="text-align:right;">File Name : </td>
<td><input type="text" id="filename" class="form-control" value="image" /></td>
</tr>
<!-- tr>
<td>File type</td>
<td>
<input type="radio" name="filetype" id="filetype_png" checked="1" value="png">&nbsp;&nbsp;<label class="modal-label" for="filetype_png">PNG</label>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="radio" name="filetype" id="filetype_jpg" value="jpg">&nbsp;&nbsp;<label class="modal-label" for="filetype_jpg">JPEG</label>
</td>
</tr -->
</tbody>
</table>
</div>
<div>
<div class="modal-image-preview-container">
<div>Image Preview</div>
<img id="imgpreview" class="modal-image-preview" />
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-cancel btn-secondary form-action">
Cancel
</button>
<button class="btn btn-download btn-primary form-action">
Download Image
</button>
</div>
</div>
</dialog>
<script type="text/javascript">
cornerstoneTools.external.cornerstone = cornerstone;
cornerstoneTools.external.Hammer = Hammer;
startup();
var data = <?php echo $json; ?>;
var server = '<?php echo XOCP_SERVER . XOCP_SERVER_SUBDIR; ?>';
var data_exp = <?php echo $json_exp; ?>;
document.addEventListener('DOMContentLoaded', function(event) {
init_layout();
enable_tools();
load_study(data);
loadTemplate('template/viewport_multi.html?serial=21', function(el) {
viewport_multi_template = el;
loadTemplate('template/viewport.html?serial=16', function(el) {
viewport_template = el;
layoutManager.setLayout(1, 1); // initial layout
useStack('1x1', 0); /// use the first series on viewport 1x1
loadTemplate('template/thumbnail.html?serial=2', function(el) {
thumbnail_template = el;
loadTemplate('template/expertise.html?serial=23', function(el) {
expertise_template = el;
});
});
});
});
init_final();
});
</script>
<!-- div class="header noselect">
<div class="clearfix">
<a target="_blank" class="brand pull-left">
<div class="logo-text"><?php echo XOCP_BANNER_TITLE; ?></div>
</a>
<a href="#" class="header-menu pull-right">
</a>
</div>
</div -->
<div class="viewerDialogs">
<dialog id="cineDialog" style="width: 290px; left: 869px; top: 24px;" class="bounded">
<form id="cineDialogForm" class="dialog-animated noselect double-row-style" data-key="">
<input type="hidden" data-key="intervalId">
<div class="button-close-container">
<div class="button-close"><span aria-hidden="true">x</span></div>
</div>
<div class="cine-controls">
<div class="btn-group">
<button class="btn form-action" disabled="disabled" title="Skip to first image" data-key="">
<i class="fa fa-fast-backward"></i>
</button>
<button class="btn form-action" disabled="disabled" title="Previous image" data-key="">
<i class="fa fa-step-backward"></i>
</button>
<button class="btn form-action" disabled="disabled" title="Play / Stop" data-key="">
<i class="fa fa-fw fa-play"></i>
</button>
<button class="btn form-action" disabled="disabled" title="Next image" data-key="">
<i class="fa fa-step-forward"></i>
</button>
<button class="btn form-action" disabled="disabled" title="Skip to last image" data-key="">
<i class="fa fa-fast-forward"></i>
</button>
</div>
</div>
<div class="cine-options">
<div class="fps-section">
<div class="wrapperLabel form-group m-a-0" data-key="framesPerSecond">
<span class="wrapperText"></span>
<input type="range" class="form-control p-a-0" min="1" max="90" maxlength="90">
</div>
</div>
<span id="fps">24.0 fps</span>
</div>
<div class="cine-navigation">
<div class="btn-group">
<button class="btn form-action" disabled="disabled" title="Previous display set" data-key="">
<i class="fa fa-toggle-up"></i>
</button>
<button class="btn form-action" title="Next display set" data-key="">
<i class="fa fa-toggle-down"></i>
</button>
</div>
</div>
</form>
</dialog>
<div id="layoutChooser" class="layoutChooser dialog-animated">
<table>
<tr>
<td class="hover"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</div>
<dialog id="annotationDialog" class="annotationDialog noselect" style="bottom: 0px; right: 0px;">
<h5>Enter your annotation</h5>
<div class="annotationTextInputOptions">
<label for="annotationTextInput">New label</label>
<input name="annotationTextInput" class="annotationTextInput" type="text" tabindex="-1" autocomplete="off">
</div>
<a class="annotationDialogConfirm btn btn-sm btn-primary">OK</a>
</dialog>
<dialog id="relabelAnnotationDialog" class="annotationDialog noselect" oncontextmenu="return false">
<h5>Edit your annotation</h5>
<div class="annotationTextInputOptions">
<label for="annotationTextInput">New label</label>
<input name="annotationTextInput" class="annotationTextInput" type="text" tabindex="-1" autocomplete="off" />
</div>
<div>
<a class="relabelRemove btn btn-sm btn-secondary">Remove marker</a>
<a class="relabelConfirm btn btn-sm btn-primary">OK</a>
</div>
</dialog>
<!-- Hanging Protocol dialogs -->
<div class="ruleEntryDialog dialog-animated">
<div class="dialogHeader">
<h5>Rule Editor</h5>
</div>
<div class="dialogContent">
<div class="row">
<div class="col-xs-12">
<select class="attributes" style="width: 95%;"></select>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<select class="comparators select2-hidden-accessible" style="width: 95%;" tabindex="-1" aria-hidden="true">
<option value="equals">= (Equals)</option>
<option value="doesNotEqual">!= (Does not equal)</option>
<option value="contains">Contains</option>
<option value="doesNotContain">Does not contain</option>
<option value="startsWith">Starts with</option>
<option value="endsWith">Ends with</option>
<option value="onlyInteger">Only Integers</option>
<option value="greaterThan">&gt; (Greater than)</option>
<option value="greaterThanOrEqualTo">&gt;= (Greater than or equal to)</option>
<option value="lessThanOrEqualTo">&lt;= (Less than or equal to)</option>
<option value="lessThan">&lt; (Less than)</option>
<option value="odd">Odd</option>
<option value="even">Even</option>
</select>
<span class="select2 select2-container select2-container--default" dir="ltr" style="width: 95%;"><span class="selection"><span class="select2-selection select2-selection--single" role="combobox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-labelledby="select2-imsc-container"><span class="select2-selection__rendered" id="select2-imsc-container" title="= (Equals)">= (Equals)</span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span></span></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<input class="currentValue" type="text">
</div>
</div>
</div>
<div class="dialogFooter">
<button id="cancel" class="btn btn-link" tabindex="1">Cancel</button>
<button id="save" class="btn btn-primary" tabindex="0">OK</button>
</div>
</div>
<div class="settingEntryDialog dialog-animated">
<div class="dialogHeader">
<h5>Viewport Setting Editor</h5>
</div>
<div class="dialogContent">
<div class="row">
<div class="col-xs-12">
<select class="settings" style="width: 95%;"></select>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<select class="currentValue" style="width: 95%;"></select>
</div>
</div>
</div>
<div class="dialogFooter">
<button id="cancel" class="btn btn-link" tabindex="1">Cancel</button>
<button id="save" class="btn btn-primary" tabindex="0">OK</button>
</div>
</div>
<div class="textEntryDialog dialog-animated">
<div class="dialogHeader">
<h4 class="title"></h4>
</div>
<div class="dialogContent">
<div class="row">
<div class="col-xs-12">
<h5 class="instructions"></h5>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<input class="currentValue" type="text">
</div>
</div>
</div>
<div class="dialogFooter">
<button class="cancel btn btn-link" tabindex="1">Cancel</button>
<button class="save btn btn-primary" tabindex="0">OK</button>
</div>
</div>
</div>
<div id="viewer">
<div class="toolbarSection noselect p-x-2">
<div class="clearfix">
<div class="pull-left m-t-1">
<div class="roundedButtonGroup clearfix center-table">
<a class="roundedButtonWrapper noselect" data-value="studies">
<div class="roundedButton">
<svg style="width: 15px; height: 13px">
<use xlink:href="assets/icons.svg#icon-studies"></use>
</svg>
</div>
<div class="bottomLabel">Series</div>
</a>
</div>
</div>
<div class="toolbarSectionTools pull-left m-t-1 rm-l-3">
<div id="stackScroll" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerTool">
<div class="svgContainer">
<i class="fa fa-bars"></i>
</div>
<div class="buttonLabel">
<span>Stack Scroll</span>
</div>
</div>
<div id="wwwc" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerTool active">
<div class="svgContainer">
<svg>
<use xlink:href="assets/icons.svg#icon-tools-levels"></use>
</svg>
</div>
<div class="buttonLabel">
<span>Levels</span>
</div>
</div>
<div id="zoom" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerTool">
<div class="svgContainer">
<svg>
<use xlink:href="assets/icons.svg#icon-tools-zoom"></use>
</svg>
</div>
<div class="buttonLabel">
<span>Zoom</span>
</div>
</div>
<div id="pan" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerTool">
<div class="svgContainer">
<svg>
<use xlink:href="assets/icons.svg#icon-tools-pan"></use>
</svg>
</div>
<div class="buttonLabel">
<span>Pan</span>
</div>
</div>
<div id="length" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerTool">
<div class="svgContainer">
<svg>
<use xlink:href="assets/icons.svg#icon-tools-measure-temp"></use>
</svg>
</div>
<div class="buttonLabel">
<span>Length</span>
</div>
</div>
<div id="annotate" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerTool">
<div class="svgContainer">
<svg>
<use xlink:href="assets/icons.svg#icon-tools-measure-non-target"></use>
</svg>
</div>
<div class="buttonLabel">
<span>Annotate</span>
</div>
</div>
<div id="angle" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerTool">
<div class="svgContainer">
<i class="fa fa-angle-left"></i>
</div>
<div class="buttonLabel">
<span>Angle</span>
</div>
</div>
<div id="toggleDownloadDialog" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerCommand">
<div class="svgContainer">
<i class="fa fa-camera"></i>
</div>
<div class="buttonLabel">
<span>Download</span>
</div>
</div>
<div id="resetViewport" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerCommand">
<div class="svgContainer">
<i class="fa fa-undo"></i>
</div>
<div class="buttonLabel">
<span>Reset</span>
</div>
</div>
<div id="clearTools" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerCommand">
<div class="svgContainer">
<i class="fa fa-trash"></i>
</div>
<div class="buttonLabel">
<span>Clear</span>
</div>
</div>
<div id="previousDisplaySet" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerCommand disabled">
<div class="svgContainer">
<i class="fa fa-toggle-up fa-fw"></i>
</div>
<div class="buttonLabel">
<span>Previous</span>
</div>
</div>
<div id="nextDisplaySet" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerCommand disabled">
<div class="svgContainer">
<i class="fa fa-toggle-down fa-fw"></i>
</div>
<div class="buttonLabel">
<span>Next</span>
</div>
</div>
<!--
<div id="toggleCinePlay" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerCommand disabled">
<div class="svgContainer">
<i class="fa fa-fw fa-play"></i>
</div>
<div class="buttonLabel">
<span>Play</span>
</div>
</div>
<div id="toggleCineDialog" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerCommand disabled">
<div class="svgContainer">
<i class="fa fa-youtube-play"></i>
</div>
<div class="buttonLabel">
<span>CINE</span>
</div>
</div>
-->
<div id="layout" class="toolbarSectionButton rp-x-1 js-dropdown-toggle" title="Layout" data-target="#layoutChooser">
<div class="svgContainer" style='transform:translate(0px,3px);'>
<i class="fa fa-th-large"></i>
</div>
<div class="buttonLabel">
Layout
</div>
</div>
<div id="toggleMore" tabindex="1" class="toolbarSectionButton rp-x-1 rm-l-3 expandable">
<div class="svgContainer">
<svg>
<use xlink:href="assets/icons.svg#icon-tools-more"></use>
</svg>
</div>
<div class="buttonLabel">
<span>More</span>
<i class="fa fa-caret-down expanded-status" aria-hidden="true"></i>
</div>
<div class="toolbarSectionDrawerContainer">
<div class="toolbarSectionDrawer">
<div id="crosshairs" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerTool">
<div class="svgContainer">
<i class="fa fa-crosshairs"></i>
</div>
<div class="buttonLabel">
<span>Crosshairs</span>
</div>
</div>
<div id="magnify" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerTool">
<div class="svgContainer">
<i class="fa fa-circle"></i>
</div>
<div class="buttonLabel">
<span>Magnify</span>
</div>
</div>
<div id="wwwcRegion" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerTool">
<div class="svgContainer">
<i class="fa fa-square"></i>
</div>
<div class="buttonLabel">
<span>ROI Window</span>
</div>
</div>
<div id="dragProbe" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerTool">
<div class="svgContainer">
<i class="fa fa-dot-circle-o"></i>
</div>
<div class="buttonLabel">
<span>Probe</span>
</div>
</div>
<div id="ellipticalRoi" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerTool">
<div class="svgContainer">
<i class="fa fa-circle-o"></i>
</div>
<div class="buttonLabel">
<span>Ellipse</span>
</div>
</div>
<div id="rectangleRoi" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerTool">
<div class="svgContainer">
<i class="fa fa-square-o"></i>
</div>
<div class="buttonLabel">
<span>Rectangle</span>
</div>
</div>
<div id="invert" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerCommand">
<div class="svgContainer">
<i class="fa fa-adjust"></i>
</div>
<div class="buttonLabel">
<span>Invert</span>
</div>
</div>
<div id="rotateR" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerCommand">
<div class="svgContainer">
<svg>
<use xlink:href="assets/icons.svg#icon-tools-rotate-right"></use>
</svg>
</div>
<div class="buttonLabel">
<span>Rotate Right</span>
</div>
</div>
<div id="flipH" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerCommand">
<div class="svgContainer">
<svg>
<use xlink:href="assets/icons.svg#icon-tools-flip-horizontal"></use>
</svg>
</div>
<div class="buttonLabel">
<span>Flip H</span>
</div>
</div>
<div id="flipV" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerCommand">
<div class="svgContainer">
<svg>
<use xlink:href="assets/icons.svg#icon-tools-flip-vertical"></use>
</svg>
</div>
<div class="buttonLabel">
<span>Flip V</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!--
<div class="pull-right m-t-1 rm-x-1">
<div class="roundedButtonGroup clearfix center-table">
<a class="roundedButtonWrapper noselect" data-value="measurements">
<div class="roundedButton">
<svg style="width: 18px; height: 10px">
<use xlink:href="assets/icons.svg#icon-measurements-lesions"></use>
</svg>
</div>
<div class="bottomLabel">Measurements</div>
</a>
</div>
</div>
-->
<div class="pull-right m-t-2 rm-x-1">
<div id="viewSeriesButton" tabindex="1" class="toolbarSectionButton rp-x-1 imageViewerCommand">
<div class="svgContainer">
<svg>
<use xlink:href="assets/icons.svg?serial=5#icon-command-view-instances"></use>
</svg>
</div>
<div class="buttonLabel">
<span>View Instances</span>
</div>
</div>
</div>
</div>
</div>
<div class="viewerSection">
<div class="sidebarMenu sidebar-left">
<div class="studyBrowser">
<div class="scrollableStudyThumbnails">
<?php echo $rstudy . $thumb; ?>
</div>
</div>
</div>
<div id="mainContent" class="mainContent">
<div class="viewerMain">
<div id="layoutManagerTarget" class="layout-1-1">
<div id="imageViewerViewports"></div>
</div>
</div>
</div>
<div id="seriesViewer" class="seriesViewer" style="display:none;">
<div class="viewerMain">
<div class="layout-1-1">
<div id="seriesViewerContainer" style='height:100%;width:100%;'></div>
</div>
</div>
</div>
<div id="expertiseViewer" class="expertiseViewer" style="display:none;">
<div class="viewerMain">
<div class="layout-1-1">
<div id="expertiseViewerContainer" style='height:100%;width:100%;'></div>
</div>
</div>
</div>
<div class="sidebarMenu sidebar-right">
<div id="measurementLightTableContainer" class="flex-v">
<div class="measurementLightTableHeaderContainer">
<div class="measurementLightTableHeader">
<div class="studyDateLabel">
Study date:
</div>
<div class="studyDate">
01-Oct-18
</div>
</div>
</div>
<div class="scroll-area measurementLightTableView flex-grow fit">
<div class="scrollable scroll-y" style="margin-right: 0px; margin-bottom: 0px;">
<div class="measurementLightTableHeaderRow">
<div class="type">Measurements</div>
<div class="numberOfMeasurements">0</div>
</div>
</div>
<div class="scroll-nav scroll-nav-up"></div>
<div class="scroll-nav scroll-nav-down"></div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>