SMADC01600.xjs 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : KNUH2.0
  4. * Job Name : EMR
  5. * Creator :
  6. * Make Date : 2015-08-31
  7. * Description :
  8. *---------------------------------------------------------------------------------------
  9. * Modify Date Modifier Modify Description
  10. *---------------------------------------------------------------------------------------
  11. * 2015-08-31 TF->XP
  12. *
  13. *---------------------------------------------------------------------------------------
  14. ****************************************************************************************/
  15. ////////////////////////////////SMADC01600.xjs//////////////////////////////////
  16. var gTimer = 0;
  17. //=======================================================================================================
  18. // 이미지 설정
  19. //=======================================================================================================
  20. function fImgSetting(orgimg){
  21. for( var i = 0 ; i < ds_main_cnst_drugidlist.rowcount ; i++ ) {
  22. //setImageRefInstance("/root/main/cnst/drugidlist["+i+"]/phot"); // 그리드 표현시 image로만 변경. blob 형태로 받아야 한다.
  23. // var photyn = ds_main_cnst_drugidlist.getColumn(i,"phot");
  24. //
  25. // if(!utlf_isNull(photyn)) {
  26. // ds_main_cnst_drugidlist.setColumn(i,"photyn","Y");
  27. // }
  28. // if(group3.grd_drugid.getFormatColSize(3) < 220) group3.grd_drugid.setFormatColProperty(3,"size",220);
  29. // if(group3.grd_drugid.getFormatRowSize(i) < 82) group3.grd_drugid.setFormatRowProperty(i,"size",82);
  30. if(orgimg == true){
  31. // orgimg == Y : 기존 이미지 정보
  32. // orgimg == N : 사용자 임의 이미지 임의 등록
  33. ds_main_cnst_drugidlist.setColumn(i,"orgimg","Y");
  34. }
  35. }
  36. }
  37. //=======================================================================================================
  38. // 회신상태에 따라 버튼 활성화 처리
  39. //=======================================================================================================
  40. function fBtnDisabled() {
  41. if ( ds_main_cnst_cnstinfo.getColumn(0,"statflag") == "Z" ) {
  42. group2.btn_save.enable = false;
  43. group2.btn_del.enable = false;
  44. } else {
  45. group2.btn_save.enable = true;
  46. group2.btn_repl.enable = true;
  47. group2.btn_del.enable = true;
  48. }
  49. if(ds_temp_cnstinfo.getColumn(0,"btnreplflag") == "Y") {
  50. // 20100118_laboru_회신완료 상태일때 회신버튼 비활성화 위해서
  51. group2.btn_repl.enable = false;
  52. }
  53. }
  54. //=======================================================================================================
  55. // 약품식별회신등록 정보 조회
  56. //=======================================================================================================
  57. function fRefDrugidCnst(){
  58. var rowcnt = 0;
  59. if(!utlf_isNull(ds_main_cnst_patinfolist.getColumn(0,"pid"))) {
  60. // 소요시간을 체크(ON/OFF) flag를 초기화
  61. // tmflag == 1 : ON. 타이머 중지
  62. // tmflag == 0 : OFF. 타이머시작
  63. ds_hidden.setColumn(0,"tmflag","1");
  64. // var controlObj = this.group3.components["btn_tm"];
  65. // controlObj.onclick();
  66. group3_btn_tm_onclick();
  67. ds_main_cnst_drugidlist.clearData();
  68. // 입력된 등록번호로 조회
  69. ds_send_srchinfo.setColumn(0,"pid", ds_main_cnst_patinfolist.getColumn(0,"pid"));
  70. var oParam = {};
  71. oParam.id = "TRADC01601";
  72. oParam.service = "pharmacyconsultapp.DrugId";
  73. oParam.method = "reqGetDrugIdCnst";
  74. oParam.inds = "req=ds_send_srchinfo";
  75. oParam.outds = "ds_main_cnst_patinfolist=patinfolist ds_main_cnst_diaglist=diaglist ds_main_cnst_cnstinfo=cnstinfo ds_main_cnst_cnstinfo2=cnstinfo2 ds_main_cnst_drugidlist=drugidlist";
  76. oParam.async = false;
  77. oParam.callback = "cf_TRADC01601";
  78. tranf_submit(oParam);
  79. if (arErrorCode.pop("TRADC01601") > -1) {
  80. group3.radio2.value = ds_main_cnst_cnstinfo.getColumn(0,"drugrtn");
  81. }
  82. var cnt = 0;
  83. var kimsyn ="N";
  84. for(var i = 0; i < ds_main_cnst_drugidlist.rowcount; i++) {
  85. kimsyn = ds_main_cnst_drugidlist.getColumn(i, "kimsyn");
  86. if(kimsyn=="N") {
  87. cnt++;
  88. }
  89. }
  90. if(cnt == 0) {
  91. group3.grd_drugid.setFormatColProperty(3, "size", 0);
  92. }
  93. //회신일시 설정 (회신일자 + 회신시간)
  94. ds_main_cnst_cnstinfo.setColumn(0,"pid", ds_main_cnst_patinfolist.getColumn(0,"pid"));
  95. var repldd = ds_main_cnst_cnstinfo.getColumn(0,"repldd");
  96. var repltm = ds_main_cnst_cnstinfo.getColumn(0,"repltm");
  97. ds_hidden.setColumn(0,"repldt",repldd+repltm);
  98. // 조회된 식별상세정보가 없으면 그리드 초기화
  99. if(utlf_isNull(ds_main_cnst_drugidlist.getColumn(0,"idseqno"))) { // 1
  100. ds_main_cnst_drugidlist.clearData();
  101. }else{
  102. ds_main_cnst_drugidlist.updatecontrol = false;
  103. fImgSetting(true);
  104. ds_main_cnst_drugidlist.updatecontrol = true;
  105. }
  106. // 저장된 약반송 여부가 없으면 의뢰시 지정한 약반송 여부 표시
  107. if(utlf_isNull(ds_main_cnst_cnstinfo.getColumn(0,"drugrtn"))) {
  108. ds_main_cnst_cnstinfo.setColumn(0,"drugrtn",ds_main_cnst_cnstinfo2.getColumn(0,"drugrtn"));
  109. }
  110. // 기존 작성자가 존재하지 않으면 현재 사용자의 아이디값으로 설정
  111. if(utlf_isNull(ds_main_cnst_cnstinfo.getColumn(0,"writnm"))) {
  112. ds_main_cnst_cnstinfo.setColumn(0,"writid", sysf_getUserId());
  113. ds_main_cnst_cnstinfo.setColumn(0,"writnm", sysf_getUserName());
  114. }
  115. fBtnDisabled();
  116. }else{
  117. sysf_messageBox("등록번호를 ","C001");
  118. }
  119. rowcnt = rowcnt + 1 ;
  120. ds_main_cnst_drugidlist.setColumn(0,"rowcnt", rowcnt);
  121. sysf_trace("opener : "+opener.name);
  122. // opener.btn_sea.dispatch("DOMActivate");
  123. }
  124. //=======================================================================================================
  125. // 약품식별 회신 저장
  126. //=======================================================================================================
  127. function fSaveReqDrugId() {
  128. if(!utlf_isNull(ds_main_cnst_patinfolist.getColumn(0,"pid"))) {
  129. ds_hidden.setColumn(0,"tmflag","1");
  130. // var controlObj = this.group3.components["btn_tm"];
  131. // controlObj.onclick();
  132. group3_btn_tm_onclick();
  133. //---------- 의뢰내역을 회신내역에 저장------------------------------------------------------------------
  134. ds_main_cnst_cnstinfo.setColumn(0,ds_main_cnst_cnstinfo.addColumn("cnstseqno" ,"string"),ds_main_cnst_cnstinfo2.getColumn(0,"cnstseqno"));
  135. ds_main_cnst_cnstinfo.setColumn(0,ds_main_cnst_cnstinfo.addColumn("formrecseq" ,"string"),ds_main_cnst_cnstinfo2.getColumn(0,"formrecseq"));
  136. ds_main_cnst_cnstinfo.setColumn(0,ds_main_cnst_cnstinfo.addColumn("prcphosp" ,"string"),ds_main_cnst_cnstinfo2.getColumn(0,"prcphosp"));
  137. ds_main_cnst_cnstinfo.setColumn(0,ds_main_cnst_cnstinfo.addColumn("prcphosptel" ,"string"),ds_main_cnst_cnstinfo2.getColumn(0,"prcphosptel"));
  138. ds_main_cnst_cnstinfo.setColumn(0,ds_main_cnst_cnstinfo.addColumn("prcppharm" ,"string"),ds_main_cnst_cnstinfo2.getColumn(0,"prcppharm"));
  139. ds_main_cnst_cnstinfo.setColumn(0,ds_main_cnst_cnstinfo.addColumn("prcppharmtel","string"),ds_main_cnst_cnstinfo2.getColumn(0,"prcppharmtel"));
  140. ds_main_cnst_cnstinfo.setColumn(0,ds_main_cnst_cnstinfo.addColumn("cnstdd" ,"string"),ds_main_cnst_cnstinfo2.getColumn(0,"cnstdd"));
  141. ds_main_cnst_cnstinfo.setColumn(0,ds_main_cnst_cnstinfo.addColumn("cnstdeptcd" ,"string"),ds_main_cnst_cnstinfo2.getColumn(0,"cnstdeptcd"));
  142. ds_main_cnst_cnstinfo.setColumn(0,ds_main_cnst_cnstinfo.addColumn("cnstdrid" ,"string"),ds_main_cnst_cnstinfo2.getColumn(0,"cnstdrid"));
  143. ds_main_cnst_cnstinfo.setColumn(0,ds_main_cnst_cnstinfo.addColumn("drugresn" ,"string"),ds_main_cnst_cnstinfo2.getColumn(0,"drugresn"));
  144. ds_main_cnst_cnstinfo.setColumn(0,"writid", sysf_getUserId());
  145. ds_send_req.copyData(ds_main_cnst_cnstinfo);
  146. if(utlf_isNull(ds_send_req.getColumn(0,"pid"))) {
  147. ds_send_req.setColumn(0,"pid", ds_main_cnst_patinfolist.getColumn(0,"pid"));
  148. }
  149. // model.makeNode("/root/send/req/drugidlist");
  150. if(fUseYn()) return;
  151. // var update = grd_drugid.Getupdatedata();
  152. // model.setValue("/root/send/req/drugidlist",update);
  153. dsf_createDs("ds_send_req_drugidlist");
  154. var dsUpdate = grdf_getGridUpdateData(group3.grd_drugid, "all");
  155. grdf_setStatusColumn(dsUpdate, "m");
  156. ds_send_req_drugidlist.copyData(dsUpdate,true);
  157. // dsf_setCSVToDs("ds_send_req_drugidlist", grdf_getGridUpdateData(group3.grd_drugid, "all"));
  158. ds_send_req.addColumn("delyn","string");
  159. dsf_setDefaultVal(ds_send_req, "all");
  160. ds_send_req_drugidlist.updateColID("homodrugflag","homodrugcd");
  161. ds_send_req_drugidlist.updateColID("photoid","photid");
  162. dsf_setDefaultVal(ds_send_req_drugidlist, "photyn:N,useyn:N,estmyn:N,idcd:0,kimsyn:N,comcls:-");
  163. var oParam = {};
  164. oParam.id = "TXADC01601";
  165. oParam.service = "pharmacyconsultapp.DrugId";
  166. oParam.method = "reqExeDrugIdCnst";
  167. oParam.inds = "cnstinfo=ds_send_req drugidlist=ds_send_req_drugidlist";
  168. oParam.outds = "ds_hidden_item=item ds_hidden_selfdrug=selfdrug";
  169. oParam.async = false;
  170. oParam.callback = "cf_TXADC01601";
  171. tranf_submit(oParam);
  172. if (arErrorCode.pop("TXADC01601") > -1) {
  173. if(utlf_isNull(ds_send_srchinfo.getColumn(0,"rgstseqno"))) {
  174. if(!utlf_isNull(ds_main_cnst_cnstinfo.getColumn(0,"rgstseqno"))) {
  175. ds_send_srchinfo.setColumn(0,"rgstseqno", ds_main_cnst_cnstinfo.getColumn(0,"rgstseqno"));
  176. } else {
  177. ds_send_srchinfo.setColumn(0,"rgstseqno", ds_hidden_item.getColumn(0,"rgstseqno"));
  178. }
  179. }
  180. dsf_makeValue(ds_hidden_item,"saverslt","string", 'Y');
  181. fRefDrugidCnst();
  182. ds_send_req.clear();
  183. } else {
  184. dsf_makeValue(ds_hidden_item,"saverslt","string", 'N');
  185. }
  186. }else{
  187. sysf_messageBox("등록번호를 ","C001");
  188. }
  189. }
  190. function cf_TXADC01601(sSvcId, nErrorCode, sErrorMsg) {
  191. arErrorCode.push(sSvcId, nErrorCode);
  192. dsf_setDefaultVal(ds_hidden_selfdrug, "hosinprcpresncd:00,prcpdelivefact:-,druglnkno:0,ermediscmngtresncd:-,dnorreqlnkno:0,subcretno:0");
  193. }
  194. //=======================================================================================================
  195. // 본원 사용여부 판별
  196. // 본원 사용여부 판별은 서버단에서 실행
  197. //=======================================================================================================
  198. function fUseYn(){
  199. for(var i = 0 ; i < ds_main_cnst_drugidlist.rowcount ; i++) {
  200. var tmp_var1 = ""; // 본원사용여부
  201. var tmp_var2 = ""; // 본원사용여부 comment
  202. var pos = 0; //
  203. var org_useyn = dsf_getColumnNullToEmpty(ds_main_cnst_drugidlist,i,"useyn").getTrim();
  204. var tmp_useyn = dsf_getColumnNullToEmpty(ds_main_cnst_drugidlist,i,"useyn").setReplaceWord("\n","").getTrim();
  205. // 처음 구분값에 O or X가 없으면 입력양식에 일치하지 않는 것으로 판단
  206. if(!utlf_isNull(org_useyn)) {
  207. tmp_var1 = tmp_useyn.substr(0, 1).getTrim();
  208. if(utlf_isSearchString(tmp_var1.toUpperCase(),"O")){
  209. tmp_var1 = "O";
  210. pos = org_useyn.toUpperCase().indexOf("O");
  211. }else if(utlf_isSearchString(tmp_var1.toUpperCase(),"X")){
  212. tmp_var1 = "X";
  213. pos = org_useyn.toUpperCase().indexOf("X");
  214. }else{
  215. sysf_messageBox("[본원사용 여부 : O 혹은 X] 입력방식이","E004");
  216. return true;
  217. }
  218. tmp_var2 = org_useyn.substr(pos+1);
  219. // model.setValue("/root/main/cnst/drugidlist["+i+"]/useyncmt",tmp_var2, true);
  220. ds_main_cnst_drugidlist.setColumn(i,"useyncmt",tmp_var2);
  221. }
  222. }
  223. return false;
  224. }
  225. //=======================================================================================================
  226. // 공통코드의 getCurrentTime() 일부수정
  227. //
  228. // 현재시간얻기
  229. // return : 년/월/일 시간/분
  230. //=======================================================================================================
  231. function astgetCurrentTime() {
  232. var sDate = utlf_getNewDate();
  233. rtnTime = (( sDate.getHours() > 9 ) ? sDate.getHours() : "0" + sDate.getHours());
  234. rtnTime = rtnTime.toString() + (( sDate.getMinutes() > 9 ) ? sDate.getMinutes() : "0" + sDate.getMinutes());
  235. return rtnTime;
  236. }
  237. //=======================================================================================================
  238. // 식별정보 행삭제
  239. //
  240. // 선택한 행의 상태에 따라 '행삭제'의 동작 구분
  241. // 행상태 : Insert(상태값 : 1) => 해당행을 지움
  242. // 새로 추가되지 않는 행 => 해당행의 상태값을 delete로 전환
  243. //=======================================================================================================
  244. function fDataGridRowDelete(){
  245. if(ds_main_cnst_drugidlist.rowposition < 0){
  246. sysf_messageBox("삭제할 행을","C002");
  247. } else {
  248. var rowIdx;
  249. var selectedRows = grdf_getSelectedRows(group3.grd_drugid);
  250. for(var i = selectedRows.length-1 ; i >= 0 ; i--) {
  251. rowIdx = selectedRows[i];
  252. //if(grd.rowstatus(rowIdx) == 1 || grd.rowstatus(rowIdx) == 3) { // just inserted row
  253. if(ds_main_cnst_drugidlist.getRowType(rowIdx) == 2) { // just inserted row
  254. //grd.deleterow(rowIdx,false);
  255. ds_main_cnst_drugidlist.deleteRow(rowIdx);
  256. } else {
  257. //grd.addStatus(rowIdx,"delete");
  258. //grd.rowHidden(rowIdx) = true;
  259. grdf_setStatus(group3.grd_drugid, "D", [rowIdx]);
  260. group3.grd_drugid.setRealRowSize(rowIdx,0);
  261. }
  262. }
  263. }
  264. }
  265. //=======================================================================================================
  266. // 소요시간체크
  267. //=======================================================================================================
  268. function fStartTimer(){
  269. // var cnt = ds_main_cnst_cnstinfo.getColumn(0,"cnsttm");
  270. // cnt ++;
  271. gTimer++;
  272. ds_main_cnst_cnstinfo.setColumn(0,"cnsttm", gTimer);
  273. //opt_cnsttm.refresh();
  274. }
  275. //=======================================================================================================
  276. // 소요시간체크 중지
  277. //=======================================================================================================
  278. function fStopTimer() {
  279. // if(!utlf_isNull(gTimer)){
  280. this.killTimer(0);
  281. //gTimer = 0;
  282. // }
  283. }
  284. //=======================================================================================================
  285. // 약품식별 검색 팝업 열기
  286. //=======================================================================================================
  287. function fPopupDrugIDSrch() {
  288. //open("SPADC60300",0,50,50,"SPADC60300");
  289. frmf_open("SPADC60300", "SPADC60300", null, null, 0, 50, 50, null, null, null, null, null, "M");
  290. }
  291. //=======================================================================================================
  292. // 복사하기
  293. //=======================================================================================================
  294. function astgrid_oncopy() {
  295. // dsf_createDs("ds_temp_copy");
  296. // dsf_copyColInfo(ds_temp_copy,ds_main_cnst_drugidlist);
  297. //
  298. // var rowIdx;
  299. // var selectedRows = grdf_getSelectedRows(group3.grd_drugid);
  300. //
  301. // for(var i = 0 ; i < selectedRows.length ; i++) {
  302. // rowIdx = selectedRows[i];
  303. // ds_temp_copy.copyRow(ds_temp_copy.addRow(),ds_main_cnst_drugidlist,rowIdx);
  304. // }
  305. grdf_clipboardCopy(group3.grd_drugid);
  306. }
  307. //=======================================================================================================
  308. // 붙여넣기
  309. //=======================================================================================================
  310. function astgrid_onpaste() {
  311. // var rowIdx = group3.grd_drugid.selectstartrow;
  312. // var rowSrc = 0;
  313. // for(var i = rowIdx ; i < rowIdx + ds_temp_copy.rowcount-1 ; i++) {
  314. //
  315. // ds_main_cnst_drugidlist.copyRow(i,ds_temp_copy,rowSrc++);
  316. // }
  317. // dsf_deleteDs("ds_temp_copy");
  318. grdf_clipboardPaste(group3.grd_drugid);
  319. }
  320. //=======================================================================================================
  321. // 마우스 우클릭 팝업메뉴 : 지우기
  322. //
  323. // ** 팝업메뉴 클릭시 모든 기능 동작
  324. // ** 단일행, 셀에 대해서만 단축키 동작 가능
  325. // ** 멀티행, 셀에 대해서는 단축키 동작 불능
  326. //=======================================================================================================
  327. function fgrid_clear(){
  328. var rowIdx;
  329. var selectedRows = grdf_getSelectedRows(group3.grd_drugid);
  330. ds_main_cnst_drugidlist.updatecontrol = false;
  331. for(var i = 0 ; i < selectedRows.length ; i++) {
  332. rowIdx = selectedRows[i];
  333. for(var j = 0 ; j < ds_main_cnst_drugidlist.colcount ; j++) {
  334. ds_main_cnst_drugidlist.setColumn(rowIdx,j,"");
  335. }
  336. ds_main_cnst_drugidlist.setRowType(rowIdx,"N");
  337. }
  338. ds_main_cnst_drugidlist.updatecontrol = true;
  339. }
  340. //=======================================================================================================
  341. // 마우스 우클릭 팝업메뉴
  342. // 사진불러오기 // 그리드상의 이미지 변경
  343. //=======================================================================================================
  344. function floadimg(){
  345. var arrFileList = frmf_openImageFileDialog(512000);
  346. if(!utlf_isNull(arrFileList))
  347. {
  348. for(var i=0; i < arrFileList.length;i++)
  349. {
  350. trace("파일명 : "+arrFileList[i].filename+" , 파일경로 ="+arrFileList[i].fullpath);
  351. var photoid = arrFileList[i].filename;
  352. var row = ds_main_cnst_drugidlist.rowposition;
  353. ds_main_cnst_drugidlist.setColumn(row,"photoid",photoid);
  354. //group3.img_hidden.image = arrFileList[i].fullpath;
  355. //var data = group3.img_hidden.getbase64data();
  356. //ds_main_cnst_drugidlist.setColumn(row,"phot", group3.img_hidden.image);
  357. dsf_writeFileToDs(arrFileList[i], ds_main_cnst_drugidlist, row, "phot");
  358. ds_main_cnst_drugidlist.setColumn(row,"orgimg", "N");
  359. ds_main_cnst_drugidlist.setColumn(row,"photyn", "Y");
  360. if(ds_main_cnst_drugidlist.getRowType(row) == 0){
  361. ds_main_cnst_drugidlist.updatecontrol = false;
  362. ds_main_cnst_drugidlist.setRowType(row,"U");
  363. ds_main_cnst_drugidlist.updatecontrol = true;
  364. }
  365. }
  366. }
  367. else
  368. {
  369. trace("선택된 데이터 없음.");
  370. return;
  371. }
  372. }
  373. ////////////////////////////////SMADC01600.xjs//////////////////////////////////]]></Script>