SPMMO03200.xjs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : KNUH2.0
  4. * Job Name : EMR
  5. * File Name : SPMMO03200.xjs
  6. * Creator :
  7. * Make Date : 2014-08-05
  8. *
  9. * Description :
  10. *---------------------------------------------------------------------------------------
  11. * Modify Date Modifier Modify Description
  12. *---------------------------------------------------------------------------------------
  13. * 2014-08-05 DBS Converting Program(TF->XP)
  14. *
  15. *---------------------------------------------------------------------------------------
  16. ****************************************************************************************/
  17. var gEXPANDFLAG = true; //진단내역 grid 확장유무
  18. /****************************************************************************************
  19. * Function : fInitialize_SPMMO03200
  20. * Description : 화면초기화.
  21. * Argument :
  22. * :
  23. * return type :
  24. * Creator :
  25. ****************************************************************************************/
  26. function fInitialize_SPMMO03200(){
  27. ds_diagcdlist.clearData();
  28. ds_indxcdlist.clearData();
  29. ds_selectdiaglist.clearData();
  30. if(opener.frmf_getParameter("SPMMO03200_diagParam") == "Y") {
  31. tab_indexlist.tabindex = 1;
  32. fReqGetDeptIndxList();
  33. } else {
  34. //화면 open시, ICD10색인탭이 기본
  35. tab_indexlist.tabindex = 0;
  36. fReqGetIndxList();
  37. }
  38. var srchdata = opener.frmf_getParameter("SPMMO03200_SEARCHDATA"); //main창에서 검색어로 띄운 경우
  39. if(!utlf_isNull(srchdata)){
  40. input1.value = srchdata;
  41. var ev = new ClickEventInfo;
  42. frmf_inputEnterKey("btn_req", "onclick", ev );
  43. }
  44. // var diagParam = "";
  45. // var srchdata = "";
  46. // //alert(opener.frmf_getParameter("SPMMO03200_diagParam"));
  47. // if(frmf_isPopup()) {
  48. // sysf_trace("팝업으로 열린화면!");
  49. // diagParam = SPMMO03200_diagParam;
  50. // srchdata = SPMMO03200_SEARCHDATA;
  51. // //input1.value = newDS.getColumn(0, "pid");
  52. // //alert(srchdata);
  53. // }
  54. // if(diagParam == "Y") { // 파라미터러 넘어온 SPMMO03200_diagParam 값이 Y 일때 과색인 검색 실행.
  55. // // 탭선택 이벤트 발생.
  56. // tab_indexlist.tabindex = 1;
  57. // var e = new TabIndexChangeEventInfo;
  58. // tab_indexlist.onchanged.fireEvent(tab_indexlist,e);
  59. // } else { // 그냥 열렸을 경우. 화면 open시, ICD10색인탭이 기본
  60. // tab_indexlist.tabindex = 0;
  61. // var e = new TabIndexChangeEventInfo;
  62. // tab_indexlist.onchanged.fireEvent(tab_indexlist,e);
  63. // }
  64. //
  65. // //var srchdata = SPMMO03200_SEARCHDATA; //main창에서 검색어로 띄운 경우
  66. // if(srchdata.length > 0){
  67. // input1.value = srchdata;
  68. // var e = new ClickEventInfo;
  69. // btn_req.onclick.fireEvent(btn_req,e);
  70. // }
  71. // 선택한 진단 삭제 팝업메뉴 생성
  72. frmf_createPopupMenu("pmn_selectdiaglist"
  73. ,"fDelDiagCDList"
  74. ,[{id: "1", level: "0", title: "삭제"}]
  75. );
  76. }
  77. /****************************************************************************************
  78. * Function : fReqGetIndxList
  79. * Description : ICD10 Index조회
  80. * Argument :
  81. * :
  82. * return type :
  83. * Creator :
  84. ****************************************************************************************/
  85. function fReqGetIndxList(){
  86. ds_req.clearData();
  87. var rowno = ds_req.addRow();
  88. ds_req.setColumn(rowno, "indxflag", "0");
  89. var oParam = {};
  90. oParam.id = "TRMMO03101";
  91. oParam.service = "prcpmngtapp.PatDiagMngt";
  92. oParam.method = "reqGetIndxList";
  93. oParam.inds = "req=" + "ds_req";
  94. oParam.outds = "ds_indxcdlist=indxcdlist";
  95. oParam.async = false;
  96. oParam.callback = "";
  97. tranf_submit(oParam);
  98. }
  99. /****************************************************************************************
  100. * Function : fReqGetDeptIndxList
  101. * Description : 과 Index조회
  102. * Argument :
  103. * :
  104. * return type :
  105. * Creator :
  106. ****************************************************************************************/
  107. function fReqGetDeptIndxList(){
  108. ds_req.clearData();
  109. var rowno = ds_req.addRow();
  110. ds_req.setColumn(rowno, "deptindxflag", "0");
  111. var oParam = {};
  112. oParam.id = "TRMMO03111";
  113. oParam.service = "prcpmngtapp.PatDiagMngt";
  114. oParam.method = "reqGetDeptIndxList";
  115. oParam.inds = "req=" + "ds_req";
  116. oParam.outds = "ds_deptindxcdlist=deptindxcdlist";
  117. oParam.async = false;
  118. oParam.callback = "";
  119. tranf_submit(oParam);
  120. }
  121. /****************************************************************************************
  122. * Function : fReqGetPrmsDiagSETList
  123. * Description : 개인 진단SET 조회
  124. * Argument :
  125. * :
  126. * return type :
  127. * Creator :
  128. ****************************************************************************************/
  129. function fReqGetPrmsDiagSETList(){
  130. ds_req.clearData();
  131. var rowno = ds_req.addRow();
  132. ds_req.setColumn(rowno, "setkindcd", "P");
  133. ds_req.setColumn(rowno, "setclscd" , "D");
  134. ds_req.setColumn(rowno, "settypecd", "D");
  135. ds_req.setColumn(rowno, "ioflag" , "N");
  136. var oParam = {};
  137. oParam.id = "TRMMB00601";
  138. oParam.service = "prcpbaseapp.PrmsPrcpMngt";
  139. oParam.method = "reqGetPrmsPrcpSetList";
  140. oParam.inds = "req=" + "ds_req";
  141. oParam.outds = "ds_prmsprcpsetlist=prmsprcpsetlist";
  142. oParam.async = false;
  143. oParam.callback = "";
  144. tranf_submit(oParam);
  145. }
  146. /****************************************************************************************
  147. * Function : fReqGetICD10CDList
  148. * Description : ICD10색인 선택시 진단 조회
  149. * Argument :
  150. * :
  151. * return type :
  152. * Creator :
  153. ****************************************************************************************/
  154. function fReqGetICD10CDList(){
  155. // ICD10 처방 검색
  156. ds_req.clearData();
  157. var rowno = ds_req.addRow();
  158. ds_req.setColumn(rowno, "icd10indxcd", ds_indxcdlist.getColumn(ds_indxcdlist.rowposition, "indxcd"));
  159. var oParam = {};
  160. oParam.id = "TRMMO03102";
  161. oParam.service = "prcpmngtapp.PatDiagMngt";
  162. oParam.method = "reqGetICD10CdList";
  163. oParam.inds = "req=" + "ds_req";
  164. oParam.outds = "ds_diagcdlist=diagcdlist";
  165. oParam.async = false;
  166. oParam.callback = "cf_diagcdlist";
  167. tranf_submit(oParam);
  168. //frmf_modal("SPMMO00100", "SPMMO00100", "", "", "", 100, 40, "", "", "", "", "", "M");
  169. }
  170. /****************************************************************************************
  171. * Function : fReqGetDeptIndxCDList
  172. * Description : 과색인 선택시 진단 조회
  173. * Argument :
  174. * :
  175. * return type :
  176. * Creator :
  177. ****************************************************************************************/
  178. function fReqGetDeptIndxCDList(){
  179. // 과색인 처방 검색
  180. ds_req.clearData();
  181. var rowno = ds_req.addRow();
  182. ds_req.setColumn(rowno, "deptindxflag" , "0");
  183. ds_req.setColumn(rowno, "deptindxcd" , ds_deptindxcdlist.getColumn(ds_deptindxcdlist.rowposition, "deptindxcd"));
  184. ds_req.setColumn(rowno, "deptcd" , ds_deptindxcdlist.getColumn(ds_deptindxcdlist.rowposition, "deptcd"));
  185. var oParam = {};
  186. oParam.id = "TRMMO03112";
  187. oParam.service = "prcpmngtapp.PatDiagMngt";
  188. oParam.method = "reqGetDeptIndxDiagTermList";
  189. oParam.inds = "req=" + "ds_req";
  190. oParam.outds = "ds_diagcdlist=diagcdlist";
  191. oParam.async = false;
  192. oParam.callback = "cf_diagcdlist";
  193. tranf_submit(oParam);
  194. }
  195. /****************************************************************************************
  196. * Function : fReqGetPrmsDiagList
  197. * Description : 약속SET 선택시 진단 조회
  198. * Argument :
  199. * :
  200. * return type :
  201. * Creator :
  202. ****************************************************************************************/
  203. function fReqGetPrmsDiagList(){
  204. // 개인SET 처방 검색
  205. ds_req.clearData();
  206. var rowno = ds_req.addRow();
  207. ds_req.setColumn(rowno, "setno" , ds_prmsprcpsetlist.getColumn(ds_prmsprcpsetlist.rowposition, "setno"));
  208. ds_req.setColumn(rowno, "settypecd" , ds_prmsprcpsetlist.getColumn(ds_prmsprcpsetlist.rowposition, "settypecd"));
  209. var oParam = {};
  210. oParam.id = "TRMMO03104";
  211. oParam.service = "prcpmngtapp.PatDiagMngt";
  212. oParam.method = "reqGetIndDiagSetList";
  213. oParam.inds = "req=" + "ds_req";
  214. oParam.outds = "ds_diagcdlist=diagcdlist";
  215. oParam.async = false;
  216. oParam.callback = "cf_diagcdlist";
  217. tranf_submit(oParam);
  218. }
  219. /****************************************************************************************
  220. * Function : fReqGetTermDiagSrch
  221. * Description : 진단용어 검색어로 조회
  222. * Argument :
  223. * :
  224. * return type :
  225. * Creator :
  226. ****************************************************************************************/
  227. function fReqGetTermDiagSrch(){
  228. var cond1 = "";
  229. var cond2 = "";
  230. var cond5 = input1.text;
  231. if(cond5.length < 1){ //검색어를 입력하지 않은 경우,
  232. sysf_messageBox("검색어를", "C002");
  233. return;
  234. }
  235. var cond3 = utlf_isHangul(cond5);
  236. var cond4 = utlf_getCurrentDate();
  237. if(cond3 == "H"){
  238. cond1 = 2;
  239. cond2 = 3;
  240. }else if(cond3 == "E"){
  241. if(utlf_isNum(cond5.charAt(1))== true){ //코드
  242. cond1 = 1;
  243. cond2 = 1;
  244. }else{ //문장
  245. cond1 = 2;
  246. cond2 = 3;
  247. }
  248. }
  249. ds_req.clearData();
  250. var rowno = ds_req.addRow();
  251. ds_req.setColumn(rowno, "cond1" , cond1); //검색구분 1:코드, 2:명
  252. ds_req.setColumn(rowno, "cond2" , cond2); //명칭검색구분, 1:코드, 2:단어, 3:문장, 4:첫단어
  253. ds_req.setColumn(rowno, "cond3" , cond3); //한영구분(H:한글, E:영문)
  254. ds_req.setColumn(rowno, "cond4" , cond4); //기준일자
  255. ds_req.setColumn(rowno, "cond5" , cond5.toUpperCase()); //검색내용
  256. //req.setColumn(rowno, "synmflag" , "Y"); //동의어구분
  257. var oParam = {};
  258. oParam.id = "TRMMO03103";
  259. oParam.service = "prcpmngtapp.PatDiagMngt";
  260. oParam.method = "reqGetDiagTermSrch";
  261. oParam.inds = "req=" + "ds_req";
  262. oParam.outds = "ds_diagcdlist=diagcdlist";
  263. oParam.async = false;
  264. oParam.callback = "cf_diagcdlist";
  265. tranf_submit(oParam);
  266. }
  267. /****************************************************************************************
  268. * Function : fReqGetDeptIndxSrch
  269. * Description : 과색인에서만 조회
  270. * Argument :
  271. * :
  272. * return type :
  273. * Creator :
  274. ****************************************************************************************/
  275. function fReqGetDeptIndxSrch(){
  276. var srchdata = input1.text;
  277. if(srchdata.length < 1){ //검색어를 입력하지 않은 경우,
  278. sysf_messageBox("검색어를", "C001");
  279. return;
  280. }
  281. var srchflag = utlf_isHangul(srchdata);
  282. if(srchflag == "E"){
  283. if(utlf_isNum(srchdata.charAt(1))==true){ //코드
  284. srchflag = "C";
  285. }else{ //코드가 아닌 경우
  286. srchflag = "E";
  287. }
  288. }
  289. ds_req.clearData();
  290. var rowno = ds_req.addRow();
  291. ds_req.setColumn(rowno, "deptindxflag" , "0");
  292. ds_req.setColumn(rowno, "deptcd" , sysf_getUserInfo("dutplcecd"));
  293. ds_req.setColumn(rowno, "srchflag" , srchflag);
  294. ds_req.setColumn(rowno, "srchdata" , srchdata.toUpperCase());
  295. var oParam = {};
  296. oParam.id = "TRMMO03112";
  297. oParam.service = "prcpmngtapp.PatDiagMngt";
  298. oParam.method = "reqGetDeptIndxDiagTermList";
  299. oParam.inds = "req=" + "ds_req";
  300. oParam.outds = "ds_diagcdlist=diagcdlist";
  301. oParam.async = false;
  302. oParam.callback = "cf_diagcdlist";
  303. tranf_submit(oParam);
  304. }
  305. /****************************************************************************************
  306. * Function : fReqGetPrmsDiagSETSrch
  307. * Description : 개인진단SET 검색어로 조회
  308. * Argument :
  309. * :
  310. * return type :
  311. * Creator :
  312. ****************************************************************************************/
  313. function fReqGetPrmsDiagSETSrch(){
  314. var srchdata = input1.text;
  315. if(srchdata.length < 1){ //검색어를 입력하지 않은 경우,
  316. sysf_messageBox("검색어를", "C001");
  317. return;
  318. }
  319. var srchflag = utlf_isHangul(srchdata);
  320. if(srchflag == "E"){
  321. if(utlf_isNum(srchdata.charAt(1))==true){
  322. srchflag = "C";
  323. }else{
  324. srchflag = "E";
  325. }
  326. }
  327. ds_req.clearData();
  328. var rowno = ds_req.addRow();
  329. ds_req.setColumn(rowno, "settypecd" , "D"); //진단
  330. ds_req.setColumn(rowno, "setkindcd" , "P"); //개인
  331. ds_req.setColumn(rowno, "setclscd" , "D"); //의사
  332. ds_req.setColumn(rowno, "settrgtcd" , sysf_getUserId()); //의사(사용자)ID
  333. ds_req.setColumn(rowno, "srchflag" , srchflag);
  334. ds_req.setColumn(rowno, "srchdata" , srchdata);
  335. var oParam = {};
  336. oParam.id = "TRMMO03115";
  337. oParam.service = "prcpmngtapp.PatDiagMngt";
  338. oParam.method = "reqGetPrmsSETSrch";
  339. oParam.inds = "req=" + "ds_req";
  340. oParam.outds = "ds_diagcdlist=diagcdlist";
  341. oParam.async = false;
  342. oParam.callback = "cf_diagcdlist";
  343. tranf_submit(oParam);
  344. }
  345. /****************************************************************************************
  346. * Function : fAppendDiagCD
  347. * Description : 다수의 진단코드 선택 후, 진단추가버튼 클릭
  348. * Argument :
  349. * :
  350. * return type :
  351. * Creator :
  352. ****************************************************************************************/
  353. function fAppendDiagCD(){
  354. if(ds_diagcdlist.rowcount > 1)
  355. {
  356. for(var i=0 ; i < ds_diagcdlist.rowcount ; i++)
  357. {
  358. if(ds_diagcdlist.getColumn(i, "chk")=="1")
  359. {
  360. if(ds_selectdiaglist.findRow("diagcd", ds_diagcdlist.getColumn(i,"diagcd"))>-1) {
  361. sysf_messageBox(ds_diagcdlist.getColumn(i,"diaghngnm"), "E006");
  362. } else {
  363. var rowno = ds_selectdiaglist.addRow();
  364. ds_selectdiaglist.copyRow(rowno, ds_diagcdlist, i);
  365. ds_diagcdlist.setColumn(i,"chk","");
  366. }
  367. }
  368. }
  369. }
  370. }
  371. /****************************************************************************************
  372. * Function : fAddDiag
  373. * Description : 단일 진단코드 선택, 그리드 더블클릭
  374. * Argument :
  375. * :
  376. * return type :
  377. * Creator :
  378. ****************************************************************************************/
  379. function fAddDiag(trgtrow){
  380. if(ds_selectdiaglist.findRow("diagcd", ds_diagcdlist.getColumn(ds_diagcdlist.rowposition,"diagcd"))>-1) {
  381. sysf_messageBox("선택한 진단이 ", "E006");
  382. return;
  383. }
  384. var rowno = ds_selectdiaglist.addRow();
  385. ds_selectdiaglist.copyRow(rowno, ds_diagcdlist, ds_diagcdlist.rowposition);
  386. }
  387. /****************************************************************************************
  388. * Function : fCtrlSizeDiagList
  389. * Description : 진단내역 그리드 크기 조절 및 버튼 위치 이동 애니메이션
  390. * Argument :
  391. * :
  392. * return type :
  393. * Creator :
  394. ****************************************************************************************/
  395. function fCtrlSizeDiagList(){
  396. lf_stopPrevAnim(cani);
  397. if(gEXPANDFLAG) {
  398. pani00.targetcomp = spt_div0
  399. pani00.targetprop = "position.left";
  400. pani00.fromvalue = 316;
  401. pani00.tovalue = 0;
  402. pani00.interpolation = "Interpolation.expoOut";
  403. pani01.targetcomp = spt_div0
  404. pani01.targetprop = "position.right";
  405. pani01.fromvalue = 318;
  406. pani01.tovalue = 2;
  407. pani01.interpolation = "Interpolation.expoOut";
  408. cani.addItem(pani00);
  409. cani.addItem(pani01);
  410. cani.duration = 1000;
  411. cani.run();
  412. btn_expand.class = "btn_MonthN";
  413. gEXPANDFLAG = false;
  414. } else {
  415. pani00.targetcomp = spt_div0
  416. pani00.targetprop = "position.left";
  417. pani00.fromvalue = 0;
  418. pani00.tovalue = 316;
  419. pani00.interpolation = "Interpolation.expoOut";
  420. pani01.targetcomp = spt_div0
  421. pani01.targetprop = "position.right";
  422. pani01.fromvalue = 2;
  423. pani01.tovalue = 318;
  424. pani01.interpolation = "Interpolation.expoOut";
  425. cani.addItem(pani00);
  426. cani.addItem(pani01);
  427. cani.duration = 1000;
  428. cani.run();
  429. btn_expand.class = "btn_MonthP";
  430. gEXPANDFLAG = true;
  431. }
  432. }
  433. /****************************************************************************************
  434. * Function : lf_stopPrevAnim
  435. * Description : 애니메이션 실행을 위해 각 개체별 애니메이션 복합 애니메이션에
  436. 추가
  437. * Argument :
  438. * :
  439. * return type :
  440. * Creator :
  441. ****************************************************************************************/
  442. function lf_stopPrevAnim(compAnim) {
  443. for(var i = 0; i < compAnim.getItemCount(); i++)
  444. compAnim.deleteItem(i);
  445. }
  446. /****************************************************************************************
  447. * Function : fSendDiagCDList
  448. * Description : 진단코드리스트 전달
  449. * Argument :
  450. * :
  451. * return type :
  452. * Creator :
  453. ****************************************************************************************/
  454. function fSendDiagCDList(){
  455. if(frmf_checkOpener()){
  456. var nodepath = opener.frmf_getParameter("SPMMO3200_param_nodepath");
  457. if(utlf_isNull(nodepath)){
  458. opener.dsf_createDs(nodepath);
  459. // opener.dsf_copyDs(opener.Object[nodepath],ds_selectdiaglist,"replace");
  460. opener.ds_tempdiag_selectdiaglist.copyData(ds_selectdiaglist);
  461. opener.frmf_setParameter("SPMMO03200_rtn_useyn", "Y");
  462. }else{
  463. opener.dsf_createDs(nodepath);
  464. // 생성한 Dataset의 객체를 가져온다.
  465. var oDataset = opener.objects[nodepath];
  466. // opener.dsf_copyDs(opener.Object[nodepath],ds_selectdiaglist,"replace");
  467. oDataset.copyData(ds_selectdiaglist);
  468. opener.frmf_setParameter("SPMMO03200_rtn_useyn", "Y");
  469. }
  470. }else{
  471. sysf_messageBox("상위화면이 변경되어 데이터를 전달","E001");
  472. return;
  473. }
  474. this.close();
  475. }
  476. // /****************************************************************************************
  477. // * Function : fDelDiagCDList
  478. // * Description : 진단코드리스트 삭제
  479. // * Argument :
  480. // * :
  481. // * return type :
  482. // * Creator :
  483. // ****************************************************************************************/
  484. // function fDelDiagCDList(){
  485. // deleteSelectedRows(grd_selectdiag, false);
  486. // }
  487. /****************************************************************************************
  488. * Function : cf_diagcdlist
  489. * Description : 진단코드 조회시 체크박스 에 데이터셋 연결을 위해 조회 데이터셋
  490. 에 chk 컬럼 추가
  491. * Argument :
  492. * :
  493. * return type :
  494. * Creator :
  495. ****************************************************************************************/
  496. function cf_diagcdlist() {
  497. ds_diagcdlist.addColumn("chk", "string");
  498. for(var i = 0 ; i < ds_diagcdlist.rowcount ; i++) {
  499. ds_diagcdlist.setColumn(i,"chk","0");
  500. }
  501. }
  502. /****************************************************************************************
  503. * Function : fDelDiagCDList
  504. * Description : 팝업메뉴 선택시 실행 함수. 선택진단 삭제 실행
  505. * Argument :
  506. * :
  507. * return type :
  508. * Creator :
  509. ****************************************************************************************/
  510. function fDelDiagCDList(){
  511. ds_selectdiaglist.deleteRow(ds_selectdiaglist.rowposition);
  512. }]]></Script>