SMMND04400.js 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 신장실 처치장등록 ( SMMND04400_신장실처치장등록.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. - Author : 최원돈
  7. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  8. */
  9. var sBDHTCUREINFO_PATH = "/root/main/bdHtCureinfo/bdHtCureinfo";
  10. /**
  11. * creat : 20101019
  12. * author : 최원돈
  13. * desc : 초기화
  14. */
  15. function fInitialize(){
  16. //조회조건 default 세팅
  17. model.removenode('/root/main/cond');
  18. model.makeValue('/root/main/cond/workdd' , getCurrentDate()); //작업일자
  19. model.makeValue('/root/main/cond/flag' , "H"); //구분
  20. model.makeValue('/root/main/cond/ngdtnursid' , getUserId()); //현재 로그인한 사용자 번호(ID)
  21. model.makeValue('/root/main/cond/ngdtnursnm' , getUserName()); //현재 로그인한 사용자명
  22. //그리드 노드 초기화
  23. model.removenode('/root/main/bdHtCureinfo');
  24. model.makenode('/root/main/bdHtCureinfo');
  25. initCalendar();
  26. fGetbdHtCureinfo();
  27. }
  28. /**
  29. * @desc : 신장실 처치장 등록
  30. * @ : 저장 상태가 신규인 경우, 무결성 데이터 검사 후 저장
  31. * @ : 저장 상태가 수정인 경우, 변경된 사항이 있는지 검사, 무결성 데이터 검사 후 저장
  32. * @param :
  33. * @return :
  34. * @author : 최원돈
  35. * @---------------------------------------------------
  36. */
  37. function fClkBtnbdHtCureSave(){
  38. if(!(compareNodeVal('/root/temp', sBDHTCUREINFO_PATH, false))){
  39. messageBox('저장할 데이터가', 'I004');
  40. return;
  41. }
  42. model.removeNodeset("/root/send/savedata");
  43. model.makeNode("/root/send/savedata");
  44. model.copyNode("/root/send/savedata", sBDHTCUREINFO_PATH);
  45. if(!submit('TXMND04401')){
  46. messageBox('저장을 실패하였습니다.', 'E999');
  47. return;
  48. }
  49. model.removeNodeset("/root/temp");
  50. model.makeNode("/root/temp");
  51. model.copyNode("/root/temp", sBDHTCUREINFO_PATH);
  52. }
  53. /**
  54. * creat : 20101014
  55. * author : 최원돈
  56. * desc : 신장실 처치장조회
  57. */
  58. function fGetbdHtCureinfo(bfcopyyn){
  59. //조건변수
  60. var workdd = model.getValue('/root/main/cond/workdd'); //작업일자
  61. //null 처리
  62. if(workdd == null)
  63. {
  64. workdd = '';
  65. }
  66. //send parameter 설정
  67. model.removenode('/root/send');
  68. model.makeValue('/root/send/workdd' , workdd);
  69. model.makeValue('/root/send/flag' , model.getValue('/root/main/cond/flag'));
  70. model.makeValue('/root/send/ngdtnursid', model.getValue('/root/main/cond/ngdtnursid'));
  71. model.makeValue('/root/send/bfcopyyn' , bfcopyyn);
  72. //submit 호출
  73. if(!submit('TRMND04401')){
  74. messageBox('조회를 실패하였습니다.', 'E999');
  75. model.setValue('/root/send/bfcopyyn' , '');
  76. return;
  77. }
  78. if(model.instances(0).selectNodes(sBDHTCUREINFO_PATH + "[instcd!='']").length <= 0)
  79. {
  80. model.makeValue(sBDHTCUREINFO_PATH + '/instcd' , '');
  81. model.makeValue(sBDHTCUREINFO_PATH + '/workdd' , '');
  82. model.makeValue(sBDHTCUREINFO_PATH + '/seq' , '');
  83. model.makeValue(sBDHTCUREINFO_PATH + '/flag' , '');
  84. model.makeValue(sBDHTCUREINFO_PATH + '/ngdtnursid', '');
  85. model.makeValue(sBDHTCUREINFO_PATH + '/fnexam' , '');
  86. model.makeValue(sBDHTCUREINFO_PATH + '/foexam' , '');
  87. model.makeValue(sBDHTCUREINFO_PATH + '/lab' , '');
  88. model.makeValue(sBDHTCUREINFO_PATH + '/tns' , '');
  89. model.makeValue(sBDHTCUREINFO_PATH + '/sled' , '');
  90. model.makeValue(sBDHTCUREINFO_PATH + '/delive' , '');
  91. model.makeValue(sBDHTCUREINFO_PATH + '/discharge' , '');
  92. model.makeValue(sBDHTCUREINFO_PATH + '/incnts' , '');
  93. model.makeValue(sBDHTCUREINFO_PATH + '/rsrv' , '');
  94. model.makeValue(sBDHTCUREINFO_PATH + '/xray' , '');
  95. model.makeValue(sBDHTCUREINFO_PATH + '/spcltest' , '');
  96. model.makeValue(sBDHTCUREINFO_PATH + '/op' , '');
  97. model.makeValue(sBDHTCUREINFO_PATH + '/dialliqd' , '');
  98. model.makeValue(sBDHTCUREINFO_PATH + '/dialfilm' , '');
  99. model.makeValue(sBDHTCUREINFO_PATH + '/hbsag' , '');
  100. model.makeValue(sBDHTCUREINFO_PATH + '/etc' , '');
  101. model.makeValue(sBDHTCUREINFO_PATH + '/machgd' , '');
  102. }
  103. model.removeNodeset("/root/temp");
  104. model.makeNode("/root/temp");
  105. model.copyNode("/root/temp", sBDHTCUREINFO_PATH);
  106. if (bfcopyyn == 'Y')
  107. {
  108. model.setValue(sBDHTCUREINFO_PATH + '/workdd', model.getValue('/root/main/cond/workdd'));
  109. model.setValue(sBDHTCUREINFO_PATH + '/seq', '');
  110. model.setValue('/root/send/bfcopyyn' , '');
  111. }
  112. model.refresh();
  113. }
  114. /**
  115. * creat : 20101014
  116. * author : 최원돈
  117. * desc : 신장실 처치장 출력
  118. */
  119. function fPrintHtCureList(){
  120. if( model.getValue(sBDHTCUREINFO_PATH + "/instcd") == ''
  121. || compareNodeVal('/root/temp', sBDHTCUREINFO_PATH, true))
  122. {
  123. messageBox('출력할 내역이 없습니다.', 'E999');
  124. return;
  125. }
  126. var dd = model.getValue('/root/main/cond/workdd').toDate("YYYYMMDD");
  127. model.setValue('/root/main/prtinfo/date'
  128. , '일자 : ' + dd.getDateFormat('YYYY-MM-DD ') + getDateTime(dd, 'W') + '요일');
  129. if ( model.getValue('/root/main/cond/flag') == 'H') {
  130. exeReportPreview("RPMND04401", "XMLSTR", "", "", "false","","","","","false", "", "");//혈액투석처치장
  131. } else {
  132. exeReportPreview("RPMND04402", "XMLSTR", "", "", "false","","","","","false", "", "");//복막투석처치장
  133. }
  134. }
  135. function initCalendar() {
  136. var workdd = model.getValue('/root/main/cond/workdd'); //작업일자
  137. if(workdd == null || workdd == '')
  138. {
  139. workdd = getCurrentDate();
  140. }
  141. var curDate = workdd.toDate();
  142. model.setValue("/root/hidden/calendar/year", curDate.getDateFormat('YYYY'));
  143. model.setValue("/root/hidden/calendar/month", curDate.getDateFormat('MM'));
  144. model.refresh();
  145. opt_date.value = "** " + model.getValue("/root/hidden/calendar/year") + "년 " + model.getValue("/root/hidden/calendar/month") + "월 **";
  146. setCalendar(curDate);
  147. }
  148. function setCalendar(dateObj) {
  149. // 그리드 초기화
  150. model.removeNodeset("/root/hidden/calendar/weeklist/list");
  151. grd_calendar.rebuild()
  152. var today = dateObj.getDate(); // 오늘 날짜를 가져옴.
  153. /************************
  154. 1. objDate.setDate(numDate)
  155. 로컬 시간을 사용하여 Date 개체의 날짜 값을 설정합니다.
  156. 2. objDate.getDay()
  157. 로컬 시간을 사용하여 Date 개체의 요일 값을 반환합니다.
  158. 0 = 일요일
  159. 1 = 월요일
  160. 2 = 화요일
  161. 3 = 수요일
  162. 4 = 목요일
  163. 5 = 금요일
  164. 6 = 토요일
  165. *************************/
  166. dateObj.setDate(1);
  167. var startDay = dateObj.getDay(); // 해당 달의 시작요일을 반환
  168. var days = dateObj.getMonthDay(); // 해당 달의 일수를 반환
  169. //nprw.dll
  170. /*************************
  171. ceil 숫자 인수보다 크거나 같은 가장 작은 정수를 반환합니다.
  172. *************************/
  173. var rows = Math.ceil( ( startDay + days ) / 7 );
  174. for( var i = 0; i < rows; i++ )
  175. grd_calendar.addRow(false);
  176. grd_calendar.rebuild();
  177. /*************************
  178. fixedRows
  179. 스크롤이 가능하지 않은 고정된 행 들을 몇 개나 만들 것인지를 설정 또는 리턴한다.
  180. *************************/
  181. var rowIndex = grd_calendar.fixedRows;
  182. var colIndex = startDay;
  183. for( var i = 1; i <= days; i++ ) {
  184. grd_calendar.valueMatrix(rowIndex, colIndex) = i;
  185. //grd_calendar.valueMatrix(rowIndex, colIndex+7) = "0/0";
  186. if(i == today) // 오늘 날짜이면
  187. {
  188. // 색상 표시
  189. var calRow = rowIndex;
  190. var calCol = colIndex;
  191. var tmpCalCol;
  192. if( calCol < 7 )
  193. tmpCalCol = calCol + 7;
  194. else
  195. tmpCalCol = calCol - 7;
  196. grd_calendar.rebuildStyle();
  197. grd_calendar.cellStyle("background-color", calRow, calCol) = "#daa7d9";
  198. grd_calendar.cellStyle("background-color", calRow, tmpCalCol) = "#daa7d9";
  199. }
  200. colIndex++;
  201. if( colIndex == 7 ) {
  202. colIndex = 0;
  203. rowIndex++;
  204. }
  205. }
  206. }
  207. function setCellColor(gridObj) {
  208. var calRow = gridObj.row;
  209. var calCol = gridObj.col;
  210. var tmpCalCol;
  211. if( calCol < 7 )
  212. tmpCalCol = calCol + 7;
  213. else
  214. tmpCalCol = calCol - 7;
  215. gridObj.rebuildStyle();
  216. gridObj.cellStyle("background-color", calRow, calCol) = "#daa7d9";
  217. gridObj.cellStyle("background-color", calRow, tmpCalCol) = "#daa7d9";
  218. }
  219. /**
  220. * @---------------------------------------------------
  221. * @desc : 두 NodeList와 NodeValue값을 비교 결과에 따라 true, false를 return한다.
  222. * @ref : C:\KNUProject\application\webapps\emr\prcpmngtweb\js\MMO001.js
  223. * @---------------------------------------------------
  224. */
  225. function compareNodeVal(desNode, srcNode, prtYn){
  226. var node = instance1.selectSingleNode(desNode);
  227. var node2 = instance1.selectSingleNode(srcNode);
  228. var nodeList = node.childNodes;
  229. var nodeList2 = node2.childNodes;
  230. while(childNode = nodeList.nextNode()){
  231. childNode2 = nodeList2.nextNode();
  232. //alert(childNode.NodeValue + "," + childNode2.NodeValue);
  233. //alert(childNode.nodeName + " : " + childNode.NodeValue);
  234. if(childNode.NodeValue != childNode2.NodeValue)
  235. {
  236. if ( prtYn
  237. && childNode.nodeName == 'workdd') // 전일복사 때문에.. 출력 시 비교는 제외
  238. {
  239. //...
  240. }
  241. else
  242. {
  243. return true; //값이 다른 경우 true
  244. }
  245. }
  246. }
  247. return false; //값이 같은 경우 false
  248. }