SPMRT01600.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610
  1. /**
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 진료 - 진단및수술처치검사용어검색( SPMRT01600_진단및수술처치검사용어검색.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  7. **/
  8. var xDiaginfoPath = "/root/main/deptdiagcdlist/deptdiagcdinfo";
  9. var xMophoinfoPath = "/root/main/diagcdinfo/kcd4m";
  10. var xSelectDiaginfoPath = "/root/param/selectdiaginfo/selectdiaglist"; //선택 진단코드
  11. var xSelectMophoinfoPath = "/root/param/mopho/mophoinfo";//선택 Mophology 코드
  12. var xOpcdinfoPath = "/root/main/deptopcdlist/deptopcdinfo";
  13. var xSelectOpcdinfoPath = "/root/param/selectopinfo/selectoplist"; //선택 수술코드
  14. /**
  15. * @group :
  16. * @ver : 2008-11-22
  17. * @by : 이창록
  18. * @---------------------------------------------------
  19. * @type : function
  20. * @access : public
  21. * @desc : 화면 초기화
  22. * @param :
  23. * @return :
  24. * @---------------------------------------------------
  25. */
  26. function fInitialize_SPMRT01600()
  27. {
  28. // KNUH_20101207_박성호_start_의무기록 부서코드 가져오기
  29. mmbfGetHardCodeInfo("/root/send/reqdata", "/root/temp/dutplcecd", 5502);
  30. // KNUH_20101207_박성호_end
  31. model.removeNodeset(xDiaginfoPath);
  32. model.removeNodeset(xMophoinfoPath);
  33. model.removeNodeset(xSelectDiaginfoPath);
  34. model.removeNodeset(xSelectMophoinfoPath);
  35. model.removeNodeset(xOpcdinfoPath);
  36. model.removeNodeset(xSelectOpcdinfoPath);
  37. if(checkOpener()){
  38. var search = opener.javascript.getParameter("SPMRT01600_SEARCHDATA"); // parameter 용어코드
  39. var flag = opener.javascript.getParameter("SPMRT01600_FLAG"); //용어 구분
  40. var stndd = opener.javascript.getParameter("stndd"); //용어 기준일자
  41. model.makeValue("/root/hidden/search/flag", flag);
  42. if(flag == "1"){
  43. if (search.length > 0){
  44. btn_diag.selected = "true";
  45. btn_morphology.selected = "false";
  46. model.setValue("/root/main/cond/reqdata", search);
  47. fDiagSearch();
  48. }
  49. }else if(flag == "2"){
  50. if (search.length > 0){
  51. btn_morphology.selected = "true";
  52. btn_diag.selected = "false";
  53. btn_morphology.dispatch("DOMActivate");
  54. model.setValue("/root/main/cond/reqdata", search);
  55. fDiagSearch();
  56. }
  57. }else if(flag == "5"){
  58. if (search.length > 0){
  59. model.setValue("/root/main/cond/opreqdata", search);
  60. fDiagSearch();
  61. }
  62. }
  63. }else{
  64. model.removeNodeset("/root/hidden/search");
  65. }
  66. model.refresh();
  67. }
  68. /**
  69. * @group :
  70. * @ver :
  71. * @by : 이창록
  72. * @---------------------------------------------------
  73. * @type : function
  74. * @access : public
  75. * @desc : 진단/Morphology 코드 조회
  76. * @param :
  77. * @return :
  78. * @---------------------------------------------------
  79. */
  80. function fDiagSearch(){
  81. var flag = model.getValue("/root/hidden/search/flag");
  82. if(flag==1){//진단용어
  83. var cond1 = model.getValue("/root/main/cond/srchflag");
  84. var cond5 = model.getValue("/root/main/cond/reqdata");
  85. if(cond5.length < 1){
  86. messageBox("검색어를 ", "C002");
  87. return;
  88. }
  89. model.removenode("/root/send");
  90. model.makeNode("/root/send");
  91. model.makeValue("/root/send/indxcd", "null");
  92. model.makeValue("/root/send/indxflag", "0");
  93. // KNUH_20101207_박성호_start_의무기록 부서코드 가져오기
  94. var dutplcecd = model.getValue("/root/temp/dutplcecd/hardcd/hardcd");
  95. //model.makeValue("/root/send/deptcd", "3230000000");//의료정보팀 진단용어만
  96. model.makeValue("/root/send/deptcd", dutplcecd);//의료정보팀 진단용어만
  97. // KNUH_20101207_박성호_end
  98. model.makeValue("/root/send/deptflag", "Y");
  99. if(cond1 == "code"){
  100. model.makeValue("/root/send/srchflag", "C");
  101. Srchnm = cond5.toUpperCase();
  102. model.makeValue("/root/send/srchnm", Srchnm);
  103. }else{
  104. model.makeValue("/root/send/srchnm", "");
  105. }
  106. if(cond1 == "word"){
  107. if((cond5 != "") && (fIsHangul(cond5) == "E")){
  108. model.makeValue("/root/send/srchflag", "E");
  109. model.makeValue("/root/send/srchnm", cond5);
  110. }else if((cond5 != "") && (fIsHangul(cond5) == "H")){
  111. model.makeValue("/root/send/srchflag", "H");
  112. model.makeValue("/root/send/srchnm", cond5);
  113. }
  114. }
  115. var stndd = opener.javascript.getParameter("stndd");
  116. if(stndd!=""){
  117. model.makeValue("/root/send/stndd",stndd);
  118. }
  119. submit("TRMRT01600");
  120. }else if(flag ==2)//mophology
  121. {
  122. var cond1 = model.getValue("/root/main/cond/srchflag");
  123. var cond5 = model.getValue("/root/main/cond/reqdata");
  124. var reqflag = model.getValue("/root/main/cond/reqflag");
  125. if(cond5.length < 1){
  126. messageBox("검색어를 ", "C002");
  127. return;
  128. }
  129. model.removenode("/root/send");
  130. model.makeNode("/root/send");
  131. model.removenode("/root/send/reqdata");
  132. model.makeNode("/root/send/reqdata");
  133. model.removenode("/root/send/flag");
  134. if(cond1 == "code"){//코드로 검색
  135. model.makeValue("/root/send/srchflag", "C");
  136. model.makeValue("/root/send/srchnm", cond5.toUpperCase());
  137. }else{
  138. model.makeValue("/root/send/srchflag", "");
  139. }
  140. if(cond1 == "word"){
  141. if((cond5 != "") && (fIsHangul(cond5) == "E")){
  142. model.makeValue("/root/send/srchflag", "E");
  143. model.makeValue("/root/send/srchnm", cond5);
  144. }else if((cond5 != "") && (fIsHangul(cond5) == "H")){
  145. model.makeValue("/root/send/srchflag", "H");
  146. model.makeValue("/root/send/srchnm", cond5);
  147. }
  148. }
  149. var stndd = opener.javascript.getParameter("stndd");
  150. if(stndd!=""){
  151. model.makeValue("/root/send/stndd",stndd);
  152. }
  153. submit("TRMRT00209");
  154. }else if(flag ==5){ //수술용어
  155. var cond1 = model.getValue("/root/main/cond/opsrchflag");
  156. var cond5 = model.getValue("/root/main/cond/opreqdata");
  157. if(cond5.length < 1){
  158. messageBox("검색어를 ", "C002");
  159. return;
  160. }
  161. model.removenode("/root/send");
  162. model.makeNode("/root/send");
  163. model.makeValue("/root/send/indxcd", "null");
  164. model.makeValue("/root/send/indxflag", "9");
  165. // KNUH_20101207_박성호_start_의무기록 부서코드 가져오기
  166. var dutplcecd = model.getValue("/root/temp/dutplcecd/hardcd/hardcd");
  167. //model.makeValue("/root/send/deptcd", "3230000000");//의료정보팀 진단용어만
  168. model.makeValue("/root/send/deptcd", dutplcecd);//의료정보팀 진단용어만
  169. // KNUH_20101207_박성호_end
  170. if(cond1 == "code"){
  171. model.makeValue("/root/send/srchflag", "C");
  172. Srchnm = cond5.toUpperCase();
  173. model.makeValue("/root/send/srchnm", Srchnm);
  174. }else{
  175. model.makeValue("/root/send/srchflag", "");
  176. }
  177. if(cond1 == "word"){
  178. if((cond5 != "") && (fIsHangul(cond5) == "E")){
  179. model.makeValue("/root/send/srchflag", "E");
  180. model.makeValue("/root/send/srchnm", cond5);
  181. }else if((cond5 != "") && (fIsHangul(cond5) == "H")){
  182. model.makeValue("/root/send/srchflag", "H");
  183. model.makeValue("/root/send/srchnm", cond5);
  184. }
  185. }
  186. var stndd = opener.javascript.getParameter("stndd");
  187. if(stndd!=""){
  188. model.makeValue("/root/send/stndd",stndd);
  189. }
  190. submit("TRMRT01601");
  191. }
  192. }
  193. /**
  194. * @desc : 더블클릭시 그리드로 내리기
  195. * @
  196. * @param ://diag
  197. * @return :
  198. * @author : 이창록
  199. * @---------------------------------------------------
  200. */
  201. function fAddDiagHist(dgRow)
  202. {
  203. var sDiagCD = model.getValue("/root/main/deptdiagcdlist/deptdiagcdinfo[" + dgRow + "]/termcd");
  204. var sDiagEngNM = model.getValue("/root/main/deptdiagcdlist/deptdiagcdinfo[" + dgRow + "]/termengnm");
  205. var sDiagHngNM = model.getValue("/root/main/deptdiagcdlist/deptdiagcdinfo[" + dgRow + "]/termhngnm");
  206. var sLglyisflag = model.getValue("/root/main/deptdiagcdlist/deptdiagcdinfo[" + dgRow + "]/lglydisflag");
  207. var iFndRow = grd_selectdiag.findRow(sDiagCD, 1, 0, "true", "true");//중복한 행선택시
  208. var diagflag = model.getValue("/root/temp/diaginfo/diagflag");
  209. if(iFndRow < 0){
  210. if(diagflag=="Y"){
  211. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/diagcd" , sDiagCD);
  212. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/dispdiagcd", sDiagCD);
  213. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/diagengnm" , sDiagEngNM);
  214. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/diaghngnm" , sDiagHngNM);
  215. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/lglydisflag" ,sLglyisflag);
  216. }else{
  217. grd_selectdiag.addRow(false);
  218. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/diagcd" , sDiagCD);
  219. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/dispdiagcd", sDiagCD);
  220. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/diagengnm" , sDiagEngNM);
  221. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/diaghngnm" , sDiagHngNM);
  222. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/lglydisflag" ,sLglyisflag);
  223. }
  224. }else if(iFndRow > 0)
  225. {
  226. messageBox("이미 선택하신 코드","E008");
  227. return;
  228. }
  229. model.refresh();
  230. model.removeNodeset("/root/temp/diaginfo/diagflag");
  231. }
  232. /**
  233. * @desc : 더블클릭시 그리드로 내리기
  234. * @
  235. * @param ://mophology
  236. * @return :
  237. * @author : 이창록
  238. * @---------------------------------------------------
  239. */
  240. function fAddMophoHist(mRow){
  241. var kcd4mseqno = model.getValue(xMophoinfoPath + "[" + mRow + "]/kcd4mseqno");
  242. var kcd4mengnm = model.getValue(xMophoinfoPath + "[" + mRow + "]/kcd4mengnm");
  243. var kcd4mhngnm = model.getValue(xMophoinfoPath + "[" + mRow + "]/kcd4mhngnm");
  244. var morphlgccd = model.getValue(xMophoinfoPath + "[" + mRow + "]/morphlgccd");
  245. var iFndRow1 = grd_selectdiag.findRow(morphlgccd, 1, 0, "true", "true");//중복한 행선택시
  246. var iFndRow2 = grd_selectdiag.findRow(kcd4mseqno, 1, 5, "true", "true");//중복한 행선택시
  247. var diagflag = model.getValue("/root/temp/diaginfo/diagflag");
  248. if((iFndRow1 > 0) && (iFndRow2 > 0)){
  249. messageBox("이미선택하신코드","E008");
  250. return;
  251. }else{
  252. if(diagflag=="Y"){
  253. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/diagcd" , morphlgccd);
  254. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/dispdiagcd" , morphlgccd);
  255. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/diagengnm" , kcd4mengnm);
  256. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/diaghngnm" , kcd4mhngnm);
  257. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/seqno" , kcd4mseqno);
  258. }else{
  259. grd_selectdiag.addRow(false);
  260. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/diagcd" , morphlgccd);
  261. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/dispdiagcd" , morphlgccd);
  262. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/diagengnm" , kcd4mengnm);
  263. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/diaghngnm" , kcd4mhngnm);
  264. model.setValue("/root/param/selectdiaginfo/selectdiaglist[" + grd_selectdiag.row + "]/seqno" , kcd4mseqno);
  265. }
  266. }
  267. model.refresh();
  268. model.removeNodeset("/root/temp/diaginfo/diagflag");
  269. }
  270. function fAddopHist(opRow)
  271. {
  272. var sOpCD = model.getValue("/root/main/deptopcdlist/deptopcdinfo[" + opRow + "]/termcd");
  273. var sDiagEngNM = model.getValue("/root/main/deptopcdlist/deptopcdinfo[" + opRow + "]/termengnm");
  274. var sDiagHngNM = model.getValue("/root/main/deptopcdlist/deptopcdinfo[" + opRow + "]/termhngnm");
  275. var iFndRow = grd_selectop.findRow(sOpCD, 1, 0, "true", "true");//중복한 행선택시
  276. var diagflag = model.getValue("/root/temp/diaginfo/diagflag");
  277. if(iFndRow < 0){
  278. if(diagflag=="Y"){
  279. model.setValue("/root/param/selectopinfo/selectoplist[" + grd_selectop.row + "]/opcd" , sOpCD);
  280. model.setValue("/root/param/selectopinfo/selectoplist[" + grd_selectop.row + "]/dispopcd", sOpCD);
  281. model.setValue("/root/param/selectopinfo/selectoplist[" + grd_selectop.row + "]/opengnm" , sDiagEngNM);
  282. model.setValue("/root/param/selectopinfo/selectoplist[" + grd_selectop.row + "]/ophngnm" , sDiagHngNM);
  283. }else{
  284. grd_selectop.addRow(false);
  285. model.setValue("/root/param/selectopinfo/selectoplist[" + grd_selectop.row + "]/opcd" , sOpCD);
  286. model.setValue("/root/param/selectopinfo/selectoplist[" + grd_selectop.row + "]/dispopcd", sOpCD);
  287. model.setValue("/root/param/selectopinfo/selectoplist[" + grd_selectop.row + "]/opengnm" , sDiagEngNM);
  288. model.setValue("/root/param/selectopinfo/selectoplist[" + grd_selectop.row + "]/ophngnm" , sDiagHngNM);
  289. }
  290. }else if(iFndRow > 0)
  291. {
  292. messageBox("이미 선택하신 코드","E008");
  293. return;
  294. }
  295. model.refresh();
  296. model.removeNodeset("/root/temp/diaginfo/diagflag");
  297. }
  298. /**
  299. * @desc : 용어 추가 버튼 클릭시
  300. * :
  301. * @
  302. * @param :
  303. * @return :
  304. * @author : 이창록
  305. * @---------------------------------------------------
  306. */
  307. function fAddBtnTerm()
  308. {
  309. var flag = model.getValue("/root/hidden/search/flag");
  310. if(flag==1)
  311. {
  312. var diagRow = grd_diaglist.selectedRows;
  313. for(var i = 0; i < diagRow; i++){
  314. var dgRow = grd_diaglist.selectedRow(i);
  315. fAddDiagHist(dgRow);
  316. }
  317. }else if(flag==2)
  318. {
  319. var mrow = grd_icdo3list.selectedRows;
  320. for(var i = 0; i < mrow; i++){
  321. var mRow = grd_icdo3list.selectedRow(i);
  322. fAddMophoHist(mRow);
  323. }
  324. }
  325. }
  326. /**
  327. * @desc : 초기화 버튼 클릭시
  328. * :
  329. * @
  330. * @param :,
  331. * @return :
  332. * @author : 이창록 btn_Cdiag
  333. * @---------------------------------------------------
  334. */
  335. function fCleanTerm()
  336. { var flag = model.getValue("/root/hidden/search/flag");
  337. if(flag == 1){
  338. model.removeNodeset(xDiaginfoPath);
  339. model.removeNodeset(xSelectDiaginfoPath);
  340. grd_diaglist.rebuild();
  341. grd_selectdiag.rebuild();
  342. }else if(flag == 2){
  343. model.removeNodeset(xMophoinfoPath);
  344. model.removeNodeset(xSelectDiaginfoPath);
  345. grd_icdo3list.rebuild();
  346. grd_selectdiag.rebuild();
  347. }
  348. model.refresh();
  349. }
  350. /**
  351. * @desc : 오른쪽마우스클릭시 삭제
  352. * @
  353. * @param :
  354. * @return :
  355. * @author : 이창록
  356. * @---------------------------------------------------
  357. */
  358. function fdelRow_TermList()
  359. {
  360. var flag = model.getValue("/root/hidden/search/flag");
  361. if(flag==1){
  362. if(grd_selectdiag.row < 0)
  363. return;
  364. if (grd_selectdiag.selectedRows > 0) {
  365. var selectedRows = Array(grd_selectdiag.selectedRows);
  366. for(i=0;i<grd_selectdiag.selectedRows;i++) {
  367. selectedRows[i] = grd_selectdiag.selectedRow(i);
  368. }
  369. }
  370. var rowIdx;
  371. for ( var i= selectedRows.length ; i >= 0 ; i--)
  372. {
  373. rowIdx = selectedRows[i];
  374. grd_selectdiag.deleteRow( rowIdx , false);
  375. }
  376. model.refresh();
  377. }else if(flag==2)
  378. {
  379. if(grd_mophoinfo.row < 0)
  380. return;
  381. if (grd_mophoinfo.selectedRows > 0) {
  382. var selectedRows = Array(grd_mophoinfo.selectedRows);
  383. for(i=0;i<grd_mophoinfo.selectedRows;i++) {
  384. selectedRows[i] = grd_mophoinfo.selectedRow(i);
  385. }
  386. }
  387. var rowIdx;
  388. for ( var i= selectedRows.length ; i >= 0 ; i--)
  389. {
  390. rowIdx = selectedRows[i];
  391. grd_mophoinfo.deleteRow( rowIdx , false);
  392. }
  393. model.refresh();
  394. }else if(flag==5)
  395. {
  396. if(grd_selectop.row < 0)
  397. return;
  398. if (grd_selectop.selectedRows > 0) {
  399. var selectedRows = Array(grd_selectop.selectedRows);
  400. for(i=0;i<grd_selectop.selectedRows;i++) {
  401. selectedRows[i] = grd_selectop.selectedRow(i);
  402. }
  403. }
  404. var rowIdx;
  405. for ( var i= selectedRows.length ; i >= 0 ; i--)
  406. {
  407. rowIdx = selectedRows[i];
  408. grd_selectop.deleteRow( rowIdx , false);
  409. }
  410. model.refresh();
  411. }
  412. }
  413. /**
  414. * @group :
  415. * @ver :
  416. * @by : 이창록
  417. * @---------------------------------------------------
  418. * @type : function
  419. * @access : public
  420. * @desc : 그리드 up,down
  421. * @param :grdobj =해당그리드,direcflag = up,down여부, flag=구분값
  422. * @return :
  423. * @---------------------------------------------------
  424. */
  425. function fChgValueTermcdGrd(grdObj, direcflag,flag)
  426. {
  427. var srcRow = grdObj.row - grdObj.fixedRows + 1; //(화면 그리드베이스에서 선택한 행 - 그리드 제목 줄)+1
  428. if(srcRow =="0")
  429. return;
  430. var sRow;//방향 위치가 위로 일때
  431. if(direcflag == "up"){ //위로
  432. if(srcRow == 1){ //현재 위치가 맨 위일 경우
  433. return;
  434. }
  435. sRow = srcRow - 1;//아니면 위로 올린다
  436. }else if(direcflag == "down"){ //아래로
  437. if(srcRow == grdObj.rows - grdObj.fixedRows){ //현재 위치가 맨 아래일 경우
  438. return;
  439. }
  440. sRow = srcRow + 1;
  441. }
  442. if(flag =="1"){//진단,Mophology코드
  443. model.removeNodeset("/root/temp/tmp");
  444. model.makeNode("/root/temp/tmp/diaginfo");
  445. model.copyNode("/root/temp/tmp/diaginfo", "/root/param/selectdiaginfo/selectdiaglist[" + srcRow + "]");
  446. model.copyNode("/root/param/selectdiaginfo/selectdiaglist[" + srcRow + "]", "/root/param/selectdiaginfo/selectdiaglist[" + sRow + "]");
  447. model.copyNode("/root/param/selectdiaginfo/selectdiaglist[" + sRow + "]", "/root/temp/tmp/diaginfo");
  448. grdObj.rebuild();
  449. }else if(flag =="2"){//수술코드
  450. model.removeNodeset("/root/temp/tmp");
  451. model.makeNode("/root/temp/tmp/opinfo");
  452. model.copyNode("/root/temp/tmp/opinfo", "/root/param/selectopinfo/selectoplist[" + srcRow + "]");
  453. model.copyNode("/root/param/selectopinfo/selectoplist[" + srcRow + "]", "/root/param/selectopinfo/selectoplist[" + sRow + "]");
  454. model.copyNode("/root/param/selectopinfo/selectoplist[" + sRow + "]", "/root/temp/tmp/opinfo");
  455. grdObj.rebuild();
  456. }
  457. return sRow;
  458. }
  459. /**
  460. * @desc : 선택 용어 행추가
  461. * @id :
  462. * @event :
  463. * @return : void
  464. * @authur :
  465. */
  466. function fAddRow_Termlist(tGrid)
  467. {
  468. model.makeNode("/root/temp/diaginfo/diagflag");
  469. model.makeValue("/root/temp/diaginfo/diagflag","Y");
  470. if(tGrid=="grd_selectdiag"){//진단 코드
  471. var diagRow = grd_selectdiag.row - grd_selectdiag.fixedRows + 1;
  472. if(diagRow < 1){
  473. grd_selectdiag.addRow();
  474. }else if(diagRow >= 1){
  475. grd_selectdiag.insertRow( diagRow, "below", true);
  476. }
  477. }else if("grd_selectop"){
  478. var opRow = grd_selectop.row - grd_selectop.fixedRows + 1;
  479. if(opRow < 1){
  480. grd_selectop.addRow();
  481. }else if(opRow >= 1){
  482. grd_selectop.insertRow( opRow, "below", true);
  483. }
  484. }
  485. model.refresh();
  486. }
  487. /**
  488. * @desc : 선택 용어 행삭제
  489. * @id :
  490. * @event : selectedRows->선택한 행의 갯수 반환
  491. * @return : void
  492. * @authur :
  493. */
  494. function fDelRow_Termlist(tGrid)
  495. {
  496. model.removeNodeset("/root/temp/diaginfo/diagflag");
  497. if(tGrid=="grd_selectdiag") //진단코드 삭제
  498. {
  499. if(grd_selectdiag.row < 0)
  500. {
  501. messageBox("삭제할 행이 ", "I004")
  502. return;
  503. }
  504. if (grd_selectdiag.selectedRows > 0) {
  505. var selectedRows = Array(grd_selectdiag.selectedRows);//선택한 행의 갯수을 배열로 지정
  506. for(i=0;i<grd_selectdiag.selectedRows;i++) {
  507. selectedRows[i] = grd_selectdiag.selectedRow(i);
  508. }
  509. }
  510. var rowIdx;
  511. for ( var i= selectedRows.length ; i >= 0 ; i--)
  512. {
  513. rowIdx = selectedRows[i];
  514. grd_selectdiag.deleteRow( rowIdx , false);
  515. }
  516. }else if(tGrid=="grd_selectop"){
  517. if(grd_selectop.row < 0)
  518. {
  519. messageBox("삭제할 행이 ", "I004")
  520. return;
  521. }
  522. if (grd_selectop.selectedRows > 0) {
  523. var selectedRows = Array(grd_selectop.selectedRows);
  524. for(i=0;i<grd_selectop.selectedRows;i++) {
  525. selectedRows[i] = grd_selectop.selectedRow(i);
  526. }
  527. }
  528. var rowIdx;
  529. for ( var i= selectedRows.length ; i >= 0 ; i--)
  530. {
  531. rowIdx = selectedRows[i];
  532. grd_selectop.deleteRow( rowIdx , false);
  533. }
  534. }
  535. model.refresh();
  536. }
  537. /**
  538. * @group :
  539. * @ver :
  540. * @by : 이창록
  541. * @---------------------------------------------------
  542. * @type : function
  543. * @access : public
  544. * @desc : 더블클릭및 확인버튼클릭시 그리드와 연계(parameter)
  545. * @param :
  546. * @return :
  547. * @---------------------------------------------------
  548. */
  549. function fSendTermCd()
  550. {
  551. if(checkOpener()){//자신을 Open한 opener의 현재 UID가 자신을 open한 시점의 UID와 비교하여 변경되었는지 여부를 반환
  552. var nodepath = opener.javascript.getParameter("SPMRT01600_param_nodepath");//parameter nodepath 설정
  553. if(nodepath == ""){
  554. var selectNode1 = opener.instance1.selectSingleNode("/root/temp");
  555. var selectNode2 = opener.instance1.selectSingleNode("/root/tmp");
  556. if(selectNode2 == null){
  557. opener.model.makeNode("/root/tmp");
  558. }
  559. if(selectNode1 == null){
  560. opener.model.makeNode("/root/temp");
  561. }
  562. model.copyNode(opener.root.temp, root.param.selectdiaginfo);
  563. opener.javascript.setParameter("SPMRT01600_FLAG","1");//진단용어
  564. model.copyNode(opener.root.tmp, root.param.selectopinfo);
  565. }else{
  566. var selectnode = opener.instance1.selectSingleNode(nodepath);
  567. if(selectnode == null){
  568. opener.model.makeNode(nodepath);
  569. }
  570. opener.model.copyNode(nodepath, root.param.selectdiaginfo);
  571. opener.javascript.setParameter("SPMRT01600_FLAG","1");
  572. opener.model.copyNode(nodepath, root.param.selectopinfo);
  573. }
  574. }else{
  575. messageBox("상위 화면이 변경되어 데이터를 전달", "E001");
  576. }
  577. window.close();
  578. }