quick minor path updates (#1968)
[openemr.git] / library / dicom_frame.php
blob922a2e3cc6bd0e86880231cf360ec231ab3cc899
1 <?php
2 /**
3 * Dicom viewer wrapper script for documents
5 * @package OpenEMR
6 * @link http://www.open-emr.org
7 * @author Jerry Padgett <sjpadgett@gmail.com> 'Viewer wrapper'
8 * @author Victor Kofia <https://kofiav.com> 'Viewer'
9 * @copyright Copyright (c) 2018 Jerry Padgett <sjpadgett@gmail.com>
10 * @copyright Copyright (c) 2017-2018 Victor Kofia <https://kofiav.com>
11 * @license https://www.gnu.org/licenses/agpl-3.0.en.html GNU Affero General Public License 3
14 /* Warning: This script wraps the Dicom viewer which is HTML5 compatible only and bootstrap styling
15 * should not be used inside this script due to style conflicts with viewer, namely, hidden class.
18 require_once('../interface/globals.php');
20 $web_path = $_REQUEST['web_path'];
21 $patid = $_REQUEST['patient_id'];
22 $docid = isset($_REQUEST['document_id']) ? $_REQUEST['document_id'] : $_REQUEST['doc_id'];
23 $d = new Document(attr($docid));
24 $type = '.dcm';
25 if ($d->get_mimetype() == 'application/dicom+zip') {
26 $type = '.zip';
29 $web_path .= '&retrieve&patient_id=' . attr($patid) . '&document_id=' . attr($docid) . '&as_file=false&type=' . attr($type);
32 <!DOCTYPE html>
33 <html>
34 <head>
35 <link rel="stylesheet" href="<?php echo $css_header;?>" type="text/css">
36 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/jquery/dist/jquery.min.js"></script>
37 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/manual-added-packages/modernizr-3-5-0/dist/modernizr-build.js"></script>
38 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/i18next/dist/umd/i18next.min.js"></script>
39 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/i18next-xhr-backend/dist/umd/i18nextXHRBackend.min.js"></script>
40 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/i18next-browser-languagedetector/dist/umd/i18nextBrowserLanguageDetector.min.js"></script>
41 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/konva/konva.min.js"></script>
42 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/magic-wand-js/js/magic-wand-min.js"></script>
43 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/jszip/dist/jszip.min.js"></script>
44 <!-- Third party (viewer) -->
45 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/flot/jquery.flot.js"></script>
46 <!-- decoders -->
47 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/dwv/decoders/pdfjs/jpx.js"></script>
48 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/dwv/decoders/pdfjs/util.js"></script>
49 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/dwv/decoders/pdfjs/arithmetic_decoder.js"></script>
50 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/dwv/decoders/pdfjs/jpg.js"></script>
51 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/dwv/decoders/rii-mango/lossless-min.js"></script>
52 <!-- Local (dwv) -->
53 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/dwv/dist/dwv.min.js"></script>
54 <!-- i18n dwv wrapper -->
55 <script type="text/javascript" src="<?php echo $GLOBALS['web_root']?>/library/js/dwv/dwv_i18n.js"></script>
56 </head>
57 <style type="text/css">
58 .warn_diagnostic {
59 margin: 10px auto 10px auto;
60 color: rgb(255, 0, 0);
61 font-size: 1.5em;
64 .ui-autocomplete {
65 position: absolute;
66 top: 0;
67 left: 0;
68 min-width: 200px;
69 cursor: default;
72 .ui-menu-item {
73 min-width: 200px;
76 .fixed-height {
77 min-width: 200px;
78 padding: 1px;
79 max-height: 35%;
80 overflow: auto;
83 .loader {
84 position: absolute;
85 left: 25%;
86 top: 15%;
87 z-index: 1;
88 border: 12px solid #f3f3f3;
89 border-radius: 50%;
90 border-top: 12px solid #3498db;
91 width: 60px;
92 height: 60px;
93 -webkit-animation: spin 2s linear infinite; /* Safari */
94 animation: spin 2s linear infinite;
97 /* Safari */
98 @-webkit-keyframes spin {
99 0% {
100 -webkit-transform: rotate(0deg);
102 100% {
103 -webkit-transform: rotate(360deg);
107 @keyframes spin {
108 0% {
109 transform: rotate(0deg);
111 100% {
112 transform: rotate(360deg);
115 </style>
116 <body>
117 <!-- DWV -->
118 <div id="dwv" src='<?php echo $web_path ?>'>
119 <!-- Toolbar -->
120 <div class="toolbar"></div>
121 <div class="warn_diagnostic"><?php echo xlt('Not For Diagnostic Use') ?>
122 <!-- Layer Container -->
123 <div class="layerContainer">
124 <span class="loader"></span>
125 <canvas id="dwvimg" class="imageLayer"><?php echo xlt('Only for HTML5 compatible browsers.') ?></canvas>
126 </div>
127 <!-- /layerContainer -->
128 </div><!-- /dwv -->
129 <!-- Main -->
130 <script type="text/javascript" src="<?php echo $GLOBALS['web_root'] ?>/library/js/dwv/dicom_gui.js"></script>
131 <script type="text/javascript" src="<?php echo $GLOBALS['web_root'] ?>/library/js/dwv/dicom_launcher.js"></script>
132 <script>
133 var msg = '<?php echo xlt("Still Loading...") ?>';
134 var canvas = document.getElementById("dwvimg");
135 var ctx = canvas.getContext("2d");
136 ctx.font = "22px Arial";
137 ctx.fillStyle = "red";
138 $(window).on("load", function () {
139 ctx.fillText(msg, 10, 100);
140 $('.loader').toggle();
142 </script>
143 </body>
144 </html>