MMR04800.xjs 32 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[///
  3. ////////////////////////////////////////////////////////////////////////////////////////
  4. ////////////////////////////////////////////////////////////////////////////////////////
  5. /*
  6. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  7. 환자요약 ( MMR04800_환자요약.xrw - JScript )
  8. - Version :
  9. 1) : Ver.1.00.01
  10. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  11. */
  12. var isUpdated = false;
  13. // var uInfo = sysf_getUserInfos();
  14. // uInfo = uInfo.split("|");
  15. var pid = "";
  16. var gAsync = false;
  17. /**
  18. * @desc : 화면 초기화
  19. * @
  20. * @param :
  21. * @return :
  22. * @authur : 박종훈
  23. * @---------------------------------------------------
  24. */
  25. function fInitalize()
  26. {
  27. fClose();
  28. ds_grd_attach.clearData();
  29. frmf_setFocus(true);
  30. dsf_makeValue(ds_init,"uid" ,"string", sysf_getUserInfo("userid"));
  31. dsf_makeValue(ds_init,"udeptcd" ,"string", sysf_getUserInfo("dutplcecd"));
  32. ds_init_reqmedireclist.setColumn(0, "diffdt", 12); //검색 디폴트 12개월
  33. fAddDateReq("today");
  34. ds_envinfo.copyData(emr_getOrderBaseInfo("envinfo"));
  35. var srchcond = ds_envinfo.lookup("qestcd", "011", "answcnt");//lf_mmbfGetUserEnvQuestValue("011");
  36. var srchday = ds_envinfo.lookup("qestcd", "012", "answcnt");//lf_mmbfGetUserEnvQuestValue("012");
  37. switch(srchcond)
  38. {
  39. case "001" :
  40. ds_init.setColumn(0, "schkind", "2");
  41. break;
  42. case "002" :
  43. ds_init.setColumn(0, "schkind", "3");
  44. break;
  45. case "003" :
  46. ds_init.setColumn(0, "schkind", "1");
  47. break;
  48. case "" :
  49. ds_init.setColumn(0, "schkind", "2");
  50. break;
  51. }
  52. switch(srchday)
  53. {
  54. case "001" :
  55. ds_init_reqmedireclist.setColumn(0, "diffdt", "1");
  56. break;
  57. case "002" :
  58. ds_init_reqmedireclist.setColumn(0, "diffdt", "3");
  59. break;
  60. case "003" :
  61. ds_init_reqmedireclist.setColumn(0, "diffdt", "6");
  62. break;
  63. case "004" :
  64. ds_init_reqmedireclist.setColumn(0, "diffdt", "12");
  65. break;
  66. case "005" :
  67. ds_init_reqmedireclist.setColumn(0, "diffdt", "-");
  68. break;
  69. }
  70. frmf_inputEnterKey("grup_top.combo4", "onitemchanged", new ItemChangeEventInfo);
  71. if (ds_send.getColumn(0, "pid") != opener.ds_main_paminfo.getColumn(0, "pid"))
  72. {
  73. pid = opener.frmf_getParameter("SSMMP04800_pid"); //부모창으로부터 환자등록번호를 파라미터로 받는다.
  74. if (utlf_isNull(pid))
  75. {
  76. pid = opener.ds_main_paminfo.getColumn(0, "pid");
  77. }
  78. if (!utlf_isNull(pid))
  79. {
  80. grup_top.ipt_pid.value = pid;
  81. fPidKeyPress("async"); //등록번호로 환자 정보조회
  82. // ds_main_patinfo_patinfolist.setColumn(0, "pid", pid);
  83. // fSelect_sub();
  84. }
  85. if (frmf_isPopup())
  86. {
  87. grup_title.btn_detl.visible = false;
  88. grup_bottom.btn_close.visible = true;
  89. var list = sysf_getGlobalVariable("emr_gsv_cmmsrckcond");
  90. if(!utlf_isNull(list)){
  91. ds_send.clear();
  92. dsf_setCSVToDs("ds_send", list);
  93. }
  94. }
  95. }
  96. }
  97. /**
  98. * @desc : 조회버튼 클릭
  99. * @
  100. * @param :
  101. * @return :
  102. * @authur : 박종훈
  103. * @---------------------------------------------------
  104. */
  105. function fSrchClick()
  106. {
  107. if (frmf_isPopup()) {
  108. fSelect_Pop();
  109. } else {
  110. fSelect_sub();
  111. }
  112. }
  113. /*
  114. function fAddrow_old(val, val2)
  115. {
  116. var nodelistSmm = instance.selectNodes("/root/main/smmlist");
  117. var nodelength = nodelistSmm.length;
  118. var smmcnts = model.getValue("/root/main/smmlist[1]/smmcnts");
  119. if (val == "true"){ //첨부파일인 경우
  120. if( val2 != "" ){//수정
  121. var fileupdata = messageBox(name + " 파일 수정을" , "S001");
  122. if(fileupdata == '6'){
  123. var maxsize = upload1.attribute("filesize");
  124. var files = window.fileDialog("open","|","false");
  125. var filelist = files.split("|");
  126. var filename = files.lastIndexOf("\\");
  127. for(var i = 0 ; i < filelist.length ; i++ ) {
  128. grd_smmlist.addRow();
  129. grd_smmlist.valueMatrix(grd_smmlist.rows - 1, grd_smmlist.colRef("attfilepath")) = filelist[i];
  130. grd_smmlist.valueMatrix(grd_smmlist.rows - 1, grd_smmlist.colRef("attfilenm")) = files.substring(filename + 1);
  131. grd_smmlist.valueMatrix(grd_smmlist.rows - 1, grd_smmlist.colRef("smmdd")) = getCurrentDate();
  132. grd_smmlist.valueMatrix(grd_smmlist.rows - 1, grd_smmlist.colRef("delyn")) = 'N';
  133. grd_attach.valueMatrix(grd_attach.rows - 1, 0) = filelist[i];
  134. if (!checkFileSize(upload1)){
  135. grd_attach.removeItem();
  136. messageBox("파일 크기가 최대치("+maxsize+"Byte)를", "E003");
  137. }else{
  138. isUpdated = true;
  139. }
  140. }
  141. }
  142. }else{//신규
  143. var maxsize = upload1.attribute("filesize");
  144. var files = window.fileDialog("open","|","false");
  145. var filelist = files.split("|");
  146. var filename = files.lastIndexOf("\\");
  147. for(var i = 0 ; i < filelist.length ; i++ ) {
  148. grd_smmlist.addRow();
  149. grd_smmlist.valueMatrix(grd_smmlist.rows - 1, grd_smmlist.colRef("attfilepath")) = filelist[i];
  150. grd_smmlist.valueMatrix(grd_smmlist.rows - 1, grd_smmlist.colRef("attfilenm")) = files.substring(filename + 1);
  151. grd_smmlist.valueMatrix(grd_smmlist.rows - 1, grd_smmlist.colRef("smmcnts")) = files.substring(filename + 1);
  152. grd_smmlist.valueMatrix(grd_smmlist.rows - 1, grd_smmlist.colRef("smmdd")) = getCurrentDate();
  153. grd_smmlist.valueMatrix(grd_smmlist.rows - 1, grd_smmlist.colRef("delyn")) = 'N';
  154. grd_attach.valueMatrix(grd_attach.rows - 1, 0) = filelist[i];
  155. if (!checkFileSize(upload1)){
  156. grd_attach.removeItem();
  157. messageBox("파일 크기가 최대치("+maxsize+"Byte)를", "E003");
  158. }else{
  159. isUpdated = true;
  160. }
  161. }
  162. }
  163. }else { //첨부파일이 아닌경우
  164. if(smmcnts != "" || nodelength == 0) { //첫줄에 추가셀 생성
  165. if (nodelength == 0) {
  166. grd_smmlist.addrow();
  167. } else {
  168. grd_smmlist.insertRow(1);
  169. }
  170. model.setValue("/root/main/smmlist[1]/smmdd", getCurrentDate());
  171. model.setValue("/root/main/smmlist[1]/delyn", 'N');
  172. }
  173. }
  174. grd_smmlist.row = 1;
  175. grd_smmlist.col = 4;
  176. }
  177. */
  178. /**
  179. * @desc : 줄추가
  180. * @
  181. * @param :
  182. * @return :
  183. * @authur : 박종훈
  184. * @---------------------------------------------------
  185. */
  186. function fAddrow(val)
  187. {
  188. var nodelength = ds_main_smmlist.rowcount;
  189. var smmcnts = ds_main_smmlist.getColumn(0, "smmcnts");
  190. if (val == "true"){ //첨부파일인 경우
  191. var maxsize = 1048576;
  192. var fd = new FileDialog;
  193. var filename = "";
  194. var filesize = "";
  195. var filetype = "";
  196. // 파일다이얼로그를 띄워 사용자에게 파일경로를 입력받는다.
  197. var objVFileList = fd.open("FileOpen", FileDialog.SINGLELOAD); // 여러파일 선택 MULTILOAD
  198. if( !utlf_isNull(objVFileList) ){
  199. //Dataset 행추가
  200. var nRowNum = ds_grd_attach.insertRow(0);
  201. var nGrdRow = ds_main_smmlist.addRow();
  202. // 그 파일의 데이터를 데이터셋의 특정 컬럼에 BLOB 형식으로 write 한다.
  203. var file = dsf_writeFileToDs(objVFileList, ds_grd_attach, nRowNum, "filedata");
  204. //dsf_writeFileToDs(objVFileList, ds_main_smmlist, nGrdRow, "attfilepath");
  205. filename = file.filename;
  206. filesize = file.filesize;
  207. filetype = file.filetype;
  208. ds_main_smmlist.setColumn(nGrdRow, "attfilepath", "");
  209. ds_main_smmlist.setColumn(nGrdRow, "attfilenm", filename);
  210. ds_main_smmlist.setColumn(nGrdRow, "smmcnts", filename);
  211. ds_main_smmlist.setColumn(nGrdRow, "smmdd", utlf_getCurrentDate());
  212. ds_main_smmlist.setColumn(nGrdRow, "delyn", "N");
  213. ds_grd_attach.setColumn(nRowNum, "filenm", file.filename);
  214. ds_grd_attach.setColumn(nRowNum, "filesize", file.filesize);
  215. ds_grd_attach.setColumn(nRowNum, "filetype", file.filetype);
  216. if (filesize > maxsize){
  217. ds_grd_attach.setColumn(nRowNum, "filedata", "");
  218. ds_grd_attach.deleteRow(nRowNum);
  219. ds_main_smmlist.deleteRow(nGrdRow);
  220. sysf_messageBox("파일 크기가 최대치("+maxsize+"Byte)를", "E003");
  221. }else{
  222. isUpdated = true;
  223. }
  224. }
  225. }else { //첨부파일이 아닌경우
  226. if(!utlf_isNull(smmcnts)|| nodelength == 0){ //첫줄에 추가셀 생성
  227. if (nodelength == 0) {
  228. ds_main_smmlist.addRow();
  229. } else {
  230. ds_main_smmlist.insertRow(0);
  231. }
  232. ds_main_smmlist.setColumn(0, "smmdd", utlf_getCurrentDate());
  233. ds_main_smmlist.setColumn(0, "delyn", 'N');
  234. }
  235. }
  236. ds_main_smmlist.rowposition = 0;
  237. grup_body.grd_smmlist.setCellPos(4);
  238. }
  239. /**
  240. * @desc : 조회
  241. * @
  242. * @param :
  243. * @return :
  244. * @authur : 박종훈
  245. * @---------------------------------------------------
  246. */
  247. function fSelect_sub()
  248. {
  249. var updateData = grdf_getGridUpdateData(grup_body.grd_smmlist);
  250. grdf_setStatusColumn(updateData, "status");
  251. dsf_createDs("ds_reqsmm" ,[{col:"status" , type:"string", size:256}
  252. , {col:"sortno" , type:"string", size:256}
  253. , {col:"smmdd" , type:"string", size:256}
  254. , {col:"smmcnts" , type:"string", size:256}
  255. , {col:"lastupdtrid" , type:"string", size:256}
  256. , {col:"recdeptcd" , type:"string", size:256}
  257. , {col:"patsmmseq" , type:"string", size:256}
  258. , {col:"smmtodd" , type:"string", size:256}
  259. , {col:"attfilenm" , type:"string", size:256}
  260. , {col:"attfilepath" , type:"string", size:256}], "true");
  261. ds_reqsmm.copyData(updateData, true);
  262. var srchpid = ds_main_patinfo_patinfolist.getColumn(0, "pid");
  263. if (!utlf_isNull(srchpid))
  264. {
  265. ds_main_smmlist.clear();
  266. dsf_createDsRow("ds_send",[{col:"pid" , type:"string", size:256, val:srchpid}
  267. , {col:"validyn" , type:"string", size:256, val:"Y"}
  268. , {col:"schkind" , type:"string", size:256, val:ds_init.getColumn(0, "schkind")}
  269. , {col:"getyn" , type:"string", size:256, val:"Y"}
  270. , {col:"fromdd" , type:"string", size:256, val:ds_init_reqmedireclist.getColumn(0, "recfromdt")}
  271. , {col:"todd" , type:"string", size:256, val:ds_init_reqmedireclist.getColumn(0, "rectodt")}
  272. , {col:"allyn" , type:"string", size:256, val:ds_init.getColumn(0, "allyn")}]);
  273. dsf_createDs("ds_main_smmlist",[{col:"smmdd" , type:"string", size:256}
  274. , {col:"smmcnts" , type:"string", size:256}
  275. , {col:"recuinfo" , type:"string", size:256}
  276. , {col:"filexistyn" , type:"string", size:256}
  277. , {col:"patsmmseq" , type:"string", size:256}
  278. , {col:"lastupdtrid" , type:"string", size:256}
  279. , {col:"recdeptcd" , type:"string", size:256}
  280. , {col:"smmtodd" , type:"string", size:256}
  281. , {col:"sortno" , type:"string", size:256}
  282. , {col:"delyn" , type:"string", size:256}
  283. , {col:"ipaddr" , type:"string", size:256}
  284. , {col:"attfilenm" , type:"string", size:256}
  285. , {col:"attfilepath" , type:"string", size:256}], "true");
  286. //dsf_setTypeFormat(ds_reqsmm, "patsmmseq:INT");
  287. var oParam = {};
  288. oParam.id = "TRMMR04800";
  289. oParam.service = "medirecapp.ComnMediRec";
  290. oParam.method = "reqGetSmmList";
  291. oParam.inds = "req=ds_send reqsmm=ds_reqsmm";
  292. oParam.outds = "ds_main_smmlist=smmlist";
  293. oParam.async = true;
  294. oParam.callback = "cf_TRMMR04800";
  295. tranf_submit(oParam);
  296. }
  297. else
  298. {
  299. sysf_messageBox("환자번호가 ", "I004");
  300. return;
  301. }
  302. }
  303. function cf_TRMMR04800(sSvcId, nErrorCode, sErrorMsg) {
  304. arErrorCode.push(sSvcId, nErrorCode);
  305. //if(nErrorCode < 0) return;
  306. dsf_setTypeFormat(ds_main_smmlist, "patsmmseq:INT");
  307. fAddrow();
  308. }
  309. /**
  310. * @desc : 팝업시 조회
  311. * @
  312. * @param :
  313. * @return :
  314. * @authur : 박종훈
  315. * @---------------------------------------------------
  316. */
  317. function fSelect_Pop()
  318. {
  319. var updateData = grdf_getGridUpdateData(grup_body.grd_smmlist);
  320. grdf_setStatusColumn(updateData, "status");
  321. dsf_createDs("ds_reqsmm" ,[{col:"status" , type:"string", size:256}
  322. , {col:"sortno" , type:"string", size:256}
  323. , {col:"smmdd" , type:"string", size:256}
  324. , {col:"smmcnts" , type:"string", size:256}
  325. , {col:"lastupdtrid" , type:"string", size:256}
  326. , {col:"recdeptcd" , type:"string", size:256}
  327. , {col:"patsmmseq" , type:"string", size:256}
  328. , {col:"smmtodd" , type:"string", size:256}
  329. , {col:"attfilenm" , type:"string", size:256}
  330. , {col:"attfilepath" , type:"string", size:256}], "true");
  331. ds_reqsmm.copyData(updateData, true);
  332. var srchpid = ds_main_patinfo_patinfolist.getColumn(0,"pid");
  333. if (!utlf_isNull(srchpid))
  334. {
  335. ds_main_smmlist.clear();
  336. dsf_createDsRow("ds_send",[{col:"pid" , type:"string", size:256, val:srchpid}
  337. , {col:"validyn" , type:"string", size:256, val:ds_init.getColumn(0, "validyn")}
  338. , {col:"schkind" , type:"string", size:256, val:ds_init.getColumn(0, "schkind")}
  339. , {col:"getyn" , type:"string", size:256, val:"Y"}
  340. , {col:"fromdd" , type:"string", size:256, val:ds_init_reqmedireclist.getColumn(0, "recfromdt")}
  341. , {col:"todd" , type:"string", size:256, val:ds_init_reqmedireclist.getColumn(0, "rectodt")}
  342. , {col:"allyn" , type:"string", size:256, val:ds_init.getColumn(0, "allyn")}]);
  343. dsf_createDs("ds_main_smmlist",[{col:"smmdd" , type:"string", size:256}
  344. , {col:"smmcnts" , type:"string", size:256}
  345. , {col:"recuinfo" , type:"string", size:256}
  346. , {col:"filexistyn" , type:"string", size:256}
  347. , {col:"patsmmseq" , type:"string", size:256}
  348. , {col:"lastupdtrid" , type:"string", size:256}
  349. , {col:"recdeptcd" , type:"string", size:256}
  350. , {col:"smmtodd" , type:"string", size:256}
  351. , {col:"sortno" , type:"string", size:256}
  352. , {col:"delyn" , type:"string", size:256}
  353. , {col:"ipaddr" , type:"string", size:256}
  354. , {col:"attfilenm" , type:"string", size:256}
  355. , {col:"attfilepath" , type:"string", size:256}], "true");
  356. var grid = eval("grup_body.grd_smmlist");
  357. grdf_initGridStyle(grid);
  358. //dsf_setTypeFormat(ds_reqsmm, "patsmmseq:INT");
  359. var oParam = {};
  360. oParam.id = "TRMMR04800";
  361. oParam.service = "medirecapp.ComnMediRec";
  362. oParam.method = "reqGetSmmList";
  363. oParam.inds = "req=ds_send reqsmm=ds_reqsmm";
  364. oParam.outds = "ds_main_smmlist=smmlist";
  365. oParam.async = false;
  366. tranf_submit(oParam);
  367. //dsf_setTypeFormat(ds_main_smmlist, "patsmmseq:INT");
  368. if (ds_send.rowcount > 0)
  369. {
  370. var csv = dsf_getDsCSV(ds_send);
  371. sysf_setGlobalVariable("emr_gsv_cmmsrckcond",csv);
  372. }
  373. if (ds_init.getColumn(0, "validyn") != 'D') { //삭제상태가 아닌 경우만
  374. fAddrow();
  375. }
  376. }
  377. else
  378. {
  379. sysf_messageBox("환자번호가 ", "I004");
  380. return;
  381. }
  382. }
  383. /**
  384. * @desc : 화면 컨트롤 설정
  385. * @
  386. * @param :
  387. * @return :
  388. * @authur : 박종훈
  389. * @---------------------------------------------------
  390. */
  391. function fResizeGrup(flag, heig, wid)
  392. {
  393. if( utlf_isNull(heig) ) heig = this.position.height;
  394. if( utlf_isNull(wid) ) wid = this.position.width;
  395. this.position.height = heig;
  396. this.position.width = wid;
  397. var titHeight = parseInt(grup_title.position.height);
  398. var tTop = parseInt(grup_top.position.y);
  399. var tHeight = parseInt(grup_top.position.height);
  400. var bTop = parseInt(grup_body.position.y);
  401. var bHeight = parseInt(grup_body.position.height);
  402. var mTop = parseInt(grup_bottom.position.y);
  403. var mHeight = parseInt(grup_bottom.position.height);
  404. if(flag == "1")
  405. {
  406. grup_title.btn_excel.position.x = grup_title.button4.position.x;
  407. // grup_title.position.width = wid - 2;
  408. grup_top.position.y = 0;
  409. // grup_top.position.height = 0;
  410. // grup_top.position.width = 0;
  411. grup_top.visible = false;
  412. grup_body.position.x = 0;
  413. grup_body.position.y = tTop;
  414. grup_body.position.height = (heig - (tHeight + mHeight) + 1);
  415. // grup_body.position.width = wid - 2;
  416. grup_body.grd_smmlist.position.x = 0;
  417. // grup_body.grd_smmlist.style.borderStyle = "none";
  418. // grup_body.grd_smmlist.position.height = (heig - (tHeight + mHeight) + 1);
  419. // grup_body.grd_smmlist.position.width = wid - 2;
  420. grup_bottom.position.x = 0;
  421. grup_bottom.position.y = (heig - tHeight - 2);//tHeight
  422. grup_bottom.position.width = wid - 2;
  423. grup_bottom.line1.position.width = wid - 2;
  424. grup_bottom.btn_save.position.x = wid - 4 - 56;
  425. grup_bottom.btn_del.position.x = wid - 6 - 112;
  426. grup_bottom.btn_end.position.x = wid - 8 - 168;
  427. grup_bottom.btn_close.position.x = wid - 10 - 224;
  428. }
  429. }
  430. /**
  431. * @desc : 저장
  432. * @
  433. * @param :
  434. * @return :
  435. * @authur : 박종훈
  436. * @---------------------------------------------------
  437. */
  438. var g_changeYn = "N";
  439. function fSave()
  440. {
  441. var updateData = grdf_getGridUpdateData(grup_body.grd_smmlist);
  442. grdf_setStatusColumn(updateData, "status");
  443. // dsf_createDs("ds_reqsmm" ,[{col:"status" , type:"string", size:256}
  444. // , {col:"sortno" , type:"string", size:256}
  445. // , {col:"smmdd" , type:"string", size:256}
  446. // , {col:"smmcnts" , type:"string", size:256}
  447. // , {col:"lastupdtrid" , type:"string", size:256}
  448. // , {col:"recdeptcd" , type:"string", size:256}
  449. // , {col:"patsmmseq" , type:"string", size:256}
  450. // , {col:"smmtodd" , type:"string", size:256}
  451. // , {col:"attfilenm" , type:"string", size:256}
  452. // , {col:"attfilepath" , type:"string", size:256}], "true");
  453. dsf_createDs("ds_reqsmm");
  454. ds_reqsmm.copyData(updateData, true);
  455. var Ulength = dsf_getDsCSV(updateData);
  456. Ulength = Ulength.split("▩");
  457. var srchpid = ds_main_patinfo_patinfolist.getColumn(0,"pid"); //grup_top.ipt_pid.value;
  458. if (!utlf_isNull(srchpid))
  459. {
  460. if (Ulength.length <= 3)
  461. {
  462. sysf_messageBox("저장할 내용이", "I004");
  463. return;
  464. }
  465. dsf_makeValue(ds_temp,"pid" ,"string", srchpid);
  466. //dsf_makeValue(ds_temp,"reqsmm" ,"string", dsf_getDsCSV(ds_reqsmm));
  467. dsf_makeValue(ds_temp,"schkind" ,"string", ds_init.getColumn(0, "schkind"));
  468. dsf_makeValue(ds_temp,"getyn" ,"string", "N");
  469. dsf_makeValue(ds_temp,"validyn" ,"string", ds_init.getColumn(0, "validyn"));
  470. dsf_makeValue(ds_temp,"fromdd" ,"string", ds_init_reqmedireclist.getColumn(0, "recfromdt"));
  471. dsf_makeValue(ds_temp,"todd" ,"string", ds_init_reqmedireclist.getColumn(0, "rectodt"));
  472. dsf_setTypeFormat(ds_reqsmm, "patsmmseq:string");
  473. dsf_createDs("ds_main_smmlist",[{col:"smmdd" , type:"string", size:256}
  474. , {col:"smmcnts" , type:"string", size:256}
  475. , {col:"recuinfo" , type:"string", size:256}
  476. , {col:"filexistyn" , type:"string", size:256}
  477. , {col:"patsmmseq" , type:"string", size:256}
  478. , {col:"lastupdtrid" , type:"string", size:256}
  479. , {col:"recdeptcd" , type:"string", size:256}
  480. , {col:"smmtodd" , type:"string", size:256}
  481. , {col:"sortno" , type:"string", size:256}
  482. , {col:"delyn" , type:"string", size:256}
  483. , {col:"ipaddr" , type:"string", size:256}
  484. , {col:"attfilenm" , type:"string", size:256}
  485. , {col:"attfilepath" , type:"string", size:256}], "true");
  486. var oParam = {};
  487. oParam.id = "TXMMR04801";
  488. oParam.service = "medirecapp.ComnMediRec";
  489. oParam.method = "reqExeSmmList";
  490. oParam.inds = "req=ds_temp reqsmm=ds_reqsmm attach=ds_grd_attach";
  491. oParam.outds = "ds_main_smmlist=smmlist";
  492. oParam.async = false;
  493. oParam.callback = "cf_TXMMR04801";
  494. tranf_submit(oParam);
  495. //dsf_setTypeFormat(ds_main_smmlist, "patsmmseq:INT");
  496. if(arErrorCode.pop("TXMMR04801") > -1){
  497. grdf_setStatus(grup_body.grd_smmlist, "");
  498. ds_grd_attach.clearData();
  499. ds_temp.clearData();
  500. if (frmf_isPopup()) {
  501. if (ds_main_patinfo_patinfolist.getColumn(0, "pid") == opener.ds_main_paminfo.getColumn(0, "pid"))
  502. {
  503. opener.frmf_setParameter("SSMMP04800_rtn", "Y");
  504. }
  505. }
  506. }
  507. }
  508. else
  509. {
  510. sysf_messageBox("환자번호가 ", "I004");
  511. return;
  512. }
  513. fAddrow();
  514. }
  515. function cf_TXMMR04801(sSvcId, nErrorCode, sErrorMsg) {
  516. arErrorCode.push(sSvcId, nErrorCode);
  517. if(nErrorCode < 0) return;
  518. }
  519. /**
  520. * @desc : 삭제
  521. * @
  522. * @param :
  523. * @return :
  524. * @authur : 박종훈
  525. * @---------------------------------------------------
  526. */
  527. function fDelRow()
  528. {
  529. var oDs = this.objects[grup_body.grd_smmlist.binddataset];
  530. var arrRows = grdf_getSelectedRows(grup_body.grd_smmlist);
  531. for(var i=arrRows.length-1; i>=0; i--){
  532. if((utlf_isNull(oDs.getColumn(arrRows[i], "patsmmseq"))) && (arrRows[i] != (oDs.rowcount-1)))
  533. {
  534. oDs.deleteRow(arrRows[i]);
  535. }else if(fChkAuth(arrRows[i]))
  536. {
  537. grdf_setStatus(grup_body.grd_smmlist, "D", arrRows);
  538. }
  539. }
  540. var rtn = sysf_messageBox("삭제", "S001");
  541. if (rtn == 6)
  542. {
  543. fSave();
  544. }
  545. else
  546. {
  547. grdf_setStatus(grup_body.grd_smmlist, "", arrRows);
  548. }
  549. }
  550. /**
  551. * @desc : 기록종료
  552. * @
  553. * @param :
  554. * @return :
  555. * @authur : 박종훈
  556. * @---------------------------------------------------
  557. */
  558. function fEndRec()
  559. {
  560. var arrRows = grdf_getSelectedRows(grup_body.grd_smmlist);
  561. for(var i = 0; i < arrRows.length; i++)
  562. {
  563. if( fChkAuth(arrRows[i]) && utlf_isNull(ds_main_smmlist.getColumn(arrRows[i], "smmtodd")))
  564. {
  565. ds_main_smmlist.setColumn(arrRows[i], "smmtodd", utlf_getCurrentDate());
  566. grdf_setStatus(grup_body.grd_smmlist, "U", arrRows);
  567. }
  568. }
  569. var rtn = sysf_messageBox("종료", "S001");//하시려면 예(Yes) 아니면 아니오(No)
  570. if (rtn == 6)
  571. {
  572. fSave();
  573. }
  574. else
  575. {
  576. for(var k = 0; k < arrRows.length; k++)
  577. {
  578. ds_main_smmlist.setColumn(arrRows[k], "smmtodd", "");
  579. }
  580. grdf_setStatus(grup_body.grd_smmlist, "", arrRows);
  581. }
  582. }
  583. /**
  584. * @desc : 상세조회 클릭
  585. * @
  586. * @param :
  587. * @return :
  588. * @authur : 박종훈
  589. * @---------------------------------------------------
  590. */
  591. function fClickPop()
  592. {
  593. frmf_modal("SSMMR04800", "SSMMR04800", null, null, 1, 0, 0, null, null, null, null, null, "M");
  594. if(opener.frmf_getParameter("SSMMP04800_rtn") == "Y")
  595. fSelect_sub();
  596. g_changeYn = "N";
  597. }
  598. /**
  599. * @desc : 작성자와 사용자의 일치여부
  600. * @
  601. * @param :
  602. * @return :
  603. * @authur : 박종훈
  604. * @---------------------------------------------------
  605. */
  606. function fChkAuth(selrow)
  607. {
  608. var recudpcd = ds_main_smmlist.getColumn(selrow,"recdeptcd");
  609. var rtn = true;
  610. if(recudpcd != sysf_getUserInfo("dutplcecd"))
  611. {
  612. rtn = false;
  613. }
  614. return rtn;
  615. }
  616. /**
  617. * @desc : 창닫기전 변경된 내용 저장여부 확인
  618. * @
  619. * @param :
  620. * @return :
  621. * @authur : 박종훈
  622. * @---------------------------------------------------
  623. */
  624. function fClose()
  625. {
  626. ds_main_smmlist.oncolumnchanged.fireEvent(ds_main_smmlist, new DSColChangeEventInfo());
  627. var updateData = grdf_getGridUpdateData(grup_body.grd_smmlist);
  628. grdf_setStatusColumn(updateData, "status");
  629. var Ulength = dsf_getDsCSV(updateData);
  630. Ulength = Ulength.split("▩");
  631. if (Ulength.length > 3 && (frmf_isPopup()))
  632. {
  633. var rtn = sysf_messageBox("환자요약에 변경된 정보가 있습니다 ", "Q002");
  634. if (rtn == 6)
  635. fSave();
  636. }
  637. }
  638. /**
  639. * @desc : 환자번호 정보조회
  640. * @id :
  641. * @event : onkeypress
  642. * @return : void
  643. * @authur : 박종훈
  644. */
  645. function fPidKeyPress(async)
  646. {
  647. if( !utlf_isNull(async) ){
  648. gAsync = true;
  649. }else{
  650. gAsync = false;
  651. }
  652. dsf_createDsRow("ds_send" ,[{col:"srchcond" , type:"string", size:256, val:"1"}
  653. , {col:"checkfnexam" , type:"string", size:256, val:""}
  654. , {col:"pid" , type:"string", size:256, val:grup_top.ipt_pid.value}
  655. , {col:"hngnm" , type:"string", size:256, val:""}
  656. , {col:"rrgstno1" , type:"string", size:256, val:""}
  657. , {col:"rrgstno2" , type:"string", size:256, val:""}
  658. , {col:"acptdd" , type:"string", size:256, val:""}
  659. , {col:"instcd" , type:"string", size:256, val:""}
  660. , {col:"insukind" , type:"string", size:256, val:""}
  661. , {col:"inhospyn" , type:"string", size:256, val:""}]);
  662. //환자등록번호 체크
  663. if(!utlf_isNull(grup_top.ipt_pid.value))
  664. {
  665. dsf_setTypeFormat(ds_send, "srchcond:INT^checkfnexam:INT");
  666. var oParam = {};
  667. oParam.id = "TRPMC02500";
  668. oParam.service = "patinfomngtapp.PatBaseInfo";
  669. oParam.method = "reqGetPatInfo";
  670. oParam.inds = "req=ds_send";
  671. oParam.outds = "ds_main_patinfo_patinfolist=patinfolist";
  672. oParam.async = true;
  673. oParam.callback = "cf_TRPMC02500";
  674. tranf_submit(oParam);
  675. }
  676. else
  677. {
  678. sysf_messageBox("환자등록번호를 정확히", "C001");
  679. }
  680. }
  681. function cf_TRPMC02500(sSvcId, nErrorCode, sErrorMsg) {
  682. // arErrorCode.push(sSvcId, nErrorCode);
  683. // if(nErrorCode < 0) return;
  684. if(nErrorCode > -1){
  685. //fSearch는 인적사항 화면을 임포트 해간 화면에서 구현해 주어야 하는 함수이다.
  686. if( ds_main_patinfo_patinfolist.rowcount < 0 ){
  687. ds_main_patinfo_patinfolist.clearData();
  688. sysf_messageBox("없는 환자 번호 입니다.", "E999", "");
  689. }
  690. if( ds_main_patinfo_patinfolist.rowcount == 0 ){
  691. ds_main_patinfo_patinfolist.addRow();
  692. }
  693. }
  694. if( gAsync == true ){
  695. ds_main_patinfo_patinfolist.setColumn(0, "pid", pid);
  696. fSelect_sub();
  697. }
  698. }
  699. /**
  700. * @desc : 환자이름 정보조회
  701. * @id :
  702. * @event : onkeypress
  703. * @return : void
  704. * @authur : 박종훈
  705. */
  706. function fPnmKeyPress()
  707. {
  708. dsf_makeValue(ds_send,"srchcond" ,"string", "2");
  709. dsf_makeValue(ds_send,"hngnm" ,"string", grup_top.ipt_hngnm.text);
  710. frmf_inputEnterKey("grup_top.btn_pinfosearch", "onclick", new ClickEventInfo);
  711. }
  712. /**
  713. * @desc : 환자정보조회 팝업
  714. * @id :
  715. * @event : DOMActivate
  716. * @return : void
  717. * @authur : 박종훈
  718. */
  719. function fPopPtinfo()
  720. {
  721. var objArg = new Object();
  722. //objArg.ds_SPPMC02500 = ds_send; // 2015.02.06 dbsnc 팝업전달 ds명 일괄변경
  723. objArg.arg_ds_send = ds_send;
  724. frmf_modal("SPPMC02500", "SPPMC02500", objArg, null, 1, 150, 150, null, null, null, null, null, "M");
  725. ds_send.clearData();
  726. fSelect_Pop();
  727. }
  728. /**
  729. * @desc : 상용구 팝업
  730. * @id :
  731. * @event : DOMActivate
  732. * @return : void
  733. * @authur : 박종훈
  734. */
  735. function fPopCommUse()
  736. {
  737. frmf_setParameter("comn_chosflag", "C") // C : 상용구
  738. frmf_setParameter("comn_formprogflag", "A") // A: Summary, B : 주호소
  739. frmf_setParameter("openmode", "select");
  740. frmf_modal("SPMRF04900", "SPMRF04900", null, null, 1, 150, 150, null, null, null, null, null, "M");
  741. var rtn = frmf_getParameter("comncnts"); //내용
  742. frmf_setParameter("comncnts", "");
  743. var re = /▦/i;
  744. var re1 = /▩/i;
  745. if(!utlf_isNull(rtn)){
  746. rtn = rtn.replace(re, "");
  747. rtn = rtn.replace(re1, "");
  748. }
  749. var nRow = ds_main_smmlist.rowposition;
  750. var reccnts = ds_main_smmlist.getColumn(nRow, "smmcnts");
  751. if (utlf_isNull(rtn)){
  752. return;
  753. }
  754. if (utlf_isNull(reccnts)){ // 요약내용이 없을경우
  755. ds_main_smmlist.setColumn(nRow, "smmcnts", rtn);
  756. fAddrow();
  757. }else{
  758. ds_main_smmlist.setColumn(nRow, "smmcnts", reccnts + " " + rtn);
  759. grdf_setStatus(grup_body.grd_smmlist, "U", nRow);
  760. }
  761. }
  762. /**
  763. * @desc : 진료기록 리스트 조회조건 시작일, 종료일 셋팅
  764. * @id :
  765. * @event :
  766. * @return : void
  767. * @authur : 박종훈
  768. */
  769. function fAddDateReq(diffFlag)
  770. {
  771. var frdd = ds_init_reqmedireclist.getColumn(0, "recfromdt");
  772. var todd = ds_init_reqmedireclist.getColumn(0, "rectodt");
  773. var srcdd = new Date();
  774. var destdd = new Date();
  775. var diffdt;
  776. if (diffFlag == "next")
  777. {
  778. srcdd = todd.toDate();
  779. srcdd = srcdd.getAddDate(1, "D");
  780. frdd = srcdd.getDateFormat();
  781. diffdt = parseInt(ds_init_reqmedireclist.getColumn(0, "diffdt")) * 1;
  782. destdd = srcdd.getAddDate(diffdt, "M");
  783. todd = destdd.getDateFormat();
  784. dsf_makeValue(ds_init,"allyn" ,"string", "N");
  785. }
  786. else if (diffFlag == "back")
  787. {
  788. srcdd = frdd.toDate();
  789. srcdd = srcdd.getAddDate(-1, "D");
  790. todd = srcdd.getDateFormat();
  791. diffdt = parseInt(ds_init_reqmedireclist.getColumn(0, "diffdt")) * -1;
  792. destdd = srcdd.getAddDate(diffdt, "M");
  793. frdd = destdd.getDateFormat();
  794. dsf_makeValue(ds_init,"allyn" ,"string", "N");
  795. }
  796. else if (diffFlag == "today")
  797. {
  798. todd = utlf_getCurrentDate();
  799. var today = new Date();
  800. var frday = new Date();
  801. var diffdt = parseInt(ds_init_reqmedireclist.getColumn(0, "diffdt")) * -1;
  802. frday = today.getAddDate(diffdt , "M");
  803. frdd = frday.getDateFormat();
  804. dsf_makeValue(ds_init,"allyn" ,"string", "N");
  805. }
  806. else
  807. {
  808. if (ds_init_reqmedireclist.getColumn(0, "diffdt") != "-")
  809. {
  810. var today = todd.toDate();
  811. var frday = new Date();
  812. var diffdt = parseInt(ds_init_reqmedireclist.getColumn(0, "diffdt")) * -1;
  813. frday = today.getAddDate(diffdt , "M");
  814. frdd = frday.getDateFormat();
  815. grup_top.button2.enable = true;
  816. grup_top.ipt_formrecdtfr.enable = true;
  817. grup_top.ipt_formrecdtto.enable = true;
  818. grup_top.button6.enable = true;
  819. grup_top.button3.enable = true;
  820. dsf_makeValue(ds_init,"allyn" ,"string", "N");
  821. }
  822. else
  823. {
  824. grup_top.button2.enable = false;
  825. grup_top.ipt_formrecdtfr.enable = false;
  826. grup_top.ipt_formrecdtto.enable = false;
  827. grup_top.button6.enable = false;
  828. grup_top.button3.enable = false;
  829. dsf_makeValue(ds_init,"allyn" ,"string", "Y");
  830. }
  831. }
  832. ds_init_reqmedireclist.setColumn(0, "recfromdt", frdd);
  833. ds_init_reqmedireclist.setColumn(0, "rectodt", todd);
  834. }
  835. function fBind(currow){//recdeptcd == ds_init.getColumn(0, "udeptcd") ? "date" : !utlf_isNull(recdeptcd) ? "none" : "date"
  836. var recdeptcd = ds_main_smmlist.getColumn(currow, "recdeptcd");
  837. var udeptcd = ds_init.getColumn(0, "udeptcd");
  838. var validyn = ds_init.getColumn(0, "validyn");
  839. var rtn = "textarea";
  840. if( (recdeptcd != udeptcd && !utlf_isNull(recdeptcd))|| validyn == "D" )
  841. rtn = "none";
  842. return rtn;
  843. }
  844. function fBindDate(currow){
  845. var recdeptcd = ds_main_smmlist.getColumn(currow, "recdeptcd");
  846. var udeptcd = ds_init.getColumn(0, "udeptcd");
  847. var rtn = "date";
  848. if( (recdeptcd != udeptcd && !utlf_isNull(recdeptcd)))
  849. rtn = "none";
  850. return rtn;
  851. }
  852. function fDownLoad(){
  853. var i = ds_main_smmlist.rowposition;
  854. if(ds_main_smmlist.getColumn(i, "filexistyn") == "Y" ){
  855. var attfilepath = ds_main_smmlist.getColumn(i, "attfilepath");
  856. var filenm = ds_main_smmlist.getColumn(i, "attfilenm");
  857. if(!utlf_isNull(filenm)){
  858. //키값을 가지고 DB에 저장된 데이타를 조회하러 간다
  859. var ds_temppath = dsf_createDsRow("ds_temppath", [{col: "attfilepath", val:attfilepath }]);
  860. var oParam = {};
  861. oParam.id = "TRMMR04801";
  862. oParam.service = "medirecapp.ComnMediRec";
  863. oParam.method = "reqDownSmmList";
  864. oParam.inds = "req="+ds_temppath;
  865. oParam.outds = "ds_data_filedown=attachfile";
  866. oParam.async = false;
  867. //oParam.callback = "cf_TRMMR04801";
  868. tranf_submit(oParam);
  869. var fd = new FileDialog;
  870. var sFileName = ds_main_smmlist.getColumn(0,"attfilenm");
  871. var objVFile = fd.open("FileSave", FileDialog.SAVE, "%MYDOCUMENT%", filenm); // 단일 파일 선택
  872. if (objVFile != null) {
  873. dsf_readFileFromDs(objVFile.fullpath, ds_data_filedown, 0, "filedata"); // 파일저장
  874. var objExtCommon = new ExtCommon();
  875. var rtn = objExtCommon.executeProcess(objVFile.fullpath,"","");
  876. }
  877. }
  878. }else{
  879. sysf_messageBox("선택한 기록에 첨부파일이 존재하지 않습니다.","E");
  880. }
  881. }
  882. ]]></Script>