SMMNR02000.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840
  1. /*
  2. 표준간호과정 set 관리(SMMNR02000.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. var xStmtListPath = "/root/main/stmtlist/stmtinfo"; // 표준 간호 진술문
  7. var xCondPath = "/root/main/cond"; // 조회조건
  8. var xNursDiagInfoPath = "/root/main/nursdiaginfo"; // Nursing Diagnosis
  9. var xRetPath = "/root/hidden/retinfo"; // 팝업 리턴 결과
  10. var xStmtClsListPath = "/root/main/stmtclslist/stmtclsinfo"; // 표준간호과정 set 등록
  11. var xStmtSetListPath = "/root/main/grupstmtsetinfo/stmtsetinfo/stmtsetlist"; // 진술문 분류 등록 내의 표준간호진술문
  12. var xLrgGrupListPath = "/root/main/grupstmtsetinfo/lrggrupinfo/lrggruplist"; // 대분류
  13. var xDetlGrupListPath = "/root/main/grupstmtsetinfo/detlgrupinfo/detlgruplist" // 상세분류
  14. var xSetStmtInfoPath = "/root/main/setstmtinfo"; // 분류 정보
  15. var xHardCodeList = "/root/code/codeinfo/codelist";
  16. var gAuthYN = "";
  17. var sGrupFlag = "";
  18. var MGFlag = ""; // 메뉴그룹 구분 (C:중앙사용자, I:기관사용자) 2010-06-25 안도영
  19. /**
  20. * @group :
  21. * @ver : 2007.03.28
  22. * @by : 이은영
  23. * @---------------------------------------------------
  24. * @type : function
  25. * @access : public
  26. * @desc : 화면 초기화
  27. * @param :
  28. * @return :
  29. * @---------------------------------------------------
  30. */
  31. function fInit(){
  32. // 주석처리 2010-06-25 안도영
  33. /*
  34. // 간호하드코딩 테이블 조회_20090604 김홍점 수정권한자
  35. var pCode = "'097'"; // 조회할 CdGrupID 코드정보
  36. var pDate = getCurrentDate(); // 조회기준일자
  37. fGetNursHardCdInfo(pCode, pDate);
  38. */
  39. model.setValue(xCondPath+"/dnar", "%");
  40. model.removenodeset(xStmtListPath);
  41. model.removenodeset(xStmtClsListPath);
  42. // fSearchStmtInfo();
  43. grd_lrggruplist.allowSelection = false; // 멀티 선택 여부.
  44. grd_detlgruplist.allowSelection = false;
  45. fSearchGrupInfo();
  46. // 주석처리 2010-06-25 안도영
  47. /*
  48. if ( !isNull(getUserId())
  49. && !isNull(model.getValue(xHardCodeList + "[cdid='"+ getUserId() +"']/cdid"))
  50. ){
  51. gAuthYN = "Y";
  52. btn_select.disabled = false;
  53. btn_delstndcareset.disabled = false;
  54. btn_savestndcareset.disabled = false;
  55. }else{
  56. gAuthYN = "N";
  57. btn_select.disabled = true;
  58. btn_delstndcareset.disabled = true;
  59. btn_savestndcareset.disabled = true;
  60. }
  61. */
  62. }
  63. /**
  64. * @group :
  65. * @ver : 2007.03.28
  66. * @by : 이은영
  67. * @---------------------------------------------------
  68. * @type : function
  69. * @access : public
  70. * @desc : 진술문 조회
  71. * @param :
  72. * @return :
  73. * @---------------------------------------------------
  74. */
  75. function fSearchStmtInfo(){
  76. model.removenodeset(xStmtListPath);
  77. var sSetYN = model.getValue(xCondPath+"/setyn");
  78. if(sSetYN == "Y"){
  79. var sStmtCD = model.getValue(xCondPath+"/nursdiagstmtcd");
  80. if(sStmtCD == ""){
  81. modal("SPMNR02900");
  82. model.setValue(xCondPath+"/nursdiagstmtcd", model.getValue(xRetPath+"/stmtinfo/stmtcd"));
  83. sStmtCD = model.getValue(xCondPath+"/nursdiagstmtcd");
  84. }
  85. model.removenode("/root/send");
  86. model.makeValue("/root/send/dnar", model.getValue(xCondPath+"/dnar"));
  87. model.makeValue("/root/send/stmtnm", model.getValue(xCondPath+"/stmtnm"));
  88. model.makeValue("/root/send/nursdiagstmtcd", sStmtCD);
  89. model.makeValue("/root/send/searchflag", "stmt");
  90. submit("TRMNR02006");
  91. }else{
  92. if(model.getValue(xCondPath+"/stmtnm") == ""){
  93. messageBox("검색할 단어를 먼저","C001");
  94. return;
  95. }
  96. model.removenode("/root/send");
  97. model.makeNode("/root/send");
  98. model.copyNode("/root/send",xCondPath);
  99. submit("TRMNR02001");
  100. }
  101. grd_stmtlist.colSort(grd_stmtlist.colRef("dnarflag")) = "asc";
  102. grd_stmtlist.sort(1, grd_stmtlist.colRef("dnarflag"), grd_stmtlist.rows-1, grd_stmtlist.cols-1) = "usersort";
  103. grd_stmtlist.gridToInstance();
  104. //grd_stmtlist.refresh();
  105. grd_stmtlist.mergecells = "bycol";
  106. grd_stmtlist.mergecol(2) = false;
  107. grd_stmtlist.mergecol(3) = false;
  108. fSettingStmtStyle("stmtinfo"); //진술문 폰트 color 설정
  109. grd_stmtlist.resizeCells();
  110. }
  111. /**
  112. * @group :
  113. * @ver : 2007.03.29
  114. * @by : 이은영
  115. * @---------------------------------------------------
  116. * @type : function
  117. * @access : public
  118. * @desc : 진단 진술문장 호출
  119. * @param :
  120. * @return :
  121. * @---------------------------------------------------
  122. */
  123. function fCallNursDiagInfo(){
  124. modal("SPMNR02900");
  125. model.setValue(xNursDiagInfoPath+"/nursdiagstmtcnts",model.getValue(xRetPath+"/stmtinfo/stmtcnts"));
  126. model.setValue(xNursDiagInfoPath+"/nursdiagstmtcd",model.getValue(xRetPath+"/stmtinfo/stmtcd"));
  127. ipt_nursdiagstmtcnts.refresh();
  128. if(model.getValue(xNursDiagInfoPath+"/nursdiagstmtcnts") == ""){
  129. return;
  130. }
  131. model.removenode("/root/send");
  132. model.makeValue("/root/send/nursdiagstmtcd", model.getValue(xNursDiagInfoPath+"/nursdiagstmtcd"));
  133. if(submit("TRMNR02002")){
  134. grd_stndcarestmtlist.mergecells = "bycol";
  135. grd_stndcarestmtlist.mergecol(1) = false;
  136. grd_stndcarestmtlist.mergecol(3) = false;
  137. grd_stndcarestmtlist.mergecol(4) = false;
  138. fSettingStmtStyle("stndcarestmtlist"); // 진술문 폰트 color 설정
  139. grd_stndcarestmtlist.resizeCells();
  140. }
  141. }
  142. /**
  143. * @group :
  144. * @ver : 2007.03.30
  145. * @by : 이은영
  146. * @---------------------------------------------------
  147. * @type : function
  148. * @access : public
  149. * @desc : 그리드의 항목 삭제
  150. * @param :
  151. * @return :
  152. * @---------------------------------------------------
  153. */
  154. function fDelGridRow(){
  155. if ( gAuthYN != "Y" ){
  156. return;
  157. }
  158. var icase = swt_stmtset.selectedIndex;
  159. var iRow = 0;
  160. var sRowCnt = 0;
  161. var sStatus = "";
  162. switch(icase){
  163. case 0 : // 표준간호과정 SET등록
  164. sRowCnt = grd_stndcarestmtlist.rows - grd_stndcarestmtlist.fixedrows;
  165. if(sRowCnt < 1) return;
  166. for(iRow=1; iRow<= sRowCnt; iRow++){
  167. if(grd_stndcarestmtlist.isselected(iRow) == true){
  168. sStatus = model.getValue(xStmtClsListPath+"["+iRow+"]/status");
  169. if(sStatus == "I"){
  170. grd_stndcarestmtlist.deleteItem(iRow);
  171. }else if(sStatus == "-"){
  172. model.setValue(xStmtClsListPath+"["+iRow+"]/status","D");
  173. }else{
  174. model.setValue(xStmtClsListPath+"["+iRow+"]/status","-");
  175. }
  176. }
  177. }
  178. break;
  179. case 1 : // 진술문 분류 등록
  180. sRowCnt = grd_stmtsetlist.rows - grd_stmtsetlist.fixedrows;
  181. if(sRowCnt < 1) return;
  182. for(iRow=1; iRow<= sRowCnt; iRow++){
  183. if(grd_stmtsetlist.isselected(iRow) == true){
  184. sStatus = model.getValue(xStmtSetListPath+"["+iRow+"]/status");
  185. if(sStatus == "I"){
  186. grd_stmtsetlist.deleteItem(iRow);
  187. }else if(sStatus == "-"){
  188. model.setValue(xStmtSetListPath+"["+iRow+"]/status","D");
  189. }else{
  190. model.setValue(xStmtSetListPath+"["+iRow+"]/status","-");
  191. }
  192. }
  193. }
  194. break;
  195. }
  196. }
  197. /**
  198. * @group :
  199. * @ver : 2007.03.30
  200. * @by : 이은영
  201. * @---------------------------------------------------
  202. * @type : function
  203. * @access : public
  204. * @desc : 진술문 전송
  205. * @param :
  206. * @return :
  207. * @---------------------------------------------------
  208. */
  209. function fSendStmtInfo(){
  210. if ( gAuthYN != "Y" ){
  211. return;
  212. }
  213. var icase = swt_stmtset.selectedIndex;
  214. var sDNARFlag = ""; // dnar 구분
  215. var sStmtCnts = ""; // 진술문장
  216. var sStmtCd = ""; // 진술문 코드
  217. var sStmtCntsAttr ="";//속성이 2개이상인 진술문 concat
  218. var sSelectRows = grd_stmtlist.selectedrows;
  219. var iStndCareStmtRow = 0; // 표준간호과정내의 진술문 개수
  220. var iStmtSetRow = 0; // 진술문 분류내의 진술문 개수
  221. var sNursDiagStmtCd = model.getValue(xNursDiagInfoPath+"/nursdiagstmtcd");
  222. var sSmlGrupCd = model.getValue(xSetStmtInfoPath+"/smlgrupcd");
  223. if(icase == 1 && sSmlGrupCd == ""){ // 진술문 분류 등록 check
  224. messageBox("상세분류를 먼저","C002");
  225. return;
  226. }
  227. if(sSelectRows < 1){ // 선택된 진술문장이 없을 경우
  228. messageBox("등록을 원하는 진술문을 먼저","C002");
  229. return;
  230. }else if(sSelectRows == 1){ // 선택된 진술문장이 1인 경우
  231. var sStmtRow = grd_stmtlist.row;
  232. sDNARFlag = model.getValue(xStmtListPath+"["+sStmtRow+"]/dnarflag"); // dnar 구분
  233. sStmtCnts = model.getValue(xStmtListPath+"["+sStmtRow+"]/stmtcnts"); // 진술문장
  234. sStmtCd = model.getValue(xStmtListPath+"["+sStmtRow+"]/stmtcd"); // 진술문 코드
  235. switch(icase){
  236. case 0 : // 표준간호과정 SET등록
  237. if(sDNARFlag == "2N"){
  238. var sRowCnt = grd_stndcarestmtlist.rows-grd_stndcarestmtlist.fixedrows;
  239. var sStatus = "";
  240. var sRtnMsg = 0;
  241. var sChngChk = "false";
  242. for(var iRow=grd_stndcarestmtlist.fixedrows; iRow < sRowCnt; iRow++){
  243. sStatus = model.getValue(xStmtClsListPath+"["+iRow+"]/status");
  244. if(sStatus == "I" || sStatus == "D"){
  245. sChngChk = "true";
  246. break;
  247. }
  248. }
  249. if(sChngChk == "true"){
  250. sRtnMsg = messageBox("변경된 데이터가 있습니다. 그래도", "Q003");
  251. if(sRtnMsg != 6) return;
  252. }
  253. model.setValue(xNursDiagInfoPath+"/nursdiagstmtcnts",sStmtCnts);
  254. model.setValue(xNursDiagInfoPath+"/nursdiagstmtcd",sStmtCd);
  255. model.removenode("/root/send");
  256. model.makeValue("/root/send/nursdiagstmtcd", model.getValue(xNursDiagInfoPath+"/nursdiagstmtcd"));
  257. model.makeValue("/root/send/searchflag", "cls");
  258. if(submit("TRMNR02002")){
  259. grd_stndcarestmtlist.mergecells = "bycol";
  260. grd_stndcarestmtlist.mergecol(1) = false;
  261. grd_stndcarestmtlist.mergecol(3) = false;
  262. grd_stndcarestmtlist.mergecol(4) = false;
  263. fSettingStmtStyle("stndcarestmtlist"); // 진술문 폰트 color 설정
  264. grd_stndcarestmtlist.resizeCells();
  265. }
  266. return;
  267. }
  268. if(icase == 0 && sNursDiagStmtCd == ""){ // 표준간호과정 SET 등록 check
  269. messageBox("Nursing Diagnosis를 먼저","C002");
  270. return;
  271. }
  272. if(model.getValue(xStmtClsListPath+"[stmtcd ='"+sStmtCd+"']/stmtcd") != ""){
  273. messageBox("선택하신 진술문은 이미 등록이 되어 있습니다.\n등록","E001");
  274. return;
  275. }
  276. grd_stndcarestmtlist.addItem();
  277. iStndCareStmtRow = grd_stndcarestmtlist.rows - grd_stndcarestmtlist.fixedrows;
  278. model.setValue(xStmtClsListPath+"["+iStndCareStmtRow+"]/status","I");
  279. model.setValue(xStmtClsListPath+"["+iStndCareStmtRow+"]/dnarflag",sDNARFlag);
  280. model.setValue(xStmtClsListPath+"["+iStndCareStmtRow+"]/stmtcnts",sStmtCnts);
  281. model.setValue(xStmtClsListPath+"["+iStndCareStmtRow+"]/stmtcd",sStmtCd);
  282. model.setValue(xStmtClsListPath+"["+iStndCareStmtRow+"]/nursdiagstmtcd",sNursDiagStmtCd);
  283. model.setValue(xStmtClsListPath+"["+iStndCareStmtRow+"]/todd","99991231235959");
  284. grd_stndcarestmtlist.rebuild();
  285. grd_stndcarestmtlist.resizeCells();
  286. grd_stndcarestmtlist.topRow = grd_stndcarestmtlist.rows;
  287. break;
  288. case 1 : // 진술문 분류 등록
  289. if(model.getValue(xStmtSetListPath+"[stmtcd ='"+sStmtCd+"']/stmtcd") != ""){
  290. messageBox("선택하신 진술문은 이미 등록이 되어 있습니다.\n등록","E001");
  291. return;
  292. }
  293. // if( sGrupFlag == "5" && model.getValue(xStmtListPath+"["+sStmtRow+"]/attrcnt") >= 2){
  294. // messageBox("선택하신 진술문은 속성이 2개이상이므로 등록할수 ","I004");
  295. // return;
  296. // }
  297. grd_stmtsetlist.addItem();
  298. iStmtSetRow = grd_stmtsetlist.rows - grd_stmtsetlist.fixedrows;
  299. model.setValue(xStmtSetListPath+"["+iStmtSetRow+"]/status","I");
  300. model.setValue(xStmtSetListPath+"["+iStmtSetRow+"]/dnarflag",sDNARFlag);
  301. model.setValue(xStmtSetListPath+"["+iStmtSetRow+"]/stmtcnts",sStmtCnts);
  302. model.setValue(xStmtSetListPath+"["+iStmtSetRow+"]/stmtcd",sStmtCd);
  303. model.setValue(xStmtSetListPath+"["+iStmtSetRow+"]/grupcd",sSmlGrupCd);
  304. model.setValue(xStmtSetListPath+"["+iStmtSetRow+"]/todd","99991231235959");
  305. model.setValue(xStmtSetListPath+"["+iStmtSetRow+"]/dnar",fChangedDNAR(sDNARFlag));
  306. grd_stmtsetlist.resizeCells();
  307. grd_stmtsetlist.topRow = grd_stmtsetlist.rows;
  308. break;
  309. }
  310. }else{ // 선택된 진술문장이 여러 개인 경우
  311. var iStmtRowCnt = grd_stmtlist.rows - grd_stmtlist.fixedrows;
  312. sStmtCntsAttr = "";
  313. if(icase == 0 && sNursDiagStmtCd == ""){ // 표준간호과정 SET 등록 check
  314. messageBox("Nursing Diagnosis를 먼저","C002");
  315. return;
  316. }
  317. switch(icase){
  318. case 0 : // 표준간호과정 SET등록
  319. iStndCareStmtRow = grd_stndcarestmtlist.rows - grd_stndcarestmtlist.fixedrows;
  320. for(var iStmtRow=1; iStmtRow<= iStmtRowCnt; iStmtRow++){
  321. if(grd_stmtlist.isselected(iStmtRow) == true){
  322. sDNARFlag = model.getValue(xStmtListPath+"["+iStmtRow+"]/dnarflag"); // dnar 구분
  323. sStmtCd = model.getValue(xStmtListPath+"["+iStmtRow+"]/stmtcd"); // 진술문 코드
  324. if(sDNARFlag == "2N") continue;
  325. if(model.getValue(xStmtClsListPath+"[stmtcd ='"+sStmtCd+"']/stmtcd") != "") continue;
  326. grd_stndcarestmtlist.addItem();
  327. iStndCareStmtRow++;
  328. model.setValue(xStmtClsListPath+"["+iStndCareStmtRow+"]/status","I");
  329. model.setValue(xStmtClsListPath+"["+iStndCareStmtRow+"]/dnarflag",sDNARFlag); // dnar 구분
  330. model.setValue(xStmtClsListPath+"["+iStndCareStmtRow+"]/stmtcnts",model.getValue(xStmtListPath+"["+iStmtRow+"]/stmtcnts")); // 진술문장
  331. model.setValue(xStmtClsListPath+"["+iStndCareStmtRow+"]/stmtcd",sStmtCd); // 진술문 코드
  332. model.setValue(xStmtClsListPath+"["+iStndCareStmtRow+"]/nursdiagstmtcd",sNursDiagStmtCd);
  333. model.setValue(xStmtClsListPath+"["+iStndCareStmtRow+"]/todd","99991231235959");
  334. }
  335. }
  336. grd_stndcarestmtlist.rebuild();
  337. grd_stndcarestmtlist.resizeCells();
  338. grd_stndcarestmtlist.topRow = grd_stndcarestmtlist.rows;
  339. break;
  340. case 1 : // 진술문 분류 등록
  341. iStmtSetRow = grd_stmtsetlist.rows - grd_stmtsetlist.fixedrows;
  342. for(var iStmtRow=1; iStmtRow <= iStmtRowCnt; iStmtRow++){
  343. if(grd_stmtlist.isselected(iStmtRow) == true){
  344. // if( sGrupFlag == "5" && model.getValue(xStmtListPath+"["+iStmtRow+"]/attrcnt") >= 2){
  345. // sStmtCntsAttr += " \n"+ model.getValue(xStmtListPath+"["+iStmtRow+"]/stmtcnts") +" \n";
  346. // continue;
  347. // }
  348. sDNARFlag = model.getValue(xStmtListPath+"["+iStmtRow+"]/dnarflag"); // dnar 구분
  349. sStmtCd = model.getValue(xStmtListPath+"["+iStmtRow+"]/stmtcd"); // 진술문 코드
  350. if(model.getValue(xStmtSetListPath+"[stmtcd ='"+sStmtCd+"']/stmtcd") != "") continue;
  351. grd_stmtsetlist.addItem();
  352. iStmtSetRow++;
  353. model.setValue(xStmtSetListPath+"["+iStmtSetRow+"]/status","I");
  354. model.setValue(xStmtSetListPath+"["+iStmtSetRow+"]/dnarflag",sDNARFlag); // dnar 구분
  355. model.setValue(xStmtSetListPath+"["+iStmtSetRow+"]/stmtcnts",model.getValue(xStmtListPath+"["+iStmtRow+"]/stmtcnts")); // 진술문장
  356. model.setValue(xStmtSetListPath+"["+iStmtSetRow+"]/stmtcd",sStmtCd); // 진술문 코드
  357. model.setValue(xStmtSetListPath+"["+iStmtSetRow+"]/grupcd",sSmlGrupCd);
  358. model.setValue(xStmtSetListPath+"["+iStmtSetRow+"]/todd","99991231235959");
  359. model.setValue(xStmtSetListPath+"["+iStmtSetRow+"]/dnar",fChangedDNAR(sDNARFlag));
  360. }
  361. }
  362. grd_stmtsetlist.rebuild();
  363. grd_stmtsetlist.resizeCells();
  364. grd_stmtsetlist.topRow = grd_stmtsetlist.rows;
  365. if( sStmtCntsAttr != "" && sStmtCntsAttr != null ){
  366. messageBox("선택하신 진술문 중 \n"+sStmtCntsAttr+"\n 은/는 속성이 2개이상이므로 등록되지 ","E007");
  367. }
  368. break;
  369. }
  370. }
  371. }
  372. /**
  373. * @group :
  374. * @ver : 2007.03.30
  375. * @by : 이은영
  376. * @---------------------------------------------------
  377. * @type : function
  378. * @access : public
  379. * @desc : 저장
  380. * @param :
  381. * @return :
  382. * @---------------------------------------------------
  383. */
  384. function fSave(){
  385. var icase = swt_stmtset.selectedIndex;
  386. var iRow = 0;
  387. switch(icase){
  388. case 0 : // 표준간호과정 SET등록
  389. model.removenode("/root/send");
  390. model.makeValue("/root/send/nursdiagstmtcd",model.getValue(xNursDiagInfoPath+"/nursdiagstmtcd"));
  391. model.makeValue("/root/send/stmtclslist",grd_stndcarestmtlist.getUpdateDataAll("i"));
  392. if(submit("TXMNR02001")){
  393. fSettingStmtStyle("stndcarestmtlist"); // 진술문 폰트 color 설정
  394. grd_stndcarestmtlist.resizeCells();
  395. }
  396. break;
  397. case 1 : // 진술문 분류 등록
  398. model.removenode("/root/send");
  399. model.makeValue("/root/send/grupcd", model.getValue(xSetStmtInfoPath+"/smlgrupcd"));
  400. model.makeValue("/root/send/stmtsetlist", grd_stmtsetlist.getUpdateDataAll("i"));
  401. if(submit("TXMNR02002")){
  402. fSetupLnkDiag(); // 연결진단 설정
  403. fSettingStmtStyle("grupstmtset"); // 진술문 폰트 color 설정
  404. grd_stmtsetlist.resizeCells();
  405. }
  406. break;
  407. }
  408. }
  409. /**
  410. * @group :
  411. * @ver : 2007.03.30
  412. * @by : 이은영
  413. * @---------------------------------------------------
  414. * @type : function
  415. * @access : public
  416. * @desc : 그리드 클릭시
  417. * @param : pFlag ( lrggrup : 대분류, deltgrup : 상세분류정보)
  418. * @return :
  419. * @---------------------------------------------------
  420. */
  421. function fClickedGrid(pFlag){
  422. var iRow = 0;
  423. var sSelectedRow = 0; // 선택된 상세분류 코드
  424. var sRowCnt = 0;
  425. var sDepth= "";
  426. sGrupFlag = "";
  427. if(pFlag == "lrggrup"){ // 대분류
  428. sSelectedRow = grd_lrggruplist.row;
  429. if(sSelectedRow < 1) return;
  430. model.setValue(xSetStmtInfoPath+"/laggrupnm", model.getValue(xLrgGrupListPath+"["+sSelectedRow+"]/hngnm"));
  431. model.setValue(xSetStmtInfoPath+"/mdlgrupnm", "");
  432. model.setValue(xSetStmtInfoPath+"/smlgrupnm", "");
  433. model.setValue(xSetStmtInfoPath+"/smlgrupcd", "");
  434. model.removeNode("/root/send");
  435. model.makeValue("/root/send/lrggrupcd",model.getValue(xLrgGrupListPath+"["+sSelectedRow+"]/grupcd"));
  436. if(submit("TRMNR02004")){
  437. sRowCnt = grd_detlgruplist.rows - grd_detlgruplist.fixedRows;
  438. for(var i = 1 ; i <= sRowCnt; i++){
  439. sGrupFlag = model.getValue(xDetlGrupListPath+"["+i+"]/grupflag");
  440. sDepth = model.getValue(xDetlGrupListPath+"["+i+"]/depth");
  441. grd_detlgruplist.cellStyle("color",i,1,i,1) = "#000000";
  442. grd_detlgruplist.cellStyle("font-weight",i,1,i,1) = "";
  443. grd_detlgruplist.IsSubtotal(i) = true;
  444. grd_detlgruplist.outlinelevel(i) = sDepth;
  445. if((sGrupFlag == 3 || sGrupFlag == 5) && sDepth == 1){
  446. grd_detlgruplist.cellStyle("color",i,1,i,1) = "#0000FF";
  447. grd_detlgruplist.cellStyle("font-weight",i,1,i,1) = "bold";
  448. }
  449. }
  450. grd_detlgruplist.OutlineCol = 1;
  451. grd_detlgruplist.OutlineBar = 4;
  452. grd_detlgruplist.TreeColor = "gray";
  453. model.removenodeset(xStmtSetListPath);
  454. var iRow= grd_lrggruplist.row;
  455. // 주석처리 2010-06-25 안도영
  456. /*
  457. if ( !isNull(getUserId())
  458. && !isNull(model.getValue(xHardCodeList + "[cdid='"+ getUserId() +"']/cdid"))
  459. && ( sGrupFlag == "1"
  460. || sGrupFlag == "2"
  461. )
  462. ){
  463. gAuthYN = "Y";
  464. btn_select.disabled = false;
  465. btn_delgrupstmtset.disabled = false;
  466. btn_savegrupstmtset.disabled = false;
  467. }else{
  468. if( sGrupFlag == "1"
  469. || sGrupFlag == "2" ){
  470. gAuthYN = "N";
  471. btn_select.disabled = true;
  472. btn_delgrupstmtset.disabled = true;
  473. btn_savegrupstmtset.disabled = true;
  474. } else {
  475. gAuthYN = "Y";
  476. btn_select.disabled = false;
  477. btn_delgrupstmtset.disabled = false;
  478. btn_savegrupstmtset.disabled = false;
  479. }
  480. }
  481. */
  482. grd_stmtsetlist.rebuild();
  483. }
  484. for(var i = grd_detlgruplist.fixedRows; i < grd_detlgruplist.rows; i++) {
  485. grd_detlgruplist.iscollapsed(i)=true;
  486. }
  487. opt_lrggrupnm.refresh();
  488. }else if(pFlag == "detlgrup"){ // 상세분류
  489. sSelectedRow = grd_detlgruplist.row;
  490. if(sSelectedRow < 1) return;
  491. var sDeptCd = model.getValue(xDetlGrupListPath+"["+sSelectedRow+"]/deptcd");
  492. var sDepth = model.getValue(xDetlGrupListPath+"["+sSelectedRow+"]/depth");
  493. var sGrupCd = model.getValue(xDetlGrupListPath+"["+sSelectedRow+"]/grupcd");
  494. sGrupFlag = model.getValue(xDetlGrupListPath+"["+sSelectedRow+"]/grupflag");//20080701김홍점
  495. model.removenode("/root/send");
  496. // 최하단 그룹에서만 등록이 가능함(부서별 : 3 레벨, 그외의 대분류 : 2레벨)
  497. if((sDepth < 3 && sGrupFlag == "3" )
  498. || (sDepth < 2 && sGrupFlag != "5")
  499. || (sDepth < 2 && sGrupFlag == "5")){
  500. model.setValue(xSetStmtInfoPath+"/mdlgrupnm","");
  501. model.setValue(xSetStmtInfoPath+"/smlgrupnm","");
  502. model.setValue(xSetStmtInfoPath+"/smlgrupcd","");
  503. model.refresh();
  504. // 자식 접기 or 펼치기
  505. sDepth = eval(model.getValue(xDetlGrupListPath+"["+sSelectedRow+"]/depth"));
  506. sRowCnt = grd_detlgruplist.rows - grd_detlgruplist.fixedrows;
  507. if(grd_detlgruplist.iscollapsed(sSelectedRow) == true){
  508. sBoolStatus = false;
  509. }else{
  510. sBoolStatus = true;
  511. }
  512. for(var i=sSelectedRow; i<=sRowCnt; i++){
  513. iDepth = eval(model.getValue(xDetlGrupListPath+"["+i+"]/depth"));
  514. if(i==sSelectedRow){
  515. grd_detlgruplist.iscollapsed(i) = sBoolStatus;
  516. }else if(i != sSelectedRow && sDepth < iDepth){
  517. grd_detlgruplist.iscollapsed(i) = sBoolStatus;
  518. }else{
  519. break;
  520. }
  521. }
  522. return;
  523. }
  524. // 중분류 찾아오기
  525. for(var iRow = sSelectedRow-1; iRow > 0; iRow--){
  526. if(model.getValue(xDetlGrupListPath+"["+iRow+"]/depth") < sDepth){
  527. model.setValue(xSetStmtInfoPath+"/mdlgrupnm",model.getValue(xDetlGrupListPath+"["+iRow+"]/hngnm"));
  528. break;
  529. }
  530. }
  531. model.setValue(xSetStmtInfoPath+"/smlgrupnm", model.getValue(xDetlGrupListPath+"["+sSelectedRow+"]/hngnm"));
  532. model.setValue(xSetStmtInfoPath+"/smlgrupcd", sGrupCd);
  533. // if( sGrupFlag == '5'){
  534. //
  535. // model.setValue(xSetStmtInfoPath+"/smlgrupnm", model.getValue(xDetlGrupListPath+"["+sSelectedRow+"]/hngnm"));
  536. // model.setValue(xSetStmtInfoPath+"/smlgrupcd", sGrupCd); //smlgrupcd 이값을 읽으므로 중분류명에다 세팅은 해주고 코드는그대로
  537. // } else {
  538. // model.setValue(xSetStmtInfoPath+"/smlgrupnm", model.getValue(xDetlGrupListPath+"["+sSelectedRow+"]/hngnm"));
  539. // model.setValue(xSetStmtInfoPath+"/smlgrupcd", sGrupCd);
  540. // }
  541. model.makeValue("/root/send/grupcd", sGrupCd);
  542. if(submit("TRMNR02005")){
  543. fSetupLnkDiag(); // 연결진단 설정
  544. grd_stmtsetlist.mergecells = "bycol";
  545. grd_stmtsetlist.mergecol(1) = false;
  546. grd_stmtsetlist.mergecol(3) = false;
  547. grd_stmtsetlist.mergecol(4) = false;
  548. fSettingStmtStyle("grupstmtset"); // 진술문 폰트 color 설정
  549. grd_stmtsetlist.resizeCells();
  550. }
  551. }
  552. }
  553. /**
  554. * @group :
  555. * @ver : 2007.03.30
  556. * @by : 이은영
  557. * @---------------------------------------------------
  558. * @type : function
  559. * @access : public
  560. * @desc : 진술문 분류 등록 클릭시
  561. * @param :
  562. * @return :
  563. * @---------------------------------------------------
  564. */
  565. function fSearchGrupInfo(){
  566. model.removenodeset(xLrgGrupListPath);
  567. model.removenodeset(xDetlGrupListPath);
  568. model.removenodeset(xStmtSetListPath);
  569. model.setValue(xSetStmtInfoPath+"/laggrupnm","");
  570. model.setValue(xSetStmtInfoPath+"/mdlgrupnm","");
  571. model.setValue(xSetStmtInfoPath+"/smlgrupnm","");
  572. model.setValue(xSetStmtInfoPath+"/smlgrupcd","");
  573. model.removeNode("/root/send");
  574. model.makeValue("/root/send/supcd","********");
  575. submit("TRMNR02003");
  576. }
  577. /**
  578. * @group :
  579. * @ver : 2007.03.30
  580. * @by : 이은영
  581. * @---------------------------------------------------
  582. * @type : function
  583. * @access : public
  584. * @desc : DNAR 변경
  585. * @param :
  586. * @return :
  587. * @---------------------------------------------------
  588. */
  589. function fChangedDNAR(pDNAR){
  590. var sDNARFlag = "";//pDNAR;
  591. switch(pDNAR){
  592. case "1D" : sDNARFlag = "2D";
  593. break;
  594. case "2N" : sDNARFlag = "1N";
  595. break;
  596. default :
  597. sDNARFlag = pDNAR;
  598. }
  599. return sDNARFlag;
  600. }
  601. /**
  602. * @group :
  603. * @ver : 2007.04.06
  604. * @by : 이은영
  605. * @---------------------------------------------------
  606. * @type : function
  607. * @access : public
  608. * @desc : 연결 진단 설정
  609. * @param :
  610. * @return :
  611. * @---------------------------------------------------
  612. */
  613. function fSetupLnkDiag(){
  614. var sRowCnt = grd_stmtsetlist.rows - grd_stmtsetlist.fixedrows;
  615. var sNursDiagInfo = null;
  616. var sLnkDiag = "";
  617. // 진단연결 설정
  618. for(var iSetRow=0; iSetRow<= sRowCnt; iSetRow++){
  619. // 간호진단을 제외한 진술문의 진단연결 번호를 설정한다.
  620. if(model.getValue(xStmtSetListPath+"["+iSetRow+"]/dnarflag") != "2N"){
  621. sLnkDiag = "";
  622. sNursDiagInfo = model.getValue(xStmtSetListPath+"["+iSetRow+"]/nursdiaginfo").split(",");
  623. if(sNursDiagInfo.length > 0){
  624. if(sNursDiagInfo[0] != ""){
  625. sLnkDiag = model.getValue(xStmtSetListPath+"[stmtcd='"+sNursDiagInfo[0]+"']/rownum");
  626. }
  627. for(var i=1; i<sNursDiagInfo.length; i++){
  628. if(sNursDiagInfo[i] != ""){
  629. sLnkDiag += ","+ model.getValue(xStmtSetListPath+"[stmtcd='"+sNursDiagInfo[i]+"']/rownum");
  630. }
  631. }
  632. if(sLnkDiag != ""){
  633. model.setValue(xStmtSetListPath+"["+iSetRow+"]/lnkdiag", sLnkDiag);
  634. }
  635. }
  636. }
  637. }
  638. grd_stmtsetlist.rebuild();
  639. }
  640. /**
  641. * @group :
  642. * @ver : 2007.04.19
  643. * @by : 이은영
  644. * @---------------------------------------------------
  645. * @type : function
  646. * @access : public
  647. * @desc : 진술문 폰트 color 설정 - 속성이 있는 경우 진술문 폰트 색상을 변경한다.
  648. * @param : pFlag ( stmtinfo : 표준간호진술문, grupstmtset : 진숢문 분류 등록, stndcarestmtlist : 표준간호과정 SET 등록)
  649. * @return :
  650. * @---------------------------------------------------
  651. */
  652. function fSettingStmtStyle(pFlag){
  653. switch(pFlag){
  654. case "stmtinfo" : //
  655. grd_stmtlist.allstyle("data","color") = "#000000";
  656. for(var iRow=grd_stmtlist.fixedrows; iRow<=grd_stmtlist.rows-grd_stmtlist.fixedrows; iRow++){
  657. if(eval(model.getValue(xStmtListPath+"["+iRow+"]/attrcnt"))>0){
  658. grd_stmtlist.cellstyle("color",iRow,2) = "#33CC33"; // 녹색
  659. }
  660. }
  661. break;
  662. case "grupstmtset":
  663. grd_stmtsetlist.allstyle("data","color") = "#000000";
  664. for(var iRow=grd_stmtsetlist.fixedrows; iRow<=grd_stmtsetlist.rows-grd_stmtsetlist.fixedrows; iRow++){
  665. if(eval(model.getValue(xStmtSetListPath+"["+iRow+"]/attrcnt"))>0){
  666. grd_stmtsetlist.cellstyle("color",iRow,3) = "#33CC33"; // 녹색
  667. }
  668. }
  669. break;
  670. case "stndcarestmtlist" :
  671. grd_stndcarestmtlist.allstyle("data","color") = "#000000";
  672. for(var iRow=grd_stndcarestmtlist.fixedrows; iRow<=grd_stndcarestmtlist.rows-grd_stndcarestmtlist.fixedrows; iRow++){
  673. if(eval(model.getValue(xStmtClsListPath+"["+iRow+"]/attrcnt"))>0){
  674. grd_stndcarestmtlist.cellstyle("color",iRow,3) = "#33CC33"; // 녹색
  675. }
  676. }
  677. break;
  678. }
  679. }
  680. /**
  681. * @group :
  682. * @ver : 2010.06.24
  683. * @by : 안도영
  684. * @---------------------------------------------------
  685. * @type : function
  686. * @access : public
  687. * @desc : 중앙/기관별 관리 메뉴그룹 구분을 위한 함수
  688. * @param :
  689. * @return :
  690. * @---------------------------------------------------
  691. */
  692. /* 메뉴그룹코드 가져오기(from 간호하드코딩 테이블) 2010-06-24 안도영 */
  693. function chkInstMG(){
  694. // 초기 설정
  695. model.setValue(xCondPath+"/dnar", "%");
  696. model.removenodeset(xStmtListPath);
  697. model.removenodeset(xStmtClsListPath);
  698. // fSearchStmtInfo();
  699. grd_lrggruplist.allowSelection = false; // 멀티 선택 여부.
  700. grd_detlgruplist.allowSelection = false;
  701. fSearchGrupInfo();
  702. var pCode = "'208'"; // 조회할 CdGrupID 코드정보
  703. var pDate = getCurrentDate(); //조회기준일자
  704. var pTime = getCurrentTime().substring(0,4); //조회기준시간
  705. //var mainPath = "/root/temp/shifttimeinfo/shifttimelist";
  706. var initPath = "/root/code/codeinfo/codelist";
  707. fGetNursHardCdInfo(pCode, pDate); // 간호공통관리 메뉴그룹코드 조회
  708. var str = getGlobalVariable("menugroupcd");
  709. var currentMG = "";
  710. // 현재의 메뉴그룹코드 추출
  711. for(i=0; i < str.length; i++){
  712. if(str.charAt(i) == "|") break;
  713. currentMG = currentMG + str.charAt(i);
  714. }
  715. // 중앙, 기관별 관리자 메뉴그룹 구분
  716. if(model.getValue(initPath+"[supcdid = '1' and cdid = '"+currentMG+"']/cdid")){
  717. MGFlag = "C"; // 중앙
  718. }
  719. else if(model.getValue(initPath+"[supcdid = '2' and cdid = '"+currentMG+"']/cdid")){
  720. MGFlag = "I"; // 기관별
  721. }else{ // 둘다 해당하지 않을시 default로 기관별 사용자 (2010-06-29 서울성모 김숙인샘 요청)
  722. MGFlag = "I";
  723. }
  724. if(MGFlag == "I"){ // default로 보일 탭 설정- 기관별사용자일 경우 버튼 disable
  725. btn_stndcareset.disabled = true;
  726. btn_grupstmtset.selected = true;
  727. model.toggle("GrupStmtSet");
  728. }
  729. setBtnAuth();
  730. }
  731. /**
  732. * @group :
  733. * @ver : 2010.06.25
  734. * @by : 안도영
  735. * @---------------------------------------------------
  736. * @type : function
  737. * @access : public
  738. * @desc : 중앙/기관별 관리 메뉴그룹에 따른 버튼 권한 부여
  739. * @param :
  740. * @return :
  741. * @---------------------------------------------------
  742. */
  743. function setBtnAuth(){
  744. if(MGFlag == "I"){
  745. var datapath = "/root/main/grupstmtsetinfo/lrggrupinfo/lrggruplist";
  746. var currentRow = model.getValue(datapath + "["+grd_lrggruplist.Row + "]/grupflag");
  747. if(currentRow == "1" || currentRow == "2"){ // 상황별, 질환별 대분류
  748. btn_delgrupstmtset.disabled = true;
  749. btn_savegrupstmtset.disabled = true;
  750. gAuthYN = "N";
  751. }else{
  752. btn_delgrupstmtset.disabled = false;
  753. btn_savegrupstmtset.disabled = false;
  754. gAuthYN = "Y";
  755. }
  756. }else{
  757. btn_delgrupstmtset.disabled = false;
  758. btn_savegrupstmtset.disabled = false;
  759. gAuthYN = "Y";
  760. }
  761. }