header.jsp 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
  3. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  4. <%@ taglib prefix="s" uri="http://www.springframework.org/tags"%>
  5. <!DOCTYPE html>
  6. <html lang="ko">
  7. <head>
  8. <!-- <meta charset="UTF-8">
  9. <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  10. <meta name="format-detection" content="telephone=no">
  11. <title>파티마병원 의료진용 앱</title>
  12. <script type="text/javascript" src="../../../../resources/plugins/jquery/jquery-2.1.4.min.js"></script>
  13. <script type="text/javascript" src="../../../../resources/plugins/bootstrap/js/bootstrap.min.js "></script>
  14. <link rel="stylesheet" type="text/css" href="../../../../resources/css/font-awesome.css">
  15. <link rel="stylesheet" href="../../../../resources/plugins/bootstrap/css/bootstrap.css ">
  16. <link rel="stylesheet" href="../../../../resources/css/mobile_poc/mobile.css"> -->
  17. <title><tiles:getAsString name="title" /></title>
  18. <%@page import="com.dbs.mplus.MPlusConstants"%>
  19. <%
  20. response.setHeader("Cache-Control","no-store");
  21. response.setHeader("Pragma","no-cache");
  22. response.setDateHeader("Expires",0);
  23. if (request.getProtocol().equals("HTTP/1.1")){
  24. response.setHeader("Cache-Control", "no-cache");
  25. }
  26. %>
  27. <% String strClientIp = request.getHeader("X-Forwarded-For");
  28. if (strClientIp == null || strClientIp.length() == 0 || "unknown".equalsIgnoreCase(strClientIp)) {
  29. strClientIp = request.getHeader("Proxy-Client-IP");
  30. }
  31. if (strClientIp == null || strClientIp.length() == 0 || "unknown".equalsIgnoreCase(strClientIp)) {
  32. strClientIp = request.getHeader("WL-Proxy-Client-IP");
  33. }
  34. if (strClientIp == null || strClientIp.length() == 0 || "unknown".equalsIgnoreCase(strClientIp)) {
  35. strClientIp = request.getHeader("HTTP_CLIENT_IP");
  36. }
  37. if (strClientIp == null || strClientIp.length() == 0 || "unknown".equalsIgnoreCase(strClientIp)) {
  38. strClientIp = request.getHeader("HTTP_X_FORWARDED_FOR");
  39. }
  40. if (strClientIp == null || strClientIp.length() == 0 || "unknown".equalsIgnoreCase(strClientIp)) {
  41. strClientIp = request.getRemoteAddr();
  42. }
  43. %>
  44. <meta property="og:type" content="website" />
  45. <meta property="og:title" content="M-Care Plus" />
  46. <meta property="og:description" content="M-Care Plus 서비스입니다." />
  47. <meta name="fstrClientIpmat-detection" content="telephone=no" />
  48. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  49. <%-- <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=3.0" /> --%>
  50. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
  51. <meta http-equiv="Expires" content="0" />
  52. <meta http-equiv="Cache-Control" content="no-cache" />
  53. <meta http-equiv="Pragma" content="no-cache" />
  54. <link rel="shortcut icon" href="<c:url value="/resources/css/images/favicon.ico" />" />
  55. <script type="text/javascript" src="<c:url value="/resources/plugins/jquery/jquery-2.1.4.min.js" />"></script>
  56. <script type="text/javascript" src="<c:url value="/resources/plugins/jquery/jquery.event.scroll.js" />"></script>
  57. <script type="text/javascript" src="<c:url value="/resources/plugins/jquery/jquery.form.min.js" />"></script>
  58. <script type="text/javascript">
  59. $(document).ready(function() {
  60. var mplusCommon = new mplus_common();
  61. mplusCommon.init();
  62. $("#btnExitApp").on("click", function(){
  63. console.log("execute : exitApp()");
  64. exitApp();
  65. });
  66. // mplusModalConfiglist = new mplus_modal_configlist();
  67. // mplusModalMenu = new mplus_modal_menu();
  68. // mplusModalMenu.init();
  69. // common = mplusCommon;
  70. /* 삭제예정
  71. if($(window).width()>414){
  72. $('.cure-responsive-size').css({'width': '100%', 'min-width': '100%'});
  73. }else{
  74. $('.cure-responsive-size').css({'width': 'max-content', 'max-width': 'initial'});
  75. };
  76. if($(window).width()>568){
  77. $('.cureDetail-responsive-size').css({'width': '100%', 'min-width': '100%'});
  78. }else{
  79. $('.cureDetail-responsive-size').css({'width': 'max-content', 'max-width': 'initial'});
  80. };
  81. wh=$(window).height();
  82. $('#cureList, #vitalSearch').css({
  83. 'height': (wh-217)
  84. });
  85. */
  86. /* $('#cureDetail, #vitalInfo').css({
  87. 'height': (wh-181),
  88. 'position': 'absolute',
  89. 'z-index': 10,
  90. 'background-color': '#fff',
  91. 'overflow-y': 'auto'
  92. }); */
  93. });
  94. //==== 전역 변수 설정 ====
  95. var contextPath = "${pageContext.request.contextPath}";
  96. //삭제예정 var loginUserId = "${sessionScope.MP_USER_ID}";
  97. //삭제예정 var loginUserName = "${sessionScope.MP_USER_NAME}";
  98. var gLoginUserId = "${sessionScope.MP_USER_ID}";
  99. var gLoginUserNm = "${sessionScope.MP_USER_NAME}";
  100. var gPatientId = ""; // 환자 ID, 최초에는 null 값이며, 환자 선택시 값을 등록하고 사용함
  101. var gPatientNm = ""; // 환자 명, 최초에는 null 값이며, 환자 선택시 값을 등록하고 사용함
  102. var gPatientAge = ""; // 환자 나이, 최초에는 null 값이며, 환자 선택시 값을 등록하고 사용함
  103. var gPatientGender = ""; // 환자 성별, 최초에는 null 값이며, 환자 선택시 값을 등록하고 사용함
  104. var gPatientTreatCls = ""; // 환자 진료 구분, 최초에는 null 값이며, 환자 선택시 값을 등록하고 사용함
  105. var gPatientDeptCd = ""; // 환자의 진료과, 최초에는 null 값이며, 환자 선택시 값을 등록하고 사용함
  106. var gPatientDoctorId = ""; // 환자의 진료의, 최초에는 null 값이며, 환자 선택시 값을 등록하고 사용함
  107. var gPatientHospitalizationDt = "";// 환자의 입원일자, 최초에는 null 값이며, 환자 선택시 값을 등록하고 사용함
  108. var gClientIp = "<%= strClientIp %>";
  109. // var mplusModalConfiglist;
  110. // var mplusModalMenu;
  111. var gDeviceId = "NONE"; // device ID 값이 추출되지 않은 상태는 'NONE'
  112. var gAppKind = "A";
  113. var gAppVersion = "1.0";
  114. var gPhoneKind = "폰기종";
  115. // api 다중처리를 위한 인자
  116. var resultReturnCode = "";
  117. var checkCnt = 0;
  118. //삭제예정 var selectDeptName = localStorage.getItem('selectedDeptNm');
  119. //삭제예정 var accessMenu = '${sessionScope.MP_ACCESS_MENU}';
  120. //삭제예정 var jobKindCd = '${sessionScope.MP_JOB_KIND_CD}';
  121. //삭제예정 var jobKindName = '${sessionScope.MP_JOB_KIND_NM}';
  122. $(document).on('mobileinit', function() {
  123. $.mobile.ajaxEnabled = false;
  124. $.mobile.defaultPageTransition = 'none';
  125. $.mobile.page.prototype.options.domCache = false;
  126. $.mobile.selectmenu.prototype.options.nativeMenu = true;
  127. $.fn.buttonMarkup.defaults.corners = false;
  128. });
  129. $(document).on('pageloadfailed', function(e, data) {
  130. e.preventDefault();
  131. var page = $(data.xhr.responseText);
  132. $.mobile.pageContainer.empty();
  133. $.mobile.pageContainer.append(page);
  134. $.mobile.pageContainer.trigger('create');
  135. });
  136. $(document).on('pageshow', function(e, ui) {
  137. ui.prevPage.remove();
  138. });
  139. $(window).resize(function(){
  140. wh=$(window).height();
  141. if($(window).width()>414){
  142. $('.cure-responsive-size').css({'width': '100%', 'min-width': '100%'});
  143. }else{
  144. $('.cure-responsive-size').css({'width': 'max-content', 'max-width': 'initial'});
  145. };
  146. if($(window).width()>568){
  147. $('.cureDetail-responsive-size').css({'width': '100%', 'min-width': '100%'});
  148. }else{
  149. $('.cureDetail-responsive-size').css({'width': 'max-content', 'max-width': 'initial'});
  150. };
  151. $('#cureList, #vitalSearch').css({
  152. 'height': (wh-217)
  153. });
  154. /* $('#cureDetail, #vitalInfo').css({
  155. 'height': (wh-181),
  156. 'position': 'absolute',
  157. 'z-index': 10,
  158. 'background-color': '#fff',
  159. 'overflow-y': 'auto'
  160. }); */
  161. })
  162. //pc 접근 제어
  163. // $(document).ready(function(){
  164. // if (/win32|win64|mac/i.test(navigator.platform.toLowerCase())) {
  165. // window.location.href = "http://www.knuh.kr/";
  166. // }
  167. // });
  168. //하단API는 추후 확인 후 제거 예정
  169. function changeLocale(lang) {
  170. location.href = location.pathname + '?' + location.search.replace(/^\?|&?_locale=../g, '').concat('&_locale=' + lang);
  171. };
  172. /**
  173. * 앱 종료
  174. */
  175. function exitApp() {
  176. /* $(".sidemenu").parent().removeClass("active"); */
  177. var mplus = new mplus_mobile();
  178. mplus.confirm("앱을 종료하시겠습니까?", function(confirm){
  179. if(confirm){
  180. var jsonMsg = {
  181. type : "command",
  182. functionType : "exitApp"
  183. };
  184. mplus.toNative(jsonMsg);
  185. }else{
  186. $('#sidebarMenu li a').removeClass('active');
  187. };
  188. });
  189. };
  190. /**
  191. * 화면잠금설정
  192. */
  193. function lockscreen() {
  194. var mplus = new mplus_mobile();
  195. var jsonMsg = {
  196. type : "command",
  197. functionType : "lockscreen"
  198. };
  199. mplus.toNative(jsonMsg);
  200. };
  201. /**
  202. * 이전 버튼 이벤트
  203. */
  204. function triggerBackBtn(){
  205. console.log("triggerBackBtn -- > " );
  206. var mplus = new mplus_mobile();
  207. if( mplus.isAndroid() ){
  208. historyBack();
  209. }
  210. };
  211. /**
  212. * 홈버튼 이벤트
  213. */
  214. function triggerSidebarBtn(){
  215. var mplus = new mplus_mobile();
  216. //헤더 백,메뉴버튼 숨어 있으면 리턴
  217. /* if( $("#menuBars_btn,#headerArrowLeft_btn").css("display") === "none" ){
  218. return;
  219. } */
  220. if( mplus.isAndroid() ){
  221. /* $("a#menuBars_btn").trigger("click"); */
  222. }
  223. }
  224. /**
  225. * 프로그램 버전 확인
  226. */
  227. function checkProgramVersion(){
  228. $("#sidebar .ui-listview li").removeClass("active");
  229. var jsonMsg = {
  230. type : "command",
  231. functionType : "version",
  232. value : {
  233. callbackFn : "window.versionCallback"
  234. }
  235. };
  236. var mplus = new mplus_mobile();
  237. mplus.toNative(jsonMsg);
  238. };
  239. window.versionCallback = function(data){
  240. var popup = $('#mplusAlert'),
  241. callback = popup.find(".popupCallback");
  242. var alertMsg = $("<p></p>").text(data);
  243. $('#mplusAlert .modal-body').empty();
  244. $('#mplusAlert .modal-body').append(alertMsg);
  245. $('#mplusAlert').modal('show');
  246. };
  247. var strCode = "";
  248. /**
  249. * domain 저장
  250. */
  251. function setDomain( code ){
  252. var strUrl = "";
  253. if( code === "1" ){
  254. strUrl = '<%=MPlusConstants.HOSPITAL.MPLUS.getDomain()+MPlusConstants.HOSPITAL.MPLUS.getContextName()%>';
  255. strCode = '<%=MPlusConstants.HOSPITAL.MPLUS.getCode()%>';
  256. } else {
  257. strUrl = '<%=MPlusConstants.HOSPITAL.MPLUS_COOK.getDomain()+MPlusConstants.HOSPITAL.MPLUS_COOK.getContextName()%>';
  258. strCode = '<%=MPlusConstants.HOSPITAL.MPLUS_COOK.getCode()%>';
  259. }
  260. var obj = {
  261. "type" : "command",
  262. "functionType" : "setRecentDomain",
  263. "value" : {
  264. "url" : strUrl,
  265. "callbackFn": "window.redirectSidePage"
  266. }
  267. };
  268. try{
  269. var mplus = new mplus_mobile();
  270. mplus.toNative( obj );
  271. } catch(e) {
  272. console.log(e);
  273. }
  274. };
  275. /**
  276. * callback
  277. **/
  278. window.redirectSidePage = function(data){
  279. if( typeof data === "string" ){
  280. data = JSON.parse( data );
  281. }
  282. if( data["success"] ){
  283. if( strCode.indexOf('031') >= 0 ){
  284. window.location.href = '<%=MPlusConstants.HOSPITAL.MPLUS.getDomain() + MPlusConstants.HOSPITAL.MPLUS.getContextName() + MPlusConstants.HOSPITAL.MPLUS.getStartPage()%>';
  285. } else {
  286. window.location.href = '<%=MPlusConstants.HOSPITAL.MPLUS_COOK.getDomain() + MPlusConstants.HOSPITAL.MPLUS_COOK.getContextName() + MPlusConstants.HOSPITAL.MPLUS_COOK.getStartPage()%>';
  287. }
  288. } else {
  289. mplus.alert( data["result"] );
  290. }
  291. };
  292. /**
  293. * 정렬팝업 오픈
  294. **/
  295. function sortPopOpen(sortList, callback){
  296. $('#sltSort').empty();
  297. for(var i=0; i<sortList.length; i++){
  298. var option = $('<option></option>').clone().attr('value', sortList[i].key).attr('type', sortList[i].type).text(sortList[i].value);
  299. $('#sltSort').append(option);
  300. };
  301. var popup = $('#sortModal'),
  302. callbackBtn = popup.find("#sortConfirmBtn");
  303. callbackBtn.unbind();
  304. callbackBtn.on("click",function(e){
  305. $('#sortModal').modal('hide');
  306. callback($('input[type="radio"][name="sortRadio"]:checked').val(), $('#sltSort option:selected').attr('type'), $('#sltSort').val());
  307. });
  308. $('#sortModal').modal('show');
  309. }
  310. function sortInit(sortList){
  311. $('.header span').css('display', 'none');
  312. $('#sltSort').empty();
  313. $('input[type="radio"][name="sortRadio"][value="up"]').prop('checked', true);
  314. for(var i=0; i<sortList.length; i++){
  315. var option = $('<option></option>').clone().attr('value', sortList[i].key).attr('type', sortList[i].type).text(sortList[i].value);
  316. $('#sltSort').append(option);
  317. };
  318. };
  319. /**
  320. * 뒤로가기버튼 더블클릭 먹히지 않도록
  321. **/
  322. var lastTouchEnd = 0;
  323. $('[id*="prevBtn"]').on("click",function(e){
  324. var now = (new Date()).getTime();
  325. if (now - lastTouchEnd <= 300) {
  326. event.preventDefault();
  327. };
  328. lastTouchEnd = now;
  329. });
  330. // var common = null;
  331. /**
  332. * 뒤로가기 함수
  333. **/
  334. function historyBack(){
  335. if($('#sidebarMenu').css('right')=='0px'){
  336. $('#sidebarMenu').stop().animate({right:-5000},500);
  337. $('#sidebarMenu li a').removeClass('active');
  338. return;
  339. }
  340. if($('#patientPopup').css('bottom')=='0px' && $('#patientPopup').css('display')=='block'){
  341. if($('#patientPopup .popup-content.in:not(#popContentExamineInfo)').length>0 && $('#patientPopup #popContentExamineInfo').hasClass('in')){
  342. $('#patientPopup .popup-content#popContentExamineInfo').removeClass('in');
  343. }else if($('#patientPopup .popup-content.in:not(#popContentConsultDetail)').length>0 && $('#patientPopup #popContentConsultDetail').hasClass('in')){
  344. $('#patientPopup .popup-content.in:not(#popContentConsultDetail)').removeClass('in');
  345. $('.bottom-menu.selected').removeClass('selected');
  346. headerTitle.text("협진상세");
  347. } else {
  348. $('#patientPopup .popup-content').removeClass('in');
  349. $('#patientPopup').css('display', 'none');
  350. if( $('#clinicTab').length > 0 ) {
  351. headerTitle.text("환자목록");
  352. } else if ( $('#consultTab').length > 0 ) {
  353. headerTitle.text("협진");
  354. }
  355. }
  356. return;
  357. }else if($('#nursingPopup').css('bottom')=='0px' && $('#nursingPopup').css('display')=='block'){
  358. $('#openToggle').css({bottom:10}); //에니메이션을 넣으니 화면이 이동된후에 에니메이션 동작이 되어서 css만변경
  359. $('#overlay').stop().animate({bottom:-290},500);
  360. $('#nursingPopup').stop().animate({bottom:-max},500);
  361. $('#newPopupFooter').css('display', 'none');
  362. $('#patientList').css('margin-bottom', '0');
  363. $('#searchPatientList').css('margin-bottom', '0');
  364. $('#openToggle').removeClass('on');
  365. $('#openToggle').find('.fa').removeClass('fa-chevron-down');
  366. $('#openToggle').find('.fa').addClass('fa-chevron-up');
  367. headerTitle.text("환자목록");
  368. //새창이 아닌 아래에서 올라오는 팝업이므로 굳이 필요없게됨. 혹시나싶어서 남겨둠
  369. /* if($('#newPopupPage #popContentNursingRecode').hasClass('in')){
  370. if($('#tabCure').hasClass('active') && $('#cureDetail')[0].style['display']=='block'){
  371. $('#cureDetail').css('display', 'none');
  372. $('#cureList').css('display', 'block');
  373. }else if($('#tabVital').hasClass('active') && $('#vitalInfo')[0].style['display']=='block'){
  374. $('#vitalInfo').css('display', 'none');
  375. $('#vitalSearch').css('display', 'block');
  376. }else{
  377. $('#newPopupPage .popup-content').removeClass('in');
  378. $('#newPopupPage').css('display', 'none');
  379. headerTitle.text("환자목록");
  380. };
  381. }else{
  382. $('#newPopupPage .popup-content').removeClass('in');
  383. $('#newPopupPage').css('display', 'none');
  384. headerTitle.text("환자목록");
  385. }; */
  386. return;
  387. };
  388. /* if($('#modalDetailContent').css('display')=='block'&&$('#emrListInfo').css('display')=='none'){
  389. $('#modalDetailContent').css('display', 'none');
  390. $('#modalContent').css('display', 'block');
  391. return;
  392. }; */
  393. //dialog 열려있으면 닫기
  394. if($('.modal').is(':visible')){
  395. $('.modal').modal('hide');
  396. return;
  397. };
  398. //index 면 종료
  399. if( (window.location.href).indexOf("inpatient.page") > 0 || (window.location.href).indexOf("outpatient.page") > 0 || (window.location.href).indexOf("oppatient.page") > 0
  400. || (window.location.href).indexOf("trpatient.page") > 0 || (window.location.href).indexOf("empatient.page") > 0 || (window.location.href).indexOf("copatient.page") > 0
  401. || (window.location.href).indexOf("login.page") > 0){
  402. exitApp();
  403. return;
  404. };
  405. history.back();
  406. };
  407. //다국어 사용
  408. var i18n = function(){
  409. var message = {
  410. "error500" : "<s:message code='mplus.error.500'/>",
  411. "unauthenticated" : "<s:message code='mplus.auth.unauthenticated'/>"
  412. };
  413. this.getMessage = function( code ){
  414. return message[code];
  415. };
  416. };
  417. // PACS 경로
  418. var pacsUrl = function(){
  419. var gePacsUrl = {
  420. "01" : "<s:eval expression="@mplusConfig['ge.pacs.image.path.01']"/>",
  421. "10" : "<s:eval expression="@mplusConfig['ge.pacs.image.path.10']"/>"
  422. };
  423. var musePacsUrl = {
  424. "01" : "<s:eval expression="@mplusConfig['muse.pacs.image.path.01']"/>",
  425. "10" : "<s:eval expression="@mplusConfig['muse.pacs.image.path.10']"/>"
  426. };
  427. this.getPacsUrl = function (type, hospitalCd) {
  428. if( type == 'S' ) {
  429. return gePacsUrl[hospitalCd];
  430. } else if( type == 'M' ) {
  431. return musePacsUrl[hospitalCd];
  432. }
  433. };
  434. };
  435. </script>
  436. <link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/font-awesome.css" />" />
  437. <script type="text/javascript" src="<c:url value="/resources/plugins/jquery-number-2.1.6/jquery.number.js" /> "></script>
  438. <script type="text/javascript" src="<c:url value="/resources/js/mobile/modal/configlist.js?version=" /><s:message code="mp.version"/>"></script>
  439. <script type="text/javascript" src="<c:url value="/resources/js/mobile/modal/menu.js?version=" /><s:message code="mp.version"/>"></script>
  440. <!-- 부트스트랩 css및 스크립트 -->
  441. <link rel="stylesheet" href="<c:url value="/resources/plugins/bootstrap/css/bootstrap.css" /> ">
  442. <script type="text/javascript" src="<c:url value="/resources/plugins/bootstrap/js/bootstrap.min.js" /> "></script>
  443. <link rel="stylesheet" href="<c:url value="/resources/plugins/jquery-datetimepicker/css/jquery.datetimepicker.min.css" /> ">
  444. <script type="text/javascript" src="<c:url value="/resources/plugins/jquery-datetimepicker/js/jquery.datetimepicker.full.min.js" /> "></script>
  445. <script type="text/javascript" src="<c:url value="/resources/plugins/bootstrap-datepicker/js/moment.js" /> "></script>
  446. <script type="text/javascript" src="<c:url value="/resources/plugins/bootstrap-datepicker/js/bootstrap-datepicker.js" /> "></script>
  447. <link rel="stylesheet" href="<c:url value="/resources/plugins/bootstrap-datepicker/css/datepicker.css" /> ">
  448. <script type="text/javascript" src="<c:url value="/resources/plugins/slick/slick/slick.min.js"/> "></script>
  449. <link rel="stylesheet" href="<c:url value="/resources/plugins/slick/slick/slick.css" /> ">
  450. <link rel="stylesheet" type="text/css" href="<c:url value="/resources/plugins/slick/slick/slick-theme.css"/>" />
  451. <script type="text/javascript" src="<c:url value="/resources/plugins/bootstrap-slider-master/js/bootstrap-slider.js" /> "></script>
  452. <link rel="stylesheet" href="<c:url value="/resources/plugins/bootstrap-slider-master/css/bootstrap-slider.css" /> ">
  453. <!-- mcare-plus javascript -->
  454. <script type="text/javascript" src="<c:url value="/resources/js/core/mplus.core.js?version=" /><s:message code="mp.version"/>"></script>
  455. <script type="text/javascript" src="<c:url value="/resources/js/mobile/mplus.common.js?version=" /><s:message code="mp.version"/>"></script>
  456. <script type="text/javascript" src="<c:url value="/resources/js/mobile/common.js?version=" /><s:message code="mp.version"/>"></script>
  457. <%-- <script type="text/javascript" src="<c:url value="/resources/js/mobile/patient/patient.js?version=" /><s:message code="mp.version"/>"></script>
  458. <script type="text/javascript" src="<c:url value="/resources/js/mobile/patient/nursing.js?version=" /><s:message code="mp.version"/>"></script> --%>
  459. <!--
  460. <link rel="stylesheet" href="<c:url value="/resources/css/mobile/mplus.tablet.css?version=" /><s:message code="mp.version"/>"/>
  461. <link rel="stylesheet" href="<c:url value="/resources/css/mobile/mplus.mobile.css?version=" /><s:message code="mp.version"/>"/>
  462. -->
  463. <link rel="stylesheet" href="<c:url value="/resources/css/mobile_poc/mobile.css?version=" /><s:message code="mp.version"/>"/>
  464. <link rel="stylesheet" href="<c:url value="/resources/css/mobile_poc/reset.css?version=" /><s:message code="mp.version"/>"/>
  465. <%-- <link rel="stylesheet" href="<c:url value="/resources/css/mobile/common.css?version=" /><s:message code="mp.version"/>"/> --%>
  466. <!-- publishing design -->
  467. <%-- <link rel="stylesheet" href="<c:url value='/resources/css/publishing/mobile.css?version=' /><s:message code='mp.version'/>"/>
  468. <link rel="stylesheet" href="<c:url value='/resources/css/publishing/tablet.css?version=' /><s:message code='mp.version'/>"/> --%>
  469. <script type="text/javascript" src="<c:url value='/resources/js/publishing/common.js?version=' /><s:message code='mp.version'/>"></script>
  470. <!-- ======================================================================================================================================= -->
  471. <!-- 로딩이미지 -->
  472. <div class="wrap-loading" style="display: none" id="wrapLoding">
  473. <div class="loader"><img src="<c:url value='/resources/css/images/loading3.gif'/>" style="width: 50px;"></div>
  474. </div>
  475. <!-- ======================================================================================================================================= -->
  476. <div class="menu_wrap">
  477. <div class="side-left">
  478. <div class="side-left-overlay"></div>
  479. <div class="side-left-content">
  480. <div class="nav-left">
  481. <div class="panel panel-default">
  482. <div id="mainMenu">
  483. <div class="menu_top">
  484. <h5>
  485. <i class="icon-man"></i>
  486. </h5>
  487. <div class="name">
  488. <p id="spanCurrentUserName">홍길동 님</p>
  489. <span><span id="spanCurrentDeptName">진료과2</span> <a href="#" id="btnChangeDept"><i>수정</i></a></span>
  490. </div>
  491. <div class="btn">
  492. <button type="button" name="settingBtn" class="setting" id="btnOpenConfigList" style="visibility:hidden">
  493. <i>설정</i>
  494. </button>
  495. <button type="button" name="CloseBtn" class="close">
  496. <i>닫기</i>
  497. </button>
  498. </div>
  499. </div>
  500. <div class="menu_item treatment">
  501. <h5>환자<br>안전</h5>
  502. <ul id="main_menu_medical" class="safe">
  503. <li><a href="<%=request.getContextPath()%>/mobile_poc/medicine/medicine.page?menuId=clinic"><i class="ico1 mb-1"></i><span>투약</span></a></li>
  504. <li><a href="<%=request.getContextPath()%>/mobile_poc/bleeding/bleeding.page?menuId=clinic"><i class="ico2 mb-1"></i><span>채혈</span></a></li>
  505. <li><a href="<%=request.getContextPath()%>/mobile_poc/transfusion/transfusion.page?menuId=clinic"><i class="ico3 mb-1"></i><span>수혈</span></a></li>
  506. <li></li>
  507. <li></li>
  508. <li></li>
  509. </ul>
  510. </div>
  511. </div>
  512. <!--end::id::mainMenu-->
  513. <div class="btn_wrap">
  514. <!-- <button class="help" type="button">도움말</button> -->
  515. <button type="button" id="btnExitApp">종료</button>
  516. <button class="logout" type="button" id="btnLogout">로그아웃</button>
  517. </div>
  518. </div>
  519. <!-- /panel panel-default -->
  520. </div>
  521. <!-- /nav-left -->
  522. </div>
  523. <!--end::class::side-left-->
  524. </div>
  525. </head>
  526. <body>
  527. <div class="modal" id="modalConfigList" data-backdrop="static" style="display: none;">
  528. <div class="modal-dialog modal-full">
  529. <div class="modal-content">
  530. <!--컨테이너 안에 있는 html부터 서브 시작-->
  531. <div class="fixed_navi_wrap">
  532. <div class="navigation">
  533. <h1>환경 설정 선택</h1>
  534. <div class="navi_menu_wrap">
  535. <button type="button" name="pageCloseBtn" class="page_close_btn" data-dismiss="modal">
  536. <i class="icon">닫기</i>
  537. </button>
  538. </div>
  539. <!--end::class::navi_menu_wrap-->
  540. </div>
  541. <!--end::class::navigation-->
  542. </div>
  543. <div class="sub_wrap layout_has_fixed_bottom">
  544. <!--하단 fixed버튼 있을때 감싸기-->
  545. <div class="row">
  546. <div class="col-md-12 modal-body">
  547. <div class="custom-control custom-radio wide control-disabled">
  548. <input type="check" class="custom-control-input control-disabled" id="chkConfigListRegistFido" onfocus="blur()">
  549. <label class="cst-control-label" for="chkConfigListRegistFido">FIDO 등록 / 재등록</label>
  550. </div>
  551. <div class="custom-control custom-radio wide control-disabled">
  552. <input type="check" class="custom-control-input control-disabled" id="chkConfigListRemoveFido" onfocus="blur()">
  553. <label class="cst-control-label" for="chkConfigListRemoveFido">FIDO 삭제</label>
  554. </div>
  555. <div class="custom-control custom-radio wide">
  556. <input type="check" class="custom-control-input" id="chkConfigListChangeAppPwd" onfocus="blur()">
  557. <label class="cst-control-label" for="chkConfigListChangeAppPwd">APP 암호 변경</label>
  558. </div>
  559. <div class="custom-control custom-radio wide">
  560. <input type="check" class="custom-control-input" id="chkConfigListDefaultDept" onfocus="blur()">
  561. <label class="cst-control-label" for="chkConfigListDefaultDept">기본 부서 설정</label>
  562. </div>
  563. <div class="custom-control custom-radio wide">
  564. <input type="check" class="custom-control-input" id="chkConfigListDefaultPage" onfocus="blur()">
  565. <label class="cst-control-label" for="chkConfigListDefaultPage">기본 페이지 설정</label>
  566. </div>
  567. </div>
  568. </div>
  569. </div>
  570. </div>
  571. </div>
  572. </div>
  573. <div class="modal" id="modalDefaultDept" data-backdrop="static" style="display: none;">
  574. <div class="modal-dialog modal-full">
  575. <div class="modal-content">
  576. <!--컨테이너 안에 있는 html부터 서브 시작-->
  577. <div class="fixed_navi_wrap">
  578. <div class="navigation">
  579. <h1>기본 부서 선택</h1>
  580. <div class="navi_menu_wrap">
  581. <button type="button" name="pageCloseBtn" class="page_close_btn" data-dismiss="modal">
  582. <i class="icon">닫기</i>
  583. </button>
  584. </div>
  585. <!--end::class::navi_menu_wrap-->
  586. </div>
  587. <!--end::class::navigation-->
  588. </div>
  589. <div class="sub_wrap layout_has_fixed_bottom">
  590. <!--하단 fixed버튼 있을때 감싸기-->
  591. <div class="row">
  592. <div class="col-md-12 modal-body">
  593. <div class="custom-control custom-radio wide">
  594. <input name="modalDefaultDeptRadio" type="radio" class="custom-control-input" id="modalDefaultDeptRadio0" value="d001" deptname="진료과1">
  595. <label class="cst-control-label" for="modalDefaultDeptRadio0">진료과1</label>
  596. </div>
  597. </div>
  598. </div>
  599. </div>
  600. <div class="bottom-fixed-menu">
  601. <button type="button" class="btn btn-bottom-fixed btn-sky" id="btnModalDefaultDept">저장</button>
  602. <button type="button" class="btn btn-bottom-fixed btn-blue-green" data-dismiss="modal">취소</button>
  603. </div>
  604. </div>
  605. </div>
  606. </div>
  607. <div class="modal" id="modalDefaultPage" data-backdrop="static" style="display: none;">
  608. <div class="modal-dialog modal-full">
  609. <div class="modal-content">
  610. <!--컨테이너 안에 있는 html부터 서브 시작-->
  611. <div class="fixed_navi_wrap">
  612. <div class="navigation">
  613. <h1>기본 화면 선택</h1>
  614. <div class="navi_menu_wrap">
  615. <button type="button" name="pageCloseBtn" class="page_close_btn" data-dismiss="modal">
  616. <i class="icon">닫기</i>
  617. </button>
  618. </div>
  619. <!--end::class::navi_menu_wrap-->
  620. </div>
  621. <!--end::class::navigation-->
  622. </div>
  623. <div class="sub_wrap layout_has_fixed_bottom">
  624. <!--하단 fixed버튼 있을때 감싸기-->
  625. <div class="row">
  626. <div class="col-xs-6 col-sm-6">
  627. <div class="custom-control custom-radio wide" style="margin: 10px 0px;">
  628. <input name="modalDefaultPageRadio" type="radio" class="custom-control-input" id="modalDefaultPageRadio0" value="injection">
  629. <label class="cst-control-label" for="modalDefaultPageRadio0">투약</label>
  630. </div>
  631. </div>
  632. <div class="col-xs-6 col-sm-6" style="margin: 10px 0px;">
  633. <div class="custom-control custom-radio wide">
  634. <input name="modalDefaultPageRadio" type="radio" class="custom-control-input" id="modalDefaultPageRadio1" value="bleeding">
  635. <label class="cst-control-label" for="modalDefaultPageRadio1">채혈</label>
  636. </div>
  637. </div>
  638. <div class="col-xs-6 col-sm-6" style="margin: 10px 0px;">
  639. <div class="custom-control custom-radio wide">
  640. <input name="modalDefaultPageRadio" type="radio" class="custom-control-input" id="modalDefaultPageRadio2" value="bloodmanagement">
  641. <label class="cst-control-label" for="modalDefaultPageRadio2">수혈</label>
  642. </div>
  643. </div>
  644. </div>
  645. </div>
  646. <div class="bottom-fixed-menu">
  647. <button type="button" class="btn btn-bottom-fixed btn-sky" id="btnModalDefaultPage">저장</button>
  648. <button type="button" class="btn btn-bottom-fixed btn-blue-green" data-dismiss="modal">취소</button>
  649. </div>
  650. </div>
  651. </div>
  652. </div>
  653. <div class="modal fade-scale" id="mplusConfirm" tabindex="-1" role="dialog" style="display: none; z-index: 1053;">
  654. <div class="modal-dialog modal-dialog-centered" role="document">
  655. <div class="modal-content">
  656. <div class="modal-header">
  657. <h5 class="modal-title">알림</h5>
  658. <!--
  659. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  660. <span aria-hidden="true">×</span>
  661. </button>
  662. -->
  663. </div>
  664. <div class="modal-body">
  665. 초기화면이 선택되지 않았습니다.<br> 초기화면 설정으로 이동 하시겠습니까?
  666. </div>
  667. <div class="modal-footer">
  668. <button type="button" class="btn btn-dialog-blue btn-lg popupCallback confirmBtn">확인</button>
  669. <button type="button" class="btn btn-dialog btn-lg popupCancel confirmBtn" data-dismiss="modal">취소</button>
  670. </div>
  671. </div>
  672. </div>
  673. </div>
  674. <tiles:insertAttribute name="content" />
  675. <tiles:insertAttribute name="tail" />