Skip to content

Commit

Permalink
Updated lua scripts to new page structure. Added mobile version.
Browse files Browse the repository at this point in the history
  • Loading branch information
ivmartel committed Oct 20, 2015
1 parent eb0dbd7 commit 1489c89
Show file tree
Hide file tree
Showing 3 changed files with 282 additions and 32 deletions.
243 changes: 243 additions & 0 deletions resources/dwv-mobile.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,243 @@
--
-- DICOM Web Viewer (DWV) lua script for integration in a Conquest PACS server.
--
-- Usage:
-- 1. copy this file onto your web server
-- 2. in the 'dicom.ini' of your web server, create the dwv viewer:
-- >> [dwv-simple]
-- >> source = dwv-mobile.lua
-- And set it as the default viewer:
-- >> [webdefaults]
-- >> ...
-- >> viewer = dwv-simple
-- 3. copy the DWV distribution files in a 'dwv' folder
-- in the web folder of your web server. It should be accessible
-- via '[server address]/dwv'.
--
-- This script relies on the 'kFactorFile', 'ACRNemaMap' and 'Dictionary'
-- variables being set correctly.

-- Get ids

local patientid = string.gsub(series2, ':.*$', '')
local seriesuid = string.gsub(series2, '^.*:', '')

-- Functions declaration

function getstudyuid()
local a, b, s
s = servercommand('get_param:MyACRNema')
b = newdicomobject()
b.PatientID = patientid
b.SeriesInstanceUID = seriesuid
b.StudyInstanceUID = ''
a = dicomquery(s, 'SERIES', b)
return a[0].StudyInstanceUID
end

function queryimages()
local images, imaget, b, s
s = servercommand('get_param:MyACRNema')
b = newdicomobject()
b.PatientID = patientid
b.SeriesInstanceUID = seriesuid
b.SOPInstanceUID = ''
images = dicomquery(s, 'IMAGE', b)

imaget={}
for k=0,#images-1 do
imaget[k+1]={}
imaget[k+1].SOPInstanceUID = images[k].SOPInstanceUID
end
table.sort(imaget, function(a,b) return a.SOPInstanceUID < b.SOPInstanceUID end)

return imaget
end

-- Main

local studyuid = getstudyuid()
local images = queryimages()
-- create the url lua array
local urlRoot = webscriptadress
urlRoot = urlRoot .. '?requestType=WADO&contentType=application/dicom'
urlRoot = urlRoot .. '&seriesUID=' .. seriesuid
urlRoot = urlRoot .. '&studyUID=' .. studyuid
local urls = {}
for i=1, #images do
urls[i] = urlRoot .. '&objectUID=' .. images[i].SOPInstanceUID
end

-- Generate html

HTML('Content-type: text/html\n\n')

-- paths with extra /dwv
print([[
<!DOCTYPE html>
<html>
<head>
<title>DICOM Web Viewer</title>
<meta charset="UTF-8">
<link type="text/css" rel="stylesheet" href="/dwv/css/style.css">
<style type="text/css" >
body { margin: 10px; padding: 0; }
.layerContainer { margin: auto; text-align: center; }
.imageLayer { left: 0px; }
.dropBox { margin: 20px auto; }
</style>
<link type="text/css" rel="stylesheet" href="/dwv/ext/jquery-mobile/jquery.mobile-1.4.5.min.css">
]])

print([[
<!-- Third party -->
<script type="text/javascript" src="/dwv/ext/jquery/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="/dwv/ext/jquery-mobile/jquery.mobile-1.4.5.min.js"></script>
<script type="text/javascript" src="/dwv/ext/flot/jquery.flot.min.js"></script>
<script type="text/javascript" src="/dwv/ext/pdfjs/jpx.js"></script>
<script type="text/javascript" src="/dwv/ext/pdfjs/util.js"></script>
<script type="text/javascript" src="/dwv/ext/pdfjs/arithmetic_decoder.js"></script>
<script type="text/javascript" src="/dwv/ext/rii-mango/lossless-min.js"></script>
<script type="text/javascript" src="/dwv/ext/notmasteryet/jpg.js"></script>
<script type="text/javascript" src="/dwv/ext/kinetic/kinetic-v5.1.1-06.10.min.js"></script>
<!-- Local -->
<script type="text/javascript" src="/dwv/dwv-0.12.0.min.js"></script>
<!-- Launch the app -->
<script type="text/javascript" src="/dwv/viewers/mobile/appgui.js"></script>
]])

print([[
<script type="text/javascript">
// check browser support
dwv.browser.check();
// launch when page is loaded
$(document).ready( function()
{
// main application
var myapp = new dwv.App();
myapp.init({
"containerDivId": "dwv",
"fitToWindow": true,
"tools": ["Scroll", "Window/Level", "Zoom/Pan", "Draw", "Livewire", "Filter"],
"filters": ["Threshold", "Sharpen", "Sobel"],
"shapes": ["Line", "Protractor", "Rectangle", "Roi", "Ellipse"],
"gui": ["tool", "load", "help", "undo", "version", "tags"],
"isMobile": true
});
var size = dwv.gui.getWindowSize();
$(".layerContainer").height(size.height);
]])
-- create javascript url array
print([[
var inputUrls = [
]])
for i=1, #images do
print(' "'..urls[i]..'",')
end
print([[
];
]])
-- load data
print([[
if( inputUrls && inputUrls.length > 0 ) myapp.loadURL(inputUrls);
}); // end $(document).ready
</script>
]])

print([[
</head>
<body>
<!-- Main page -->
<div data-role="page" data-theme="b" id="main">
<!-- pageHeader #dwvversion -->
<div id="pageHeader" data-role="header">
<h1>DWV <span class="dwv-version"></span></h1>
<a href="#help_page" data-icon="carat-r" class="ui-btn-right"
data-transition="slide">Help</a>
</div><!-- /pageHeader -->
<!-- DWV -->
<div id="dwv">
<div id="pageMain" data-role="content" style="padding:2px;">
<!-- Toolbar -->
<div class="toolbar"></div>
<!-- Open popup -->
<div data-role="popup" id="popupOpen">
<a href="#" data-rel="back" data-role="button"
data-icon="delete" data-iconpos="notext" class="ui-btn-right">Close</a>
<div style="padding:10px 20px;">
<h3>Open</h3>
<div id="dwv-loaderlist"></div>
</div>
</div><!-- /popup -->
<!-- Layer Container -->
<div class="layerContainer">
<div class="dropBox"></div>
<canvas class="imageLayer">Only for HTML5 compatible browsers...</canvas>
<div class="drawDiv"></div>
<div class="infoLayer">
<div class="infotl"></div>
<div class="infotr"></div>
<div class="infobl"></div>
<div class="infobr"><div class="plot"></div></div>
</div><!-- /infoLayer -->
</div><!-- /layerContainer -->
<!-- History -->
<div class="history" title="History" style="display:none;"></div>
</div><!-- /content -->
<div data-role="footer">
<div data-role="navbar" class="toolList">
</div><!-- /navbar -->
</div><!-- /footer -->
</div><!-- /page main -->
</div><!-- /dwv -->
<!-- Tags page -->
<div data-role="page" data-theme="b" id="tags_page">
<div data-role="header">
<a href="#main" data-icon="back"
data-transition="slide" data-direction="reverse">Back</a>
<h1>DICOM Tags</h1>
</div><!-- /header -->
<div data-role="content">
<!-- Tags -->
<div id="dwv-tags" title="Tags"></div>
</div><!-- /content -->
</div><!-- /page tags_page-->
<!-- Help page -->
<div data-role="page" data-theme="b" id="help_page">
<div data-role="header">
<a href="#main" data-icon="back"
data-transition="slide" data-direction="reverse">Back</a>
<h1>DWV Help</h1>
</div><!-- /header -->
<div data-role="content">
<!-- Tags -->
<div id="dwv-help" title="Help"></div>
</div><!-- /content -->
</div><!-- /page help_page-->
</body>
</html>
]])
11 changes: 8 additions & 3 deletions resources/dwv-simple.lua
Original file line number Diff line number Diff line change
Expand Up @@ -148,14 +148,19 @@ print([[
<!-- Main content -->
<div data-role="content">
<!-- DWV -->
<div id="dwv">
<!-- Toolbar -->
<div id="toolbar"></div>
<div class="toolbar"></div>
<!-- Layer Container -->
<div id="dwv" class="layerContainer">
<canvas id="dwv-imageLayer" class="imageLayer">Only for HTML5 compatible browsers...</canvas>
<div class="layerContainer">
<canvas class="imageLayer">Only for HTML5 compatible browsers...</canvas>
</div><!-- /layerContainer -->
</div><!-- /dwv -->
</div><!-- /content -->
</div><!-- /page -->
Expand Down
60 changes: 31 additions & 29 deletions resources/dwv-static.lua
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@ HTML('Content-type: text/html\n\n')
-- paths with extra /dwv
print([[
<!DOCTYPE html>
<html>
<head>
Expand All @@ -87,12 +86,12 @@ body { background-color: #222; color: white;
margin: 10px; padding: 0; font-size: 80%; }
#pageHeader h1 { display: inline-block; margin: 0; color: #fff; }
#pageHeader a { color: #ddf; }
#pageHeader #toolbar { display: inline-block; float: right; }
#toolbox li:first-child { list-style-type: none; padding-bottom: 10px; margin-left: -20px; }
#pageHeader .toolbar { display: inline-block; float: right; }
.toolbox li:first-child { list-style-type: none; padding-bottom: 10px; margin-left: -20px; }
#pageMain { position: absolute; height: 92%; width: 99%; bottom: 5px; left: 5px; background-color: #333; }
#infotl { color: #333; text-shadow: 0 1px 0 #fff; }
#infotr { color: #333; text-shadow: 0 1px 0 #fff; }
#dropBox { margin: 20px; }
.infotl { color: #333; text-shadow: 0 1px 0 #fff; }
.infotr { color: #333; text-shadow: 0 1px 0 #fff; }
.dropBox { margin: 20px; }
</style>
<link type="text/css" rel="stylesheet" href="/dwv/ext/jquery-ui/themes/ui-darkness/jquery-ui-1.11.2.min.css">
]])
Expand All @@ -105,9 +104,9 @@ print([[
<script type="text/javascript" src="/dwv/ext/pdfjs/jpx.js"></script>
<script type="text/javascript" src="/dwv/ext/pdfjs/util.js"></script>
<script type="text/javascript" src="/dwv/ext/pdfjs/arithmetic_decoder.js"></script>
<script type="text/javascript" src="/dwv/ext/kinetic/kinetic-v5.1.1-06.10.min.js"></script>
<script type="text/javascript" src="/dwv/ext/rii-mango/lossless-min.js"></script>
<script type="text/javascript" src="/dwv/ext/notmasteryet/jpg.js"></script>
<script type="text/javascript" src="/dwv/ext/kinetic/kinetic-v5.1.1-06.10.min.js"></script>
<!-- Local -->
<script type="text/javascript" src="/dwv/dwv-0.12.0.min.js"></script>
Expand Down Expand Up @@ -163,57 +162,60 @@ print([[
<body>
<!-- DWV -->
<div id="dwv">
<div id="pageHeader">
<!-- Title -->
<h1>DICOM Web Viewer
(<a href="https://github.com/ivmartel/dwv">dwv</a>
<h1>DICOM Web Viewer
(<a href="https://github.com/ivmartel/dwv">dwv</a>
<span class="dwv-version"></span>)</h1>
<!-- Toolbar -->
<div id="toolbar"></div>
<div class="toolbar"></div>
</div><!-- /pageHeader -->
<div id="pageMain">
<!-- Open file -->
<div id="openData" title="File">
<div id="loaderlist"></div>
<div id="progressbar"></div>
<div class="openData" title="File">
<div class="loaderlist"></div>
<div class="progressbar"></div>
</div>
<!-- Toolbox -->
<div id="toolbox" title="Toolbox">
<ul id="toolList"></ul>
</div>
<div class="toolList" title="Toolbox"></div>
<!-- History -->
<div id="history" title="History"></div>
<div class="history" title="History"></div>
<!-- Tags -->
<div id="tags" title="Tags"></div>
<div class="tags" title="Tags"></div>
<!-- Help -->
<div id="help" title="Help"></div>
<div class="help" title="Help"></div>
<!-- Layer Container -->
<div id="layerDialog" title="Image">
<div id="dwv-dropBox" class="dropBox"></div>
<div id="dwv" class="layerContainer">
<canvas id="dwv-imageLayer" class="imageLayer">Only for HTML5 compatible browsers...</canvas>
<div id="dwv-drawDiv" class="drawDiv"></div>
<div id="dwv-infoLayer" class="infoLayer">
<div id="dwv-infotl" class="infotl"></div>
<div id="dwv-infotr" class="infotr"></div>
<div id="dwv-infobl" class="infobl"></div>
<div id="dwv-infobr" class="infobr"><div id="dwv-plot" class="plot"></div></div>
<div class="layerDialog" title="Image">
<div class="dropBox"></div>
<div class="layerContainer">
<canvas class="imageLayer">Only for HTML5 compatible browsers...</canvas>
<div class="drawDiv"></div>
<div class="infoLayer">
<div class="infotl"></div>
<div class="infotr"></div>
<div class="infobl"></div>
<div class="infobr"><div class="plot"></div></div>
</div><!-- /infoLayer -->
</div><!-- /layerContainer -->
</div><!-- /layerDialog -->
</div><!-- /pageMain -->
</div><!-- /dwv -->
</body>
</html>
]])

0 comments on commit 1489c89

Please sign in to comment.