Files
2025-02-26 14:49:25 +07:00

428 lines
12 KiB
Plaintext

<!--
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is part of Oviyam, an web viewer for DICOM(TM) images
* hosted at http://skshospital.net/pacs/webviewer/oviyam_0.6-src.zip
*
* The Initial Developer of the Original Code is
* Raster Images
* Portions created by the Initial Developer are Copyright (C) 2014
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Babu Hussain A
* Devishree V
* Meer Asgar Hussain B
* Prakash J
* Suresh V
* Yogapraveen K
* Guruprasath R
* Balamurugan R
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
-->
<%@page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page isELIgnored="false"%>
<%@taglib prefix="pat" uri="/WEB-INF/tlds/PatientInfo.tld"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%
String patName = request.getParameter("patientName");
String tabName = request.getParameter("tabName");
if (patName != null) {
patName = new String(patName.getBytes("ISO-8859-1"), "UTF-8");
}
%>
<fmt:setBundle basename="resources.i18n.Messages" var="lang" />
<html>
<head>
<style>
/*
##Device = Desktops
##Screen = 1281px to higher resolution desktops
*/
@media ( min-width : 1281px) {
.dataTables_scrollBody {
max-height: 100% !important;
overflow: auto;
}
}
/*
##Device = Laptops, Desktops
##Screen = B/w 1025px to 1280px
*/
@media ( min-width : 1025px) and (max-width: 1280px) {
.dataTables_scrollBody {
max-height: 100% !important;
overflow: auto;
}
}
/*
##Device = Tablets, Ipads (portrait)
##Screen = B/w 768px to 1024px
*/
@media ( min-width : 768px) and (max-width: 1024px) {
}
/*
##Device = Tablets, Ipads (landscape)
##Screen = B/w 768px to 1024px
*/
@media ( min-width : 768px) and (max-width: 1024px) and (orientation:
landscape) {
}
.dataTables_scrollBody {
min-height: 80% !important;
max-height: 82% !important;
border-collapse: collapse;
}
.dataTables_wrapper {
border-collapse: collapse;
}
.dataTables_info {
width: auto;
font-size: 13px;
}
.dataTables_length {
font-size: 14px;
margin-bottom: -21px;
margin-left: 54px;
position: absolute;
text-align: justify;
}
.dataTables_paginate .ui-button {
/* margin-right: 4px !important; */
margin: 3px !important;
font-size: 14px;
padding: 3px;
}
table {
width: 100%;
}
.display td {
/* text-align: left; */
padding: 15px !important;
}
.display {
border-collapse: collapse !important;
}
tr.odd {
background-color: #bbbbbb;
}
tr.even {
background-color: #fff;
}
table.display tr.even.row_selected td {
background-color: #718ea0;
}
table.display tr.odd.row_selected td {
background-color: #718ea0;
}
/*
* Sorting classes for columns
*/
/* For the standard odd/even */
tr.odd td.sorting_1 {
background-color: #bbbbbb;
}
tr.even td.sorting_1 {
background-color: #fff;
}
.display, .dataTables_scrollHeadInner {
width: 100% !important;
}
.dataTables_scrollHeadInner {
width: 100% !important;
}
.dataTables_filter {
font-size: 14px;
}
</style>
<script type="text/javascript">
var dTable;
$(document).ready(function () {
var tableName = '#<%=tabName%>_table';
dTable = $(tableName).DataTable({
"bJQueryUI": true,
//"sPaginationType": "full_numbers",
"bPaginate": true,
"responsive": true,
//"bFilter": false,
"oLanguage": {
"sSearch": "Filter "
},
"sScrollY": "87%",
"bScrollCollapse": true,
"bAutoWidth": true,
"sScrollX": "100%",
"sScrollBody":"100%",
//"sScrollXInner": "100%",
"aaSorting": [[4, "desc"]],
"aoColumnDefs": [{
"aTargets": [0],
"fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {
if (sData.indexOf('img') >= 0) {
$(nTd).css('padding', '0px');
$(nTd).css('text-align', 'center');
}
}
}],
"aoColumns": [null, null, null, null, null, null, null, null, { "bVisible": false }, { "bVisible": false }, { "bVisible": false }]
});
$.fn.dataTableInstances[<%=request.getParameter("tabIndex")%>] = dTable;
if (<%=request.getParameter("search")%>!=null && !<%=request.getParameter("search")%>) { //For Direct launch
$('#searchToggler').hide();
$('#Toggler').css('top', '0.5%');
}
});
function toggleDivider(divider) {
var westPane = $('#<%=tabName%>_westPane');
if ($(westPane).is(":visible")) {
// $(westPane).html('');
$(westPane).hide();
console.log($('#Toggler').next());
console.log($('#Toggler').next());
$('#Toggler').next().css('width', '100%');
$('#Toggler').next().css('left', '0px');
$('#Toggler').css('left', '0px');
$(divider).attr('title', 'Show Preview');
if ($('#<%=tabName%>_search').is(":visible")) {
$(divider).css('background', 'url("images/showall.png")');
$(divider).next().css('background', 'url("images/hideall.png")');
} else {
$(divider).css('background', 'url("images/hidesearch.png")');
$(divider).next().css('background', 'url("images/hidewest.png")');
}
} else {
loadWest();
$(westPane).show();
$('#Toggler').next().css('left', '256px');
$('#Toggler').next().css('width', $('body').width() - 260 + 'px');
$(divider).attr('title', 'Hide Preview');
$('#Toggler').css('left', '256px');
if ($('#<%=tabName%>_search').is(":visible")) {
$(divider).css('background', 'url("images/hidewest.png")');
$(divider).next().css('background', 'url("images/hidesearch.png")');
} else {
$(divider).css('background', 'url("images/hideall.png")');
$(divider).next().css('background', 'url("images/showall.png")');
}
}
$('#<%=tabName%>_table').css('width', '100%');
dTable.columns.adjust().draw();
}
function toggleSearch(divider) {
var searchPane = $('#<%=tabName%>_search');
var tabContent = $('#<%=tabName%>_content');
if ($(searchPane).is(":visible")) {
$(searchPane).hide();
// $(tabContent).css('height', '100%');
$(tabContent).css('height', '83%');
$('#Toggler').css('top', '1%');
$('#Toggler').next().css('top', '0px');
// $('#Toggler').next().css('height', '100%');
$('#Toggler').next().css('height', '83%');
$(divider).attr('title', 'Show Search');
if ($('#<%=tabName%>_westPane').is(":visible")) {
$(divider).css('background', 'url("images/showall.png")');
$(divider).prev().css('background', 'url("images/hideall.png")');
} else {
$(divider).css('background', 'url("images/hidewest.png")');
$(divider).prev().css('background', 'url("images/hidesearch.png")');
}
} else {
$(searchPane).show();
$(divider).attr('title', 'Hide Search');
$(tabContent).css('height', '83%');
$('#Toggler').css('top', '13.5%');
$('#Toggler').next().css('top', '13%');
$('#Toggler').next().css('height', '83%');
if ($('#<%=tabName%>_westPane').is(":visible")) {
$(divider).css('background', 'url("images/hidesearch.png")');
$(divider).prev().css('background','url("images/hidewest.png")');
} else {
$(divider).css('background', 'url("images/hideall.png")');
$(divider).prev()
.css('background', 'url("images/showall.png")');
}
}
}
function loadWest() {
var selected = dTable.$('tr.row_selected');
if (selected.length > 0) {
// var iPos = dTable.fnGetData($(dTable.find('.row_selected')).get(0));
var iPos = dTable.row(this).data();
if (iPos == null) {
return;
}
showWestPane(iPos);
}
}
</script>
</head>
<body>
<c:choose>
<c:when test="${param.preview=='true'}">
<div id="<%=tabName%>_westPane"
style="width: 255px; visibility: visible; display: block; z-index: 0; float: left; height: 94%;"></div>
<div id="Toggler"
style="position: absolute; top: 13.5%; left: 256px; z-index: 3;">
<div id="westToggler" name="testToggler" title="Hide Preview"
class="ui-state-default"
onmouseover="this.className='ui-state-hover'"
onmouseout="this.className='ui-state-default'"
style="width: 24px; height: 24px; cursor: pointer; float: left; z-index: 3; background: url('images/hidewest.png'); border: none;"
onclick="this.className='ui-state-default';toggleDivider(this);"></div>
<div id="searchToggler" title="Hide Search"
class="ui-state-default toggler"
onmouseover="this.className='ui-state-hover'"
onmouseout="this.className='ui-state-default'"
style="width: 24px; height: 24px; cursor: pointer; float: left; z-index: 3; background: url('images/hidesearch.png'); border: none;"
onclick="this.className='ui-state-default'; toggleSearch(this);"></div>
</div>
<c:choose>
<c:when test="${param.search=='true'}">
<div
style="float: left; height: 84%; position: absolute; top: 13%; left: 257px; right: 0px; bottom: 0px; padding: 0px'">
</c:when>
<c:otherwise>
<div
style="float: left; height: 100%; position: absolute; top: 0px; left: 257px; right: 0px; bottom: 0px; padding: 0px'">
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<div style="float: left; width: 100%; padding: 0px'">
</c:otherwise>
</c:choose>
<table class="display" id="<%=tabName%>_table" style="font-size: 14px;">
<thead>
<tr>
<th></th>
<th><fmt:message key='patientID' bundle="${lang}" /></th>
<th><fmt:message key='patientName' bundle="${lang}" /></th>
<th>Gender</th>
<!--<th><fmt:message key='dateOfBirth' bundle="${lang}" /></th>
<th><fmt:message key='accessionNumber' bundle="${lang}" /></th>-->
<th><fmt:message key='studyDate' bundle="${lang}" /></th>
<th><fmt:message key='studyDescription' bundle="${lang}" /></th>
<th>Modality</th>
<th><fmt:message key="instanceCount" bundle="${lang}" /></th>
<th>Study Instance UID</th>
<th>Refer Physician</th>
<th>Series Count</th>
</tr>
</thead>
<tbody>
<pat:Patient patientId="${param.patientId}"
patientName="<%=patName%>" birthDate="${param.birthDate}"
modality="${param.modality}" from="${param.from}" to="${param.to}"
searchDays="${param.searchDays}"
accessionNumber="${param.accessionNumber}"
referPhysician="${param.referPhysician}"
studyDescription="${param.studyDesc}" dcmURL="${param.dcmURL}"
fromTime="${param.fromTime}" toTime="${param.toTime}">
<tr>
<td><img src="images/details_open.png" alt="" /> <img
src="images/green.png" style="display: none;" id="${studyIUID}"
alt="" /></td>
<td>${patientId}</td>
<td>${patientName}</td>
<td>${patientGender}</td>
<!--<td>${birthDate}</td>
<td>${accessionNumber}</td>-->
<td data-order="${dateOrder}">${studyDate}</td>
<td>${studyDescription}</td>
<td>${modality}</td>
<td>${totalInstances}</td>
<td>${studyIUID}</td>
<td>${referPhysician}</td>
<td>${totalSeries}</td>
<!-- <td>${patientGender}</td> -->
</tr>
</pat:Patient>
</tbody>
</table>
</div>
</body>
</html>