SMMQI04000.js 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. function fInit(){
  2. setVisibleButtion();
  3. var node = getGlobalVariable("paminfo");
  4. model.removeNodeset("/root/main/paminfo");
  5. setCSVToNode("/root/main", node, "paminfo")
  6. var today = getCurrentDate();
  7. model.setValue("/root/send/userinfo/fromdd", today.toDate().getAddDate(-6, "M").getDateFormat());
  8. model.setValue("/root/send/userinfo/todd", today );
  9. var sPid = model.getValue("/root/main/paminfo/pid");
  10. if(!isNull(sPid)){
  11. model.setValue("/root/send/userinfo/pid", sPid );
  12. }
  13. model.refresh();
  14. btn_search.dispatch("DOMActivate");
  15. }
  16. function fGetAntiCancerFlowSheet(){
  17. if(isNull(model.getValue("/root/send/userinfo/pid"))){
  18. return;
  19. }else{
  20. fSetFlowSheet();
  21. model.removeNodeset( "/root/temp/printinfo/page" );
  22. }
  23. }
  24. function fSetFlowSheet(){
  25. grid_flowsheet.visible = false;
  26. if(grid_flowsheet.cols > 2){
  27. fSetReSetColumn(grid_flowsheet, 2, "/root/main/flowsheet/datainfo");
  28. }
  29. submit("TRMQI04000");
  30. fSetDataGrid();
  31. grid_flowsheet.visible = true;
  32. model.refresh();
  33. grid_flowsheet.rowhidden(eval(grid_flowsheet.rows - 1)) = true;
  34. }
  35. function fSetDataGrid(){
  36. for(var i=1; i<= model.getValue("/root/temp/flowsheet/tableinfo/coltotal"); i++){
  37. fSetAddGridColumn(grid_flowsheet, "date"+i, "output", false);
  38. }
  39. grid_flowsheet.caption = "구분^항목^" + model.getValue("/root/temp/flowsheet/tableinfo/caption");
  40. //grid_flowsheet.attribute("colwidth") = "100,185," + model.getValue("/root/temp/flowsheet/tableinfo/colwidth");
  41. copyNodesetType("/root/main/flowsheet/datainfo","/root/temp/flowsheet/datainfo", "replace");
  42. grid_flowsheet.rebuildStyle();
  43. for(var i=1; i<=grid_flowsheet.cols; i++){
  44. grid_flowsheet.mergeCells = "bycol";
  45. if(i > 1){
  46. grid_flowsheet.mergeCol(i) = false;
  47. grid_flowsheet.colWidth(i) = 150;
  48. grid_flowsheet.colAttribute ( i, "style" ) = "text-align:left;";
  49. }else{
  50. grid_flowsheet.mergeCol(i) = true;
  51. grid_flowsheet.colAttribute ( i, "style" ) = "text-align:left;";
  52. }
  53. }
  54. grid_flowsheet.rebuild();
  55. grid_flowsheet.refresh();
  56. fSetDataGridRowStyle();
  57. }
  58. function fSetDataGridRowStyle(){
  59. var rows = eval(grid_flowsheet.rows -1);
  60. var checkedAC = false;
  61. for(var i=2; i < rows; i++){
  62. var row = eval(i-1);
  63. var nextrow = i;
  64. var acflag = model.getValue("/root/main/flowsheet/datainfo["+row+"]/subtitle");
  65. var nextacflag = model.getValue("/root/main/flowsheet/datainfo["+nextrow+"]/subtitle");
  66. if( (acflag != nextacflag)){
  67. grid_flowsheet.rowstyle(row, "data", "border-bottom-width") = "2px";
  68. grid_flowsheet.rowstyle(row, "data", "border-bottom-color") = "#000000";
  69. }
  70. }
  71. grid_flowsheet.rebuild();
  72. grid_flowsheet.refresh();
  73. }
  74. function fSetAddGridColumn(datagrid, colnm, type, refresh){
  75. datagrid.addColumn("ref:"+ colnm +";type:"+ type, refresh);
  76. }
  77. function fSetReSetColumn(datagrid, nInitColCount, sDataNode){
  78. var nColCount = datagrid.cols;
  79. if(getNodesetCount(sDataNode) == 0){
  80. datagrid.addRow();
  81. }
  82. for(var i = nInitColCount; i < nColCount; i++ ){
  83. datagrid.removeColumn();
  84. }
  85. datagrid.rebuild();
  86. datagrid.refresh();
  87. }
  88. function fOpenAntiCancerSingleSheet(){
  89. //if(getUserInfo("jobkindcd").substring(0,2) != "03"){
  90. if(isDataCell()){
  91. if(grid_flowsheet.col >= 2){
  92. var sCaption = grid_flowsheet.caption;
  93. var arrCaptionList = sCaption.split("^");
  94. var arrPrcpdd = arrCaptionList[grid_flowsheet.col].split("-");
  95. var sPrcpdd = "";
  96. for(var i=0; i<arrPrcpdd.length; i++){
  97. sPrcpdd += arrPrcpdd[i];
  98. }
  99. model.setValue("/root/send/popupinfo/pid", model.getValue("/root/send/userinfo/pid"));
  100. model.setValue("/root/send/popupinfo/prcpdd", sPrcpdd);
  101. model.setValue("/root/send/popupinfo/cretno", grid_flowsheet.valueMatrix(eval(grid_flowsheet.rows - 1), grid_flowsheet.col ));
  102. modal("SMMQI04001");
  103. }
  104. }
  105. //}
  106. }
  107. function setVisibleButtion(){
  108. //의사가 아닐경우에만 버튼이 보이도록 설정
  109. //if(getUserInfo("jobkindcd").substring(0,2) != "03"){
  110. btn_batch.visible = true;
  111. btn_print.visible = true;
  112. btn_code.visible = true;
  113. //}
  114. }
  115. function fAntiCancerFlowSheetPrint(){
  116. if(isNull(model.getValue("/root/send/userinfo/pid"))){
  117. return;
  118. }else{
  119. fSetAntiCancerFlowSheetPrintNode();
  120. }
  121. }
  122. function fSetAntiCancerFlowSheetPrintNode(){
  123. var printPageNode = "/root/temp/printinfo/page";
  124. var dataNode = "/root/main/flowsheet/datainfo";
  125. var nTotalRow = getNodesetCount(dataNode);
  126. var nTotalCol = model.getValue("/root/temp/flowsheet/tableinfo/coltotal");
  127. var nTotalPage;
  128. var nSetColCount = 4;
  129. if(eval(nTotalCol%nSetColCount) == 0 ){
  130. nTotalPage = eval((nTotalCol/nSetColCount));
  131. }else{
  132. nTotalPage = eval((nTotalCol/nSetColCount)+1);
  133. }
  134. var nDateCount = 0;
  135. var strOrddList = model.getValue("/root/temp/flowsheet/tableinfo/caption");
  136. var arrOrddd = strOrddList.split('^');
  137. model.removeNodeset( printPageNode );
  138. // print형식 셋팅
  139. for(var nPrintPage = 1; nPrintPage <= nTotalPage; nPrintPage++){
  140. var printNode = printPageNode+"["+nPrintPage+"]/info";
  141. var printTitleNode = printPageNode+"["+nPrintPage+"]/title";
  142. var printPatinfoNode = printPageNode+"["+nPrintPage+"]/patinfo";
  143. // 환자번호 셋팅
  144. model.makeValue(printPatinfoNode+"/pid", model.getValue("/root/send/userinfo/pid"));
  145. model.makeValue(printPatinfoNode+"/hngnm", model.getValue("/root/temp/flowsheet/patinfo/hngnm"));
  146. model.makeValue(printPatinfoNode+"/fromdd", model.getValue("/root/send/userinfo/fromdd"));
  147. model.makeValue(printPatinfoNode+"/todd", model.getValue("/root/send/userinfo/todd"));
  148. // 구분 및 항목 셋팅
  149. model.makeValue(printTitleNode+"/subtitle", "구분");
  150. model.makeValue(printTitleNode+"/prcpnm", "항목");
  151. for(var nRow=1; nRow<nTotalRow; nRow++){
  152. model.makeValue(printNode+"["+nRow+"]/subtitle", model.getValue("/root/init/subtitleinfo/item[ value = '"+model.getValue(dataNode+"["+nRow+"]/subtitle")+"']/label"));
  153. model.makeValue(printNode+"["+nRow+"]/prcpnm", model.getValue(dataNode+"["+nRow+"]/prcpnm"));
  154. }
  155. // FlowSheet 데이터 셋팅
  156. for(var nCol=1; nCol<=nSetColCount; nCol++){
  157. nDateCount++;
  158. if(nDateCount <= nTotalCol){
  159. model.makeValue(printTitleNode+"/orddd"+nCol, arrOrddd[eval(nDateCount-1)]);
  160. for(var nRow=1; nRow<nTotalRow; nRow++){
  161. model.makeValue(printNode+"["+nRow+"]/date"+nCol, model.getValue(dataNode+"["+nRow+"]/date"+nDateCount));
  162. }
  163. }
  164. }
  165. }
  166. // Page단위로 프린트 실행
  167. var currentPrintNode = "/root/temp/currentprint/page";
  168. var nTotalPage = getNodesetCount(printPageNode);
  169. model.resetInstanceNode( currentPrintNode );
  170. for(var nPage = 1; nPage <= nTotalPage; nPage++){
  171. copyNodesetType(currentPrintNode, printPageNode+"["+nPage+"]", "replace");
  172. model.makeValue(currentPrintNode+"/pageinfo/pagenum", nPage + " / "+ nTotalPage);
  173. exeReportPreview("RPMQR04000", "XMLSTR", "", "", "true", "", "", "", "", "true", "", "", "", "", "", "", "", "", "", "", "");
  174. }
  175. }