SPMMO03300.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 수술팝업 ( SMMMO03300_수술팝업.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var bExpandFlag = false; //수술내역 grid 확장유무
  7. /**
  8. * @desc : 화면 초기화
  9. * @
  10. * @param :
  11. * @return :
  12. * @---------------------------------------------------
  13. */
  14. function fInitializeDone_SPMMO03300(){
  15. model.removeNodeset("/root/main/opcdinfo/opcdlist");
  16. model.removeNodeset("/root/main/selectoplist/selectoplist");
  17. // 2009. 02.10 pymi
  18. if(opener.javascript.getParameter("SPMMO03300_opParam") == "Y") {
  19. btn_deptindx.selected = true;
  20. model.toggle("deptindx");
  21. fReqGetDeptOpIndxList();
  22. model.refresh();
  23. } else{
  24. btn_icd9.selected = true;
  25. model.toggle("icd9");
  26. fReqGetICD9IndxList();
  27. model.refresh();
  28. }
  29. var srchdata = opener.javascript.getParameter("SPMMO03300_SEARCHDATA"); //main창에서 검색어로 띄운 경우
  30. if(srchdata.length > 0){
  31. model.setValue("/root/main/cond/reqdata", srchdata);
  32. btn_req.dispatch("DOMActivate");
  33. }
  34. }
  35. /**
  36. * @desc : ICD9 색인 조회
  37. * @
  38. * @param :
  39. * @return :
  40. * @---------------------------------------------------
  41. */
  42. function fReqGetICD9IndxList(){
  43. model.removeNodeset("/root/send/reqdata");
  44. model.makeValue("/root/send/reqdata/indxflag", "9");
  45. if(submit("TRMMO03101", true)){
  46. }
  47. }
  48. /**
  49. * @desc : 과수술색인 조회
  50. * @
  51. * @param :
  52. * @return :
  53. * @---------------------------------------------------
  54. */
  55. function fReqGetDeptOpIndxList(){
  56. model.removeNodeset("/root/send/reqdata");
  57. model.makeValue("/root/send/reqdata/deptindxflag", "9");
  58. model.makeValue("/root/send/reqdata/deptcd", getUserInfo("dutplcecd"));
  59. model.makeValue("/root/send/reqdata/deptnm", getUserInfo("dutplcenm"));
  60. if(submit("TRMMO03111")){
  61. }
  62. }
  63. /**
  64. * @desc : 개인수술SET 조회
  65. * @
  66. * @param :
  67. * @return :
  68. * @---------------------------------------------------
  69. */
  70. function fReqGetPrmsOpSETList(){
  71. model.removeNodeset("/root/send/reqdata");
  72. model.makeValue("/root/send/reqdata/setkindcd", "P"); //개인
  73. model.makeValue("/root/send/reqdata/setclscd" , "D"); //의사
  74. model.makeValue("/root/send/reqdata/settypecd", "O"); //수술
  75. model.makeValue("/root/send/reqdata/ioflag" , "N");
  76. if(submit("TRMMB00601")){
  77. }
  78. }
  79. /**
  80. * @desc : ICD9코드 선택시 진단 조회
  81. * @
  82. * @param :
  83. * @return :
  84. * @---------------------------------------------------
  85. */
  86. function fReqGetICD9CDList(){
  87. var item = trv_icd9indxcdlist.item(trv_icd9indxcdlist.selectedIndex);
  88. if(item.depth == 0){ //상위index만을 클릭한 경우
  89. return;
  90. }
  91. var indxcd = trv_icd9indxcdlist.value;
  92. model.removeNodeset("/root/send/reqdata");
  93. model.makeValue("/root/send/reqdata/icd9indxcd", indxcd);
  94. if(submit("TRMMO03109")){
  95. }
  96. }
  97. /**
  98. * @desc : 약속SET 선택시 수술 조회
  99. * @
  100. * @param :
  101. * @return :
  102. * @---------------------------------------------------
  103. */
  104. function fReqGetPrmsOpList(){
  105. var item = trv_prmsprcpsetlist.item(trv_prmsprcpsetlist.selectedIndex);
  106. if(item.depth == 0){ //상위index만 클릭한 경우
  107. return;
  108. }
  109. var currow = item.index + 1;
  110. var setno = model.getValue("/root/main/prmsprcpsetinfo/prmsprcpsetlist[" + currow + "]/setno");
  111. var settypecd = model.getValue("/root/main/prmsprcpsetinfo/prmsprcpsetlist[" + currow + "]/settypecd");
  112. model.removeNodeset("/root/send/reqdata");
  113. model.makeValue("/root/send/reqdata/setno" , setno);
  114. model.makeValue("/root/send/reqdata/settypecd", settypecd);
  115. if(submit("TRMMB00610")){
  116. }
  117. }
  118. /**
  119. * @desc : 과색인 선택시 진단 조회
  120. * @
  121. * @param :
  122. * @return :
  123. * @---------------------------------------------------
  124. */
  125. function fReqGetDeptIndxCDList(){
  126. var item = trv_deptindxcdlist.item(trv_deptindxcdlist.selectedIndex);
  127. var currow = item.index + 1;
  128. var deptindxcd = model.getValue("/root/main/deptindxcdlist/deptindxcdlist[" + currow + "]/deptindxcd");
  129. model.removeNodeset("/root/send/reqdata");
  130. model.makeValue("/root/send/reqdata/deptindxflag", "9");
  131. model.makeValue("/root/send/reqdata/deptindxcd" , deptindxcd);
  132. model.makeValue("/root/send/reqdata/deptcd" , getUserInfo("dutplcecd"));
  133. if(submit("TRMMO03113")){
  134. }
  135. }
  136. /**
  137. * @desc : 수술용어 조회(검색 조건)
  138. * @
  139. * @param :
  140. * @return :
  141. * @---------------------------------------------------
  142. */
  143. function fReqGetTermOpSrch(){
  144. var cond1;
  145. var cond2;
  146. var cond5 = model.getValue("/root/main/cond/reqdata");
  147. if(cond5.length < 1){ //검색어를 입력하지 않은 경우
  148. messageBox("검색어를", "C002")
  149. return;
  150. }else if(cond5.length < 2){ //검색어가 2단어 미만인 경우
  151. messageBox("검색어는 2단어 이상", "C001");
  152. return;
  153. }
  154. var cond3 = fIsHangul(cond5);
  155. var cond4 = getCurrentDate();
  156. if(cond3 == "H"){
  157. cond1 = 2;
  158. cond2 = 3;
  159. }else if(cond3 == "E"){
  160. if(isNumber(cond5.charAt(1))== true){ //코드
  161. cond1 = 1;
  162. cond2 = 1;
  163. }else{ //문장
  164. cond1 = 2;
  165. cond2 = 3;
  166. }
  167. }
  168. model.removeNodeset("/root/send/reqdata");
  169. model.makeValue("/root/send/reqdata/cond1", cond1);
  170. model.makeValue("/root/send/reqdata/cond2", cond2);
  171. model.makeValue("/root/send/reqdata/cond3", cond3);
  172. model.makeValue("/root/send/reqdata/cond4", cond4);
  173. model.makeValue("/root/send/reqdata/cond5", cond5);
  174. if(submit("TRMMO03110")){
  175. }
  176. }
  177. /**
  178. * @desc : 과색인 검색어로 조회
  179. * @
  180. * @param :
  181. * @return :
  182. * @---------------------------------------------------
  183. */
  184. function fReqGetDeptIndxSrch(){
  185. var srchdata = model.getValue("/root/main/cond/reqdata");
  186. if(srchdata.length < 1){ //검색어를 입력하지 않은 경우,
  187. messageBox("검색어를", "C002");
  188. return;
  189. }
  190. var srchflag = fIsHangul(srchdata);
  191. if(srchflag == "E"){
  192. if(isNumber(srchdata.charAt(1))==true){ //코드
  193. srchflag = "C";
  194. }else{ //코드가 아닌 경우
  195. srchflag = "E";
  196. }
  197. }
  198. model.removeNodeset("/root/send/reqdata");
  199. model.makeValue("/root/send/reqdata/deptindxflag", "9");
  200. model.makeValue("/root/send/reqdata/deptcd" , getUserInfo("dutplcecd"));
  201. model.makeValue("/root/send/reqdata/srchflag" , srchflag);
  202. model.makeValue("/root/send/reqdata/srchdata" , srchdata.toUpperCase());
  203. if(submit("TRMMO03113")){
  204. }
  205. }
  206. /**
  207. * @desc : 개인수술SET 검색어로 조회
  208. * @
  209. * @param :
  210. * @return :
  211. * @---------------------------------------------------
  212. */
  213. function fReqGetPrmsOpSETSrch(){
  214. var srchdata = model.getValue("/root/main/cond/reqdata");
  215. if(srchdata.length < 1){ //검색어를 입력하지 않은 경우,
  216. messageBox("검색어를", "C002");
  217. return;
  218. }
  219. var srchflag = fIsHangul(srchdata);
  220. if(srchflag == "E"){
  221. if(isNumber(srchdata.charAt(1))==true){ //코드
  222. srchflag = "C";
  223. }else{ //코드가 아닌 경우
  224. srchflag = "E";
  225. }
  226. }
  227. model.removeNodeset("/root/send/reqdata");
  228. model.makeValue("/root/send/reqdata/setkindcd", "P");
  229. model.makeValue("/root/send/reqdata/setclscd" , "D");
  230. model.makeValue("/root/send/reqdata/settypecd", "O");
  231. model.makeValue("/root/send/reqdata/settrgtcd", getUserInfo("userid"));
  232. model.makeValue("/root/send/reqdata/srchflag" , srchflag);
  233. model.makeValue("/root/send/reqdata/srchdata" , srchdata);
  234. if(submit("TRMMO03116")){
  235. }
  236. }
  237. /**
  238. * @desc : 수술코드 리스트 전달
  239. * @
  240. * @param :
  241. * @return :
  242. * @---------------------------------------------------
  243. */
  244. function fSendOpCDList(){
  245. if(checkOpener()){
  246. var nodepath = opener.javascript.getParameter("SPMMO3300_param_nodepath");
  247. if(nodepath == ""){
  248. var selectNode = opener.instance1.selectSingleNode("/root/temp/selectoplist");
  249. if(selectNode == null){
  250. opener.model.makeNode("/root/temp/selectoplist");
  251. }
  252. model.copyNode(opener.root.temp, root.main.selectoplist);
  253. opener.javascript.setParameter("SPMMO03300_rtn_useyn", "Y");
  254. }else{
  255. var selectnode = opener.instance1.selectSingleNode(nodepath);
  256. if(selectnode == null){
  257. opener.model.makeNode(nodepath);
  258. }
  259. opener.model.copyNode(nodepath, root.main.selectoplist);
  260. opener.javascript.setParameter("SPMMO03300_rtn_useyn", "Y");
  261. }
  262. }else{
  263. messageBox("상위 화면이 변경되어 데이터를 전달", "E001");
  264. }
  265. window.close();
  266. }
  267. /**
  268. * @desc : 수술코드 리스트 전달
  269. * @
  270. * @param :
  271. * @return :
  272. * @---------------------------------------------------
  273. */
  274. function fSendOpCD(currow){
  275. var nodelist = model.instance1.selectNodes("/root/main/opcdinfo/opcdlist[" + currow + "]");
  276. var node = nodelist.item(0);
  277. var nodepath = opener.javascript.getParameter("SPMMO03300_param_nodepath");
  278. if(checkOpener()){
  279. if(nodepath == ""){ //opener의 특정 nodepath를 넘겨주지 않은 경우
  280. var selectnode = opener.instance1.selectSingleNode("/root/temp/selectoplist");
  281. if(selectnode == null){ //opener에 node를 만든다.
  282. opener.model.makeNode("/root/temp/selectoplist");
  283. }
  284. model.copyNode(opener.root.temp.selectoplist, node);
  285. }else{ //opener의 특정 nodepath를 넘겨준 경우
  286. var selectnode = opener.instance1.selectSingleNode(nodepath);
  287. if(selectnode == null){ //opener에 node를 만든다.
  288. opener.model.makeNode(nodepath);
  289. }
  290. opener.model.copyNode(nodepath, node); //opener에 복사
  291. }
  292. opener.javascript.setParameter("SPMMO03300_rtn_useyn", "Y");
  293. }else{
  294. messageBox("상위 화면이 변경되어 데이터를 전달", "E001");
  295. }
  296. window.close();
  297. }
  298. /**
  299. * @desc : 다수의 수술코드 선택, 수술추가버튼 클릭
  300. * @
  301. * @param :
  302. * @return :
  303. * @---------------------------------------------------
  304. */
  305. function fAppendOpCD(){
  306. var totrow = grd_opcdlist.rows;
  307. for(var i = 1; i < totrow; i++){
  308. var bflag = grd_opcdlist.valueMatrix(i, grd_opcdlist.colRef("boolflag"));
  309. if(bflag == "true"){
  310. grd_opcdlist.valueMatrix(i, grd_opcdlist.colRef("boolflag")) = false;
  311. fAddOp(i);
  312. }
  313. }
  314. grd_selectop.rebuild();
  315. }
  316. /**
  317. * @desc : 단일 수술코드 선택, 그리드 클릭
  318. * @
  319. * @param : trgtrow - 현재 클릭한 그리드의 row 위치
  320. * @return :
  321. * @---------------------------------------------------
  322. */
  323. function fAddOp(trgtrow){
  324. var opcd = model.getValue("/root/main/opcdinfo/opcdlist[" + trgtrow + "]/opcd");
  325. var dispopcd= model.getValue("/root/main/opcdinfo/opcdlist[" + trgtrow + "]/dispopcd");
  326. var opengnm = model.getValue("/root/main/opcdinfo/opcdlist[" + trgtrow + "]/opengnm");
  327. var ophngnm = model.getValue("/root/main/opcdinfo/opcdlist[" + trgtrow + "]/ophngnm");
  328. var fndrow = grd_selectop.findRow(opcd, 1, 1, "true", "true");
  329. if(fndrow < 0){
  330. grd_selectop.addRow(false);
  331. var currow = grd_selectop.row;
  332. model.setValue("/root/main/selectoplist/selectoplist[" + currow + "]/opcd" , opcd);
  333. model.setValue("/root/main/selectoplist/selectoplist[" + currow + "]/dispopcd", dispopcd);
  334. model.setValue("/root/main/selectoplist/selectoplist[" + currow + "]/opengnm" , opengnm);
  335. model.setValue("/root/main/selectoplist/selectoplist[" + currow + "]/ophngnm" , ophngnm);
  336. }
  337. model.refresh();
  338. }
  339. /**
  340. * @desc : 수술팝업 그리드 사이즈 변경
  341. * @
  342. * @param : iRow - 현재 클릭한 그리드의 row 위치
  343. * @return :
  344. * @---------------------------------------------------
  345. */
  346. function fCtrlSizeOpList(){
  347. if(bExpandFlag == false){
  348. caption1.attribute("left") = 0;
  349. line1.attribute("x1") = 0;
  350. line2.attribute("x1") = 0;
  351. btn_icd9.visible = false;
  352. btn_deptindx.visible= false;
  353. btn_indset.visible = false;
  354. switch1.visible = false;
  355. grd_opcdlist.attribute("left") = 0;
  356. grd_opcdlist.attribute("width")= 938;
  357. grd_opcdlist.colWidth(grd_opcdlist.colRef("opengnm")) = 390;
  358. grd_opcdlist.colWidth(grd_opcdlist.colRef("ophngnm")) = 390;
  359. grd_selectop.attribute("left") = 0;
  360. grd_selectop.attribute("width")= 938;
  361. grd_selectop.colWidth(grd_selectop.colRef("opengnm")) = 400;
  362. grd_selectop.colWidth(grd_selectop.colRef("ophngnm")) = 400;
  363. btn_expand.attribute("left") = 8;
  364. bExpandFlag = true;
  365. }else{
  366. caption1.attribute("left") = 327;
  367. line1.attribute("x1") = 323;
  368. line2.attribute("x1") = 323;
  369. btn_icd9.visible = true;
  370. btn_deptindx.visible= true;
  371. btn_indset.visible = true;
  372. switch1.visible = true;
  373. grd_opcdlist.attribute("left") = 323;
  374. grd_opcdlist.attribute("width")= 615;
  375. grd_opcdlist.colWidth(grd_opcdlist.colRef("opengnm")) = 231;
  376. grd_opcdlist.colWidth(grd_opcdlist.colRef("ophngnm")) = 261;
  377. grd_selectop.attribute("left") = 323;
  378. grd_selectop.attribute("width")= 615;
  379. grd_selectop.colWidth(grd_selectop.colRef("opengnm")) = 231;
  380. grd_selectop.colWidth(grd_selectop.colRef("ophngnm")) = 261;
  381. btn_expand.attribute("left") = 329;
  382. bExpandFlag = false;
  383. }
  384. }
  385. function fDelOpCDList(){
  386. deleteSelectedRows(grd_selectop, false);
  387. }