SPMMO03200.js 14 KB

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