SMMMB00700.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 약속수술관리 ( SMMMB00700_약속수술관리.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var sMECHLIST_PATH = "/root/main/mechinfo/mechlist";
  7. var sOPPRCPLIST_PATH = "/root/main/opprcpinfo/opprcplist";
  8. var sETCPRMSPRCPSETDETLLIST_PATH = "/root/main/etcprmsprcpsetdetlinfo/etcprmsprcpsetdetllist";
  9. /**
  10. * @desc : 약속수술관리 초기화
  11. * @
  12. * @param :
  13. * @return :
  14. * @---------------------------------------------------
  15. */
  16. function fInitialize_SMMMB00700(){
  17. model.removeNodeset(sETCPRMSPRCPSETDETLLIST_PATH);
  18. model.removeNodeset(sMECHLIST_PATH);
  19. model.removeNodeset(sOPPRCPLIST_PATH);
  20. zbcfGetCodeList(new Array("M0029",
  21. "M0007"),
  22. new Array("/root/init/M0029",
  23. "/root/init/M0007"));
  24. model.refresh();
  25. }
  26. /**
  27. * @desc : 약속수술용어 등록
  28. * @
  29. * @param :
  30. * @return :
  31. * @---------------------------------------------------
  32. */
  33. function fRsgtPrmsOpTerm(){
  34. var setno = model.getValue("/root/hidden/prmsprcpsetdetlset/setno");
  35. if(setno == ""){
  36. messageBox("SET폴더를","C002");
  37. return;
  38. }
  39. modal("SPMMO03300");
  40. var useyn = getParameter("SPMMO03300_rtn_useyn");
  41. if(useyn == "N" || useyn == ""){
  42. return;
  43. }else{
  44. var totcnt = getNodeSetCnt("/root/temp/selectoplist");
  45. var setno = model.getValue("/root/hidden/prmsprcpsetdetlset/setno");
  46. var settypcd = model.getValue("/root/hidden/prmsprcpsetdetlset/settypecd");
  47. for(var i = 1; i <= totcnt; i++){
  48. grd_etcprmsprcpdetl.addRow(false);
  49. var currow = grd_etcprmsprcpdetl.row;
  50. var opcd = model.getValue("/root/temp/selectoplist[" + i + "]/opcd");
  51. var opengnm = model.getValue("/root/temp/selectoplist[" + i + "]/opengnm");
  52. var ophngnm = model.getValue("/root/temp/selectoplist[" + i + "]/ophngnm");
  53. model.setValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/setno" , setno);
  54. model.setValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/settypecd", settypcd);
  55. model.setValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/detlsetcd", opcd);
  56. model.setValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/engnm" , opengnm);
  57. model.setValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/hngnm" , ophngnm);
  58. }
  59. }
  60. model.refresh();
  61. }
  62. /**
  63. * @desc : 수술용어 수가내역 조회
  64. * @
  65. * @param : termcd : 수술용어코드
  66. * @return :
  67. * @---------------------------------------------------
  68. */
  69. function fReqOpTermMechHistList(termcd){
  70. model.removeNodeset("/root/send/reqdata");
  71. model.makeValue("/root/send/reqdata/termcd", termcd);
  72. if(submit("TRMMB00605")){
  73. }
  74. }
  75. /**
  76. * @desc : 약속수술용어 조회
  77. * @
  78. * @param :
  79. * @return :
  80. * @---------------------------------------------------
  81. */
  82. function fReqGetPrmsSet(){
  83. var setno = model.getValue("/root/hidden/prmsprcpsetdetlset/setno");
  84. var settypecd = model.getValue("/root/hidden/prmsprcpsetdetlset/settypecd");
  85. model.removeNodeset("/root/send/reqdata");
  86. model.makeValue("/root/send/reqdata/setno" , setno);
  87. model.makeValue("/root/send/reqdata/settypecd", settypecd);
  88. if(submit("TRMMB00602")){
  89. model.removeNodeset("/root/main/mechinfo/mechlist");
  90. model.removeNodeset("/root/main/opprcpinfo/opprcplist");
  91. }
  92. model.refresh();
  93. }
  94. /**
  95. * @desc : 수술용어 처방 조회
  96. * @
  97. * @param : setcdno - SET코드번호
  98. * : termcd - 용어코드
  99. * @return :
  100. * @author : 오지훈
  101. * @---------------------------------------------------
  102. */
  103. function fReqGetOpTermPrcp(setcdno, termcd){
  104. var setno = model.getValue("/root/hidden/prmsprcpsetdetlset/setno");
  105. var settypecd = model.getValue("/root/hidden/prmsprcpsetdetlset/settypecd");
  106. model.removeNodeset("/root/send/reqdata");
  107. model.makeValue("/root/send/reqdata/setno" , setno);
  108. model.makeValue("/root/send/reqdata/settypecd", settypecd);
  109. model.makeValue("/root/send/reqdata/setcdno" , setcdno);
  110. model.makeValue("/root/send/reqdata/termcd" , termcd);
  111. if(submit("TRMMB00606")){
  112. }
  113. }
  114. /**
  115. * @desc : 수술코드 복사
  116. * @
  117. * @param :
  118. * @return :
  119. * @---------------------------------------------------
  120. */
  121. function fCopyOpCD(){
  122. for(var i = 0; i < grd_etcprmsprcpdetl.rows; i++){
  123. if(grd_etcprmsprcpdetl.isselected(i) == true){
  124. model.duplicate("/root/copy/etcprmsprcpsetdetlinfo", sETCPRMSPRCPSETDETLLIST_PATH +"[" + i + "]");
  125. }
  126. }
  127. }
  128. /**
  129. * @desc : 수술코드 붙여넣기
  130. * @
  131. * @param :
  132. * @return :
  133. * @---------------------------------------------------
  134. */
  135. function fPasteOpCD(){
  136. var setno = model.getValue("/root/hidden/prmsprcpsetdetlset/setno");
  137. var settypecd = model.getValue("/root/hidden/prmsprcpsetdetlset/settypecd");
  138. var totcnt = getNodeSetCnt("/root/copy/etcprmsprcpsetdetlinfo/etcprmsprcpsetdetllist");
  139. for(var i = 1; i <= totcnt ; i++){
  140. var detlsetcd = model.getValue("/root/copy/etcprmsprcpsetdetlinfo/etcprmsprcpsetdetllist[" + i + "]/detlsetcd");
  141. var engnm = model.getValue("/root/copy/etcprmsprcpsetdetlinfo/etcprmsprcpsetdetllist[" + i + "]/engnm");
  142. var hngnm = model.getValue("/root/copy/etcprmsprcpsetdetlinfo/etcprmsprcpsetdetllist[" + i + "]/hngnm");
  143. var trgtrow = grd_etcprmsprcpdetl.findRow(detlsetcd, 0, 4, true, true);
  144. if(trgtrow < 1){
  145. grd_etcprmsprcpdetl.addRow(false);
  146. currow = grd_etcprmsprcpdetl.row;
  147. model.setValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/setno" , setno);
  148. model.setValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/settypecd" , settypecd);
  149. model.setValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/detlsetcd" , detlsetcd);
  150. model.setValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/engnm" , engnm);
  151. model.setValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/hngnm" , hngnm);
  152. }else{
  153. messageBox("[" + detlsetcd + "] 수술코드는 이미", "E006");
  154. continue;
  155. }
  156. }
  157. model.removeNodeset("/root/copy/etcprmsprcpsetdetlinfo/etcprmsprcpsetdetllist");
  158. model.refresh();
  159. }
  160. /**
  161. * @desc : 마우스 오른쪽 버튼 팝업창
  162. * @
  163. * @param :
  164. * @return :
  165. * @---------------------------------------------------
  166. */
  167. function fMouseRghtBtnPopup(){
  168. if(event.button == 3){
  169. if(grd_etcprmsprcpdetl.isCell(event.target) && grd_etcprmsprcpdetl.mouseRow >= grd_etcprmsprcpdetl.fixedRows){
  170. window.setPopupMenu(true, "/root/hidden/menu/menu", "label", "func", false); //팝업창 셋팅
  171. }
  172. }else{
  173. window.setPopupMenu(false);
  174. }
  175. }
  176. /**
  177. * @desc : 약속SET 과색인 조회
  178. * @
  179. * @param :
  180. * @return :
  181. * @---------------------------------------------------
  182. */
  183. function fReqPrmsDeptIndxList(){
  184. if(submit("TRMMB00702")){
  185. }
  186. }
  187. /**
  188. * @desc : 수술용어처방 추가
  189. * @
  190. * @param :
  191. * @return :
  192. * @---------------------------------------------------
  193. */
  194. function fAddOpTerm(){
  195. var currow = grd_etcprmsprcpdetl.row;
  196. if(currow > 0){
  197. var prmsflag = opener.model.getValue("/root/main/cond/prmsflag");
  198. if(prmsflag == "P"){ //개인
  199. var status = "i"; //신규등록
  200. var opcd = model.getValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/detlsetcd");
  201. var opengnm = model.getValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/engnm");
  202. var setno = model.getValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/setno");
  203. var settypecd = model.getValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/settypecd");
  204. var setcdno = model.getValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/setcdno");
  205. }else{ //과, 타과
  206. var status = "c"; //신규등록 약속수술용어, 용어처방 동시에 등록
  207. var opcd = model.getValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/detlsetcd");
  208. var opengnm = model.getValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/engnm");
  209. var setno = model.getValue("/root/hidden/prmsprcpsetdetlset/setno");
  210. var settypecd = model.getValue("/root/hidden/prmsprcpsetdetlset/settypecd");
  211. var setcdno = "";
  212. }
  213. var icnt = 0;
  214. var totrow = grd_mechlist.rows;
  215. for(var i = 0; i < totrow; i++){
  216. if(grd_mechlist.valueMatrix(i, 0) == "true"){
  217. var prcpcd = model.getValue(sMECHLIST_PATH + "[" + i + "]/calcscorcd");
  218. //처방코드를 비교, 이미 등록된 경우, skip
  219. var cmpval = model.getValue(sOPPRCPLIST_PATH + "[prcpcd='" + prcpcd + "']/prcpcd");
  220. if(cmpval.length > 0){
  221. messageBox("[" + prcpcd + "]처방이", "E006");
  222. continue;
  223. }
  224. //SET번호, SET형태코드가 null인 경우, error
  225. if(setno == "" || settypecd == ""){
  226. messageBox("용어처방코드를 등록할 개인수술SET을", "C002");
  227. return;
  228. }
  229. var ordnm = model.getValue(sMECHLIST_PATH + "[" + i + "]/ordnm");
  230. grd_opprcp.addRow(false, true);
  231. icnt++;
  232. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/status" , status);
  233. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/setno" , setno);
  234. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/setcdno" , setcdno);
  235. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/settypecd" , settypecd);
  236. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/optermcd" , opcd);
  237. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/opengnm" , opengnm);
  238. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/prcpcd" , prcpcd);
  239. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/ordnm" , ordnm);
  240. //model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/nigtprcpflag", "N");
  241. //model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/erprcpflag" , "N");
  242. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/payflagcd" , "0");
  243. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/opansflagcd" , "-");
  244. }
  245. }
  246. model.refresh();
  247. }
  248. }
  249. /**
  250. * @desc : 수술용어처방 검색
  251. * @
  252. * @param :
  253. * @return :
  254. * @---------------------------------------------------
  255. */
  256. function fFindOp(){
  257. if(event.keyCode == 13){
  258. var srchflag = "";
  259. var srchdata = input1.currentText;
  260. if(fIsHangul(srchdata) == "H"){
  261. srchflag = "H";
  262. }else{
  263. var ch = srchdata.charAt(1);
  264. if(isNumber(ch) == true){
  265. srchflag = "C";
  266. }else{
  267. srchflag = "E";
  268. }
  269. }
  270. var prmsflag = opener.model.getValue("/root/main/cond/prmsflag");
  271. if(prmsflag == "P"){
  272. var setno = model.getValue("/root/hidden/prmsprcpsetdetlset/setno");
  273. var settypecd = model.getValue("/root/hidden/prmsprcpsetdetlset/settypecd");
  274. if(setno == "" || settypecd == ""){
  275. messageBox("수술용어 검색할 폴더를", "C002");
  276. return;
  277. }
  278. model.removeNodeset("/root/send/reqdata");
  279. model.makeValue("/root/send/reqdata/setno" , setno);
  280. model.makeValue("/root/send/reqdata/settypecd", settypecd);
  281. model.makeValue("/root/send/reqdata/srchflag" , srchflag);
  282. model.makeValue("/root/send/reqdata/srchdata" , srchdata.toUpperCase());
  283. model.setValue("/root/main/cond/rsltsrch", srchdata);
  284. if(submit("TRMMB00602")){
  285. model.removeNodeset("/root/main/mechinfo/mechlist");
  286. model.removeNodeset("/root/main/opprcpinfo/opprcplist");
  287. }
  288. }else{
  289. model.removeNodeset("/root/send/reqdata");
  290. model.makeValue("/root/send/reqdata/deptindxflag", 9);
  291. model.makeValue("/root/send/reqdata/deptindxcd" , opener.trv_deptindxcdlist.value);
  292. if(prmsflag == "D"){
  293. model.makeValue("/root/send/reqdata/deptcd" , getUserInfo("dutplcecd"));
  294. }else{
  295. model.makeValue("/root/send/reqdata/deptcd" , opener.model.getValue("/root/main/cond/deptsetcd"));
  296. }
  297. model.makeValue("/root/send/reqdata/srchflag" , srchflag);
  298. model.makeValue("/root/send/reqdata/srchdata" , srchdata.toUpperCase());
  299. fReqPrmsDeptIndxList();
  300. }
  301. model.refresh();
  302. /*
  303. var startrow = grd_etcprmsprcpdetl.row;
  304. if(startrow < 1){startrow = 0;}
  305. if(fIsHangul(rsltsrch) == true){
  306. var selectrow = grd_etcprmsprcpdetl.findRow(rsltsrch, startrow + 1, grd_etcprmsprcpdetl.colRef("hngnm"), false, false);
  307. grd_etcprmsprcpdetl.select(selectrow, 0, selectrow, grd_etcprmsprcpdetl.cols-1) = true;
  308. grd_etcprmsprcpdetl.row = selectrow;
  309. var curpos = grd_etcprmsprcpdetl.vscroll.attribute("pos");
  310. var newpos = parseInt(curpos) + 23;
  311. grd_etcprmsprcpdetl.vscroll.attribute("pos") = newpos;
  312. }else{
  313. var ch = rsltsrch.charAt(1);
  314. if(isNumber(ch) == true){ //코드
  315. var selectrow = grd_etcprmsprcpdetl.findRow(rsltsrch, startrow + 1, grd_etcprmsprcpdetl.colRef("detlsetcd"), false, false);
  316. grd_etcprmsprcpdetl.select(selectrow, 0, selectrow, grd_etcprmsprcpdetl.cols-1) = true;
  317. grd_etcprmsprcpdetl.row = selectrow;
  318. }else{ //영문
  319. var selectrow = grd_etcprmsprcpdetl.findRow(rsltsrch, startrow + 1, grd_etcprmsprcpdetl.colRef("engnm"), false, false);
  320. grd_etcprmsprcpdetl.select(selectrow, 0, selectrow, grd_etcprmsprcpdetl.cols-1) = true;
  321. grd_etcprmsprcpdetl.row = selectrow;
  322. }
  323. var curpos = grd_etcprmsprcpdetl.vscroll.attribute("pos");
  324. var newpos = parseInt(curpos) + 23;
  325. grd_etcprmsprcpdetl.vscroll.attribute("pos") = newpos;
  326. }*/
  327. }
  328. }
  329. /**
  330. * @desc : 수술용어처방 저장
  331. * @
  332. * @param :
  333. * @return :
  334. * @---------------------------------------------------
  335. */
  336. function reqSaveExeOpTermPrcp(){
  337. var savenode = model.instances(0).selectNodes("/root/main/opprcpinfo/opprcplist");
  338. model.removeNodeset("/root/send/savedata");
  339. model.makeValue("/root/send/savedata", getNodeListCSV(savenode));
  340. if(submit("TXMMB00609")){
  341. }
  342. }
  343. function fAddOpTermDbclk(){
  344. var currow = grd_etcprmsprcpdetl.row;
  345. if(currow > 0){
  346. var prmsflag = opener.model.getValue("/root/main/cond/prmsflag");
  347. if(prmsflag == "P"){ //개인
  348. var status = "i"; //신규등록
  349. var opcd = model.getValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/detlsetcd");
  350. var opengnm = model.getValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/engnm");
  351. var setno = model.getValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/setno");
  352. var settypecd = model.getValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/settypecd");
  353. var setcdno = model.getValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/setcdno");
  354. }else{ //과, 타과
  355. var status = "c"; //신규등록 약속수술용어, 용어처방 동시에 등록
  356. var opcd = model.getValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/detlsetcd");
  357. var opengnm = model.getValue(sETCPRMSPRCPSETDETLLIST_PATH + "[" + currow + "]/engnm");
  358. var setno = model.getValue("/root/hidden/prmsprcpsetdetlset/setno");
  359. var settypecd = model.getValue("/root/hidden/prmsprcpsetdetlset/settypecd");
  360. var setcdno = "";
  361. }
  362. var srcrow = grd_mechlist.row;
  363. if(srcrow < 1){
  364. return;
  365. }
  366. var prcpcd = model.getValue(sMECHLIST_PATH + "[" + srcrow + "]/calcscorcd");
  367. //처방코드를 비교, 이미 등록된 경우, skip
  368. var cmpval = model.getValue(sOPPRCPLIST_PATH + "[prcpcd='" + prcpcd + "']/prcpcd");
  369. if(cmpval.length > 0){
  370. messageBox("[" + prcpcd + "]처방이", "E006");
  371. return;
  372. }
  373. //SET번호, SET형태코드가 null인 경우, error
  374. if(setno == "" || settypecd == ""){
  375. messageBox("용어처방코드를 등록할 개인수술SET을", "C002");
  376. return;
  377. }
  378. var ordnm = model.getValue(sMECHLIST_PATH + "[" + srcrow + "]/ordnm");
  379. grd_opprcp.addRow(false, true);
  380. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/status" , status);
  381. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/setno" , setno);
  382. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/setcdno" , setcdno);
  383. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/settypecd" , settypecd);
  384. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/optermcd" , opcd);
  385. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/opengnm" , opengnm);
  386. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/prcpcd" , prcpcd);
  387. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/ordnm" , ordnm);
  388. //model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/nigtprcpflag", "N");
  389. //model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/erprcpflag" , "N");
  390. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/payflagcd" , "0");
  391. model.setValue(sOPPRCPLIST_PATH + "[" + grd_opprcp.row + "]/opansflagcd" , "-");
  392. model.refresh();
  393. }
  394. }
  395. /**
  396. * @desc : SET폴더 삭제시 해당 수술용어 데이터 삭제
  397. * @
  398. * @param :
  399. * @return :
  400. * @---------------------------------------------------
  401. */
  402. function fClrGridData(){
  403. model.removeNodeset(sETCPRMSPRCPSETDETLLIST_PATH);
  404. model.removeNodeset("/root/main/mechinfo/mechlist");
  405. model.removeNodeset("/root/main/opprcpinfo/opprcplist");
  406. model.refresh();
  407. }