SMMNR04200.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659
  1. /*
  2. Item그룹관리(SMMNR04200_Item그룹관리.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. var treedepthcol = 16;
  7. var treetargetcol = 3;
  8. var xCONDITEMTLIST = "/root/main/cond/item";
  9. var xItemGrupList = "/root/main/itemgrupinfo/itemgruplist";
  10. var xItemDtlInfo = "/root/main/itemdtlinfo";
  11. var xItemDtlList = "/root/main/itemdtlinfo/itemdtllist";
  12. var xItemGrupList_HIDDEN = "/root/hidden/itemgrupinfo/itemgruplist";
  13. var xIPTBOX = "/root/main/iptbox";
  14. var xGroup = "/root/main/group";
  15. var xItemSrchPath = "/root/main/itemsrch/itemlist";
  16. /**
  17. * @group :
  18. * @ver : 2008.04.14
  19. * @by : 이은영
  20. * @---------------------------------------------------
  21. * @type : function
  22. * @access : public
  23. * @desc : 화면 초기화
  24. * @param :
  25. * @return :
  26. * @---------------------------------------------------
  27. */
  28. function fInitialize(){
  29. model.makeValue("/root/send/reqdata/flag","combo");
  30. submit("TRMNR04204"); // 분류명 조회
  31. model.setValue("/root/main/cond/item/clscd","%");
  32. //item 조회
  33. fGetItemList();
  34. //Item 그룹 조회
  35. fGetItemGroupList();
  36. model.removenode(xItemDtlInfo);
  37. model.refresh();
  38. }
  39. /**
  40. * @group :
  41. * @ver : 2008.04.14
  42. * @by : 이은영
  43. * @---------------------------------------------------
  44. * @type : function
  45. * @access : public
  46. * @desc : Item 조회
  47. * @param :
  48. * @return :
  49. * @---------------------------------------------------
  50. */
  51. function fGetItemList(){
  52. model.makeValue("/root/send/recflag", model.getValue(xCONDITEMTLIST + "/recflag"));
  53. model.makeValue("/root/send/itemnm", model.getValue(xCONDITEMTLIST + "/itemnm"));
  54. model.makeValue("/root/send/clscd", model.getValue(xCONDITEMTLIST + "/clscd"));
  55. model.makeValue("/root/send/srchflag", model.getValue(xCONDITEMTLIST + "/srchflag"));
  56. if(submit("TRMNR04203")){
  57. setTree(grd_srchitem,treedepthcol,treetargetcol,false);
  58. }
  59. }
  60. /**
  61. * @group :
  62. * @ver : 2008.04.14
  63. * @by : 이은영
  64. * @---------------------------------------------------
  65. * @type : function
  66. * @access : public
  67. * @desc : Item 그룹 조회
  68. * @param :
  69. * @return :
  70. * @---------------------------------------------------
  71. */
  72. function fGetItemGroupList(){
  73. //model.makeValue("/root/send/reqdata/trgtflag","'G','H'");
  74. submit("TRMNR04201");
  75. }
  76. /**
  77. * @group :
  78. * @ver : 2008.04.14
  79. * @by : 이은영
  80. * @---------------------------------------------------
  81. * @type : function
  82. * @access : public
  83. * @desc : 항목그룹 상세정보 조회
  84. * @param :
  85. * @return :
  86. * @---------------------------------------------------
  87. */
  88. function fGetItemDtlList(){
  89. var iRow = grd_itemgruplist.row;
  90. if(iRow < 1 || !grd_itemgruplist.isCell(event.target)) return;
  91. var setno = model.getValue(xItemGrupList +"["+iRow+ "]/setno");
  92. var setnm = model.getValue(xItemGrupList + "[" + iRow + "]/setnm");
  93. var trgtflag = model.getValue(xItemGrupList + "[" + iRow + "]/trgtflag");
  94. ipt_setnm.disabled = true;
  95. rdo_trgtflag.disabled = true;
  96. btn_saveitem.Disabled = true;
  97. model.setValue(xIPTBOX + "/setnm", setnm);
  98. model.setValue(xIPTBOX + "/trgtflag", trgtflag);
  99. model.setValue(xGroup + "/setno", setno);
  100. model.setValue(xGroup + "/setnm", setnm);
  101. model.makeValue("/root/send/reqdata/setno", setno);
  102. model.makeValue("/root/send/reqdata/trgtflag", trgtflag);
  103. if(submit("TRMNR04202")){
  104. grd_srchdtlitem.mergecells = "bycol";
  105. grd_srchdtlitem.mergecol(2) = false;
  106. grd_srchdtlitem.mergecol(3) = false;
  107. grd_srchdtlitem.mergecol(4) = false;
  108. }
  109. }
  110. /**
  111. * @group :
  112. * @ver : 2008.04.14
  113. * @by : 이은영
  114. * @---------------------------------------------------
  115. * @type : function
  116. * @access : public
  117. * @desc : 그룹 추가
  118. * @param :
  119. * @return :
  120. * @---------------------------------------------------
  121. */
  122. function fAddItemGroup(){
  123. model.setValue(xIPTBOX + "/setnm", "");
  124. ipt_setnm.disabled = false;
  125. rdo_trgtflag.disabled = false;
  126. btn_saveitem.Disabled = false;
  127. model.setValue("/root/main/iptbox/setnm", "");
  128. model.setValue(xItemGrupList_HIDDEN + "/status", "I");
  129. model.setValue(xItemGrupList_HIDDEN + "/setrefseq", 0);
  130. model.setValue(xItemGrupList_HIDDEN + "/trgtflag", "");
  131. model.setValue(xGroup + "/setno","");
  132. model.setValue(xGroup + "/setnm","")
  133. model.setFocus("ipt_setnm");
  134. model.removenode(xItemDtlInfo);
  135. model.refresh();
  136. }
  137. /**
  138. * @group :
  139. * @ver : 2008.04.14
  140. * @by : 이은영
  141. * @---------------------------------------------------
  142. * @type : function
  143. * @access : public
  144. * @desc : 그룹 수정
  145. * @param :
  146. * @return :
  147. * @---------------------------------------------------
  148. */
  149. function fUpdtItemGroup(){
  150. var rowPos = grd_itemgruplist.row;
  151. var setno = model.getValue(xItemGrupList + "[" + rowPos + "]/setno");
  152. var trgtflag = model.getValue(xItemGrupList + "[" + rowPos + "]/trgtflag");
  153. ipt_setnm.disabled = false;
  154. rdo_trgtflag.disabled = false;
  155. btn_saveitem.disabled = false;
  156. if(rowPos > 0){
  157. model.setValue(xItemGrupList_HIDDEN + "/status", "U");
  158. model.setValue(xItemGrupList_HIDDEN + "/setno", setno);
  159. model.setValue(xItemGrupList_HIDDEN + "/trgtflag", trgtflag);
  160. model.setFocus("ipt_setnm");
  161. model.refresh();
  162. }else{
  163. messageBox("SET을 선택한 후 수정해 주십시오.\n수정","E001");
  164. }
  165. }
  166. /**
  167. * @group :
  168. * @ver : 2008.04.14
  169. * @by : 이은영
  170. * @---------------------------------------------------
  171. * @type : function
  172. * @access : public
  173. * @desc : 간호기록항목 SET저장
  174. * @param :
  175. * @return :
  176. * @---------------------------------------------------
  177. */
  178. function fSaveItemGroup(){
  179. var setnm = model.getValue("/root/main/iptbox/setnm");
  180. var setcd = model.getValue("/root/main/iptbox/setcd");
  181. var trgtflag = model.getValue("/root/main/iptbox/trgtflag");
  182. if(setnm == ""){
  183. messageBox("등록할 그룹을 선택 또는 입력","C001");
  184. return;
  185. }
  186. if(setcd == ""){
  187. for(var itemrow=grd_srchitem.fixedrows;itemrow<=grd_srchitem.rows-grd_srchitem.fixedrows;itemrow++){
  188. if(setnm == grd_srchitem.valueMatrix(itemrow, grd_srchitem.colRef("itemnm") )){
  189. if(setnm != ""){
  190. setcd = grd_srchitem.valueMatrix(itemrow, grd_srchitem.colRef("itemcd") );
  191. depth = grd_srchitem.valueMatrix(itemrow, grd_srchitem.colRef("depth") );
  192. if(depth != "1"){
  193. itemrow = grd_srchitem.rows;
  194. }
  195. }
  196. }
  197. }
  198. }
  199. if(setcd == ""){
  200. messageBox("그룹에 매핑할 항목을 찾을 수","I004");
  201. return;
  202. }
  203. var status = model.getValue(xItemGrupList_HIDDEN + "/status");
  204. var setno = model.getValue(xItemGrupList_HIDDEN + "/setno");
  205. var currow = 0;
  206. model.setValue(xItemGrupList_HIDDEN + "/setnm", setnm);
  207. model.setValue(xItemGrupList_HIDDEN + "/setcd", setcd );
  208. model.setValue(xItemGrupList_HIDDEN + "/trgtflag", trgtflag);
  209. if( isNull(model.getValue(xItemGrupList_HIDDEN + "/trgtflag")) ){
  210. messageBox("그룹의 구분을 선택","C001");
  211. model.setFocus("rdo_trgtflag");
  212. return;
  213. }
  214. model.copyNode("/root/send/savedata", xItemGrupList_HIDDEN);
  215. submit("TXMNR04201");
  216. ipt_setnm.disabled = true;
  217. rdo_trgtflag.disabled = true;
  218. btn_saveitem.disabled = true;
  219. for(var i=1; i<= (grd_itemgruplist.rows-grd_itemgruplist.fixedrows); i++){
  220. if(status == "U"){
  221. if(setno == model.getValue(xItemGrupList + "[" + i + "]/setno")){
  222. currow = i;
  223. }
  224. }
  225. }
  226. if(currow > 0) grd_itemgruplist.row = currow;
  227. model.refresh();
  228. }
  229. /**
  230. * @group :
  231. * @ver : 2008.04.14
  232. * @by : 이은영
  233. * @---------------------------------------------------
  234. * @type : function
  235. * @access : public
  236. * @desc : 그룹 삭제
  237. * @param :
  238. * @return :
  239. * @---------------------------------------------------
  240. */
  241. function fDelItemGroup(){
  242. var rowPos = grd_itemgruplist.row;
  243. var setno = model.getValue(xItemGrupList + "[" + rowPos + "]/setno");
  244. var trgtflag = model.getValue(xItemGrupList + "[" + rowPos + "]/trgtflag");
  245. model.setValue(xItemGrupList_HIDDEN + "/status", "D");
  246. model.setValue(xItemGrupList_HIDDEN + "/setno", setno);
  247. model.setValue(xItemGrupList_HIDDEN + "/trgtflag", trgtflag);
  248. model.setValue("/root/main/iptbox/setnm", "");
  249. model.copyNode("/root/send/savedata", xItemGrupList_HIDDEN);
  250. if(submit("TXMNR04201")){
  251. model.setValue(xGroup + "/setno","");
  252. model.setValue(xGroup + "/setnm","");
  253. }
  254. grd_itemgruplist.rebuild();
  255. model.removenode(xItemDtlInfo);
  256. grd_srchdtlitem.refresh();
  257. model.refresh();
  258. }
  259. /**
  260. * @group :
  261. * @ver : 2008.04.15
  262. * @by : 이은영
  263. * @---------------------------------------------------
  264. * @type : function
  265. * @access : public
  266. * @desc : 그리드 클릭시..
  267. * @param :
  268. * @return :
  269. * @---------------------------------------------------
  270. */
  271. function fClickedGridRow(pFlag){
  272. var iCol = 0;
  273. var iRow = 0;
  274. var sCheck = "";
  275. switch(pFlag){
  276. case "Item" :
  277. iRow = grd_srchitem.row;
  278. iCol = grd_srchitem.col;
  279. if(iRow < 1) return;
  280. var sDepth = eval(model.getValue(xItemSrchPath+"["+iRow+"]/depth"));
  281. var iDepth = 0;
  282. sCheck = model.getValue(xItemSrchPath+"["+iRow+"]/check");
  283. var sItemCD = "";
  284. var sStatus = "";
  285. if(sDepth == 1){
  286. sItemCD = model.getValue(xItemSrchPath+"["+iRow+"]/itemcd");
  287. if(iCol == 3){
  288. // 자식 트리 접기
  289. for(var i = iRow; i <grd_srchitem.rows; i++)
  290. {
  291. iDepth = eval(model.getValue(xItemSrchPath+"["+i+"]/depth"));
  292. if(iRow!= i && iDepth==1) break;
  293. if(grd_srchitem.iscollapsed(i)){
  294. grd_srchitem.iscollapsed(i)=false; //자식 트리 접기
  295. }else{
  296. grd_srchitem.iscollapsed(i)=true; //자식 트리 접기
  297. }
  298. }
  299. }else{
  300. if(grd_srchitem.iscollapsed(iRow)) return;
  301. if(iCol == 1){
  302. sStatus = sCheck;
  303. }else{
  304. if( sCheck == "true"){
  305. sStatus = "false";
  306. }else{
  307. sStatus = "true";
  308. }
  309. model.setValue(xItemSrchPath+"["+iRow+"]/check",sStatus);
  310. }
  311. for(var i=iRow; i<=grd_srchitem.rows - grd_srchitem.fixedrows; i++){
  312. if(model.getValue(xItemSrchPath+"["+i+"]/supcd") == sItemCD){
  313. model.setValue(xItemSrchPath+"["+i+"]/check",sStatus);
  314. }
  315. }
  316. }
  317. }else{
  318. if(iCol == 1) return;
  319. if( sCheck == "true"){
  320. model.setValue(xItemSrchPath+"["+iRow+"]/check","false");
  321. }else{
  322. model.setValue(xItemSrchPath+"["+iRow+"]/check","true");
  323. }
  324. }
  325. break;
  326. case "SET" :
  327. iRow = grd_srchdtlitem.row;
  328. iCol = grd_srchdtlitem.col;
  329. if(iRow < 1) return;
  330. if(iCol == 2) return;
  331. sCheck = model.getValue(xItemDtlList+"["+iRow+"]/check");
  332. if(sCheck == "true"){
  333. model.setValue(xItemDtlList+"["+iRow+"]/check","");
  334. }else{
  335. model.setValue(xItemDtlList+"["+iRow+"]/check","true");
  336. }
  337. grd_srchdtlitem.rebuild();
  338. break;
  339. }
  340. }
  341. /**
  342. * @group :
  343. * @ver : 2008.04.15
  344. * @by : 이은영
  345. * @---------------------------------------------------
  346. * @type : function
  347. * @access : public
  348. * @desc : 항목 그룹상세항목으로 이동
  349. * @param :
  350. * @return :
  351. * @---------------------------------------------------
  352. */
  353. function fSendItemInfo(){
  354. // var setno = model.getValue(xGroup + "/setno");
  355. // var setnm = model.getValue(xGroup + "/setnm");
  356. // var sItemLevl = 0;
  357. // var itemdtlrow = 0;
  358. // var sItemcd = "";
  359. // var supcd = "";
  360. // var sChkYN = false; // 항목 체크 여부
  361. // var sInsYN = false; // 실제 신규항목 존재여부
  362. // if(setnm == ""){
  363. // messageBox("SET종류를 먼저","C002");
  364. // return;
  365. // }
  366. // for(var itemrow=grd_srchitem.fixedrows;itemrow<=grd_srchitem.rows-grd_srchitem.fixedrows;itemrow++){
  367. // if(model.getValue(xItemSrchPath+"["+itemrow+"]/check") == "true"){
  368. // sChkYN = true;
  369. // sItemLevl = eval(model.getValue(xItemSrchPath+"["+itemrow+"]/depth"));
  370. // sItemcd = model.getValue(xItemSrchPath+"["+itemrow+"]/itemcd");
  371. // supcd = model.getValue(xItemSrchPath+"["+itemrow+"]/supcd");
  372. // if(sItemLevl == 1) continue;
  373. // if(grd_srchdtlitem.rows > 1 && model.getValue(xItemDtlList+"[itemcd='"+sItemcd+"']/itemcd") != "") continue;
  374. // grd_srchdtlitem.addRow(false);
  375. // itemdtlrow = grd_srchdtlitem.rows-grd_srchdtlitem.fixedrows;
  376. // model.setValue(xItemDtlList + "[" + itemdtlrow + "]/status","I");
  377. // model.setValue(xItemDtlList + "[" + itemdtlrow + "]/setno",setno);
  378. // model.setValue(xItemDtlList + "[" + itemdtlrow + "]/instcd", model.getValue(xGroup + "/instcd"));
  379. // model.setValue(xItemDtlList + "[" + itemdtlrow + "]/itemcd",sItemcd);
  380. // model.setValue(xItemDtlList + "[" + itemdtlrow + "]/itemnm",model.getValue(xItemSrchPath+"["+itemrow+"]/itemnm"));
  381. // model.setValue(xItemDtlList + "[" + itemdtlrow + "]/supcd",supcd);
  382. // sInsYN = true;
  383. // }
  384. // }
  385. // if(!sChkYN){
  386. // messageBox("등록할 항목을 먼저","C002");
  387. // return;
  388. // }
  389. // if(sChkYN == true && sInsYN == false){
  390. // messageBox("이미 항목 등록이","I002");
  391. // return;
  392. // }
  393. var sChkYN = false; // 항목 체크 여부
  394. for(var itemrow=grd_srchdtlitem.fixedrows ; itemrow <= grd_srchdtlitem.rows-grd_srchdtlitem.fixedrows ; itemrow++){
  395. if(grd_srchdtlitem.valueMatrix(itemrow, 2) != "-"){
  396. sChkYN = true;
  397. }
  398. }
  399. if(!sChkYN){
  400. messageBox("저장할 내역이","I004");
  401. return;
  402. }
  403. model.setValue("/root/send/griddata", getGridUpdateData(grd_srchdtlitem));
  404. if(submit("TXMNR04202")){
  405. grd_srchdtlitem.mergecells = "bycol";
  406. grd_srchdtlitem.mergecol(2) = false;
  407. grd_srchdtlitem.mergecol(3) = false;
  408. grd_srchdtlitem.mergecol(4) = false;
  409. // for(var itemrow=grd_srchitem.fixedrows;itemrow<=grd_srchitem.rows-grd_srchitem.fixedrows;itemrow++){
  410. // if(model.getValue(xItemSrchPath+"["+itemrow+"]/check") == "true"){
  411. // model.setValue(xItemSrchPath+"["+itemrow+"]/check","");
  412. // }
  413. // }
  414. grd_srchitem.rebuild();
  415. setTree(grd_srchitem,treedepthcol,treetargetcol,false);
  416. }
  417. }
  418. /**
  419. * @group :
  420. * @ver : 2008.04.15
  421. * @by : 이은영
  422. * @---------------------------------------------------
  423. * @type : function
  424. * @access : public
  425. * @desc : 항목 그룹상세정보 삭제
  426. * @param :
  427. * @return :
  428. * @---------------------------------------------------
  429. */
  430. function fDelDetGridRow(){
  431. // var iRowCnt = grd_srchdtlitem.rows-grd_srchdtlitem.fixedRows;
  432. // var sChkYN = false;
  433. //
  434. // for(var i=1; i<=iRowCnt; i++){
  435. // if(model.getValue(xItemDtlList + "[" + i + "]/check") == "true"){
  436. // model.setValue(xItemDtlList + "[" + i + "]/status", "D");
  437. // model.setValue(xItemDtlList + "[" + i + "]/check", "false");
  438. // grd_srchdtlitem.rowStatus(i) = 4;
  439. // sChkYN = true;
  440. // }
  441. // }
  442. // if(!sChkYN){
  443. // messageBox("선택된 항목이","I004");
  444. // return;
  445. // }
  446. // model.setValue("/root/send/griddata", getGridUpdateData(grd_srchdtlitem));
  447. // submit("TXMNR04202");
  448. //}
  449. var sFrstRow = "";
  450. var sLastRow = "";
  451. if(grd_srchdtlitem.selectedRow(0) == grd_srchdtlitem.row){
  452. sFrstRow = grd_srchdtlitem.row - grd_srchdtlitem.fixedRows;
  453. sLastRow = sFrstRow + grd_srchdtlitem.selectedRows ;
  454. }else{
  455. sFrstRow = grd_srchdtlitem.selectedRow(0) - 1;
  456. sLastRow = grd_srchdtlitem.selectedRow(0) + grd_srchdtlitem.selectedRows - 1 ;
  457. }
  458. var sChkYN = false;
  459. for(var i=sFrstRow+1; i<=sLastRow; i++){
  460. if(grd_srchdtlitem.valueMatrix( i, 2 ) == "-" || grd_srchdtlitem.valueMatrix( i, 2 ) == "I"){
  461. grd_srchdtlitem.valueMatrix( i, 2 ) = "D" ;
  462. grd_srchdtlitem.rowStatus(i) = 4;
  463. sChkYN = true;
  464. }else{
  465. grd_srchdtlitem.valueMatrix( i, 2 ) = "-" ;
  466. grd_srchdtlitem.rowStatus(i) = 0;
  467. sChkYN = true;
  468. }
  469. }
  470. if(!sChkYN){
  471. messageBox("선택된 항목이","I004");
  472. return;
  473. }
  474. }
  475. /**
  476. * @group :
  477. * @ver : 2008.06.04
  478. * @by : 양천덕
  479. * @---------------------------------------------------
  480. * @type : function
  481. * @access : public
  482. * @desc : 그룹 상세 항목 등록 및 그룹 항목 매핑 부분
  483. * @param :
  484. * @return :
  485. * @---------------------------------------------------
  486. */
  487. function fSelectItemMove(){
  488. // 2008-06-04 그룹 매핑 항목 지정 추가(양천덕)
  489. if(ipt_setnm.attribute("disabled") == 'false'){
  490. var sChekCnt = 0;
  491. var sItemLevl = 0;
  492. var sItemcd = "";
  493. var sRow = "";
  494. var sItemnm = "";
  495. var sMainCnt = 0;
  496. var sExistsSetNo="";
  497. var sTrgtFlag = model.getValue(xIPTBOX + "/trgtflag");
  498. for(var itemrow=grd_srchitem.fixedrows;itemrow<=grd_srchitem.rows-grd_srchitem.fixedrows;itemrow++){
  499. if(model.getValue(xItemSrchPath+"["+itemrow+"]/check") == "true"){
  500. sChekCnt ++;
  501. sItemLevl = eval(model.getValue(xItemSrchPath+"["+itemrow+"]/depth"));
  502. sItemcd = model.getValue(xItemSrchPath+"["+itemrow+"]/itemcd");
  503. sRow = itemrow;
  504. sItemnm = model.getValue(xItemSrchPath+"["+itemrow+"]/itemnm");
  505. sExistsSetNo = model.getValue(xItemGrupList+"[setnm = '"+sItemnm+"' and trgtflag = '"+ sTrgtFlag +"']/setno");
  506. }
  507. }
  508. if(sChekCnt > 1){
  509. messageBox("그룹 매핑 항목을 하나만","C002");
  510. return;
  511. }
  512. if(sItemLevl == 1){
  513. messageBox("분류는 그룹 매핑을","E001");
  514. return;
  515. }
  516. if( isNull(sTrgtFlag) ){
  517. messageBox("그룹의 구분을 선택","C001");
  518. model.setFocus("rdo_trgtflag");
  519. return;
  520. }
  521. if ( !isNull(sExistsSetNo)){
  522. messageBox("이미 존재하는 셋입니다.","I007");//확인하십시오
  523. return;
  524. }
  525. if(grd_srchitem.valueMatrix(sRow, grd_srchitem.colRef("clincobsprcpyn")) == "Y" ||
  526. grd_srchitem.valueMatrix(sRow, grd_srchitem.colRef("catheterprcpyn")) == "Y" ||
  527. grd_srchitem.valueMatrix(sRow, grd_srchitem.colRef("careexecprcpyn")) == "Y" ){
  528. messageBox("처방이 존재하는 항목은 매핑을","E001");
  529. return;
  530. }
  531. if(grd_srchitem.valueMatrix(sRow, grd_srchitem.colRef("clincobs")) == "B" ){
  532. sMainCnt++;
  533. }
  534. if(grd_srchitem.valueMatrix(sRow, grd_srchitem.colRef("intake")) == "B" ){
  535. sMainCnt++;
  536. }
  537. if(grd_srchitem.valueMatrix(sRow, grd_srchitem.colRef("output")) == "B" ){
  538. sMainCnt++;
  539. }
  540. if(grd_srchitem.valueMatrix(sRow, grd_srchitem.colRef("catheter")) == "B" ){
  541. sMainCnt++;
  542. }
  543. if(grd_srchitem.valueMatrix(sRow, grd_srchitem.colRef("careexec")) == "B" ){
  544. sMainCnt++;
  545. }
  546. if(grd_srchitem.valueMatrix(sRow, grd_srchitem.colRef("instru")) == "B" ){
  547. sMainCnt++;
  548. }
  549. if( rdo_trgtflag.value == "G" && sMainCnt > 0){
  550. messageBox("하나의 기록지에 주체 연계 설정만 되어야 합니다.","E");
  551. return;
  552. }
  553. model.setValue("/root/main/iptbox/setnm", sItemnm );
  554. model.setValue("/root/main/iptbox/setcd", sItemcd );
  555. ipt_setnm.refresh();
  556. model.setValue(xItemSrchPath+"["+sRow+"]/check", "false");
  557. }else{
  558. var setno = model.getValue(xGroup + "/setno");
  559. var setnm = model.getValue(xGroup + "/setnm");
  560. var sItemLevl = 0;
  561. var itemdtlrow = 0;
  562. var sItemcd = "";
  563. var supcd = "";
  564. var sChkYN = false; // 항목 체크 여부
  565. var sInsYN = false; // 실제 신규항목 존재여부
  566. if(setnm == ""){
  567. messageBox("SET종류를 먼저","C002");
  568. return;
  569. }
  570. for(var itemrow=grd_srchitem.fixedrows;itemrow<=grd_srchitem.rows-grd_srchitem.fixedrows;itemrow++){
  571. if(model.getValue(xItemSrchPath+"["+itemrow+"]/check") == "true"){
  572. sChkYN = true;
  573. sItemLevl = eval(model.getValue(xItemSrchPath+"["+itemrow+"]/depth"));
  574. sItemcd = model.getValue(xItemSrchPath+"["+itemrow+"]/itemcd");
  575. supcd = model.getValue(xItemSrchPath+"["+itemrow+"]/supcd");
  576. model.setValue(xItemSrchPath+"["+itemrow+"]/check", "false");
  577. if(sItemLevl == 1) continue;
  578. if(grd_srchdtlitem.rows > 1 && model.getValue(xItemDtlList+"[itemcd='"+sItemcd+"']/itemcd") != "") continue;
  579. grd_srchdtlitem.addRow(false);
  580. itemdtlrow = grd_srchdtlitem.rows-grd_srchdtlitem.fixedrows;
  581. model.setValue(xItemDtlList + "[" + itemdtlrow + "]/status","I");
  582. model.setValue(xItemDtlList + "[" + itemdtlrow + "]/setno",setno);
  583. model.setValue(xItemDtlList + "[" + itemdtlrow + "]/instcd", model.getValue(xGroup + "/instcd"));
  584. model.setValue(xItemDtlList + "[" + itemdtlrow + "]/itemcd",sItemcd);
  585. model.setValue(xItemDtlList + "[" + itemdtlrow + "]/itemnm",model.getValue(xItemSrchPath+"["+itemrow+"]/itemnm"));
  586. model.setValue(xItemDtlList + "[" + itemdtlrow + "]/supcd",supcd);
  587. //2008-05-26 변경
  588. model.setValue(xItemDtlList + "[" + itemdtlrow + "]/supnm", model.getValue(xItemSrchPath+"[itemcd ='" + supcd + "']/itemnm"));
  589. model.setValue(xItemDtlList + "[" + itemdtlrow + "]/trgtflag", model.getValue(xIPTBOX + "/trgtflag"));
  590. sInsYN = true;
  591. }
  592. }
  593. if(!sChkYN){
  594. messageBox("등록할 항목을 먼저","C002");
  595. return;
  596. }
  597. if(sChkYN == true && sInsYN == false){
  598. messageBox("이미 항목 등록이","I002");
  599. return;
  600. }
  601. }
  602. }