annotate WebApplication/viewer.js @ 219:0f042939410d

support for auth token passed as url search params
author amazy
date Tue, 03 Sep 2019 10:56:08 +0200
parents 2f27287c047c
children aee499712ac4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 /**
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 * Orthanc - A Lightweight, RESTful DICOM Store
122
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 104
diff changeset
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 * Department, University Hospital of Liege, Belgium
209
2f27287c047c preparing for 2019
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 185
diff changeset
5 * Copyright (C) 2017-2019 Osimis S.A., Belgium
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 *
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 * This program is free software: you can redistribute it and/or
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 * modify it under the terms of the GNU Affero General Public License
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 * as published by the Free Software Foundation, either version 3 of
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 * the License, or (at your option) any later version.
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 *
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful, but
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 * Affero General Public License for more details.
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 *
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 * You should have received a copy of the GNU Affero General Public License
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 **/
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21
126
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
22 // Set the default compression
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23 var compression = 'jpeg95';
160
b0910ae2ace5 fix issue 44
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 159
diff changeset
24 var isFirst = true;
126
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
25 //var compression = 'deflate';
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28 // Prevent the access to IE
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29 if(navigator.appVersion.indexOf("MSIE ") != -1)
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
31 alert("Please use Mozilla Firefox or Google Chrome. Microsoft Internet Explorer is not supported.");
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34
219
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
35 function GetAuthorizationTokensFromUrl() {
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
36 var urlVariables = window.location.search.substring(1).split('&');
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
37 var dict = {};
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
38
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
39 for (var i = 0; i < urlVariables.length; i++) {
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
40 var split = urlVariables[i].split('=');
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
41
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
42 if (split.length == 2 && (split[0] == "token" || split[0] == "auth-token" || split[0] == "authorization")) {
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
43 dict[split[0]] = split[1];
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
44 }
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
45 }
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
46 return dict;
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
47 };
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
48
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
49 var authorizationTokens = GetAuthorizationTokensFromUrl();
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
50
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
51 /* Copy the authoziation toekn from the url search parameters into HTTP headers in every request to the Rest API.
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
52 Thanks to this behaviour, you may specify a ?token=xxx in your url and this will be passed
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
53 as the "token" header in every request to the API allowing you to use the authorization plugin */
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
54 $.ajaxSetup(
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
55 {
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
56 headers : authorizationTokens
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
57 }
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
58 );
0f042939410d support for auth token passed as url search params
amazy
parents: 209
diff changeset
59
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 function ResizeCornerstone()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62 $('#dicomImage').height($(window).height() - $('#slider').parent().height());
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 var element = $('#dicomImage').get(0);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64 cornerstone.resize(element, true);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68 function SetWindowing(center, width)
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70 var element = $('#dicomImage').get(0);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71 var viewport = cornerstone.getViewport(element);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
72 viewport.voi.windowCenter = center;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
73 viewport.voi.windowWidth = width;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
74 cornerstone.setViewport(element, viewport);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
75 UpdateViewportInformation();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
76 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
77
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
78
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
79 function SetFullWindowing()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
80 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
81 var element = $('#dicomImage').get(0);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
82 var viewport = cornerstone.getViewport(element);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
83 var image = cornerstone.getEnabledElement(element).image;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
84
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
85 if (image.color) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
86 // Ignore color images
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
87 return;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
88 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
89
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
90 var minValue = image.minPixelValue;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
91 var maxValue = image.maxPixelValue;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
92 if (minValue == undefined ||
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
93 maxValue == undefined ||
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
94 minValue == maxValue) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
95 return;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
96 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
97
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
98 if (image.slope != undefined &&
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
99 image.intercept != undefined) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
100 minValue = minValue * image.slope + image.intercept;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
101 maxValue = maxValue * image.slope + image.intercept;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
102 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
103
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
104 viewport.voi.windowCenter = (minValue + maxValue) / 2.0;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
105 viewport.voi.windowWidth = (maxValue - minValue) / 2.0;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
106 cornerstone.setViewport(element, viewport);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
107 UpdateViewportInformation();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
108 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
109
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
110
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
111 function SetDefaultWindowing()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
112 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
113 var element = $('#dicomImage').get(0);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
114 var viewport = cornerstone.getViewport(element);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
115 var image = cornerstone.getEnabledElement(element).image;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
116
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
117 viewport.voi.windowCenter = image.windowCenter;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
118 viewport.voi.windowWidth = image.windowWidth;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
119 cornerstone.setViewport(element, viewport);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
120 UpdateViewportInformation();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
121 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
122
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
123
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
124 function SetBoneWindowing()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
125 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
126 SetWindowing(300, 2000);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
127 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
128
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
129
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
130 function SetLungWindowing()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
131 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
132 SetWindowing(-600, 1600);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
133 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
134
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
135
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
136 function UpdateViewportInformation()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
137 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
138 var element = $('#dicomImage').get(0);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
139 var viewport = cornerstone.getViewport(element);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
140
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
141 $('#bottomleft').text('WW/WL:' + Math.round(viewport.voi.windowWidth) + '/' + Math.round(viewport.voi.windowCenter));
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
142 $('#bottomright').text('Zoom: ' + viewport.scale.toFixed(2) + 'x');
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
143 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
144
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
145
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
146 function ToggleSeriesInformation()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
147 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
148 $('#topright').toggle();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
149 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
150
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
151
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
152 function ToggleInterpolation()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
153 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
154 var element = $('#dicomImage').get(0);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
155 var viewport = cornerstone.getViewport(element);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
156 if (viewport.pixelReplication === true) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
157 viewport.pixelReplication = false;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158 } else {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
159 viewport.pixelReplication = true;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
160 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
161 cornerstone.setViewport(element, viewport);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
162 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
163
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
164
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
165 function ToggleInversion()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
166 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
167 var element = $('#dicomImage').get(0);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
168 var viewport = cornerstone.getViewport(element);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
169 if (viewport.invert === true) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
170 viewport.invert = false;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
171 } else {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
172 viewport.invert = true;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
173 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
174 cornerstone.setViewport(element, viewport);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
175 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
176
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
177
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
178 function DownloadInstance(instance)
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
179 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
180 // http://stackoverflow.com/a/3749395/881731
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
181 var hiddenIFrameID = 'hiddenDownloader',
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
182 iframe = document.getElementById(hiddenIFrameID);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
183 if (iframe === null) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
184 iframe = document.createElement('iframe');
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
185 iframe.id = hiddenIFrameID;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
186 iframe.style.display = 'none';
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
187 document.body.appendChild(iframe);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
188 }
185
3e45f3752074 Fix download of DICOM instance from the toolbox
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 174
diff changeset
189
3e45f3752074 Fix download of DICOM instance from the toolbox
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 174
diff changeset
190 var id = instance;
3e45f3752074 Fix download of DICOM instance from the toolbox
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 174
diff changeset
191 var pos = instance.indexOf('_');
3e45f3752074 Fix download of DICOM instance from the toolbox
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 174
diff changeset
192 if (pos != -1) {
3e45f3752074 Fix download of DICOM instance from the toolbox
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 174
diff changeset
193 // Remove the frame index (after the underscore)
3e45f3752074 Fix download of DICOM instance from the toolbox
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 174
diff changeset
194 id = id.substring(0, pos);
3e45f3752074 Fix download of DICOM instance from the toolbox
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 174
diff changeset
195 }
3e45f3752074 Fix download of DICOM instance from the toolbox
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 174
diff changeset
196
3e45f3752074 Fix download of DICOM instance from the toolbox
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 174
diff changeset
197 iframe.src = '../../instances/' + id + '/file';
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
198 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
199
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
200
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
201 function AdjustZoom()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
202 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
203 var element = $('#dicomImage').get(0);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
204 cornerstone.fitToWindow(element);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
205 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
206
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
207
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
208 function ZoomIn()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
209 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
210 var element = $('#dicomImage').get(0);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
211 var viewport = cornerstone.getViewport(element);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
212 viewport.scale /= 0.5;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
213 cornerstone.setViewport(element, viewport);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
214 UpdateViewportInformation();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
215 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
216
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
217
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
218 function ZoomOut()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
219 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
220 var element = $('#dicomImage').get(0);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
221 var viewport = cornerstone.getViewport(element);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
222 viewport.scale *= 0.5;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
223 cornerstone.setViewport(element, viewport);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
224 UpdateViewportInformation();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
225 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
226
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
227
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
228
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
229 (function (cornerstone) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
230 'use strict';
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
231
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
232 function PrintRange(pixels)
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
233 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
234 var a = Infinity;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
235 var b = -Infinity;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
236
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
237 for (var i = 0, length = pixels.length; i < length; i++) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
238 if (pixels[i] < a)
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
239 a = pixels[i];
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
240 if (pixels[i] > b)
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
241 b = pixels[i];
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
242 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
243
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
244 console.log(a + ' ' + b);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
245 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
246
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
247 function ChangeDynamics(pixels, source1, target1, source2, target2)
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
248 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
249 var scale = (target2 - target1) / (source2 - source1);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
250 var offset = (target1) - scale * source1;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
251
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
252 for (var i = 0, length = pixels.length; i < length; i++) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
253 pixels[i] = scale * pixels[i] + offset;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
254 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
255 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
256
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
257
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
258 function getPixelDataDeflate(image) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
259 // Decompresses the base64 buffer that was compressed with Deflate
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
260 var s = pako.inflate(window.atob(image.Orthanc.PixelData));
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
261 var pixels = null;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
262
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
263 if (image.color) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
264 var buf = new ArrayBuffer(s.length / 3 * 4); // RGB32
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
265 pixels = new Uint8Array(buf);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
266 var index = 0;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
267 for (var i = 0, length = s.length; i < length; i += 3) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
268 pixels[index++] = s[i];
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
269 pixels[index++] = s[i + 1];
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
270 pixels[index++] = s[i + 2];
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
271 pixels[index++] = 255; // Alpha channel
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
272 }
126
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
273 } else{
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
274 var buf = new ArrayBuffer(s.length * 2); // uint16_t or int16_t
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
275
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
276 if (image.Orthanc.IsSigned) {
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
277 pixels = new Int16Array(buf);
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
278 } else {
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
279 pixels = new Uint16Array(buf);
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
280 }
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
281
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
282 var index = 0;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
283 for (var i = 0, length = s.length; i < length; i += 2) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
284 var lower = s[i];
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
285 var upper = s[i + 1];
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
286 pixels[index] = lower + upper * 256;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
287 index++;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
288 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
289 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
290
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
291 return pixels;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
292 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
293
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
294
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
295 // http://stackoverflow.com/a/11058858/881731
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
296 function str2ab(str) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
297 var buf = new ArrayBuffer(str.length);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
298 var pixels = new Uint8Array(buf);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
299 for (var i = 0, strLen=str.length; i<strLen; i++) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
300 pixels[i] = str.charCodeAt(i);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
301 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
302 return pixels;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
303 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
304
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
305 function getPixelDataJpeg(image) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
306 var jpegReader = new JpegImage();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
307 var jpeg = str2ab(window.atob(image.Orthanc.PixelData));
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
308 jpegReader.parse(jpeg);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
309 var s = jpegReader.getData(image.width, image.height);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
310 var pixels = null;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
311
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
312 if (image.color) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
313 var buf = new ArrayBuffer(s.length / 3 * 4); // RGB32
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
314 pixels = new Uint8Array(buf);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
315 var index = 0;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
316 for (var i = 0, length = s.length; i < length; i += 3) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
317 pixels[index++] = s[i];
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
318 pixels[index++] = s[i + 1];
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
319 pixels[index++] = s[i + 2];
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
320 pixels[index++] = 255; // Alpha channel
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
321 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
322 } else {
126
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
323 var buf = new ArrayBuffer(s.length * 2); // uint16_t or int16_t
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
324
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
325 if (image.Orthanc.IsSigned) {
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
326 pixels = new Int16Array(buf);
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
327 } else {
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
328 pixels = new Uint16Array(buf);
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
329 }
f99adade8b77 Fixed rendering of 16bpp images if values are < 0 or >= 32768
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 122
diff changeset
330
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
331 var index = 0;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
332 for (var i = 0, length = s.length; i < length; i++) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
333 pixels[index] = s[i];
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
334 index++;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
335 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
336
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
337 if (image.Orthanc.Stretched) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
338 ChangeDynamics(pixels, 0, image.Orthanc.StretchLow, 255, image.Orthanc.StretchHigh);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
339 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
340 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
341
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
342 return pixels;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
343 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
344
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
345
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
346 function getOrthancImage(imageId) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
347 var result = null;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
348
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
349 $.ajax({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
350 type: 'GET',
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
351 url: '../instances/' + compression + '-' + imageId,
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
352 dataType: 'json',
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
353 cache: true,
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
354 async: false,
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
355 success: function(image) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
356 image.imageId = imageId;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
357 if (image.color)
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
358 image.render = cornerstone.renderColorImage;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
359 else
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
360 image.render = cornerstone.renderGrayscaleImage;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
361
160
b0910ae2ace5 fix issue 44
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 159
diff changeset
362 if (isFirst) {
b0910ae2ace5 fix issue 44
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 159
diff changeset
363 if (image.Orthanc.PhotometricInterpretation == "MONOCHROME1") {
b0910ae2ace5 fix issue 44
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 159
diff changeset
364 image.invert = true;
b0910ae2ace5 fix issue 44
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 159
diff changeset
365 } else {
b0910ae2ace5 fix issue 44
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 159
diff changeset
366 image.invert = false;
b0910ae2ace5 fix issue 44
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 159
diff changeset
367 }
b0910ae2ace5 fix issue 44
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 159
diff changeset
368
b0910ae2ace5 fix issue 44
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 159
diff changeset
369 isFirst = false;
b0910ae2ace5 fix issue 44
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 159
diff changeset
370 }
b0910ae2ace5 fix issue 44
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 159
diff changeset
371
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
372 image.getPixelData = function() {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
373 if (image.Orthanc.Compression == 'Deflate')
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
374 return getPixelDataDeflate(this);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
375
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
376 if (image.Orthanc.Compression == 'Jpeg')
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
377 return getPixelDataJpeg(this);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
378
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
379 // Unknown compression
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
380 return null;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
381 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
382
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
383 result = image;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
384 },
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
385 error: function() {
104
83d4afba88ff display error messages
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 99
diff changeset
386 alert('Error: This image is not supported by the Web viewer.');
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
387 return null;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
388 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
389 });
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
390
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
391 var deferred = $.Deferred();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
392 deferred.resolve(result);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
393 return deferred;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
394 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
395
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
396 // register our imageLoader plugin with cornerstone
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
397 cornerstone.registerImageLoader('', getOrthancImage);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
398
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
399 }(cornerstone));
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
400
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
401
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
402 $(document).ready(function() {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
403 $('#open-toolbar').button({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
404 icons: { primary: 'ui-icon-custom-orthanc' },
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
405 text: false
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
406 });
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
407
2
c919d488471f throbber to reflect the receiving of instances
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
408 $('#unstable').tooltip();
c919d488471f throbber to reflect the receiving of instances
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
409
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
410 var series = window.url('?series', window.location.search);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
411 if (series == null)
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
412 return;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
413
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
414 console.log('Displaying series: ' + series);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
415 var instances = [ ];
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
416
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
417 $.ajax({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
418 type: 'GET',
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
419 url: '../series/' + series,
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
420 dataType: 'json',
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
421 cache: false,
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
422 async: false,
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
423 success: function(volume) {
99
46ec13a1177c use of ordered-slices
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 71
diff changeset
424 if (volume.Slices.length != 0) {
46ec13a1177c use of ordered-slices
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 71
diff changeset
425 instances = volume.Slices;
71
9bb7caee0509 Fix for old versions of jQuery
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
426 $('#topright').html(volume.PatientID + '<br/>' +
9bb7caee0509 Fix for old versions of jQuery
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
427 volume.PatientName + '<br/>' +
9bb7caee0509 Fix for old versions of jQuery
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
428 volume.StudyDescription + '<br/>' +
9bb7caee0509 Fix for old versions of jQuery
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
429 volume.SeriesDescription + '<br/>');
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
430 }
104
83d4afba88ff display error messages
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 99
diff changeset
431 },
83d4afba88ff display error messages
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 99
diff changeset
432 failure: function() {
83d4afba88ff display error messages
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 99
diff changeset
433 alert('Error: This image is not supported by the Web viewer.');
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
434 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
435 });
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
436
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
437 if (instances.length == 0)
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
438 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
439 console.log('No image in this series');
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
440 return;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
441 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
442
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
443
2
c919d488471f throbber to reflect the receiving of instances
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
444 $.ajax({
c919d488471f throbber to reflect the receiving of instances
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
445 type: 'GET',
19
20af33af313a is-stable-series
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
446 url: '../is-stable-series/' + series,
2
c919d488471f throbber to reflect the receiving of instances
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
447 dataType: 'json',
c919d488471f throbber to reflect the receiving of instances
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
448 cache: false,
c919d488471f throbber to reflect the receiving of instances
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
449 async: true,
19
20af33af313a is-stable-series
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
450 success: function(stable) {
20af33af313a is-stable-series
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
451 if (!stable) {
2
c919d488471f throbber to reflect the receiving of instances
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
452 $('#unstable').show();
c919d488471f throbber to reflect the receiving of instances
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
453 }
c919d488471f throbber to reflect the receiving of instances
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
454 }
c919d488471f throbber to reflect the receiving of instances
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
455 });
c919d488471f throbber to reflect the receiving of instances
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
456
c919d488471f throbber to reflect the receiving of instances
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
457
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
458 var currentImageIndex = 0;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
459
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
460 // updates the image display
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
461 function updateTheImage(imageIndex) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
462 return cornerstone.loadAndCacheImage(instances[imageIndex]).then(function(image) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
463 currentImageIndex = imageIndex;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
464 var viewport = cornerstone.getViewport(element);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
465 cornerstone.displayImage(element, image, viewport);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
466 });
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
467 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
468
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
469 // image enable the element
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
470 var element = $('#dicomImage').get(0);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
471 cornerstone.enable(element);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
472
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
473 // set event handlers
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
474 /*function onImageRendered(e, eventData) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
475 $('#topright').text('Render Time:' + eventData.renderTimeInMs + ' ms');
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
476 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
477 $(element).on('CornerstoneImageRendered', onImageRendered);*/
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
478
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
479 // load and display the image
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
480 var imagePromise = updateTheImage(0);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
481
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
482 // add handlers for mouse events once the image is loaded.
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
483 imagePromise.then(function() {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
484 viewport = cornerstone.getViewport(element);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
485 UpdateViewportInformation();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
486
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
487 // add event handlers to pan image on mouse move
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
488 $('#dicomImage').mousedown(function (e) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
489 var lastX = e.pageX;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
490 var lastY = e.pageY;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
491 var mouseButton = e.which;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
492
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
493 $(toolbar).hide();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
494
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
495 $(document).mousemove(function (e) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
496 var deltaX = e.pageX - lastX,
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
497 deltaY = e.pageY - lastY;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
498 lastX = e.pageX;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
499 lastY = e.pageY;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
500
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
501 if (mouseButton == 1) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
502 var viewport = cornerstone.getViewport(element);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
503 viewport.voi.windowWidth += (deltaX / viewport.scale);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
504 viewport.voi.windowCenter += (deltaY / viewport.scale);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
505 cornerstone.setViewport(element, viewport);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
506 UpdateViewportInformation();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
507 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
508 else if (mouseButton == 2) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
509 var viewport = cornerstone.getViewport(element);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
510 viewport.translation.x += (deltaX / viewport.scale);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
511 viewport.translation.y += (deltaY / viewport.scale);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
512 cornerstone.setViewport(element, viewport);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
513 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
514 else if (mouseButton == 3) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
515 var viewport = cornerstone.getViewport(element);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
516 viewport.scale += (deltaY / 100);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
517 cornerstone.setViewport(element, viewport);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
518 UpdateViewportInformation();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
519 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
520 });
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
521
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
522 $(document).mouseup(function (e) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
523 $(document).unbind('mousemove');
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
524 $(document).unbind('mouseup');
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
525 });
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
526 });
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
527
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
528 $('#dicomImage').on('mousewheel DOMMouseScroll', function (e) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
529 // Firefox e.originalEvent.detail > 0 scroll back, < 0 scroll forward
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
530 // chrome/safari e.originalEvent.wheelDelta < 0 scroll back, > 0 scroll forward
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
531 if (e.originalEvent.wheelDelta < 0 || e.originalEvent.detail > 0) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
532 currentImageIndex ++;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
533 if (currentImageIndex >= instances.length) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
534 currentImageIndex = instances.length - 1;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
535 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
536 } else {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
537 currentImageIndex --;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
538 if (currentImageIndex < 0) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
539 currentImageIndex = 0;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
540 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
541 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
542
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
543 updateTheImage(currentImageIndex);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
544 $('#slider').slider("option", "value", currentImageIndex);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
545
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
546 //prevent page fom scrolling
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
547 return false;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
548 });
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
549 });
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
550
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
551
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
552 $('#slider').slider({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
553 min: 0,
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
554 max: instances.length - 1,
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
555 slide: function(event, ui) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
556 updateTheImage(ui.value);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
557 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
558 });
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
559
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
560 var toolbar = $.jsPanel({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
561 position: { top: 50, left: 10 },
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
562 size: { width: 155, height: 200 },
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
563 content: $('#toolbar-content').clone().show(),
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
564 controls: { buttons: 'none' },
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
565 title: '<a target="_blank" href="http://www.orthanc-server.com/"><img src="images/orthanc-logo.png" /></a>'
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
566 });
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
567
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
568 $('#open-toolbar').click(function() {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
569 toolbar.toggle();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
570 });
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
571
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
572 $(toolbar).hide();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
573
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
574 $('.toolbar-view', toolbar).buttonset()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
575 .children().first().button({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
576 icons: { primary: 'ui-icon-info' },
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
577 text: false
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
578 }).click(ToggleSeriesInformation).next().button({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
579 icons: { primary: 'ui-icon-custom-inversion' },
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
580 text: false
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
581 }).click(ToggleInversion).next().button({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
582 icons: { primary: 'ui-icon-custom-interpolation' },
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
583 text: false
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
584 }).click(ToggleInterpolation).next().button({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
585 icons: { primary: 'ui-icon-circle-triangle-s' },
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
586 text: false
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
587 }).click(function() {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
588 DownloadInstance(instances[currentImageIndex]);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
589 });
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
590
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
591 $('.toolbar-zoom', toolbar).buttonset()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
592 .children().first().button({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
593 icons: { primary: 'ui-icon-image' },
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
594 text: false
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
595 }).click(AdjustZoom).next().button({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
596 icons: { primary: 'ui-icon-zoomin' },
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
597 text: false
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
598 }).click(ZoomIn).next().button({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
599 icons: { primary: 'ui-icon-zoomout' },
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
600 text: false
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
601 }).click(ZoomOut);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
602
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
603 $('.toolbar-windowing', toolbar).buttonset()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
604 .children().first().button({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
605 icons: { primary: 'ui-icon-custom-default' },
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
606 text: false
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
607 }).click(SetDefaultWindowing).next().button({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
608 icons: { primary: 'ui-icon-custom-stretch' },
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
609 text: false
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
610 }).click(SetFullWindowing).next().button({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
611 icons: { primary: 'ui-icon-custom-lung' },
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
612 text: false
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
613 }).click(SetLungWindowing).next().button({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
614 icons: { primary: 'ui-icon-custom-bone' },
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
615 text: false
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
616 }).click(SetBoneWindowing);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
617
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
618
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
619 function SetCompression(c)
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
620 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
621 compression = c;
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
622 cornerstone.imageCache.purgeCache();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
623 updateTheImage(currentImageIndex);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
624 cornerstone.invalidateImageId(instances[currentImageIndex]);
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
625 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
626
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
627 $('.toolbar-quality', toolbar).buttonset()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
628 .children().first().button({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
629 label: 'L'
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
630 }).click(function() {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
631 SetCompression('jpeg80');
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
632 }).next().button({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
633 label: 'M'
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
634 }).click(function() {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
635 SetCompression('jpeg95');
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
636 }).next().button({
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
637 label: 'H'
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
638 }).click(function() {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
639 SetCompression('deflate');
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
640 });
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
641
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
642
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
643 ResizeCornerstone();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
644 $(window).resize(function(e) {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
645 if (!$(e.target).hasClass('jsPanel')) // Ignore toolbar resizing
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
646 {
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
647 ResizeCornerstone();
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
648 }
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
649 });
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
650
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
651 });