SMMNR04500.xjs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. 투약기록(SMMNR04500_투약기록 조회.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. */
  7. var xCondPath = "ds_main_cond";
  8. var xDrugListPath = "ds_grd_druglist";
  9. var xWardPatListPath = "ds_grd_wardpatlist";
  10. var xPatInfoPath = "ds_main_paminfo";
  11. var xDschPatInfoPath = "ds_patinfolist";
  12. var arErrorCode = new HashArray();
  13. /**
  14. * @group :
  15. * @ver : 2007.06.23
  16. * @by : 최경용
  17. * @---------------------------------------------------
  18. * @type : function
  19. * @access : public
  20. * @desc : 투약기록 조회 초기값 셋팅 및 초기조회
  21. * @param :
  22. * @param :
  23. * @return :
  24. * @---------------------------------------------------
  25. */
  26. function fInitialize(){
  27. // 일자 초기화
  28. fnDateInit();
  29. // 환자정보 조회
  30. var sPamInfo = sysf_getGlobalVariable("paminfo");
  31. ds_main_paminfo.clearData();
  32. dsf_setCSVToDs("ds_main_paminfo", sPamInfo);
  33. var sPID = ds_main_paminfo.getColumn(0, "pid");
  34. var sIndd = ds_main_paminfo.getColumn(0, "indd");
  35. var sCretno = ds_main_paminfo.getColumn(0, "cretno");
  36. var sWardCd = ds_main_paminfo.getColumn(0, "wardcd");
  37. var sRoomCd = ds_main_paminfo.getColumn(0, "roomcd");
  38. var oParam = {};
  39. oParam.id = "TRMNR00601";
  40. oParam.service = "caremedirecapp.CareMediRec";
  41. oParam.method = "reqGetWMInitData";
  42. oParam.inds = "reqcond=ds_send_reqdata";
  43. oParam.outds = "ds_init_ward=ward ds_init_settingrn=settingrn ds_init_orddd=orddd";
  44. oParam.async = false;
  45. //oParam.callback = "cf_TRMNR00601";
  46. tranf_submit(oParam);
  47. // grd_druglist.removeRow(true);
  48. // grd_patlist.removeRow(true);
  49. // if( utlf_isNull(sPID) ){
  50. // ds_main_cond.setColumn(0, "wardcd", sysf_getUserInfo("dutplcecd"));
  51. //
  52. // fGetPatList();
  53. // //this.setTimer(0, 1);
  54. // //-----------------------------(20080906)
  55. // fSetsettingrnid();
  56. // //-----------------------------(20080906)
  57. // fGetRoomList();
  58. //
  59. // } else if( !utlf_isNull(ds_hidden_cond.getColumn(0, "pid")) ){//보험
  60. // ds_main_cond.setColumn(0, "pid", ds_hidden_cond.getColumn(0, "pid"));
  61. // ds_main_cond.setColumn(0, "pid_search", ds_hidden_cond.getColumn(0, "pid"));
  62. // ds_main_cond.setColumn(0, "indd", ds_hidden_cond.getColumn(0, "indd"));
  63. // ds_main_cond.setColumn(0, "cretno", ds_hidden_cond.getColumn(0, "cretno"));
  64. // //----------------(20080715)
  65. // ds_main_cond.setColumn(0, "medfromdd", ds_hidden_cond.getColumn(0, "medrfromdd"));
  66. // ds_main_cond.setColumn(0, "medtodd", ds_hidden_cond.getColumn(0, "medrtodd"));
  67. // //------------------
  68. // fGetPatList();
  69. // //this.setTimer(1, 1);
  70. // //-----------------------------(20080906)
  71. // fSetsettingrnid();
  72. // //-----------------------------(20080906)
  73. //
  74. // fGetRoomList();
  75. // ds_grd_wardpatlist.rowposition = 0;
  76. // //grd_patlist.dispatch("onentercell");
  77. // fGetDrugList();
  78. // } else {//상단정보
  79. // ds_main_cond.setColumn(0, "wardcd", sWardCd);
  80. // fGetPatList();
  81. // //this.setTimer(2, 1);
  82. //
  83. // //-----------------------------(20080906)
  84. // fSetsettingrnid();
  85. // //-----------------------------(20080906)
  86. //
  87. // ds_main_cond.setColumn(0, "roomcd", sRoomCd);
  88. // fGetRoomList();
  89. // for( var i = 0; i < ds_grd_wardpatlist.rowcount; i++ ){
  90. // if( ds_grd_wardpatlist.getColumn(i, "pid") == sPID ){
  91. // grd_patlist.setFocus();
  92. // //grd_patlist.currentrow = i;
  93. // ds_grd_wardpatlist.rowposition = i;
  94. // //grd_patlist.dispatch("onentercell");
  95. // fGetDrugList();
  96. // }
  97. // }
  98. // }
  99. //
  100. // //원본 grd_druglist.frozenCols = grd_druglist.colRef("prcpvol");
  101. // //grd_druglist.frozenCols = grd_druglist.colRef("abbrnm"); // [TASK번호:33173] 투약기록조회 틀 고정 : ~ 경로까지_20091008(ByJA)
  102. // grd_druglist.setFormatColProperty(grd_druglist.getBindCellIndex("body","abbrnm"),"band","left");
  103. // for(var i = 0 ; i < grd_druglist.getBindCellIndex("body","exectm") ; i++) {
  104. // grd_druglist.setFormatColProperty(i,"band","left");
  105. // }
  106. this.setTimer(0, 100);
  107. }
  108. /**
  109. * @group :
  110. * @ver : 2008.05.10
  111. * @by : 김보성
  112. * @---------------------------------------------------
  113. * @type : function
  114. * @access : public
  115. * @desc : 조회일자 초기화
  116. * @param :
  117. * @param :
  118. * @return :
  119. * @---------------------------------------------------
  120. */
  121. function fnDateInit() {
  122. ds_main_cond.setColumn(0, "medfromdd", getDateAddc(utlf_getCurrentDate(), -7));
  123. ds_main_cond.setColumn(0, "medtodd", utlf_getCurrentDate());
  124. }
  125. /**
  126. * @group :
  127. * @ver : 2007.06.23
  128. * @by : 최경용
  129. * @---------------------------------------------------
  130. * @type : function
  131. * @access : public
  132. * @desc : 환자명 조회
  133. * @param :
  134. * @param :
  135. * @return :
  136. * @---------------------------------------------------
  137. */
  138. function fGetPatList(){
  139. ds_main_cond.setColumn(0, "acpstatflag", "A");//재원환자만
  140. ds_send_reqdata.clearData();
  141. ds_send_reqdata.copyData(ds_main_cond);
  142. var oParam = {};
  143. oParam.id = "TRMNR00603";
  144. oParam.service = "caremedirecapp.CareMediRec";
  145. oParam.method = "reqGetWardPatList";
  146. oParam.inds = "reqcond=ds_send_reqdata";
  147. oParam.outds = "ds_grd_wardpatlist=wardpatlist ds_main_settingrn=settingrn";
  148. oParam.async = false;
  149. //oParam.callback = "cf_TRMNR00603";
  150. tranf_submit(oParam);
  151. if( ds_main_settingrn.rowcount > 0 && ds_main_settingrn.getColumn(0, "settingrnnm") == "-" ){
  152. ds_main_settingrn.setColumn(0, "settingrnid", "");
  153. grp_sea.cmb_settingrn.value = "";
  154. }
  155. ds_grd_wardpatlist.rowposition = -1;
  156. }
  157. /**
  158. * @group :
  159. * @ver : 2008.09.06
  160. * @by :
  161. * @---------------------------------------------------
  162. * @type : function
  163. * @access : public
  164. * @desc : 내환자가 설정되어 있으면 자동으로 내환자설정시키기(성공)
  165. * @param :
  166. * @param :
  167. * @return :
  168. * @---------------------------------------------------
  169. */
  170. function fSetsettingrnid(){
  171. var sUserId = sysf_getUserId();
  172. var sUserIdFind = ""
  173. for( i = 0; i < ds_main_settingrn.rowcount; i++ ) {
  174. sUserIdFind = ds_main_settingrn.setColumn(i, "settingrnid");
  175. if( sUserId == sUserIdFind ){
  176. ds_main_cond.setColumn(0, "settingrnid", sUserIdFind);
  177. fGetPatList();
  178. return;
  179. }
  180. }
  181. }
  182. /**
  183. * @group :
  184. * @ver : 2007.06.23
  185. * @by : 최경용
  186. * @---------------------------------------------------
  187. * @type : function
  188. * @access : public
  189. * @desc : 투약기록 병동별 병실 리스트 조회
  190. * @param :
  191. * @param :
  192. * @return :
  193. * @---------------------------------------------------
  194. */
  195. function fGetRoomList(){
  196. if( utlf_isNull(ds_main_cond.getColumn(0, "settingrnid")) ){
  197. ds_main_cond.setColumn(0, "roomflag", "");
  198. }else{
  199. ds_main_cond.setColumn(0, "roomflag", "settingrnid");
  200. }
  201. ds_send_reqdata.clearData();
  202. ds_send_reqdata.copyData(ds_main_cond);
  203. //----------------------(20080922)
  204. ds_grd_druglist.clearData();
  205. //----------------------(20080922)
  206. var oParam = {};
  207. oParam.id = "TRMNR00602";
  208. oParam.service = "caremedirecapp.CareMediRec";
  209. oParam.method = "reqGetRoomInitData";
  210. oParam.inds = "reqcond=ds_send_reqdata";
  211. oParam.outds = "ds_init_room=room";
  212. oParam.async = false;
  213. //oParam.callback = "cf_TRMNR00602";
  214. tranf_submit(oParam);
  215. if( ds_init_room.rowcount > 0 && ds_init_room.getColumn(0, "roomnm") == "-" ){
  216. ds_init_room.setColumn(0, "roomcd", "");
  217. }
  218. grp_sea.combo4.index = 0;
  219. }
  220. /**
  221. * @group :
  222. * @ver : 2007.06.23
  223. * @by : 최경용
  224. * @---------------------------------------------------
  225. * @type : function
  226. * @access : public
  227. * @desc : 투약기록 조회
  228. * @param :
  229. * @param :
  230. * @return :
  231. * @---------------------------------------------------
  232. */
  233. function fGetDrugList(){
  234. var row = ds_grd_wardpatlist.rowposition;
  235. var pid = "";
  236. var indd = "";
  237. var cretno = "";
  238. //---------------------(20080510)
  239. // 환자정보 보이기
  240. if( row > -1 ) {
  241. ds_main_pidinfo.setColumn(0, "roomcd", ds_grd_wardpatlist.getColumn(row, "roomcd"));
  242. ds_main_pidinfo.setColumn(0, "pid", ds_grd_wardpatlist.getColumn(row, "pid"));
  243. ds_main_pidinfo.setColumn(0, "patnm", ds_grd_wardpatlist.getColumn(row, "patnm"));
  244. ds_main_pidinfo.setColumn(0, "sa", ds_grd_wardpatlist.getColumn(row, "sexage"));
  245. ds_main_pidinfo.setColumn(0, "rrgstno", ds_grd_wardpatlist.getColumn(row, "rrgstno"));
  246. }
  247. //-------------------------------------------------
  248. if( ds_main_cond.getColumn(0, "acpstatflag") == "true" ){//등록번호로 조회시
  249. //model.resetInstanceNode("/root/send/reqdata");
  250. ds_main_cond.setColumn(0, "pid", ds_main_cond.getColumn(0, "pid_search"));
  251. ds_send_reqdata.clearData();
  252. ds_send_reqdata.copyData(ds_main_cond);
  253. dsf_setTypeFormat(ds_send_reqdata, "cretno:INT");
  254. var oParam = {};
  255. oParam.id = "TRMNR04501";
  256. oParam.service = "caremedirecapp.CareMediRec";
  257. oParam.method = "reqGetDrugMedList";
  258. oParam.inds = "reqcond=ds_send_reqdata";
  259. oParam.outds = "ds_grd_druglist=druglist";
  260. oParam.async = false;
  261. oParam.callback = "cf_TRMNR04501";
  262. tranf_submit(oParam);
  263. } else {//환자 리스트에서 조회시
  264. if( row > -1 ){
  265. pid = ds_grd_wardpatlist.getColumn(row, "pid");
  266. indd = ds_grd_wardpatlist.getColumn(row, "indd");
  267. cretno = ds_grd_wardpatlist.getColumn(row, "cretno");
  268. ds_main_cond.setColumn(0, "pid", pid);
  269. ds_main_cond.setColumn(0, "indd", indd);
  270. ds_main_cond.setColumn(0, "cretno", cretno);
  271. //model.resetInstanceNode("/root/send/reqdata");
  272. ds_send_reqdata.clearData();
  273. ds_send_reqdata.copyData(ds_main_cond);
  274. dsf_setTypeFormat(ds_send_reqdata, "cretno:INT");
  275. var oParam = {};
  276. oParam.id = "TRMNR04501";
  277. oParam.service = "caremedirecapp.CareMediRec";
  278. oParam.method = "reqGetDrugMedList";
  279. oParam.inds = "reqcond=ds_send_reqdata";
  280. oParam.outds = "ds_grd_druglist=druglist";
  281. oParam.async = false;
  282. oParam.callback = "cf_TRMNR04501";
  283. tranf_submit(oParam);
  284. }else{
  285. sysf_messageBox("환자 리스트가 선택되지","E007");
  286. }
  287. }
  288. ds_grd_druglist.rowposition = -1;
  289. }
  290. function cf_TRMNR04501(sSvcId, nErrorCode, sErrorMsg) {
  291. arErrorCode.push(sSvcId, nErrorCode);
  292. }
  293. /* --------------------------------------------------*/
  294. /* type : function */
  295. /* access : public */
  296. /* desc : 화면초기화(20080819) */
  297. /* param : */
  298. /* return : */
  299. /* --------------------------------------------------*/
  300. function fQueryinit() {
  301. // 일자 초기화
  302. fnDateInit();
  303. grp_sea.bool_acptstat.value = "false";
  304. // 콤보숨기기
  305. cap_hisindd.visible = false;
  306. cbo_hisindd.visible = false;
  307. // 조건 초기화
  308. ds_main_pidinfo.setColumn(0, "roomcd", "");
  309. ds_main_pidinfo.setColumn(0, "pid", "");
  310. ds_main_pidinfo.setColumn(0, "patnm", "");
  311. ds_main_pidinfo.setColumn(0, "sa", "");
  312. ds_main_pidinfo.setColumn(0, "rrgstno", "");
  313. }
  314. /* --------------------------------------------------*/
  315. /* type : function */
  316. /* access : public */
  317. /* desc : 환자정보 가져오기 */
  318. /* param : 검색구분 */
  319. /* return : */
  320. /* --------------------------------------------------*/
  321. function fSearchPatInfo(qryflag) {
  322. dsf_createDsRow("ds_temp_pidinfo",
  323. [{col:"pid", type:"string", size:256, val:grp_sea.ipt_pid_search.value}
  324. ,{col:"srchcond", type:"string", size:256, val:"1"}], true);
  325. ds_temp_pidinfo.addColumn("autoflag", "string", 256);
  326. if( qryflag == "1" ) {
  327. ds_temp_pidinfo.setColumn(0, "autoflag","Y");
  328. } else {
  329. ds_temp_pidinfo.setColumn(0, "autoflag","N");
  330. }
  331. //modal("SPPMC02500", 1,10, 10, "SPPMC02500", "/root/temp", "/root/send"); 17863430
  332. //modal("../../../pam/commonweb/xrw/SPPMC02500", qryflag,"150", "150", "SPPMC02500", "/root/source", "/root/send");
  333. //frmf_modal("SPPMC02500", qryflag,"150", "150", "SPPMC02500", "/root/temp/pidinfo", "/root/send");
  334. var objArg = new Object();
  335. objArg.arg_ds_send = ds_temp_pidinfo;
  336. frmf_modal("SPPMC02500", "SPPMC02500", objArg, null, null, null, null, null, null, null, null, null, "M");
  337. ds_main.setColumn(0, "popupendflag", frmf_getParameter("SPPMC02500_popupendflag"));
  338. //환자번호 copy
  339. var popupendflag = ds_main.getColumn(0, "popupendflag");
  340. if( popupendflag == "ok" ){
  341. ds_main_cond.setColumn(0, "pid_search", ds_patinfolist.getColumn(0, "pid"));
  342. ds_main_cond.setColumn(0, "hngnm_search", ds_patinfolist.getColumn(0, "hngnm"));
  343. ds_main_pidinfo.setColumn(0, "roomcd", "");
  344. ds_main_pidinfo.setColumn(0, "pid", ds_patinfolist.getColumn(0, "pid"));
  345. ds_main_pidinfo.setColumn(0, "patnm", ds_patinfolist.getColumn(0, "hngnm"));
  346. ds_main_pidinfo.setColumn(0, "sa", ds_patinfolist.getColumn(0, "sex") + "/" + ds_patinfolist.getColumn(0, "age") );
  347. ds_main_pidinfo.setColumn(0, "rrgstno", ds_patinfolist.getColumn(0, "rrgstno1") + "-" + ds_patinfolist.getColumn(0, "rrgstno2").substring(0,1) +"******");
  348. } else {
  349. ds_main_pidinfo.setColumn(0, "roomcd", "");
  350. ds_main_pidinfo.setColumn(0, "pid", "");
  351. ds_main_pidinfo.setColumn(0, "patnm", "");
  352. ds_main_pidinfo.setColumn(0, "sa", "");
  353. ds_main_pidinfo.setColumn(0, "rrgstno", "");
  354. }
  355. }
  356. /* --------------------------------------------------*/
  357. /* type : function */
  358. /* access : public */
  359. /* desc : 환자에 대한 입원정보 추출 */
  360. /* param : 검색구분 */
  361. /* return : */
  362. /* --------------------------------------------------*/
  363. function fSearchPatInddInfo() {
  364. //등록번호체크 : 이전 기능으로 막음
  365. if( !utlf_isNull(ds_main_cond.getColumn(0, "hngnm_search")) ) {
  366. ds_main_cond.setColumn(0, "acpstatflag", "true");
  367. }
  368. //콤보열기
  369. fnhisindd();
  370. cbo_hisindd.setFocus();
  371. cbo_hisindd.index = 0;
  372. cbo_hisindd.updateToDataset();
  373. frmf_inputEnterKey("cbo_hisindd", "onitemchanged", new ItemChangeEventInfo);
  374. }
  375. /**
  376. * @group :
  377. * @ver : 2008.05.10
  378. * @by : 김보성
  379. * @---------------------------------------------------
  380. * @type : function
  381. * @access : public
  382. * @desc : 입원일자 정보 조회
  383. * @param :
  384. * @param :
  385. * @return :
  386. * @---------------------------------------------------
  387. */
  388. function fnhisindd() {
  389. var row = ds_grd_wardpatlist.rowposition;
  390. if( ds_main_cond.getColumn(0, "acpstatflag") == "true" ) {
  391. cap_hisindd.visible = true;
  392. cbo_hisindd.visible = true;
  393. } else {
  394. cap_hisindd.visible = false;
  395. cbo_hisindd.visible = false;
  396. }
  397. //var pid = model.getValue(xWardPatListPath + "[" + row + "]/pid");
  398. var pid = ds_main_cond.getColumn(0, "pid_search");
  399. ds_main_cond.setColumn(0, "pid", pid);
  400. ds_send_reqdata.clearData();
  401. ds_send_reqdata.copyData(ds_main_cond);
  402. var oParam = {};
  403. oParam.id = "TRMNR04502";
  404. oParam.service = "caremedirecapp.CareMediRec";
  405. oParam.method = "reqGetHisinddList";
  406. oParam.inds = "reqcond=ds_send_reqdata";
  407. oParam.outds = "ds_temp_hisinddinfo=hisinddlist";
  408. oParam.async = false;
  409. //oParam.callback = "cf_TRMNR04502";
  410. tranf_submit(oParam);
  411. if( utlf_isNull(pid) ) return;
  412. if( ds_temp_hisinddinfo.rowcount < 1 ) {
  413. sysf_messageBox("입원정보가 존재하지 않습니다", "E999");
  414. } else {
  415. sysf_messageBox(ds_temp_hisinddinfo.rowcount + " 건의 입원정보가 존재합니다", "E999");
  416. fnhisinddmove();
  417. }
  418. }
  419. /**
  420. * @group :
  421. * @ver : 2008.05.10
  422. * @by : 김보성
  423. * @---------------------------------------------------
  424. * @type : function
  425. * @access : public
  426. * @desc : his indd -> 조회일자 이동
  427. * @param :
  428. * @param :
  429. * @return :
  430. * @---------------------------------------------------
  431. */
  432. function fnhisinddmove() {
  433. //trace("cbo_hisindd value : " + cbo_hisindd.value);
  434. //trace("cond hisind : " + ds_main_cond.getColumn(0, "hisindd"));
  435. var hisindd = ds_main_cond.getColumn(0, "hisindd");
  436. if( utlf_isNull(hisindd) ) return;
  437. var indds = hisindd.split("-");
  438. var indd = indds[0]; //입원일자
  439. var dschdd = indds[1]; //퇴원일자
  440. var cretno = indds[2]; //입원생성번호 (20080922)
  441. var medfromdd = indd;
  442. var medtodd = ( dschdd == "99991231" ? utlf_getCurrentDate() : dschdd );
  443. var dschddM90 = medtodd.toDate().getAddDate(-90, "D").getDateFormat();
  444. if ( dschddM90 > indd ){
  445. medfromdd = dschddM90;
  446. }
  447. ds_main_cond.setColumn(0, "medfromdd", medfromdd);
  448. ds_main_cond.setColumn(0, "medtodd", medtodd);
  449. ds_main_cond.setColumn(0, "cretno", cretno); //---(20080922)
  450. ds_main_cond.setColumn(0, "indd", indd); //---(20080922)
  451. ds_main_cond.setColumn(0, "wardcd", ""); //---(20080922)
  452. ds_main_cond.setColumn(0, "roomcd", ""); //---(20080922)
  453. grp_sea.combo4.value = "";
  454. ds_main_cond.setColumn(0, "prcpkindcd", ""); //---(20080922)
  455. ds_main_cond.setColumn(0, "prcpcd", ""); //---(20080922)
  456. ds_grd_wardpatlist.clearData(); //---(20080922)
  457. }]]></Script>