adm-ntuh-net/ntuh/templates/registry/op_prepare.html
2024-12-12 10:19:16 +08:00

362 lines
9.9 KiB
HTML
Executable file
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{% extends "base.html" %}
{% block head %}
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery.isotope/2.2.0/isotope.pkgd.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jeditable.js/1.7.3/jeditable.min.js"></script>
<script>
var date1 = 0;
var rooms1 = {{rooms_json|safe}};
function redrawtable(){
if (date1 == 0) {
$('#header1').text( "All" );
$('.cAll').hide();
$('.cAll').show("blind");
} else {
$('#header1').text( date1 );
$('.cAll').hide();
$('.c'+date1.slice(-5)).show("blind");
}
rooms1 = [];
{% for room in rooms %}
if(!$("#cbi{{room}}").prop("checked")) {
// simply pass 0 as the duration, so it triggers the animation version of .hide() which obeys the delay
$(".r{{room}}").hide(0);
} else {
rooms1.push({{room}});
}
{% endfor %}
}
function windowopen (verb, url, data, target) {
var form = document.createElement("form");
form.action = url;
form.method = verb;
form.target = target || "_self";
if (data) {
for (var key in data) {
var input = document.createElement("textarea");
input.name = key;
input.value = typeof data[key] === "object" ? JSON.stringify(data[key]) : data[key];
form.appendChild(input);
}
}
form.style.display = 'none';
document.body.appendChild(form);
form.submit();
}
// jQuery(document).ready(function() {
$(function() {
$('.editable_select').editable('/registry/op_edit/', {
loadurl : '/registry/op_category/',
type : 'select',
submit : 'OK',
// style: 'display: inline',
style : 'inherit'
});
$('.editable_text').editable('/registry/op_edit/', {
// select : true,
style : 'inherit'
});
$('#bAll').click(function() {
date1 = 0;
redrawtable();
});
{% for date in dates %}
$('#b{{date|date:"m-d"}}').click(function() {
date1 = '{{date|date:"Y-m-d"}}';
redrawtable();
});
{% endfor %}
$('#cbiAll').click(function() {
if($("#cbiAll").prop("checked"))
{
$('.btn-room').prop("checked", true);
// $('.btn-room').each(function() {
// $(this).prop("checked", true);
// });
}
else
{
$('.btn-room').prop("checked", false);
// $('.btn-room').each(function() {
// $(this).prop("checked", false);
// });
}
redrawtable();
});
$('.btn-room').click(function() {
$('#cbiAll').prop("checked", false);
redrawtable();
});
$('#bPrint').click(function() {
var url = '.?print1=1&date1='+date1;
// window.open(url);
var url = '.';
windowopen('GET', url, {
print1: 1,
date1: date1,
rooms1: rooms1,
csrf_token: '{{csrf_token}}',
} , '_blank');
// windowopen('POST', url, {request: {
// print1: 1,
// date1: date1,
// rooms1: rooms1,
// csrf_token: '{{csrf_token}}',
// }} , '_blank');
});
$( "#bRenew" ).click(function() {
$('#loading').addClass('loading');
// window.location.href = "http://www.google.com";
});
// $('.grid').isotope({
// // options
// itemSelector: '.grid-item',
// layoutMode: 'vertical',
// vertical: {
// // align to origin edge
// horizontalAlignment: 0
// },
// });
$('a[data-confirm]').click(function(ev) {
var href = $(this).attr('href');
if (!$('#dataConfirmModal').length) {
$('body').append('<div id="dataConfirmModal" class="modal" role="dialog" aria-labelledby="dataConfirmLabel" aria-hidden="true"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h3 id="dataConfirmLabel">Please Confirm</h3></div><div class="modal-body"></div><div class="modal-footer"><button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button><a class="btn btn-primary" id="dataConfirmOK">OK</a></div></div>');
}
$('#dataConfirmModal').find('.modal-body').text($(this).attr('data-confirm'));
$('#dataConfirmOK').attr('href', href);
$('#dataConfirmModal').modal({show:true});
return false;
});
});
function showUrlInDialogx(url, options){
  options = options || {};
  var tag = $("<div></div>"); //This tag will the hold the dialog content.
  $.ajax({
    url: url,
    type: (options.type || 'GET'),
    beforeSend: options.beforeSend,
    error: options.error,
    complete: options.complete,
    success: function(data, textStatus, jqXHR) {
      if(typeof data == "object" && data.html) { //response is assumed to be JSON
        tag.html(data.html).dialog({modal: options.modal, title: data.title}).dialog('open');
      } else { //response is assumed to be HTML
        tag.html(data).dialog({modal: options.modal, title: options.title}).dialog('open');
      }
      $.isFunction(options.success) && (options.success)(data, textStatus, jqXHR);
    }
  });
}
function showUrlInDialog(url){
  var tag = $("<div></div>");
  $.ajax({
    url: url,
    success: function(data) {
      tag.html(data).dialog({
dialogClass: "alert",
modal: true,
show: "slide",
width: 640,
open: function(){
$("body").css("overflow", "hidden");
},
close: function(){
$("body").css("overflow", "auto");
},
}).dialog('open');
    }
  });
}
</script>
<style>
.editable_select {
white-space: nowrap;
}
.alert {
/* visibility: hidden;*/
position: absolute;
left: 0px;
top: 0px;
width:100%;
height:100%;
text-align:center;
z-index: 1000;
background-color: #000000;
}
.reportQuery{
overflow-y: auto;
height: 480px;
}
.nobr {white-space: nowrap}
.span-all {
-webkit-column-span: all;
-moz-column-span: all;
column-span: all;
margin: 1em auto;
border-style: dashed;
border-width: 1px 0 0;
border-top-color: #e74c3c;
}
tr.first td {
border-top: thin solid black;
border-bottom: none;
padding-top: 8px;
padding-left: 8px;
padding-right: 8px;
}
tr.second td {
border-top: none;
border-bottom: thin solid black;
padding-bottom: 8px;
padding-left: 8px;
padding-right: 8px;
}
</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/css-spinning-spinners/1.1.0/load1.css">
{% endblock %}
{% block search %}
<!-- <div class="btn-group" data-toggle="buttons" role="group" aria-label="..."> -->
<div class="btn-group" role="group" aria-label="...">
<!-- <button id='bAll' type="button" class="btn btn-default">All</button> -->
<label id="bAll" class="btn btn-default active">
<input type="radio" name="options" id="biAll" autocomplete="off" checked> All
</label>
{% for date in dates %}
<!-- <button id='b{{date|date:"m-d"}}' type="button" class="btn {% cycle 'btn-primary' 'btn-success' 'btn-info' 'btn-warning' 'btn-danger' %}">{{date|date:"m/d(D)"}}</button> -->
<label id='b{{date|date:"m-d"}}' class="btn {% cycle 'btn-primary' 'btn-success' 'btn-info' 'btn-warning' 'btn-danger' %}">
<input type="radio" name="options" id='bi{{date|date:"m-d"}}' autocomplete="off"> {{date|date:"m/d(D)"}}
</label>
{% endfor %}
</div>
<div class="btn-group pull-right">
<a href=".?renew1=1" id='bRenew' type="button" class="btn btn-warning">Renew</a>
<button id='bPrint' type="button" class="btn btn-danger">Print</button>
</div>
<div>
<br/>
</div>
<!-- <div class="btn-group" data-toggle="buttons"> -->
<div class="btn-group">
<label id='cbAll' class="btn btn-default">
<input id='cbiAll' class="btn-roomx" type="checkbox" value="" checked>All rooms
</label>
{% for room in rooms %}
<label id='cb{{room}}' class="btn {% cycle 'btn-primary' 'btn-success' 'btn-info' 'btn-warning' 'btn-danger' %}">
<input id='cbi{{room}}' class="btn-room" type="checkbox" value="" checked>{{room}}
</label>
{% endfor %}
</div>
{% endblock %}
{% block content %}
<div id="loading"></div>
<h1 id="header1" class="text-center">
All
</h1>
<table id="data" class="nobr">
<thead>
<tr class="second" style="background-color:#C0C0FF;">
<td></td>
<td>日期</td>
<td></td>
<td></td>
<td>姓名</td>
<td>病房</td>
<td></td>
<td></td>
<td></td>
<td>診斷</td>
<td>術式</td>
<td>主治醫師</td>
<td></td>
<td></td>
</tr>
</thead>
<tbody class="grid">
{% for op in oplist %}
<tr class="grid-item first cAll c{{op.OPDate|date:"m-d"}} r{{op.OpRoomNo}}">
<td>
<a type="button" class="btn btn-default btn-xs" href="?delete1={{op.id}}" data-confirm="Are you sure you want to delete?">
<span class="glyphicon glyphicon-trash" aria-hidden="true"></span>
</a>
{{forloop.counter}}
</td>
<td>{{op.OPDate|date:"m/d"}}</td>
<!-- <td>{{op.OPDate}}</td> -->
<td>{{op.OpRoomNo}}</td>
<td>{{op.OpSeqNo}}</td>
<td>{{op.PatName}}</td>
<td>{{op.PatWard}}</td>
<td>{{op.PatChartNo}}</td>
<td>{{op.PatSex}}</td>
<td>{{op.PatAge|slice:":3"}}</td>
<td>
<div class="editable_text" id="PatDignosis_{{op.id}}">{{op.PatDignosis}}</div>
</td>
<td>{{op.MainOpMode}}</td>
<td>{{op.OpDoctorName}}</td>
<td>{{op.StartTime|time:"H:i"}}</td>
<td>{{op.SpendTime}}</td>
</tr>
<tr class="grid-item second cAll c{{op.OPDate|date:"m-d"}} r{{op.OpRoomNo}}">
<td colspan="100%">
{{op.Remark}}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}