SMMNR04800.xjs 15 KB

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