SMMSG03000.js 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 진료재료파트 체크리스트항목관리 ( SMRSG03000_진료재료파트체크리스트항목관리.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. - Author : 최원돈
  7. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  8. */
  9. var sDYBIZDIARYBASEINFO_PATH = "/root/main/dyBizDiaryBaseinfo";
  10. var sDYBIZDIARYBASELIST_PATH = "/root/main/dyBizDiaryBaseinfo/dyBizDiaryBaselist";
  11. /**
  12. * @---------------------------------------------------
  13. * @creat : 20101023
  14. * @author : 최원돈
  15. * @desc : 초기화
  16. * @---------------------------------------------------
  17. */
  18. function fInitialize(){
  19. //그리드 노드 초기화
  20. model.removenode("/root/main/dyBizDiaryBaseinfo");
  21. model.makenode("/root/main/dyBizDiaryBaseinfo");
  22. var pCode = "'T32','T91'"; // 조회할 CdGrupID 코드정보
  23. var pDate = getCurrentDate(); // 조회기준일자
  24. fGetNursHardCdInfo(pCode, pDate); // 간호코드 조회
  25. model.makenode("/root/code/codeinputinfo");
  26. model.copyNode("/root/code/codeinputinfo", "/root/code/codeinfo");
  27. addComboInstance("/root/code/codeinfo" , "cdid^cdnm", "-^전체", "codelist"); //부서콤보 Item "전체"추가
  28. addComboInstance("/root/code/codeinfo" , "cdid^cdnm", "^", "codelist"); //부서콤보 Item "전체"추가
  29. model.makeValue("/root/main/cond/flag", "-");
  30. model.refresh();
  31. cmb_flag.select(0);
  32. fGetdyBizDiaryBaseinfo();
  33. }
  34. /**
  35. * @---------------------------------------------------
  36. * @creat : 20101023
  37. * @author : 최원돈
  38. * @desc : 진료재료파트 체크리스트항목 등록
  39. * @---------------------------------------------------
  40. */
  41. function fClkBtndyBizDiaryBaseSave()
  42. {
  43. if (!fChekValid(sDYBIZDIARYBASEINFO_PATH)) // 필수 항목 체크
  44. {
  45. return;
  46. }
  47. model.removeNodeset("/root/difinfo");
  48. model.makeNode("/root/difinfo");
  49. var node = instance1.selectSingleNode("/root/difinfo");
  50. setDifNode("/root/temp", sDYBIZDIARYBASEINFO_PATH, node);
  51. var nodeList = node.childNodes;
  52. if(nodeList.length > 0)
  53. {
  54. setDefaultValue(nodeList); // Default Value 설정
  55. var savedata = getNodeListCSV(nodeList);
  56. model.removeNodeset("/root/send/savedata");
  57. model.makeValue("/root/send/savedata", savedata);
  58. if(!submit("TXMSG03001")){
  59. messageBox("저장을 실패하였습니다.", "E999");
  60. return;
  61. }
  62. }
  63. else
  64. {
  65. messageBox("저장할 데이터가", "I004");
  66. return;
  67. }
  68. model.removeNodeset("/root/temp");
  69. model.makeNode("/root/temp");
  70. model.copyNode("/root/temp", sDYBIZDIARYBASEINFO_PATH);
  71. }
  72. /**
  73. * @---------------------------------------------------
  74. * @creat : 20101023
  75. * @author : 최원돈
  76. * @desc : Default Value 설정
  77. * @---------------------------------------------------
  78. */
  79. function setDefaultValue(nodeList)
  80. {
  81. for(var i=0; i<nodeList.length; i++)
  82. {
  83. var node = nodeList.item(i);
  84. var nodeListChild = node.childNodes;
  85. while(childNode = nodeListChild.nextNode())
  86. {
  87. if ( childNode.nodeName == 'chkyn'
  88. && childNode.NodeValue == '')
  89. {
  90. childNode.NodeValue = "N" // 체크여부 'N' 셋팅
  91. }
  92. }
  93. }
  94. return;
  95. }
  96. /**
  97. * @---------------------------------------------------
  98. * @creat : 20101023
  99. * @author : 최원돈
  100. * @desc : 필수 항목 체크
  101. * @---------------------------------------------------
  102. */
  103. function fChekValid(nodePath)
  104. {
  105. var node = instance1.selectSingleNode(nodePath);
  106. var nodeList = node.childNodes;
  107. if (nodeList.length <= 0)
  108. {
  109. messageBox("저장할 데이터가", "I004");
  110. return false;
  111. }
  112. for(var i=0; i<nodeList.length; i++)
  113. {
  114. var node = nodeList.item(i);
  115. var nodeListChild = node.childNodes;
  116. while(childNode = nodeListChild.nextNode())
  117. {
  118. if ( childNode.nodeName == 'flag'
  119. || childNode.nodeName == 'cdid'
  120. || childNode.nodeName == 'item'
  121. || childNode.nodeName == 'seq')
  122. {
  123. if (childNode.NodeValue == "")
  124. {
  125. messageBox((i+1) + " 행의 '" + grd_worklist.valueMatrix(0, grd_worklist.colRef(childNode.nodeName))+ "'은(는) 필수 입력 사항","E008");
  126. return false
  127. }
  128. }
  129. }
  130. }
  131. return true;
  132. }
  133. /**
  134. * @---------------------------------------------------
  135. * @creat : 20101023
  136. * @author : 최원돈
  137. * @desc : 행을 추가
  138. * @---------------------------------------------------
  139. */
  140. function fClkBtndyBizDiaryBaseAddRow(){
  141. var ls_flag = model.getValue("/root/main/cond/flag");
  142. grd_worklist.addRow(true);
  143. if (ls_flag != "-")
  144. {
  145. model.makeValue(sDYBIZDIARYBASELIST_PATH + "["+(getNodesetCount(sDYBIZDIARYBASELIST_PATH))+"]/flag", model.getValue("/root/main/cond/flag")); // 구분
  146. }
  147. model.refresh();
  148. }
  149. /**
  150. * @---------------------------------------------------
  151. * @creat : 20101023
  152. * @author : 최원돈
  153. * @desc : 진료재료파트 체크리스트항목 조회
  154. * @---------------------------------------------------
  155. */
  156. function fGetdyBizDiaryBaseinfo(){
  157. //send parameter 설정
  158. model.removenode("/root/send/reqdata");
  159. model.makeNode("/root/send/reqdata");
  160. model.copyNode("/root/send/reqdata", "/root/main/cond");
  161. //submit 호출
  162. if(!submit("TRMSG03001")){
  163. messageBox("조회를 실패하였습니다.", "E999");
  164. return;
  165. }
  166. model.removeNodeset("/root/temp");
  167. model.makeNode("/root/temp");
  168. model.copyNode("/root/temp", sDYBIZDIARYBASEINFO_PATH);
  169. model.refresh();
  170. }
  171. /**
  172. * @---------------------------------------------------
  173. * @creat : 20101023
  174. * @author : 최원돈
  175. * @desc : 틀린노드를 저장한다.
  176. * @---------------------------------------------------
  177. */
  178. function setDifNode(desNode, srcNode, returnNodeList)
  179. {
  180. var node = instance1.selectSingleNode(desNode);
  181. var node2 = instance1.selectSingleNode(srcNode);
  182. var nodeList = node.childNodes;
  183. var nodeList2 = node2.childNodes;
  184. var checkYn = false;
  185. for(var i=0; i<nodeList2.length; i++)
  186. {
  187. var infonode2 = nodeList2.item(i);
  188. var infonodeListChild2 = infonode2.childNodes;
  189. if (nodeList.length <= i)
  190. {
  191. checkYn = true;
  192. }
  193. else
  194. {
  195. var infonode = nodeList.item(i);
  196. var infonodeListChild = infonode.childNodes;
  197. while(infochildNode2 = infonodeListChild2.nextNode())
  198. {
  199. var infochildNode = infonodeListChild.nextNode();
  200. if(infochildNode.NodeValue != infochildNode2.NodeValue)
  201. {
  202. checkYn = true;
  203. break;
  204. }
  205. }
  206. }
  207. if (checkYn)
  208. {
  209. returnNodeList.appendChild(infonode2);
  210. checkYn = false;
  211. }
  212. }
  213. return;
  214. }
  215. /**
  216. * @---------------------------------------------------
  217. * @desc : 콤보박스에 원하는 instance node와 value를 설정
  218. * @C:\KNUProject\application\webapps\emr\prcpmngtweb\js
  219. * @---------------------------------------------------
  220. */
  221. function addComboInstance(combopath, nodename, nodeval, parentnode){
  222. var xmlNode = model.instances(0).selectSingleNode(combopath + "/" + parentnode);
  223. if(xmlNode == null){
  224. return;
  225. }
  226. nodename = nodename.split("^");
  227. nodeval = nodeval.split("^");
  228. if(nodename.length != nodeval.length){
  229. return;
  230. }
  231. var label = model.instances(0).createElement(nodename[0]);
  232. var val = model.instances(0).createElement(nodename[1]);
  233. var combo = model.instances(0).createElement(parentnode);
  234. label.value = "" + nodeval[0] + "";
  235. val.value = "" + nodeval[1] + "";
  236. combo.appendChild(label);
  237. combo.appendChild(val);
  238. chkNode = model.instances(0).selectSingleNode(combopath);
  239. if(chkNode == null){
  240. model.makeNode(combopath);
  241. srcNode = model.instances(0).selectSingleNode(combopath);
  242. }else{
  243. srcNode = model.instances(0).selectSingleNode(combopath);
  244. }
  245. desNode = model.instances(0).selectSingleNode(combopath + "/" + parentnode);
  246. srcNode.insertBefore(combo, desNode);
  247. model.refresh();
  248. }
  249. /**
  250. * @---------------------------------------------------
  251. * @creat : 20101023
  252. * @author : 최원돈
  253. * @desc : Grid의 Column 수정 가능여부 설정
  254. * @ - 신규 Row 일 경우만 '구분'을 수정할 수 있다.
  255. * @---------------------------------------------------
  256. */
  257. function setonfocusGridColDisabled()
  258. {
  259. if (grd_worklist.col == grd_worklist.colRef("flag"))
  260. {
  261. if (grd_worklist.valueMatrix(grd_worklist.row,grd_worklist.colRef("instcd")) == "")
  262. {
  263. event.defaultAction = "perform";
  264. }
  265. else
  266. {
  267. event.defaultAction = "cancel";
  268. }
  269. }
  270. }
  271. /**
  272. * @---------------------------------------------------
  273. * @creat : 20101023
  274. * @author : 최원돈
  275. * @desc : Grid의 Column 수정 가능여부 설정
  276. * @ - 신규 Row 일 경우만 '코드'를 수정할 수 있다.
  277. * @---------------------------------------------------
  278. */
  279. function setonstarteditGridColDisabled()
  280. {
  281. if (grd_worklist.col == grd_worklist.colRef("cdid"))
  282. {
  283. if (grd_worklist.valueMatrix(grd_worklist.row,grd_worklist.colRef("instcd")) == "")
  284. {
  285. event.defaultAction = "perform";
  286. }
  287. else
  288. {
  289. event.defaultAction = "cancel";
  290. }
  291. }
  292. }