nursing.js 43 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193
  1. /**
  2. * mplus_nursing
  3. */
  4. var mplus_nursing = function(){
  5. //상속
  6. mplus_common.call(this);
  7. //super
  8. var self = this;
  9. //변수
  10. //임상 페이지 변수
  11. var btnPlusMaxBps = $('#btnPlusMaxBps');
  12. var btnMinusMaxBps = $('#btnMinusMaxBps');
  13. var maxBpsCheck = $('#maxBpsCheck');
  14. var btnPlusMinBps = $('#btnPlusMinBps');
  15. var btnMinusMinBps = $('#btnMinusMinBps');
  16. var minBpsCheck = $('#minBpsCheck');
  17. var btnPlusPulse = $('#btnPlusPulse');
  18. var btnMinusPulse = $('#btnMinusPulse');
  19. var pulseCheck = $('#pulseCheck');
  20. var btnPlusTemperature = $('#btnPlusTemperature');
  21. var btnMinusTemperature = $('#btnMinusTemperature');
  22. var temperatureCheck = $('#temperatureCheck');
  23. var btnPlusBreath = $('#btnPlusBreath');
  24. var btnMinusBreath = $('#btnMinusBreath');
  25. var breathCheck = $('#breathCheck');
  26. var btnPlusSpO2 = $('#btnPlusSpO2');
  27. var btnMinusSpO2 = $('#btnMinusSpO2');
  28. var spO2Check = $('#spO2Check');
  29. var sliderMaxBps = $("#sliderMaxBps");
  30. var sliderMinBps = $("#sliderMinBps");
  31. var sliderPulse = $("#sliderPulse");
  32. var sliderTemperature = $("#sliderTemperature");
  33. var sliderBreath = $("#sliderBreath");
  34. var sliderSpO2 = $("#sliderSpO2");
  35. var txtMaxBps = $('#txtMaxBps');
  36. var txtMinBps = $('#txtMinBps');
  37. var txtPulse = $('#txtPulse');
  38. var txtTemperature = $('#txtTemperature');
  39. var txtBreath = $('#txtBreath');
  40. var txtSpO2 = $('#txtSpO2');
  41. var div = $('<div></div>');
  42. var span = $('<span></span>');
  43. var tr = $('<tr></tr>');
  44. var td = $('<td></td>');
  45. var li = $('<li></li>');
  46. var input = $('<input></input>');
  47. var label = $('<label></label>');
  48. //약실시 변수
  49. var actingList;
  50. /**
  51. * 초기화
  52. */
  53. this.init = function(){
  54. addEvent();
  55. // 처음에 정보탭이 열리니까 여기서 이걸 해줘야하는건가...??
  56. // 위에 addEvent 안에서 해야되나..?
  57. infoInit();
  58. $('#nursingRecodeTab a[data-toggle="tab"]').unbind();
  59. $('#nursingRecodeTab a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
  60. if($("ul#nursingRecodeTab.nav-tabs li.active a").attr('aria-controls')=='tabInfo'){
  61. infoInit();
  62. }else if($("ul#nursingRecodeTab.nav-tabs li.active a").attr('aria-controls')=='tabHistory'){
  63. historyInit();
  64. }else if($("ul#nursingRecodeTab.nav-tabs li.active a").attr('aria-controls')=='tabVital'){
  65. vitalInit();
  66. }else if($("ul#nursingRecodeTab.nav-tabs li.active a").attr('aria-controls')=='tabInject'){
  67. //self.rotateScreen('vertical');
  68. injectInit();
  69. }else if($("ul#nursingRecodeTab.nav-tabs li.active a").attr('aria-controls')=='tabCure'){
  70. //self.rotateScreen('landscape');
  71. cureInit();
  72. }else{
  73. /*slef.alert('에러메시지?');*/
  74. };
  75. });
  76. /* $('#nursingRecodeTab a[data-toggle="tab"]').on('hide.bs.tab', function (e) {
  77. if($("ul#nursingRecodeTab.nav-tabs li.active a").attr('aria-controls')=='tabCure'){
  78. self.rotateScreen('vertical');
  79. }
  80. });*/
  81. };
  82. //토글이 열려있는 상태에서 다른환자 클릭시 호출
  83. this.reInit = function(tabName){
  84. if(tabName=='tabInfo'){
  85. infoInit();
  86. }else if(tabName=='tabHistory'){
  87. historyInit();
  88. }else if(tabName=='tabVital'){
  89. vitalInit();
  90. }else if(tabName=='tabInject'){
  91. injectInit();
  92. }else if(tabName=='tabCure'){
  93. cureInit();
  94. };
  95. };
  96. /**
  97. * 이벤트 등록
  98. */
  99. var addEvent = function(){
  100. };
  101. //------------------------------------정보 탭---------------------------------------
  102. var infoInit = function() {
  103. // 환자정보 받기
  104. // 환자 상세정보받기
  105. $('#tabInfo').scrollTop(0);
  106. addEventInfo();
  107. };
  108. var addEventInfo = function() {
  109. // 환자 상세정보 Text 펼치기/접기
  110. $('#infoPatientDetail').unbind();
  111. $('#infoPatientDetail').click(function(){
  112. if( $('#infoPatientDetailTxt').hasClass('in')) {
  113. $('#infoPatientDetailTxt').removeClass('in').fadeOut("fast", "linear");
  114. } else {
  115. $('#infoPatientDetailTxt').addClass('in').fadeIn("slow", "linear");
  116. }
  117. });
  118. $('#infoPatientDetailTxt').click(function(){
  119. $('#infoPatientDetailTxt').removeClass('in').fadeOut("fast", "linear");
  120. });
  121. };
  122. //------------------------------------정보 탭 종료 -----------------------------------
  123. //------------------------------------이력 탭---------------------------------------
  124. var historyInit = function() {
  125. historyDataSetting('ALL', 'N', null);
  126. addEventHistory();
  127. $('#tabHistory').scrollTop(0);
  128. };
  129. var addEventHistory = function () {
  130. $('#historyOutMore, #historyInMore, #historyOpMore').unbind();
  131. $('#historyOutMore, #historyInMore, #historyOpMore').click( function(e) {
  132. var targetId = e.currentTarget.id;
  133. var listId = targetId.replace('More', '');
  134. $('#' + targetId).before($('#'+ listId).find('.history-item:last').clone()); /* 야매 코드 */
  135. });
  136. };
  137. var historyDataSetting = function(type, addYn, endDt){
  138. var patientInfo = JSON.parse(localStorage.patientInfo);
  139. var today = new Date();
  140. var targetEndDt = endDt==null? moment(today).format('YYYYMMDD'): moment(moment(endDt)._d - 1 * 1000 * 60 * 60 * 24).format('YYYYMMDD');
  141. var targetStartDt = moment(moment(targetEndDt)._d - 30 * 1000 * 60 * 60 * 24).format('YYYYMMDD');
  142. var param = {
  143. patientId: patientInfo.patientId,
  144. startDt: targetStartDt,
  145. endDt: targetEndDt
  146. };
  147. if(type=='ALL'){ //바인딩할때 리스트 empty하니 탭 이동할때 데이터 조회 오류가나도 empty가 되지않아 여기서 해줌!
  148. if(addYn=='N'){
  149. $('#historyIn').empty();
  150. $('#historyOut').empty();
  151. $('#historyOp').empty();
  152. };
  153. self.nursing.getVisitList(param, 'in', addYn, targetStartDt);
  154. self.nursing.getVisitList(param, 'out', addYn, targetStartDt);
  155. self.nursing.getVisitList(param, 'op', addYn, targetStartDt);
  156. }else{
  157. if(addYn=='N'){
  158. if(type=='in'){
  159. $('#historyIn').empty();
  160. }else if(type=='out'){
  161. $('#historyOut').empty();
  162. }else{
  163. $('#historyOp').empty();
  164. };
  165. };
  166. self.nursing.getVisitList(param, type, addYn, targetStartDt);
  167. };
  168. };
  169. var spanMoreIcon = span.clone().addClass('glyphicon glyphicon-menu-down').attr('aria-hidden', 'true');
  170. var spanCloseIcon = span.clone().addClass('glyphicon glyphicon-menu-up').attr('aria-hidden', 'true');
  171. bindingVisitList = function(visitList, type, addYn, endDt){
  172. var today = new Date();
  173. if(type=='in'){
  174. //입원
  175. $('#inSearchDt').text(moment(endDt).format('YYYY-MM-DD') + ' ~ ' + moment(today).format('YYYY-MM-DD'));
  176. if(addYn=='Y'){
  177. $('#historyInMore').remove();
  178. $('#historyInClose').remove();
  179. };
  180. for(var j=0; j<visitList.length; j++){
  181. var divTreatDt = div.clone().addClass('col-xs-4 col-sm-3 pdl0').append($('<strong></strong>').clone().text(moment(visitList[j].inDt).format('YYYY-MM-DD') + ' ~ ' + (visitList[j].outDt==''? '': moment(visitList[j].outDt).format('YYYY-MM-DD'))));
  182. var divDoctor = div.clone().addClass('col-xs-8 col-sm-4 pd0').text(visitList[j].departmentNm + ' ' + visitList[j].doctorNm + ' ' + visitList[j].wardNm + '/' + visitList[j].roomNm + '/' + visitList[j].bedNm);
  183. var divEmpty = div.clone().addClass('col-xs-4 pd0');
  184. var divDiagnosisNm = div.clone().addClass('col-xs-8 col-sm-5 pd0').text(visitList[j].diagnosisNm);
  185. $('#historyIn').append(div.clone().addClass('history-item col-xs-12').append(divTreatDt).append(divDoctor).append(divEmpty).append(divDiagnosisNm));
  186. };
  187. /*if(visitList.length>0){*/
  188. var divInMore = div.clone().addClass('col-xs-6 history-more text-center').attr('id', 'historyInMore').attr('endDt', endDt);
  189. var divInClose = div.clone().addClass('col-xs-6 history-more text-center').attr('id', 'historyInClose');
  190. $('#historyIn').append(divInMore.append(spanMoreIcon.clone())).append(divInClose.append(spanCloseIcon.clone()));
  191. $('#historyInMore').unbind();
  192. $('#historyInMore').on('click', function(){
  193. historyDataSetting('in', 'Y', $('#historyInMore').attr('endDt'));
  194. });
  195. $('#historyInClose').unbind();
  196. $('#historyInClose').on('click', function(){
  197. $('#inSearchDt').text('');
  198. $('#historyInMore').removeAttr('endDt');
  199. $('#historyIn').find('.history-item').remove();
  200. });
  201. /*};*/
  202. }else if(type=='out'){
  203. //외래
  204. $('#outSearchDt').text(moment(endDt).format('YYYY-MM-DD') + ' ~ ' + moment(today).format('YYYY-MM-DD'));
  205. if(addYn=='Y') {
  206. $('#historyOutMore').remove();
  207. $('#historyOutClose').remove();
  208. };
  209. for(var i=0; i<visitList.length; i++){
  210. var divTreatDt = div.clone().addClass('col-xs-4 col-sm-3 pdl0').append($('<strong></strong>').clone().text(moment(visitList[i].treatDt).format('YYYY-MM-DD')));
  211. var divDoctor = div.clone().addClass('col-xs-8 col-sm-4 pd0').text(visitList[i].departmentNm + ' ' + visitList[i].doctorNm);
  212. var divEmpty = div.clone().addClass('col-xs-4 pd0');
  213. var divDiagnosisNm = div.clone().addClass('col-xs-8 col-sm-5 pd0').text(visitList[i].diagnosisNm);
  214. $('#historyOut').append(div.clone().addClass('history-item col-xs-12').append(divTreatDt).append(divDoctor).append(divEmpty).append(divDiagnosisNm));
  215. };
  216. /*if(visitList.length>0){*/
  217. var divOutMore = div.clone().addClass('col-xs-6 history-more text-center').attr('id', 'historyOutMore').attr('endDt', endDt);
  218. var divOutClose = div.clone().addClass('col-xs-6 history-more text-center').attr('id', 'historyOutClose');
  219. $('#historyOut').append(divOutMore.append(spanMoreIcon.clone())).append(divOutClose.append(spanCloseIcon.clone()));
  220. $('#historyOutMore').unbind();
  221. $('#historyOutMore').on('click', function(){
  222. historyDataSetting('out', 'Y', $('#historyOutMore').attr('endDt'));
  223. });
  224. $('#historyOutClose').unbind();
  225. $('#historyOutClose').on('click', function(){
  226. $('#outSearchDt').text('');
  227. $('#historyOutMore').removeAttr('endDt');
  228. $('#historyOut').find('.history-item').remove();
  229. });
  230. /*};*/
  231. }else{
  232. //수술
  233. $('#opSearchDt').text(moment(endDt).format('YYYY-MM-DD') + ' ~ ' + moment(today).format('YYYY-MM-DD'));
  234. if(addYn=='Y'){
  235. $('#historyOpMore').remove();
  236. $('#historyOpClose').remove();
  237. };
  238. for(var k=0; k<visitList.length; k++){
  239. var divTreatDt = div.clone().addClass('col-xs-4 col-sm-3 pdl0').append($('<strong></strong>').clone().text(moment(visitList[k].operatingDt).format('YYYY-MM-DD')));
  240. var divDoctor = div.clone().addClass('col-xs-8 col-sm-4 pd0').text(visitList[k].operatingNm + ', ' + visitList[k].diagnosisNm);
  241. var divEmpty = div.clone().addClass('col-xs-4 pd0');
  242. var divDiagnosisNm = div.clone().addClass('col-xs-8 col-sm-5 pd0').text(visitList[k].operatingDeptNm + ' '+ visitList[k].operatingDrNm);
  243. $('#historyOp').append(div.clone().addClass('history-item col-xs-12').append(divTreatDt).append(divDoctor).append(divEmpty).append(divDiagnosisNm));
  244. };
  245. /*if(visitList.length>0){*/
  246. var divOpMore = div.clone().addClass('col-xs-6 history-more text-center').attr('id', 'historyOpMore').attr('endDt', endDt);
  247. var divOpClose = div.clone().addClass('col-xs-6 history-more text-center').attr('id', 'historyOpClose');
  248. $('#historyOp').append(divOpMore.append(spanMoreIcon.clone())).append(divOpClose.append(spanCloseIcon.clone()));
  249. $('#historyOpMore').unbind();
  250. $('#historyOpMore').on('click', function(){
  251. historyDataSetting('op', 'Y', $('#historyOpMore').attr('endDt'));
  252. });
  253. $('#historyOpClose').unbind();
  254. $('#historyOpClose').on('click', function(){
  255. $('#opSearchDt').text('');
  256. $('#historyOpMore').removeAttr('endDt');
  257. $('#historyOp').find('.history-item').remove();
  258. });
  259. /*};*/
  260. };
  261. };
  262. //------------------------------------이력 탭 종료 -----------------------------------
  263. //------------------------------------임상 탭---------------------------------------
  264. var vitalInit = function(){
  265. $('#vitalSearch').css('display', 'block');
  266. $('#vitalInfo').css('display', 'none');
  267. $('#vitalSearch #vitalSearchDate').text(moment(new Date).format('YYYY-MM-DD'));
  268. self.lastVital = new Array();
  269. vitalDataSetting(true);
  270. addEventVital();
  271. $('#tabVital').scrollTop(0);
  272. };
  273. var vitalDataSetting = function(saveLastVital){
  274. var patientInfo = JSON.parse(localStorage.patientInfo);
  275. if(patientInfo.visitNo == undefined) return;
  276. var param = {visitNo: patientInfo.visitNo, searchDt: $('#vitalSearchDate').text()};
  277. var vitalList = self.nursing.getVitalList(param);
  278. var vitalListArr = [];
  279. for(var i=0; i<vitalList.length; i++){
  280. /* 2018.06.18. 안드로이드 호환 변경
  281. //if(vitalListArr.find(o => o.time === vitalList[i].ActDt.split(' ')[1])==undefined){
  282. if(vitalListArr.find(function(o){return o.time === vitalList[i].ActDt.split(' ')[1];})==undefined){
  283. vitalListArr.push({
  284. 'time': vitalList[i].ActDt.split(' ')[1],
  285. 'pulse': '-',
  286. 'breath': '-',
  287. 'temperature': '-',
  288. 'minBps': '-',
  289. 'maxBps': '-',
  290. 'spO2': '-'
  291. });
  292. }*/
  293. var Arrtemp = undefined;
  294. for(var j=0; j<vitalListArr.length ; j++){
  295. if(vitalListArr[j].time === vitalList[i].actDt.split(' ')[1]){
  296. Arrtemp = vitalListArr[j];
  297. break;
  298. }
  299. }
  300. if(Arrtemp == undefined){
  301. vitalListArr.push({
  302. 'time': vitalList[i].actDt.split(' ')[1],
  303. 'pulse': '-',
  304. 'breath': '-',
  305. 'temperature': '-',
  306. 'minBps': '-',
  307. 'maxBps': '-',
  308. 'spO2': '-'
  309. });
  310. }
  311. //2018.06.18. 안드로이드 호환 변경
  312. //var targetObject = vitalListArr.find(o => o.time === vitalList[i].ActDt.split(' ')[1]);
  313. var targetObject = null;
  314. for(var j=0; j<vitalListArr.length ; j++){
  315. if(vitalListArr[j].time === vitalList[i].actDt.split(' ')[1]){
  316. targetObject = vitalListArr[j];
  317. break;
  318. }
  319. }
  320. if(vitalList[i].itmCd=='1000500001'){//맥박
  321. targetObject.pulse = vitalList[i].msmtVal;
  322. }else if(vitalList[i].itmCd=='1000600001'){//호흡
  323. targetObject.breath = vitalList[i].msmtVal;
  324. }else if(vitalList[i].itmCd=='1000700001'){//DBP
  325. targetObject.temperature = vitalList[i].msmtVal;
  326. }else if(vitalList[i].itmCd=='1000900001'){//DBP
  327. targetObject.minBps = vitalList[i].msmtVal;
  328. }else if(vitalList[i].itmCd=='1000800001'){//SBP
  329. targetObject.maxBps = vitalList[i].msmtVal;
  330. }else if(vitalList[i].itmCd=='2001100049'){//SPO2
  331. targetObject.spO2 = vitalList[i].msmtVal;
  332. }else{
  333. }
  334. }
  335. vitalListArr = self.util.sortObj(vitalListArr, 'time', 'string', 'down');
  336. if( saveLastVital && vitalListArr.length > 0) {
  337. self.lastVital.push(vitalListArr[0]);
  338. }
  339. vitalDataBinding(vitalListArr);
  340. };
  341. var vitalDataBinding = function(vitalList){
  342. $('#vitalList').empty();
  343. for(var i=0; i<vitalList.length; i++){
  344. var timeCell = td.clone().text(vitalList[i].time);
  345. var pulseCell = td.clone().text(vitalList[i].pulse==''? '-': vitalList[i].pulse);
  346. var breathCell = td.clone().text(vitalList[i].breath==''? '-': vitalList[i].breath);
  347. var temperatureCell = td.clone().text(vitalList[i].temperature==''? '-': vitalList[i].temperature);
  348. var minBpsCell = td.clone().text(vitalList[i].minBps==''? '-': vitalList[i].minBps);
  349. var maxBpsCell = td.clone().text(vitalList[i].maxBps==''? '-': vitalList[i].maxBps);
  350. var spO2Cell = td.clone().text(vitalList[i].spO2==''? '-': vitalList[i].spO2);
  351. var vitalRow = tr.clone().append(timeCell).append(pulseCell).append(breathCell)
  352. .append(temperatureCell).append(maxBpsCell).append(minBpsCell).append(spO2Cell);
  353. $('#vitalList').append(vitalRow);
  354. }
  355. };
  356. var addEventVital = function(){
  357. $('#vitalSearch .vital-prev-day').unbind();
  358. $('#vitalSearch .vital-prev-day').click(function() {
  359. var currentDate = moment($('#vitalSearch #vitalSearchDate').text()).format('YYYY-MM-DD');
  360. $('#vitalSearch #vitalSearchDate').text(moment(currentDate).add(-1, 'days').format('YYYY-MM-DD'));
  361. vitalDataSetting(false);
  362. });
  363. $('#vitalSearch .vital-next-day').unbind();
  364. $('#vitalSearch .vital-next-day').click(function() {
  365. var currentDate = moment($('#vitalSearch #vitalSearchDate').text()).format('YYYY-MM-DD');
  366. $('#vitalSearch #vitalSearchDate').text(moment(currentDate).add(1, 'days').format('YYYY-MM-DD'));
  367. vitalDataSetting(false);
  368. });
  369. $('#btnInputVital').unbind();
  370. $('#btnInputVital').click(function(){
  371. $('#vitalSearch').css('display', 'none');
  372. $('#vitalInfo').css('display', 'block');
  373. initVitalData();
  374. });
  375. $('#btnSearchVital').unbind();
  376. $('#btnSearchVital').click(function(){
  377. $('#vitalSearch').css('display', 'block');
  378. $('#vitalInfo').css('display', 'none');
  379. vitalInit();
  380. });
  381. maxBpsCheck.unbind();
  382. maxBpsCheck.change(function(e){
  383. if(e.currentTarget.checked){
  384. sliderMaxBps.slider('enable', true);
  385. btnPlusMaxBps.attr('disabled', false);
  386. btnMinusMaxBps.attr('disabled', false);
  387. txtMaxBps.attr('disabled', false);
  388. }else{
  389. sliderMaxBps.slider('disable', true);
  390. btnPlusMaxBps.attr('disabled', 'disabled');
  391. btnMinusMaxBps.attr('disabled', 'disabled');
  392. txtMaxBps.attr('disabled', 'disabled');
  393. };
  394. });
  395. btnPlusMaxBps.unbind();
  396. btnPlusMaxBps.click(function(e){
  397. sliderMaxBps.slider('setValue', Number(sliderMaxBps.val())+1);
  398. txtMaxBps.val(sliderMaxBps.val());
  399. });
  400. btnMinusMaxBps.unbind();
  401. btnMinusMaxBps.click(function(e){
  402. sliderMaxBps.slider('setValue', Number(sliderMaxBps.val())-1);
  403. txtMaxBps.val(sliderMaxBps.val());
  404. });
  405. minBpsCheck.unbind();
  406. minBpsCheck.change(function(e){
  407. if(e.currentTarget.checked){
  408. sliderMinBps.slider('enable', true);
  409. btnPlusMinBps.attr('disabled', false);
  410. btnMinusMinBps.attr('disabled', false);
  411. txtMinBps.attr('disabled', false);
  412. }else{
  413. sliderMinBps.slider('disable', true);
  414. btnPlusMinBps.attr('disabled', 'disabled');
  415. btnMinusMinBps.attr('disabled', 'disabled');
  416. txtMinBps.attr('disabled', 'disabled');
  417. };
  418. });
  419. btnPlusMinBps.unbind();
  420. btnPlusMinBps.click(function(e){
  421. sliderMinBps.slider('setValue', Number(sliderMinBps.val())+1);
  422. txtMinBps.val(sliderMinBps.val());
  423. });
  424. btnMinusMinBps.unbind();
  425. btnMinusMinBps.click(function(e){
  426. sliderMinBps.slider('setValue', Number(sliderMinBps.val())-1);
  427. txtMinBps.val(sliderMinBps.val());
  428. });
  429. pulseCheck.unbind();
  430. pulseCheck.change(function(e){
  431. if(e.currentTarget.checked){
  432. sliderPulse.slider('enable', true);
  433. btnPlusPulse.attr('disabled', false);
  434. btnMinusPulse.attr('disabled', false);
  435. txtPulse.attr('disabled', false);
  436. }else{
  437. sliderPulse.slider('disable', true);
  438. btnPlusPulse.attr('disabled', 'disabled');
  439. btnMinusPulse.attr('disabled', 'disabled');
  440. txtPulse.attr('disabled', 'disabled');
  441. };
  442. });
  443. btnPlusPulse.unbind();
  444. btnPlusPulse.click(function(e){
  445. sliderPulse.slider('setValue', Number(sliderPulse.val())+1);
  446. txtPulse.val(sliderPulse.val());
  447. });
  448. btnMinusPulse.unbind();
  449. btnMinusPulse.click(function(e){
  450. sliderPulse.slider('setValue', Number(sliderPulse.val())-1);
  451. txtPulse.val(sliderPulse.val());
  452. });
  453. temperatureCheck.unbind();
  454. temperatureCheck.change(function(e){
  455. if(e.currentTarget.checked){
  456. sliderTemperature.slider('enable', true);
  457. btnPlusTemperature.attr('disabled', false);
  458. btnMinusTemperature.attr('disabled', false);
  459. txtTemperature.attr('disabled', false);
  460. }else{
  461. sliderTemperature.slider('disable', true);
  462. btnPlusTemperature.attr('disabled', 'disabled');
  463. btnMinusTemperature.attr('disabled', 'disabled');
  464. txtTemperature.attr('disabled', 'disabled');
  465. };
  466. });
  467. btnPlusTemperature.unbind();
  468. btnPlusTemperature.click(function(e){
  469. sliderTemperature.slider('setValue', Number(sliderTemperature.val())+0.1);
  470. txtTemperature.val(sliderTemperature.val());
  471. });
  472. btnMinusTemperature.unbind();
  473. btnMinusTemperature.click(function(e){
  474. sliderTemperature.slider('setValue', Number(sliderTemperature.val())-0.1);
  475. txtTemperature.val(sliderTemperature.val());
  476. });
  477. breathCheck.unbind();
  478. breathCheck.change(function(e){
  479. if(e.currentTarget.checked){
  480. sliderBreath.slider('enable', true);
  481. btnPlusBreath.attr('disabled', false);
  482. btnMinusBreath.attr('disabled', false);
  483. txtBreath.attr('disabled', false);
  484. }else{
  485. sliderBreath.slider('disable', true);
  486. btnPlusBreath.attr('disabled', 'disabled');
  487. btnMinusBreath.attr('disabled', 'disabled');
  488. txtBreath.attr('disabled', 'disabled');
  489. };
  490. });
  491. btnPlusBreath.unbind();
  492. btnPlusBreath.click(function(e){
  493. sliderBreath.slider('setValue', Number(sliderBreath.val())+1);
  494. txtBreath.val(sliderBreath.val());
  495. });
  496. btnMinusBreath.unbind();
  497. btnMinusBreath.click(function(e){
  498. sliderBreath.slider('setValue', Number(sliderBreath.val())-1);
  499. txtBreath.val(sliderBreath.val());
  500. });
  501. spO2Check.unbind();
  502. spO2Check.change(function(e){
  503. if(e.currentTarget.checked){
  504. sliderSpO2.slider('enable', true);
  505. btnPlusSpO2.attr('disabled', false);
  506. btnMinusSpO2.attr('disabled', false);
  507. txtSpO2.attr('disabled', false);
  508. }else{
  509. sliderSpO2.slider('disable', true);
  510. btnPlusSpO2.attr('disabled', 'disabled');
  511. btnMinusSpO2.attr('disabled', 'disabled');
  512. txtSpO2.attr('disabled', 'disabled');
  513. };
  514. });
  515. btnPlusSpO2.unbind();
  516. btnPlusSpO2.click(function(e){
  517. sliderSpO2.slider('setValue', Number(sliderSpO2.val())+1);
  518. txtSpO2.val(sliderSpO2.val());
  519. });
  520. btnMinusSpO2.unbind();
  521. btnMinusSpO2.click(function(e){
  522. sliderSpO2.slider('setValue', Number(sliderSpO2.val())-1);
  523. txtSpO2.val(sliderSpO2.val());
  524. });
  525. $('#btnVitalSubmit').unbind();
  526. $('#btnVitalSubmit').click(function(e){
  527. saveVitalInfo();
  528. });
  529. };
  530. var initVitalData = function(){
  531. // 최근 입력 값 셋팅
  532. // 전날까지 입력한 값이 없는 경우는 Default 값 셋팅
  533. var today = new Date();
  534. if( self.lastVital.length == 0 ) {
  535. $('#vitalSearch #vitalSearchDate').text(moment(today).add(-1, 'days').format('YYYY-MM-DD'));
  536. vitalDataSetting(true);
  537. if( self.lastVital.length == 0 ) {
  538. self.lastVital.push({
  539. 'pulse': '-',
  540. 'breath': '-',
  541. 'temperature': '-',
  542. 'minBps': '-',
  543. 'maxBps': '-',
  544. 'spO2': '-'
  545. });
  546. }
  547. }
  548. // 입력일시 셋팅
  549. $('#vitalInfo #vitalEnteredTm span.content').text(moment(today).format('YYYY년 MM월 DD일 HH시 mm분'));
  550. //입력일시 셋팅
  551. var minEnterTime = new Date();
  552. var maxEnterTime = new Date();
  553. minEnterTime.setHours(minEnterTime.getHours()-3);
  554. maxEnterTime.setHours(maxEnterTime.getHours()+3);
  555. $.datetimepicker.setLocale('ko');
  556. $('#enterDateTime').datetimepicker({
  557. value:new Date(),
  558. minDate:minEnterTime,
  559. maxDate:maxEnterTime,
  560. minTime:minEnterTime,
  561. maxTime:maxEnterTime,
  562. formatDate:'Y-m-d H:i',
  563. format:'Y-m-d H:i',
  564. step:5
  565. });
  566. var lastInputValue = 0;
  567. // 최고혈압
  568. lastInputValue = self.lastVital[0].maxBps;
  569. if( lastInputValue == '-' ) {
  570. sliderMaxBps.slider({ value: 120 });
  571. txtMaxBps.val('');
  572. } else {
  573. sliderMaxBps.slider({
  574. value: lastInputValue
  575. });
  576. txtMaxBps.val(lastInputValue);
  577. }
  578. maxBpsCheck.prop('checked', false).trigger('change');
  579. // 최저혈압
  580. lastInputValue = self.lastVital[0].minBps;
  581. if( lastInputValue == '-' ) {
  582. sliderMinBps.slider({ value: 80 });
  583. txtMinBps.val('');
  584. } else {
  585. sliderMinBps.slider({
  586. value: lastInputValue
  587. });
  588. txtMinBps.val(lastInputValue);
  589. }
  590. minBpsCheck.prop('checked', false).trigger('change');
  591. // 맥박
  592. lastInputValue = self.lastVital[0].pulse;
  593. if( lastInputValue == '-' ) {
  594. sliderPulse.slider({ value: 80 });
  595. txtPulse.val('');
  596. } else {
  597. sliderPulse.slider({
  598. value: lastInputValue
  599. });
  600. txtPulse.val(lastInputValue);
  601. }
  602. pulseCheck.prop('checked', false).trigger('change');
  603. // 체온
  604. lastInputValue = self.lastVital[0].temperature;
  605. if( lastInputValue == '-' ) {
  606. sliderTemperature.slider({ value: 36.5, percision: 1 });
  607. txtTemperature.val('');
  608. } else {
  609. sliderTemperature.slider({
  610. value: lastInputValue,
  611. percision: 1
  612. });
  613. txtTemperature.val(lastInputValue);
  614. }
  615. temperatureCheck.prop('checked', false).trigger('change');
  616. // 호흡
  617. lastInputValue = self.lastVital[0].breath;
  618. if( lastInputValue == '-' ) {
  619. sliderBreath.slider({ value: 20 });
  620. txtBreath.val('');
  621. } else {
  622. sliderBreath.slider({
  623. value: lastInputValue
  624. });
  625. txtBreath.val(lastInputValue);
  626. }
  627. breathCheck.prop('checked', false).trigger('change');
  628. // 산소포화도
  629. lastInputValue = self.lastVital[0].spO2;
  630. if( lastInputValue == '-' ) {
  631. sliderSpO2.slider({ value: 100 });
  632. txtSpO2.val('');
  633. } else {
  634. sliderSpO2.slider({
  635. value: lastInputValue
  636. });
  637. txtSpO2.val(lastInputValue);
  638. }
  639. spO2Check.prop('checked', false).trigger('change');
  640. // 슬라이더 이벤트 추가
  641. $('.slider').change(function(e) {
  642. syncSliderToTxt(e.currentTarget.id);
  643. });
  644. // 텍스트박스 이벤트 추가
  645. $('.vital-value').keyup(function(e) {
  646. if( e.keyCode != 8) {
  647. syncTxtToSlider(e.currentTarget.id);
  648. }
  649. });
  650. };
  651. var saveVitalInfo = function(){
  652. var patientInfo = JSON.parse(localStorage.patientInfo);
  653. var userId = JSON.parse(localStorage.user).userId;
  654. var today = new Date();
  655. var param = {vital: []};
  656. if($('.vital-checkbox input[type=checkbox]:checked').length==0){
  657. self.alert('임상관찰 데이터를 입력해주세요.');
  658. return;
  659. }
  660. for(var i=0; i<$('.vital-checkbox input[type=checkbox]:checked').length; i++){
  661. var itemCd = $('.vital-checkbox input[type=checkbox]:checked')[i].attributes['data-itemcd'].value;
  662. param.vital.push(
  663. {
  664. visitNo: patientInfo.visitNo,
  665. //actTm: moment(today).format('YYYY-MM-DD HH:mm'),
  666. actTm: $('#enterDateTime').val(),
  667. treatTyp: patientInfo.treatTyp,
  668. itemCd: itemCd,
  669. monitorVal: $('.vital-value[data-itemCd="'+itemCd+'"]').val(),
  670. userId: userId
  671. }
  672. );
  673. }
  674. var setVitalResult = self.nursing.setVitalList(param);
  675. var returnMsg = '';
  676. var returnState = 'Y';
  677. for(var j=0; j<setVitalResult.length; j++){
  678. if(setVitalResult[j].returnVal != 'OK'){
  679. returnState = 'N';
  680. if(setVitalResult[j].itemCd=='1000500001'){
  681. returnMsg = returnMsg + '맥박, ';
  682. }else if(setVitalResult[j].itemCd=='1000600001'){
  683. returnMsg = returnMsg + '호흡, ';
  684. }else if(setVitalResult[j].itemCd=='1000700001'){
  685. returnMsg = returnMsg + '체온, ';
  686. }else if(setVitalResult[j].itemCd=='1000900001'){
  687. returnMsg = returnMsg + 'DBP, ';
  688. }else if(setVitalResult[j].itemCd=='1000800001'){
  689. returnMsg = returnMsg + 'SBP, ';
  690. }else if(setVitalResult[j].itemCd=='2001100049'){
  691. returnMsg = returnMsg + 'SPO2, ';
  692. };
  693. };
  694. };
  695. if(returnState == 'Y'){
  696. returnMsg = '입력 완료 되었습니다';
  697. }else{
  698. returnMsg = '[ '+ (returnMsg.substr(0, returnMsg.length-2)) + ' ] 입력에 실패했습니다.';
  699. };
  700. self.alert(returnMsg);
  701. };
  702. var syncSliderToTxt = function(sliderId) {
  703. var value = $('input#' + sliderId).val();
  704. var txtId = sliderId.replace('slider', 'txt');
  705. $('input#' + txtId).val(value);
  706. };
  707. var syncTxtToSlider = function(txtId) {
  708. var value = $('input#' + txtId).val();
  709. var sliderId = txtId.replace('txt', 'slider');
  710. $('input#' + sliderId).slider('setValue', Number(value));
  711. // 범위 벗어난 경우에 대해 체크
  712. if( value.length > 0 && Number(value) > $('input#' + sliderId).val()) {
  713. $('input#' + txtId).val($('input#' + sliderId).val());
  714. }
  715. };
  716. //------------------------------------임상 탭 종료---------------------------------------
  717. //------------------------------------투약 탭 -----------------------------------------
  718. var injectInit = function() {
  719. $('#injectSearch #injectSearchDate').text(moment(new Date()).format('YYYY-MM-DD'));
  720. injectBinding();
  721. addEventInject();
  722. $('#tabInject').scrollTop(0);
  723. };
  724. var addEventInject = function(){
  725. $('#injectSearch .inject-prev-day').unbind();
  726. $('#injectSearch .inject-prev-day').click(function() {
  727. var currentDate = moment($('#injectSearch #injectSearchDate').text()).format('YYYY-MM-DD');
  728. $('#injectSearch #injectSearchDate').text(moment(currentDate).add(-1, 'days').format('YYYY-MM-DD'));
  729. injectBinding();
  730. });
  731. $('#injectSearch .inject-next-day').unbind();
  732. $('#injectSearch .inject-next-day').click(function() {
  733. var currentDate = moment($('#injectSearch #injectSearchDate').text()).format('YYYY-MM-DD');
  734. $('#injectSearch #injectSearchDate').text(moment(currentDate).add(1, 'days').format('YYYY-MM-DD'));
  735. injectBinding();
  736. });
  737. };
  738. var addEventInjectItem = function() {
  739. $('#injectDataList .list-group-item').unbind();
  740. $('#injectDataList .list-group-item').click(function(){
  741. var detailArea = $(this).find('.inject-data-detail');
  742. if( detailArea.hasClass('hidden')) {
  743. detailArea.removeClass('hidden');
  744. } else {
  745. detailArea.addClass('hidden');
  746. }
  747. });
  748. };
  749. var injectBinding = function(){
  750. var patientInfo = JSON.parse(localStorage.patientInfo);
  751. var searchDate = moment($('#injectSearchDate').text()).format('YYYYMMDD');
  752. var param = {
  753. 'patientId': patientInfo.patientId,
  754. 'startDt': searchDate,
  755. 'endDt': searchDate,
  756. };
  757. var medicationList = self.nursing.getMedicationHistory(param);
  758. $('#injectDataList').empty();
  759. for(var i=0; i<medicationList.length; i++){
  760. var injectOuterRow = div.clone().addClass('list-group-item');
  761. var injectInnerRow = div.clone().addClass('list-row container');
  762. var wrapRow12 = div.clone().addClass('col-xs-12 col-sm-6 pd0');
  763. var numCol = div.clone().addClass('col-xs-2 col-sm-2 pdl5 pdr5').append(medicationList[i].OrdNo);
  764. var drugNmCol = div.clone().addClass('col-xs-10 col-sm-10 pdl5 pdr5 letter-control').append(medicationList[i].OrdNm);
  765. var execYnCol = div.clone().addClass('col-xs-2 col-sm-2 pdl5 pdr5').append(medicationList[i].ExecYn);
  766. var capacityCol = div.clone().addClass('col-xs-3 col-sm-3 pdl5 pdr5').append(Number(medicationList[i].Qty) + ' (' + Number(medicationList[i].TQty) + ')');
  767. var executeTmCol = div.clone().addClass('col-xs-4 col-sm-4 pdl5 pdr5').append(medicationList[i].DrgInjExecStrHms==null? '-': (moment(medicationList[i].DrgInjExecStrHms, 'HHmmss').format('HH:mm:ss')));
  768. var seqCol = div.clone().addClass('col-xs-3 col-sm-3 pdl5 pdr5').append((medicationList[i].DrgInjExecSeq==null?'-':medicationList[i].DrgInjExecSeq) + ' / ' + medicationList[i].Frq);
  769. /* var dsgCdCol = div.clone().addClass('col-xs-3 col-sm-3 pdl0 pdr5').append(medicationList[i].DsgCd);
  770. var prescriptionDtCol = div.clone().addClass('col-xs-3 col-sm-3 pdl5 pdr5').append(medicationList[i].prescriptionDt==null? '-': (moment(medicationList[i].prescriptionDt).format('YYYY-MM-DD')));
  771. var prescriptionDeptNmCol = div.clone().addClass('col-xs-4 col-sm-4 pdl5 pdr5').append(medicationList[i].prescriptionDeptNm + '/'+ (medicationList[i].prescriptionNm==undefined? '': medicationList[i].prescriptionNm));
  772. var executeDtCol = div.clone().addClass('col-xs-4 col-sm-4 pdl5 pdr5').append((medicationList[i].executeDt==null? '-': (moment(medicationList[i].executeDt).format('YYYY-MM-DD'))) +'/'+ (medicationList[i].executeNm==null? '': medicationList[i].executeNm));
  773. var capacityCol = div.clone().addClass('col-xs-2 col-sm-2 pdl5 pdr5').append(medicationList[i].capacity);
  774. var doseQtyPerTimCol = div.clone().addClass('col-xs-2 col-sm-2 pdl5 pdr5').append(medicationList[i].doseQtyPerDay);
  775. */
  776. var presDtItem = div.clone().append(span.clone().addClass('mp-dot')).append(span.clone().addClass('top-info-style')
  777. .append('처방일: ').append(medicationList[i].OrdYmd==null? '-': (moment(medicationList[i].OrdYmd).format('YYYY-MM-DD'))));
  778. var presDeptItem = div.clone().append(span.clone().addClass('mp-dot')).append(span.clone().addClass('top-info-style')
  779. .append('처방과: ').append(medicationList[i].ClnDeptCd));
  780. var presDoctorItem = div.clone().append(span.clone().addClass('mp-dot')).append(span.clone().addClass('top-info-style')
  781. .append('처방의: ').append('-'));
  782. var presExecuteDtItem = div.clone().append(span.clone().addClass('mp-dot')).append(span.clone().addClass('top-info-style')
  783. .append('시작일: ').append('-'));
  784. var presExecuteDeptItem = div.clone().append(span.clone().addClass('mp-dot')).append(span.clone().addClass('top-info-style')
  785. .append('시행부서: ').append('-'));
  786. var presExecuteNmItem = div.clone().append(span.clone().addClass('mp-dot')).append(span.clone().addClass('top-info-style')
  787. .append('시행자: ').append(medicationList[i].DrgInjExecId==null?'-':medicationList[i].DrgInjExecId));
  788. var detail = div.clone().addClass('inject-data-detail hidden').append(presDtItem).append(presDeptItem).append(presDoctorItem)
  789. .append(presExecuteDtItem).append(presExecuteDeptItem).append(presExecuteNmItem);
  790. var injectRow = li.clone().append(
  791. injectOuterRow.append(
  792. injectInnerRow.append(wrapRow12.clone().append(numCol)
  793. .append(drugNmCol)
  794. ).append(wrapRow12.clone().append(execYnCol)
  795. .append(capacityCol)
  796. .append(executeTmCol)
  797. .append(seqCol)
  798. )
  799. ).append(detail)
  800. );
  801. $('#injectDataList').append(injectRow);
  802. }
  803. addEventInjectItem();
  804. };
  805. //------------------------------------투약 탭 종료--------------------------------------
  806. //------------------------------------약실시 탭 ---------------------------------------
  807. var cureInit = function(){
  808. var today = new Date();
  809. $('#sltTime').val(moment(today).format('HH'));
  810. $('#sltTimeType').val('current');
  811. $('#sltMedType').val('A01');
  812. addEventCure();
  813. $('#btnSearchCure').click();
  814. };
  815. var addEventCure = function(){
  816. $('#sltTimeType').unbind();
  817. $('#sltTimeType').change(function(e){
  818. if(e.currentTarget.value=='special'){
  819. $('#sltTime').prop('disabled', false);
  820. }else{
  821. $('#sltTime').prop('disabled', true);
  822. }
  823. });
  824. $('#btnSearchCure').unbind();
  825. $('#btnSearchCure').click(function(e){
  826. getCureList();
  827. });
  828. $('#btnStartDrug').unbind();
  829. $('#btnStartDrug').click(function(){
  830. if($('input[type=checkbox][id*=chk_cureDetail_]:checked').length>0){
  831. $('#modalStartDrug').modal('show');
  832. /*$('#modalStartSap').modal('show');*/
  833. $('input#sapNo').prop('checked', true).trigger('change');
  834. }else{
  835. self.alert('투약내역을 선택해주세요.');
  836. return;
  837. };
  838. });
  839. $('#btnChangeDrug').unbind();
  840. $('#btnChangeDrug').click(function(){
  841. if($('input[type=checkbox][id*=chk_cureDetail_]:checked').length>0){
  842. $('#modalChangeDrug').modal('show');
  843. /*$('#modalStartSap').modal('show');*/
  844. $('input#sapYes').prop('checked', true).trigger('change');
  845. }else{
  846. self.alert('투약내역을 선택해주세요.');
  847. return;
  848. };
  849. });
  850. $('#modalChangeDrug').on('show.bs.modal', function (e) {
  851. $('#dateChangeDrug')[0].value = self.util.toDatetimeLocal(new Date());
  852. });
  853. $('#btnStartSap').unbind();
  854. $('#btnStartSap').click(function(){//이 if문을 나중에 정상 실시, 변경후 실시 로직 안으로 옮기기
  855. if($('input[type=checkbox][id*=chk_cureDetail_]:checked').length>0){
  856. $('#modalStartSap').modal('show');
  857. $('input#sapYes').prop('checked', true).trigger('change');
  858. }else{
  859. self.alert('투약내역을 선택해주세요.');
  860. return;
  861. };
  862. });
  863. $('#modalStartSap').on('show.bs.modal', function (e) {
  864. $('#dateStartSap')[0].value = self.util.toDatetimeLocal(new Date());
  865. $('#dateEndSap')[0].value = self.util.toDatetimeLocal(new Date());
  866. $('input[name="sapStatus"]').unbind();
  867. $('input[name="sapStatus"]').change(function(e){
  868. if(e.currentTarget.value=='N'){
  869. $('.disabled-sapYes').prop('disabled', true);
  870. $('.disabled-sapEnd').prop('disabled', true);
  871. }else if(e.currentTarget.value=='Y'){
  872. $('.disabled-sapYes').prop('disabled', false);
  873. $('.disabled-sapEnd').prop('disabled', true);
  874. }else{
  875. $('.disabled-sapYes').prop('disabled', true);
  876. $('.disabled-sapEnd').prop('disabled', false);
  877. };
  878. });
  879. $('#btnExecuteIvStart').unbind();
  880. $('#btnExecuteIvStart').click(function(){
  881. var actingData = actingList[$('input[type=checkbox][id*=chk_cureDetail_]:checked')[0].id.split('_')[2]];
  882. var patientInfo = JSON.parse(localStorage.patientInfo);
  883. var prepYn = '';
  884. if(actingData.OrdKindCd.trim()=='S' || actingData.OrdKindCd.trim()=='U' || actingData.OrdKindCd.trim()=='V' || actingData.OrdKindCd.trim()=='W'
  885. || actingData.DrgOrdGb.trim()=='J' || actingData.DrgOrdGb.trim()=='R' || actingData.DrgOrdGb.trim()=='S' || actingData.DrgOrdGb.trim()=='D' || actingData.DrgOrdGb.trim()=='E'){
  886. if((actingData.OrdExecYmd==null || actingData.OrdExecYmd.trim()=='') && (actingData.OrdProgStus.trim()=='00' || actingData.OrdProgStus.trim()=='05')){
  887. prepYn = 'N';
  888. }else if((actingData.OrdExecYmd!=null && actingData.OrdExecYmd.trim()!='') && (actingData.OrdProgStus.trim()=='00' || actingData.OrdProgStus.trim()=='05')){
  889. prepYn = 'Y';
  890. }else{
  891. prepYn = '';
  892. }
  893. }else{
  894. prepYn = '';
  895. };
  896. console.log({
  897. 'userId': JSON.parse(localStorage.user).userId,
  898. 'chosNo': patientInfo.patientId,
  899. 'grNo': actingData.OrdNo2 + '/'+actingData.DrgInjExecSeq + '/' + actingData.OrdYmd, //이게 맞는지?
  900. 'actDt': moment($('#dateStartSap').val()).format('YYYYMMDD HHmm'),
  901. 'msmtVal': $('#sapCapacity').val(),
  902. 'RgtId': JSON.parse(localStorage.user).userId,
  903. 'patNm': patientInfo.patientNm,
  904. 'ordYmd': actingData.OrdYmd,
  905. 'ordSeq': actingData.OrdSeq,
  906. 'ordNo': actingData.OrdNo,
  907. 'drgInjExecSeq': actingData.DrgInjExecSeq,
  908. 'injDuseQty': '0.000',
  909. 'execStrYmd': moment($('#dateStartSap').val()).format('YYYYMMDD'),
  910. 'execStrHm': moment($('#dateStartSap').val()).format('HHmm'),
  911. 'ordTypCd': actingData.OrdTypCd2,
  912. 'execYn': actingData.ExecGb,
  913. 'hmChgResn': $('#sltChangeSap option:selected').val(),
  914. 'basCapUnitNm': actingData.BasCapUnitNm,
  915. 'drgInjExecQty': actingData.DrgInjExecQty,
  916. 'drgInjExecQty1': '',
  917. 'qty': actingData.Qty,
  918. 'callLoc': '2',
  919. 'chosGb': 'I',
  920. 'ordProgLoc': localStorage.selectDeptCode,
  921. 'cnYn': 'N',
  922. 'prepYn': prepYn,
  923. 'vaccOrdCd': actingData.VaccOrdCd,
  924. 'vaccRegYn': actingData.VaccRegYn,
  925. 'ordExecYmd': actingData.OrdExecYmd,
  926. 'ordExecHms': '', //선택한 항목의 ordExecHms, OrdExecYmd밖에없는뎅????
  927. 'execGb': actingData.ExecGb
  928. })
  929. });
  930. });
  931. $('#btnEndSap').unbind();
  932. $('#btnEndSap').click(function(){//이 if문을 나중에 정상 실시, 변경후 실시 로직 안으로 옮기기
  933. if($('input[type=checkbox][id*=chk_cureDetail_]:checked').length>0){
  934. /*$('#modalEndSap').modal('show');*/
  935. $('#modalStartSap').modal('show');
  936. $('input#sapEnd').prop('checked', true).trigger('change');
  937. }else{
  938. self.alert('투약내역을 선택해주세요.');
  939. return;
  940. };
  941. });
  942. $('#modalEndSap').on('show.bs.modal', function (e) {
  943. $('#dateEndSap')[0].value = self.util.toDatetimeLocal(new Date());
  944. });
  945. };
  946. var getCureList = function(duty){
  947. $('#cureDetailDataList').empty();
  948. var patientInfo = JSON.parse(localStorage.patientInfo);
  949. if(patientInfo.visitNo == undefined) return;
  950. var today = new Date();
  951. var startDt = '';
  952. var endDt = '';
  953. if($('#sltTimeType').val()=='current'){
  954. startDt = moment(today).format('HH')+'0000';
  955. endDt = moment(today).format('HH')+'5959';
  956. }else if($('#sltTimeType').val()=='special'){
  957. startDt = $('#sltTime').val()+'0000';
  958. endDt = $('#sltTime').val()+'5959';
  959. }else if($('#sltTimeType').val()=='noTime'){
  960. startDt = '000000';
  961. endDt = '235959';
  962. }else {
  963. if(6<=moment(today).format('HH')&& moment(today).format('HH')<=13){
  964. startDt = '060000';
  965. endDt = '135959';
  966. }else if(14<=moment(today).format('HH')&&moment(today).format('HH')<=21){
  967. startDt = '140000';
  968. endDt = '215959';
  969. }else{
  970. startDt = '220000';
  971. endDt = '055959';
  972. }
  973. }
  974. var param = {
  975. 'visitNo': patientInfo.visitNo,
  976. 'ordSlipCd': $('#sltMedType').val(),
  977. 'startDt': moment(today).format('YYYYMMDD'),
  978. 'startTm': startDt,
  979. 'endDt': moment(today).format('YYYYMMDD'),
  980. 'endTm': endDt,
  981. 'userId': JSON.parse(localStorage.user).userId,
  982. 'wardCd': patientInfo.wardCd
  983. };
  984. /*var param = {
  985. 'visitNo': '90110301I00088',
  986. 'ordSlipCd': 'A01',
  987. 'startDt': '20180126',
  988. 'startTm': '120000',
  989. 'endDt': '20180126',
  990. 'endTm': '125959',
  991. 'userId': '0722006',
  992. 'wardCd': '63'
  993. };
  994. */
  995. actingList = self.nursing.getActList(param);
  996. if( actingList.result != undefined ) {
  997. cureBinding(actingList.result, actingList.extraMsg);
  998. } else {
  999. self.alert('조회 실패');
  1000. }
  1001. };
  1002. var cureBinding = function(actList, extraMsg){
  1003. if( actList.length == 0 && extraMsg != 'null' ) {
  1004. self.alert(extraMsg);
  1005. }
  1006. if(actList.length == 0) {
  1007. $('#cureDetailDataList').append(li.clone().append(div.clone().addClass('text-center no-result').text('―')));
  1008. return;
  1009. }
  1010. for(var i=0; i<actList.length; i++){
  1011. var listGroupItem = div.clone().addClass('list-group-item not-active').attr('id', 'item_cureDetail_'+ i);
  1012. var listRow = div.clone().addClass('list-row container');
  1013. var divRow1 = div.clone().addClass('col-xs-12 col-sm-6 pd0');
  1014. var divRow2 = div.clone().addClass('col-xs-12 col-sm-6 pd0');
  1015. var listCheckboxWrap = div.clone().addClass('col-xs-1 col-sm-1 pdl5 pdr5');
  1016. var actCheckbox = div.clone().addClass('checkbox3 checkbox-check checkbox-light pd0');
  1017. var checkInput = input.clone().attr('type', 'checkbox').attr('id', 'chk_cureDetail_'+i);
  1018. var checkLabel = label.clone().attr('for', 'chk_cureDetail_'+i);
  1019. var listCheckbox = listCheckboxWrap.append(actCheckbox.append(checkInput).append(checkLabel));
  1020. var executeTm = div.clone().addClass('col-xs-3 col-sm-2 pdl5 pdr5').append(actList[i].ExecHm);
  1021. var no = div.clone().addClass('col-xs-3 col-sm-3 pd0 letter-control').append(actList[i].OrdNo + ' / '+actList[i].DrgInjExecSeq);
  1022. var prtOrdNm = div.clone().addClass('col-xs-5 col-sm-6 pdl5 pdr5 letter-control').append(actList[i].PrtOrdNm);
  1023. var row1 = divRow1.append(listCheckbox).append(executeTm).append(no).append(prtOrdNm);
  1024. var empty = div.clone().addClass('col-xs-1 hidden-sm pdl5 pdr5').append('&nbsp;');
  1025. var qty = div.clone().addClass('col-xs-3 col-sm-4 pdl5 pdr5').append(Number(actList[i].Qty) + actList[i].BasCapUnitNm +' ('+Number(actList[i].TQty)+')');
  1026. var ordDsgCd = div.clone().addClass('col-xs-3 col-sm-3 pd0').append(actList[i].OrdDsgCd);
  1027. var memo = div.clone().addClass('col-xs-5 col-sm-5 pdl5 pdr5 letter-control').append(actList[i].MedHmDesc + actList[i].OrdDsgNm);
  1028. var row2 = divRow2.append(empty).append(qty).append(ordDsgCd).append(memo);
  1029. var actRow = li.clone().append(listGroupItem.append(listRow.append(row1).append(row2)));
  1030. $('#cureDetailDataList').append(actRow);
  1031. }
  1032. $('#cureDetailDataList .list-group-item').unbind();
  1033. $('#cureDetailDataList .list-group-item').click(function(e) {
  1034. if( e.target.id.indexOf('chk_cureDetail') == 0 || (e.target.localName=='label' && e.target.htmlFor.indexOf('chk_cureDetail') == 0)) return;
  1035. var targetId = e.currentTarget.id;
  1036. targetId = targetId.replace('item', 'chk');
  1037. $('#' + targetId).click();
  1038. });
  1039. };
  1040. //------------------------------------약실시 탭 종료---------------------------------------
  1041. };