some portal work
[openemr.git] / library / dicom_frame.php
blobfede4dadf7c206b6ab220999dd5b95c00d2ddb51
1 <?php
2 /**
3 * Dicom viewer wrapper script for documents
5 * @package OpenEMR
6 * @link https://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://github.com/openemr/openemr/blob/master/LICENSE GNU 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 = attr($web_path) . '&retrieve&patient_id=' . attr_url($patid) . '&document_id=' . attr_url($docid) . '&as_file=false&type=' . attr_url($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']; ?>/i18next/dist/umd/i18next.min.js"></script>
38 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/i18next-xhr-backend/dist/umd/i18nextXHRBackend.min.js"></script>
39 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/i18next-browser-languagedetector/dist/umd/i18nextBrowserLanguageDetector.min.js"></script>
40 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/konva/konva.min.js"></script>
41 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/magic-wand-js/js/magic-wand-min.js"></script>
42 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/jszip/dist/jszip.min.js"></script>
43 <!-- decoders -->
44 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/dwv/decoders/pdfjs/jpx.js"></script>
45 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/dwv/decoders/pdfjs/util.js"></script>
46 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/dwv/decoders/pdfjs/arithmetic_decoder.js"></script>
47 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/dwv/decoders/pdfjs/jpg.js"></script>
48 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/dwv/decoders/rii-mango/lossless-min.js"></script>
49 <!-- Local (dwv) -->
50 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/dwv/dist/dwv.min.js"></script>
51 <!-- i18n dwv wrapper -->
52 <script type="text/javascript" src="<?php echo $GLOBALS['web_root']?>/library/js/dwv/dwv_i18n.js"></script>
53 </head>
54 <style type="text/css">
55 .warn_diagnostic {
56 margin: 10px auto 10px auto;
57 color: rgb(255, 0, 0);
58 font-size: 1.5em;
61 .ui-autocomplete {
62 position: absolute;
63 top: 0;
64 left: 0;
65 min-width: 200px;
66 cursor: default;
69 .ui-menu-item {
70 min-width: 200px;
73 .fixed-height {
74 min-width: 200px;
75 padding: 1px;
76 max-height: 35%;
77 overflow: auto;
80 .loader {
81 position: absolute;
82 left: 25%;
83 top: 15%;
84 z-index: 1;
85 border: 12px solid #f3f3f3;
86 border-radius: 50%;
87 border-top: 12px solid #3498db;
88 width: 60px;
89 height: 60px;
90 -webkit-animation: spin 2s linear infinite; /* Safari */
91 animation: spin 2s linear infinite;
94 /* Safari */
95 @-webkit-keyframes spin {
96 0% {
97 -webkit-transform: rotate(0deg);
99 100% {
100 -webkit-transform: rotate(360deg);
104 @keyframes spin {
105 0% {
106 transform: rotate(0deg);
108 100% {
109 transform: rotate(360deg);
112 </style>
113 <body>
114 <!-- DWV -->
115 <div id="dwv" src='<?php echo $web_path ?>'>
116 <!-- Toolbar -->
117 <div class="toolbar"></div>
118 <div class="warn_diagnostic"><?php echo xlt('Not For Diagnostic Use') ?>
119 <!-- Layer Container -->
120 <div class="layerContainer">
121 <span class="loader"></span>
122 <canvas id="dwvimg" class="imageLayer"><?php echo xlt('Only for HTML5 compatible browsers.') ?></canvas>
123 </div>
124 <!-- /layerContainer -->
125 </div><!-- /dwv -->
126 <!-- Main -->
127 <script type="text/javascript" src="<?php echo $GLOBALS['web_root'] ?>/library/js/dwv/dicom_gui.js"></script>
128 <script type="text/javascript" src="<?php echo $GLOBALS['web_root'] ?>/library/js/dwv/dicom_launcher.js"></script>
129 <script>
130 var msg = <?php echo xlj("Still Loading...") ?>;
131 var canvas = document.getElementById("dwvimg");
132 var ctx = canvas.getContext("2d");
133 ctx.font = "22px Arial";
134 ctx.fillStyle = "red";
135 $(window).on("load", function () {
136 ctx.fillText(msg, 10, 100);
137 $('.loader').toggle();
139 </script>
140 </body>
141 </html>