SMMMO16300.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 업무협조문 SMMMO16300_업무협조문.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var sNodeList_Path = "/root/main/info/list";
  7. /*
  8. * @desc : 업무협조문 기본조건 초기화
  9. * @
  10. * @param :
  11. * @return :
  12. * @author : 김영학
  13. * @---------------------------------------------------
  14. */
  15. function fSetBaseInit() {
  16. model.setValue("/root/main/cond/orddeptcd" , "-");
  17. model.setValue("/root/main/cond/wardcd" , "-");
  18. var jobkind = getUserInfo("jobkindcd");
  19. if ( jobkind == "0330" || jobkind == "1411" )
  20. {
  21. grd_prcplist.colHidden(grd_prcplist.colRef("wardnm")) = true;
  22. model.toggle("case1");
  23. model.toggle("case3");
  24. mmbfGetDeptCodeComboList("/root/send/reqdata" , "/root/init/orddept", "A");
  25. addComboInstance("/root/init/orddept" , "deptcd^depthngnm", "-^전체", "dept"); //부서콤보 Item '전체'추가
  26. model.setValue("/root/main/cond/orddeptcd" , "-");
  27. }
  28. else
  29. {
  30. grd_prcplist.colHidden(grd_prcplist.colRef("wardnm")) = false;
  31. model.toggle("case2");
  32. model.toggle("case4");
  33. submit("TRMNR01002", false);
  34. addComboInstance("/root/init/wardcdgrup" , "wardcd^wardnm", "-^전체", "wardcdgruplist"); //부서콤보 Item '전체'추가
  35. model.setValue("/root/main/cond/wardcd" , "-");
  36. }
  37. model.setValue("/root/main/cond/fromdd" , getCurrentDate());
  38. model.setValue("/root/main/cond/todd" , getCurrentDate());
  39. }
  40. /*
  41. * @desc : 업무협조문 처방코드나 상병코드 선택시 그리드 초기화
  42. * @
  43. * @param :
  44. * @return :
  45. * @author : 김영학
  46. * @---------------------------------------------------
  47. */
  48. function fGrdInit() {
  49. model.removeNodeset("/root/main/patprcpinfo/patprcplist");
  50. var code = model.getValue("/root/main/cond/code");
  51. if (code =="P" ) { // 처방 코드 조회
  52. //grd_prcplist.caption="환자번호^환자명^S/A^주민번호^처방일^처방의^수량^용량^횟수^일수^용법/검체^처방코드^진단코드^진료과^우편번호^주소"
  53. grd_prcplist.colHidden(grd_prcplist.colRef("prcpqty")) = false;
  54. grd_prcplist.colHidden(grd_prcplist.colRef("prcpvol")) = false;
  55. grd_prcplist.colHidden(grd_prcplist.colRef("prcptims")) = false;
  56. grd_prcplist.colHidden(grd_prcplist.colRef("prcpdayno")) = false;
  57. grd_prcplist.colHidden(grd_prcplist.colRef("drugmthdspccdnm")) = false;
  58. grd_prcplist.colHidden(grd_prcplist.colRef("prcpcd")) = false;
  59. grd_prcplist.colHidden(grd_prcplist.colRef("icd10cd")) = true;
  60. grd_prcplist.colHidden(grd_prcplist.colRef("diagcd")) = false;
  61. grd_prcplist.colHidden(grd_prcplist.colRef("diagengnm")) = false;
  62. grd_prcplist.colHidden(grd_prcplist.colRef("prcpnm")) = false;
  63. grd_prcplist.colHidden(grd_prcplist.colRef("rgstdd")) = true;
  64. grd_prcplist.colHidden(grd_prcplist.colRef("kindcd")) = true;
  65. grd_prcplist.colHidden(grd_prcplist.colRef("kindcdflag")) = true;
  66. //grd_prcplist.colHidden(grd_prcplist.colRef("rsrvflag")) = false;
  67. } else { // 진단코드로 조회
  68. //grd_prcplist.caption="환자번호^환자명^S/A^주민번호^진료일^처방의^수량^용량^횟수^일수^용법/검체^처방코드^진단코드^진료과^우편번호^주소"
  69. grd_prcplist.colHidden(grd_prcplist.colRef("prcpqty")) = true;
  70. grd_prcplist.colHidden(grd_prcplist.colRef("prcpvol")) = true;
  71. grd_prcplist.colHidden(grd_prcplist.colRef("prcptims")) = true;
  72. grd_prcplist.colHidden(grd_prcplist.colRef("prcpdayno")) = true;
  73. grd_prcplist.colHidden(grd_prcplist.colRef("prcpnm")) = true;
  74. grd_prcplist.colHidden(grd_prcplist.colRef("drugmthdspccdnm")) = true;
  75. grd_prcplist.colHidden(grd_prcplist.colRef("prcpcd")) = true;
  76. grd_prcplist.colHidden(grd_prcplist.colRef("icd10cd")) = false;
  77. grd_prcplist.colHidden(grd_prcplist.colRef("diagcd")) = false;
  78. grd_prcplist.colHidden(grd_prcplist.colRef("diagengnm")) = false;
  79. grd_prcplist.colHidden(grd_prcplist.colRef("rgstdd")) = false;
  80. grd_prcplist.colHidden(grd_prcplist.colRef("kindcd")) = false;
  81. grd_prcplist.colHidden(grd_prcplist.colRef("kindcdflag")) = false;
  82. //grd_prcplist.colHidden(grd_prcplist.colRef("rsrvflag")) = true;
  83. }
  84. grd_prcplist.rebuild();
  85. }
  86. /**
  87. * @desc : 진단용어코드 검색
  88. * @
  89. * @param :
  90. * @return :
  91. * @author : 오지훈 -- 2008. 12. 08 . 업무협조문에 맞게 내용수정
  92. * @---------------------------------------------------
  93. */
  94. function fSearchDiagTermCD(){
  95. var icd10cd = ipt_code.currentText;
  96. var diagengnm = ipt_name.currentText;
  97. if(icd10cd == "" && diagengnm == ""){ //아무 값도 입력하지 않는 경우 return
  98. return;
  99. }
  100. if (isNull(icd10cd)) {
  101. setParameter("SPMMO00800_cond1", 2);
  102. setParameter("SPMMO00800_cond2", 4);
  103. setParameter("SPMMO00800_cond3", fIsHangul(diagengnm));
  104. setParameter("SPMMO00800_cond4", getCurrentDate());
  105. setParameter("SPMMO00800_cond5", diagengnm);
  106. } else if (isNull(diagengnm)) {
  107. setParameter("SPMMO00800_cond1", 1);
  108. setParameter("SPMMO00800_cond2", 4);
  109. setParameter("SPMMO00800_cond3", "E");
  110. setParameter("SPMMO00800_cond4", getCurrentDate());
  111. setParameter("SPMMO00800_cond5", icd10cd);
  112. }
  113. modal("SPMMO00850");
  114. //lyj 수정
  115. //modal("SPMMO00800");
  116. var useyn = getParameter("SPMMO00800_rtn_useyn");
  117. if(useyn == "Y"){
  118. setParameter("SPMMO00800_rtn_useyn", "");
  119. fSetDiagTermCD();
  120. }else{
  121. setParameter("SPMMO00800_rtn_useyn", "");
  122. model.setValue(root.main.cond.code , "");
  123. model.setValue(root.main.cond.name , "");
  124. model.refresh();
  125. }
  126. }
  127. /**
  128. * @desc : 진단용어코드 설정
  129. * @
  130. * @param :
  131. * @return :
  132. * @author : 오지훈 -- 2008. 12. 08 . 업무협조문에 맞게 내용수정
  133. * @---------------------------------------------------
  134. */
  135. function fSetDiagTermCD(){
  136. var rtnparam = getParameter("SPMMO00800_rtn");
  137. rtnparam = rtnparam.split("▩");
  138. for(i = 1; i< rtnparam.length-1; i++){
  139. var tmpstr = rtnparam[i];
  140. tmpstr = tmpstr.split("▦");
  141. var currow = grd_prcplist.rows;
  142. grd_prcplist.addRow(false);
  143. model.makeValue(sNodeList_Path + "[" + currow + "]/code" , tmpstr[3]);
  144. model.makeValue(sNodeList_Path + "[" + currow + "]/engnm" , tmpstr[6]);
  145. model.makeValue(sNodeList_Path + "[" + currow + "]/hngnm" , tmpstr[5]);
  146. }
  147. model.recalculate();
  148. model.refresh();
  149. }
  150. /**
  151. * @desc : 진단팝업 open
  152. * @
  153. * @param :
  154. * @return :
  155. * @author : 오지훈
  156. * @---------------------------------------------------
  157. */
  158. function fOpenDiagPopUp(){
  159. modal("SPMMO03200");
  160. var useyn = getParameter("SPMMO03200_rtn_useyn");
  161. if(useyn == "Y"){
  162. setParameter("SPMMO03200_rtn_useyn", "");
  163. var totcnt = getNodeSetCnt("/root/temp/selectdiaglist");
  164. for(var i = 1; i <= totcnt; i++){
  165. var diagcd = model.getValue("/root/temp/selectdiaglist[" + i + "]/diagcd");
  166. var dispdiagcd = model.getValue("/root/temp/selectdiaglist[" + i + "]/dispdiagcd");
  167. var diagengnm = model.getValue("/root/temp/selectdiaglist[" + i + "]/diagengnm");
  168. var diaghngnm = model.getValue("/root/temp/selectdiaglist[" + i + "]/diaghngnm");
  169. }
  170. }
  171. model.refresh();
  172. }
  173. /*
  174. * @desc : 업무협조문 코드조회 초기화
  175. * @
  176. * @param :
  177. * @return :
  178. * @author : 김영학
  179. * @---------------------------------------------------
  180. */
  181. function fCodeSrchInit() {
  182. model.removeNodeset("/root/main/info/list");
  183. if (code == "P") {
  184. cap_code.value = "처방코드 :";
  185. cap_name.value = "처 방 명 :"
  186. cap_subtitle.value = "처방코드조회"
  187. grd_prcplist.caption = "처방코드^처방명^처방한글명"
  188. } else {
  189. cap_code.value = "진단코드 :";
  190. cap_name.value = "진 단 명 :"
  191. cap_subtitle.value = "진단코드조회"
  192. grd_prcplist.caption = "진단코드^진단명^진단한글명"
  193. }
  194. model.refresh();
  195. }
  196. /**
  197. * @desc : 처방코드 검색
  198. * @
  199. * @param :
  200. * @return :
  201. * @author : 김영학 (2008.12.10)
  202. * @---------------------------------------------------
  203. */
  204. function fSearchPrcpTermCD(){
  205. var icd10cd = ipt_code.currentText;
  206. var diagengnm = ipt_name.currentText;
  207. var fromdd = model.getValue("/root/main/cond/fromdd");
  208. var todd = model.getValue("/root/main/cond/todd");
  209. if(icd10cd == "" && diagengnm == ""){ //아무 값도 입력하지 않는 경우 return
  210. return;
  211. }
  212. if (isNull(icd10cd)) {
  213. setParameter("SPMMO00800_cond1", 2);
  214. setParameter("SPMMO00800_cond5", diagengnm);
  215. setParameter("SPMMO00800_fromdd", fromdd);
  216. setParameter("SPMMO00800_todd" , todd);
  217. } else if (isNull(diagengnm)) {
  218. setParameter("SPMMO00800_cond1", 1);
  219. setParameter("SPMMO00800_cond5", icd10cd);
  220. setParameter("SPMMO00800_fromdd", fromdd);
  221. setParameter("SPMMO00800_todd" , todd);
  222. }
  223. modal("SPMMO16700");
  224. var useyn = getParameter("SPMMO00800_rtn_useyn");
  225. if(useyn == "Y"){
  226. setParameter("SPMMO00800_rtn_useyn", "");
  227. fSetPrcpTermCD();
  228. }else{
  229. setParameter("SPMMO00800_rtn_useyn", "");
  230. model.setValue(root.main.cond.code , "");
  231. model.refresh();
  232. }
  233. }
  234. /**
  235. * @desc : 처방코드 설정
  236. * @
  237. * @param :
  238. * @return :
  239. * @author : 김영학 (2008.12.10)
  240. * @---------------------------------------------------
  241. */
  242. function fSetPrcpTermCD(){
  243. var rtnparam = getParameter("SPMMO00800_rtn");
  244. rtnparam = rtnparam.split("▩");
  245. for(i = 1; i< rtnparam.length-1; i++){
  246. var tmpstr = rtnparam[i];
  247. tmpstr = tmpstr.split("▦");
  248. var currow = grd_prcplist.rows;
  249. grd_prcplist.addRow(false);
  250. model.makeValue(sNodeList_Path + "[" + currow + "]/code" , tmpstr[1]);
  251. model.makeValue(sNodeList_Path + "[" + currow + "]/engnm" , tmpstr[2]);
  252. model.makeValue(sNodeList_Path + "[" + currow + "]/hngnm" , tmpstr[3]);
  253. }
  254. model.recalculate();
  255. model.refresh();
  256. }
  257. /**
  258. * @desc : Modal 창에서 데이터를 선택한 것을 나눠어 줌
  259. * @
  260. * @param :
  261. * @return :
  262. * @author : 김영학 (2008.12.10)
  263. * @---------------------------------------------------
  264. */
  265. function getCodeNodeListCSV(nodeList) {
  266. if( nodeList.length == 0 ){
  267. return;
  268. }
  269. var sColSep = "▦";
  270. var sRowSep = "▩";
  271. var rCSV = "";
  272. var childNodeList = nodeList.item(0).childNodes;
  273. var childNodeCnt = childNodeList.length;
  274. if( childNodeCnt == 0 ){
  275. return;
  276. }
  277. var i, j;
  278. for( i = 0; i < childNodeCnt - 1; i++) {
  279. rCSV += childNodeList.item(i).nodeName + sColSep;
  280. }
  281. rCSV += childNodeList.item(i).nodeName + sRowSep;
  282. var node;
  283. var cnt = 1;
  284. var selCnt = 0;
  285. while( node = nodeList.nextNode() ) {
  286. childNodeList = node.childNodes;
  287. for( i = 0; i < childNodeCnt - 1; i++) {
  288. rCSV += childNodeList.item(i).text + sColSep;
  289. }
  290. rCSV += childNodeList.item(i).text + sRowSep;
  291. selCnt++;
  292. }
  293. if ( selCnt == 0 ) {
  294. return "N"
  295. } else {
  296. return rCSV;
  297. }
  298. }
  299. /**
  300. * @desc : 코드를 콤보 인스턴스에 매핑
  301. * @
  302. * @param :
  303. * @return :
  304. * @author : 김영학 (2008.12.10)
  305. * @---------------------------------------------------
  306. */
  307. function fSetComboCodeCD(){
  308. var rtnparam = getParameter("SPMMO16300");
  309. rtnparam = rtnparam.split("▩");
  310. for(i = 1; i< rtnparam.length-1; i++){
  311. var tmpstr = rtnparam[i];
  312. tmpstr = tmpstr.split("▦");
  313. model.makeValue("/root/init/code/prcpcd[" + i + "]/codecd" , tmpstr[0]);
  314. model.makeValue("/root/init/code/prcpcd[" + i + "]/codenm" , tmpstr[0]);
  315. }
  316. model.refresh();
  317. }
  318. /**
  319. * @desc : 코드조회
  320. * @
  321. * @param :
  322. * @return :
  323. * @author : 김영학 (2008.12.12)
  324. * @---------------------------------------------------
  325. */
  326. function fGetData() {
  327. if (code == "P") {
  328. fSearchPrcpTermCD();
  329. var sRtnMsg = messageBox("추가로 코드를 검색", "S001");
  330. if (sRtnMsg == "6" ) {
  331. } else {
  332. var rtn1 = getCodeNodeListCSV ( model.instances(0).selectNodes( "/root/main/info/list" ));
  333. opener.javascript.setParameter( "SPMMO16300", rtn1 );
  334. window.close();
  335. }
  336. } else {
  337. fSearchDiagTermCD();
  338. var sRtnMsg = messageBox("추가로 코드를 검색", "S001");
  339. if (sRtnMsg == "6" ) {
  340. } else {
  341. var rtn1 = getCodeNodeListCSV ( model.instances(0).selectNodes( "/root/main/info/list" ));
  342. opener.javascript.setParameter( "SPMMO16300", rtn1 );
  343. window.close();
  344. }
  345. }
  346. }
  347. /**
  348. * @desc : 엑셀저장
  349. * @
  350. * @param :
  351. * @return :
  352. * @author : 김영학 (2008.12.18)
  353. * @---------------------------------------------------
  354. */
  355. function fsaveGridToExcel(grdObj, title){
  356. var sTitle = "코드별 환자조회 " + title;
  357. var fileName = window.fileDialog("save", ",", false, sTitle, "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  358. if (fileName != ""){
  359. grdObj.saveExcel(fileName, sTitle, true, true, "", "", true);
  360. }
  361. }