SMMNA00800.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805
  1. /*
  2. APU 스케쥴 관리
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. // --------------------------------------------------
  7. // 화면 read
  8. // --------------------------------------------------
  9. function finit() {
  10. //그리드 초기화
  11. fInitGrid();
  12. //오늘 날짜로 초기화 하는 부분.(진료일자를 default로 오늘 날짜로 선택함)
  13. var dt = getCurrentDate();
  14. //model.setValue(xPathMainCond + "/prcpdd", dt);
  15. //공통코드
  16. //zbcfGetCodeList(new Array( "L0089","L0089" ), new Array("/root/init/L00891list1", "/root/init/L00891list2"), true);
  17. //20090112 dhkim 장소공통코드조회 추가
  18. zbcfGetCodeList(new Array( "L0089","L0089", "L0096"), new Array("/root/init/L00891list1", "/root/init/L00891list2", "/root/init/L00961list3"), true);
  19. //병동콤보
  20. submit("TRMNA00811");
  21. //스케쥴일자 설정
  22. fCalendarDisplay(); //스케쥴일자(from~to)설정
  23. var tempdate = fcalendarmake();
  24. model.setValue("/root/main/cond1/orddd", tempdate);
  25. //진료과콤보
  26. var instcd = getUserInfo("dutplceinstcd");
  27. var standard_yn = "orduseyn";
  28. var ord_deptflag = ''; //D:외래진료실만,'W':병동,X:기타
  29. var rslt_ref = "/root/main/cond/orddeptlist";
  30. zbcfGetDeptCodeList(instcd, standard_yn, ord_deptflag, rslt_ref,'asc');
  31. //초기시에 자동조회
  32. fPrcpflagCount(); //처방구분별 건수 조회
  33. fMemoQuery(); //메모 조회
  34. fScheInti();
  35. model.refresh();
  36. //화면open 시 미확정스케쥴 조회되도록
  37. fNoScheQuery();
  38. }
  39. function fInitGrid() {
  40. datagrid1.frozenCols = datagrid1.colRef("ioflag");
  41. datagrid2.frozenCols = datagrid2.colRef("hngnm");
  42. model.removeNodeset("/root/main/scheinfosave/schelist"); //초기화시 그리드 1번째 row 삭제
  43. model.removeNodeset("/root/main/direcprcp/direcprcpinfo"); //초기화시 그리드 1번째 row 삭제
  44. model.removeNodeset("/root/main/memoinfo/memolist"); //초기화시 그리드 1번째 row 삭제
  45. model.refresh();
  46. }
  47. //---------------------------------
  48. // 처방구분별 건수 조회
  49. //---------------------------------
  50. function fPrcpflagCount() {
  51. //초기화
  52. var xPathSendReqdata = "/root/send/reqdata";
  53. model.removeNodeset(xPathSendReqdata);
  54. model.makeNode(xPathSendReqdata);
  55. var instcd = getUserInfo("dutplceinstcd");
  56. var schedd = fcalendarmake();
  57. //값설정
  58. model.makeValue(xPathSendReqdata + "/instcd", instcd); //병원코드
  59. model.makeValue(xPathSendReqdata + "/schedd", schedd); //스케쥴일자
  60. //조회
  61. if ( submit("TRMNA00810") ) {
  62. } else {
  63. model.setValue("/root/main/etcinfo/etclist/cnt1","0");
  64. model.setValue("/root/main/etcinfo/etclist/cnt2","0");
  65. model.setValue("/root/main/etcinfo/etclist/cnt3","0");
  66. model.setValue("/root/main/etcinfo/etclist/cnt4","0");
  67. };
  68. model.refresh();
  69. }
  70. //---------------------------------
  71. // 메모정보 조회
  72. //---------------------------------
  73. function fMemoQuery() {
  74. //초기화
  75. var xPathSendReqdata = "/root/send/reqdata";
  76. model.removeNodeset(xPathSendReqdata);
  77. model.makeNode(xPathSendReqdata);
  78. var instcd = getUserInfo("dutplceinstcd");
  79. var memodd = ""; //fcalendarmake();
  80. //값설정
  81. model.makeValue(xPathSendReqdata + "/instcd", instcd); //병원코드
  82. model.makeValue(xPathSendReqdata + "/memodd", memodd); //스케쥴일자
  83. //조회
  84. submit("TRMNA00802");
  85. model.refresh();
  86. }
  87. //---------------------------------
  88. // 달력클릭시 일자변경
  89. //---------------------------------
  90. function fCalendarDisplay() {
  91. var tempdate = fcalendarmake();
  92. //var tempdateADD = tempdate.toDate().getAddDate(1,"D").getDateFormat("YYYYMMDD");
  93. var tempdateADD = fcalendarmake();
  94. model.setValue("/root/main/cond/ischefrdd", tempdate);
  95. model.setValue("/root/main/cond/ischetodd", tempdateADD);
  96. model.refresh();
  97. //model.setValue("/root/main/cond1/orddd", tempdate);
  98. //model.refresh();
  99. }
  100. /* --------------------------------------------------*/
  101. /* type : function */
  102. /* access : public */
  103. /* desc : 환자정보 가져오기 */
  104. /* param : 검색구분 */
  105. /* return : */
  106. /* --------------------------------------------------*/
  107. function fSearchPatInfo(qryflag) {
  108. modal("../../../pam/patinfomngtweb/xrw/SPPMC02500", qryflag,"150", "150", "SPPMC02500", "/root/source", "/root/send");
  109. var popupendflag = model.getValue("/root/main/popupendflag");
  110. if (popupendflag == "ok"){
  111. model.setValue("/root/main/cond/ipid",model.getValue("/root/main/patinfo/patinfolist/pid"));
  112. model.setValue("/root/main/cond/ihngnm",model.getValue("/root/main/patinfo/patinfolist/hngnm"));
  113. // model.setValue("/root/main/cond/igndrage",model.getValue("/root/main/patinfo/patinfolist/pid"));
  114. model.setValue("/root/main/cond/irrgstno", model.getValue("/root/main/patinfo/patinfolist/rrgstno1") + "-" +
  115. model.getValue("/root/main/patinfo/patinfolist/rrgstno2") );
  116. model.refresh();
  117. // var pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  118. // if (pid != null && pid != "" && pid != " " && pid != "-"){
  119. // fpidref();
  120. // }
  121. }
  122. }
  123. //-------------------------------------------------
  124. // 등록번호기준으로 공여자콤보 찾기
  125. //-------------------------------------------------
  126. function fPatinfoPop() {
  127. //팝업조건설정
  128. model.removenode("/root/source");
  129. model.makeValue("/root/source/pid", ipt_tnsrpid.value);
  130. //팝업호출
  131. modal("../../../pam/patinfomngtweb/xrw/SPPMC02500", "1","150", "150", "SPPMC02500", "/root/source", "/root/send");
  132. //modal("SPPMC02500", "1","150", "150", "SPPMC02500", "/root/temp", "/root/send");
  133. //리턴값
  134. if (model.getValue("/root/main/popupendflag") == "ok") {
  135. fPatInfo();
  136. model.refresh();
  137. fSearchDnorno();
  138. }
  139. }
  140. //------------------------------------------
  141. // 스케쥴 입력란으로 자료 이동
  142. //------------------------------------------
  143. function fScheMove(flag) {
  144. var pGrd ;
  145. var xPathFr = "";
  146. var xPathTo = "/root/main/scheinfo/schelist";
  147. //fScheInti(); //값초기화
  148. if (flag == "Y") { // 확정스케쥴 더블 클릭시 스케쥴 입력란으로 자료 이동
  149. pGrd = datagrid1;
  150. xPathFr = "/root/main/scheinfosave/schelist[" + pGrd.row + "]";
  151. if (pGrd.rows <= 1 || pGrd.row <= 0) return;
  152. model.setValue(xPathTo + "/tnsrpid", model.getValue(xPathFr + "/tnsrpid"));
  153. model.setValue(xPathTo + "/hngnm", model.getValue(xPathFr + "/hngnm"));
  154. model.setValue(xPathTo + "/age", model.getValue(xPathFr + "/sex") + "/" + model.getValue(xPathFr + "/age"));
  155. model.setValue(xPathTo + "/ptbsrrgstno", model.getValue(xPathFr + "/ptbsrrgstno"));
  156. model.setValue(xPathTo + "/ioflag", model.getValue(xPathFr + "/ioflag"));
  157. model.setValue(xPathTo + "/orddeptcd", model.getValue(xPathFr + "/orddeptcd"));
  158. cbo_orddeptcd.dispatch("xforms-value-changed");
  159. model.setValue(xPathTo + "/orddrid", model.getValue(xPathFr + "/orddrid"));
  160. model.setValue(xPathTo + "/indd", model.getValue(xPathFr + "/indd"));
  161. model.setValue(xPathTo + "/scheprcpkindcd", model.getValue(xPathFr + "/scheprcpkindcd"));
  162. model.setValue(xPathTo + "/scheprcpflag", model.getValue(xPathFr + "/scheprcpflag"));
  163. model.setValue(xPathTo + "/scheerflag", model.getValue(xPathFr + "/scheerflag"));
  164. model.setValue(xPathTo + "/wardcd", model.getValue(xPathFr + "/wardcd"));
  165. model.setValue(xPathTo + "/roomcd", model.getValue(xPathFr + "/roomcd"));
  166. model.setValue(xPathTo + "/schehopedd", model.getValue(xPathFr + "/schehopedd"));
  167. model.setValue(xPathTo + "/schehopetm", model.getValue(xPathFr + "/schehopetm"));
  168. model.setValue(xPathTo + "/schecmfmdd", model.getValue(xPathFr + "/schecmfmdd"));
  169. model.setValue(xPathTo + "/schecmfmtm", model.getValue(xPathFr + "/schecmfmtm"));
  170. model.setValue(xPathTo + "/remark", model.getValue(xPathFr + "/remark"));
  171. model.setValue(xPathTo + "/dnornm", model.getValue(xPathFr + "/dnornm"));
  172. model.setValue(xPathTo + "/dnorrrgstno", model.getValue(xPathFr + "/dnorrrgstno"));
  173. model.setValue(xPathTo + "/instcd", model.getValue(xPathFr + "/instcd"));
  174. model.setValue(xPathTo + "/schedd", model.getValue(xPathFr + "/schedd"));
  175. model.setValue(xPathTo + "/scheseqno", model.getValue(xPathFr + "/scheseqno"));
  176. fSearchDnorno(); //공여자콤보설정
  177. model.setValue(xPathTo + "/dnorno", model.getValue(xPathFr + "/dnorno"));
  178. model.setValue(xPathTo + "/delyn", model.getValue(xPathFr + "/delyn"));
  179. model.setValue(xPathTo + "/prcpdd", model.getValue(xPathFr + "/prcpdd"));
  180. model.setValue(xPathTo + "/prcpno", model.getValue(xPathFr + "/prcpno"));
  181. // 20090112 dhkim
  182. // 성분헌혈장소추가
  183. model.setValue(xPathTo + "/plcecd", model.getValue(xPathFr + "/plcecd"));
  184. }
  185. else {
  186. pGrd = datagrid2;
  187. xPathFr = "/root/main/direcprcp/direcprcpinfo[" + pGrd.row + "]";
  188. if (pGrd.rows <= 1 || pGrd.row <= 0) return;
  189. model.setValue(xPathTo + "/tnsrpid", model.getValue(xPathFr + "/pid"));
  190. model.setValue(xPathTo + "/hngnm", model.getValue(xPathFr + "/hngnm"));
  191. model.setValue(xPathTo + "/age", model.getValue(xPathFr + "/sex") + "/" + model.getValue(xPathFr + "/age"));
  192. model.setValue(xPathTo + "/ptbsrrgstno", model.getValue(xPathFr + "/ptbsrrgstno"));
  193. model.setValue(xPathTo + "/ioflag", model.getValue(xPathFr + "/iogb"));
  194. model.setValue(xPathTo + "/orddeptcd", model.getValue(xPathFr + "/orddeptcd"));
  195. cbo_orddeptcd.dispatch("xforms-value-changed");
  196. model.setValue(xPathTo + "/orddrid", model.getValue(xPathFr + "/orddrid"));
  197. model.setValue(xPathTo + "/indd", model.getValue(xPathFr + "/indd"));
  198. model.setValue(xPathTo + "/scheprcpkindcd", "");
  199. model.setValue(xPathTo + "/scheprcpflag", "");
  200. model.setValue(xPathTo + "/scheerflag", "N");
  201. model.setValue(xPathTo + "/wardcd", model.getValue(xPathFr + "/wardcd"));
  202. model.setValue(xPathTo + "/roomcd", model.getValue(xPathFr + "/roomcd"));
  203. model.setValue(xPathTo + "/schehopedd", model.getValue(xPathFr + "/prcphopedd"));
  204. model.setValue(xPathTo + "/schehopetm", "0000");
  205. model.setValue(xPathTo + "/schecmfmdd", "");
  206. model.setValue(xPathTo + "/schecmfmtm", "");
  207. model.setValue(xPathTo + "/remark", "");
  208. model.setValue(xPathTo + "/dnornm", "");
  209. model.setValue(xPathTo + "/dnorrrgstno", "");
  210. model.setValue(xPathTo + "/instcd", model.getValue(xPathFr + "/instcd"));
  211. model.setValue(xPathTo + "/schedd", "");
  212. model.setValue(xPathTo + "/scheseqno", "");
  213. model.setValue(xPathTo + "/dnorno", "");
  214. model.setValue(xPathTo + "/delyn", 'N');
  215. model.setValue(xPathTo + "/prcpdd", model.getValue(xPathFr + "/prcpdd"));
  216. model.setValue(xPathTo + "/prcpno", model.getValue(xPathFr + "/prcpno"));
  217. // 20090112 dhkim
  218. // 성분헌혈장소추가
  219. model.setValue(xPathTo + "/plcecd", model.getValue(xPathFr + "/plcecd"));
  220. }
  221. model.refresh();
  222. //등록번호입력불가능하도록
  223. ipt_tnsrpid.disabled = true;
  224. btn_pid1.disabled = true;
  225. }
  226. // --------------------------------------------------
  227. // 행추가
  228. // --------------------------------------------------
  229. function fMemoAdd() {
  230. //체크기능없음
  231. // var sinsertChk = finsertCheck();
  232. // if ( sinsertChk == false ) return;
  233. var xPathData = "/root/main/memoinfo/memolist";
  234. var pGrd = datagrid3;
  235. pGrd.addRow();
  236. var iRow = pGrd.rows-1;
  237. //기본값설정
  238. model.setValue(xPathData + "[" + iRow + "]/memodd" ,fcalendarmake() ); //메모일자
  239. model.setValue(xPathData + "[" + iRow + "]/memotm" ,getCurrentTime().substring(0,4) ); //메모일시
  240. model.setValue(xPathData + "[" + iRow + "]/savenm" ,getUserName() ); //메모기록자명
  241. model.setValue(xPathData + "[" + iRow + "]/saveid" ,getUserId() ); //메모기록자id
  242. model.setValue(xPathData + "[" + iRow + "]/delyn" , 'N' ); //삭제여부
  243. model.setValue(xPathData + "[" + iRow + "]/memosavedd" ,fcalendarmake() ); //메모저장일자
  244. }
  245. //-------------------------------------------------
  246. //처방구분변동에 따른 처방종류
  247. //-------------------------------------------------
  248. function fPrcpKindComboMake(flag) {
  249. //초기화
  250. var xPathSendReqdata = "/root/send/reqdata";
  251. model.removeNodeset(xPathSendReqdata);
  252. model.makeNode(xPathSendReqdata);
  253. var Instcd = "";
  254. var cdgrupid = "";
  255. if (flag == "1") {
  256. Instcd = getUserInfo("dutplceinstcd");
  257. cdgrupid = model.getValue("/root/main/cond/iprcpflag");
  258. } else {
  259. Instcd = getUserInfo("dutplceinstcd");
  260. cdgrupid = model.getValue("/root/main/scheinfo/schelist/scheprcpflag");
  261. }
  262. switch (cdgrupid) {
  263. case "1": cdgrupid = "L0091"; break;
  264. case "2": cdgrupid = "L0090"; break;
  265. case "3": cdgrupid = "L0092"; break;
  266. default : cdgrupid = "L0091"; break;
  267. }
  268. model.makeValue(xPathSendReqdata + "/instcd", Instcd); //병원코드
  269. model.makeValue(xPathSendReqdata + "/cdgrupid", cdgrupid); //그룹코드
  270. //조회
  271. if (flag == "1")
  272. submit("TRMNA00804");
  273. else
  274. submit("TRMNA00805");
  275. model.refresh();
  276. }
  277. // --------------------------------------------------
  278. // 확정 스케쥴 조회
  279. // --------------------------------------------------
  280. function fScheQuery() {
  281. //초기화
  282. var xPathSendReqdata = "/root/send/reqdata";
  283. model.removeNodeset(xPathSendReqdata);
  284. model.makeNode(xPathSendReqdata);
  285. var instcd = getUserInfo("dutplceinstcd");
  286. var ioflag = model.getValue("/root/main/cond/ijob");
  287. var prcpflag = model.getValue("/root/main/cond/iprcpflag");
  288. var prcpkindcd = model.getValue("/root/main/cond/iprcpkindcd");
  289. var pid = model.getValue("/root/main/cond/ipid");
  290. var scheddfr = model.getValue("/root/main/cond/ischefrdd");
  291. var scheddto = model.getValue("/root/main/cond/ischetodd");
  292. var wardcd = model.getValue("/root/main/cond/iwardcd");
  293. var prcpflag = model.getValue("/root/main/cond/iprcpflag");
  294. //20090115 dhkim
  295. var plcecd = model.getValue("/root/main/cond/plcecd");
  296. //값설정
  297. model.makeValue(xPathSendReqdata + "/instcd", instcd); //병원코드
  298. model.makeValue(xPathSendReqdata + "/ioflag", ioflag); //입원외래
  299. model.makeValue(xPathSendReqdata + "/wardcd", wardcd); //병동
  300. model.makeValue(xPathSendReqdata + "/prcpflag", prcpflag); //처방구분
  301. model.makeValue(xPathSendReqdata + "/prcpkindcd", prcpkindcd); //처방종류
  302. model.makeValue(xPathSendReqdata + "/pid", pid); //환자id
  303. model.makeValue(xPathSendReqdata + "/scheddfr", scheddfr); //확정스케쥴일자
  304. model.makeValue(xPathSendReqdata + "/scheddto", scheddto); //확정스케쥴일자
  305. //20090115 dhkim
  306. model.makeValue(xPathSendReqdata + "/plcecd", plcecd); //장소구분추가
  307. //조회
  308. submit("TRMNA00801");
  309. model.refresh();
  310. }
  311. //-------------------------------
  312. // 메모 저장
  313. //-------------------------------
  314. function fMemoSave() {
  315. //체크
  316. // var sinsertChk = finsertCheck();
  317. // if ( sinsertChk == false ) return;
  318. var pGrd = datagrid3;
  319. var xPathSendReqdata = "/root/send/reqdata";
  320. model.removeNodeset(xPathSendReqdata);
  321. model.makeNode(xPathSendReqdata);
  322. var instcd = getUserInfo("dutplceinstcd");
  323. var memodd = fcalendarmake();
  324. //값설정
  325. model.makeValue(xPathSendReqdata + "/instcd", instcd); //병원코드
  326. model.makeValue(xPathSendReqdata + "/memodd", memodd); //스케쥴일자
  327. var xPathData = "/root/main/memoinfo/memolist";
  328. var xSendSaveData = "/root/send/savedata";
  329. model.removeNodeset(xSendSaveData);
  330. model.makeNode(xSendSaveData);
  331. model.setValue(xSendSaveData,pGrd.getUpdateData()); //존재하는 값에 값을 변경
  332. //model.copyNode(xSendReqData,xCondData); //element와 값을 복사(기존것 제거)
  333. //node에 해당하는 노드 하나만 남기고, 같은 node Name 을 갖는 노드들은 삭제시켜준다.
  334. //다른 노드들을 삭제시키고 남겨진 노드의 속성이나 value 값은공백으로 세팅이 된다
  335. //model.resetInstanceNode(xPathData);
  336. if (submit("TXMNA00801")) {
  337. }; //저장(신규,수정)
  338. model.refresh();
  339. // if( model.getValue(xErrMsg) == "정상적으로 처리되었습니다." ) {
  340. // messageBox("저장이", "I002");
  341. // }
  342. }
  343. //---------------------------------------------------
  344. // Memo 삭제
  345. //---------------------------------------------------
  346. function fMemoDelete() {
  347. //체크
  348. // var sinsertChk = finsertCheck();
  349. // if ( sinsertChk == false ) return;
  350. var pGrd = datagrid3;
  351. var xPathData = "/root/main/memoinfo/memolist";
  352. var xSendSaveData = "/root/send/savedata";
  353. iRows = pGrd.rows;
  354. var DelList = "m▦rownum▦memodd▦memotm▦memodetail▦savenm▦saveid▦delyn▦instcd▦memosavedd▦memoseqno";
  355. DelList = DelList + "▩" + "d"
  356. + "▦" + pGrd.row
  357. + "▦" + model.getValue(xPathData +"[" + pGrd.row + "]/memodd")
  358. + "▦" + model.getValue(xPathData +"[" + pGrd.row + "]/memotm")
  359. + "▦" + model.getValue(xPathData +"[" + pGrd.row + "]/memodetail")
  360. + "▦" + model.getValue(xPathData +"[" + pGrd.row + "]/savenm")
  361. + "▦" + model.getValue(xPathData +"[" + pGrd.row + "]/saveid")
  362. + "▦" + model.getValue(xPathData +"[" + pGrd.row + "]/delyn")
  363. + "▦" + model.getValue(xPathData +"[" + pGrd.row + "]/instcd")
  364. + "▦" + model.getValue(xPathData +"[" + pGrd.row + "]/memosavedd")
  365. + "▦" + model.getValue(xPathData +"[" + pGrd.row + "]/memoseqno");
  366. model.removeNodeset(xSendSaveData);
  367. model.makeNode(xSendSaveData);
  368. model.setValue(xSendSaveData, DelList);
  369. if (submit("TXMNA00801")) {
  370. //model.refresh();
  371. }
  372. model.refresh();
  373. // if( model.getValue(xErrMsg) == "정상적으로 처리되었습니다." ) {
  374. // messageBox("삭제가", "I002");
  375. // }
  376. }
  377. /**
  378. * 20090507 dhkim
  379. * 진료과별주치의찾기
  380. */
  381. function fGetDrID(){
  382. model.removenode("/root/send");
  383. model.makeValue("/root/send/orddd", ""); //model.getValue("/root/main/cond/orddd"));
  384. model.makeValue("/root/send/orddeptcd", model.getValue("/root/main/scheinfo/schelist/orddeptcd"));
  385. submit("TRMNW00102");
  386. }
  387. //---------------------------------------
  388. // 등록번호로 환자의 상세정보 추출
  389. //---------------------------------------
  390. function fPatInfo() {
  391. //초기화
  392. var xPathSendReqdata = "/root/send/reqdata";
  393. model.removeNodeset(xPathSendReqdata);
  394. model.makeNode(xPathSendReqdata);
  395. var Instcd = getUserInfo("dutplceinstcd");
  396. var pid = model.getValue("/root/main/scheinfo/schelist/pid");
  397. model.makeValue(xPathSendReqdata + "/instcd", Instcd); //병원코드
  398. model.makeValue(xPathSendReqdata + "/pid", pid); //환자id
  399. //조회
  400. //submit("TRMNA00806");
  401. var xPathFr = "/root/main/patinfo/patinfolist";
  402. var xPathTo = "/root/main/scheinfo/schelist";
  403. model.setValue(xPathTo + "/tnsrpid", model.getValue(xPathFr + "/pid"));
  404. model.setValue(xPathTo + "/hngnm", model.getValue(xPathFr + "/hngnm"));
  405. model.setValue(xPathTo + "/age", model.getValue(xPathFr + "/sex") + "/" + model.getValue(xPathFr + "/age"));
  406. model.setValue(xPathTo + "/ptbsrrgstno", model.getValue(xPathFr + "/rrgstno1") + "/" + model.getValue(xPathFr + "/rrgstno2"));
  407. //20090508 dhkim 환자번호로 입원정보 및 외래정보 세팅
  408. var pid = model.getValue('/root/main/patinfo/patinfolist/pid');
  409. fSetPatInfo(pid);
  410. model.refresh();
  411. }
  412. /**
  413. * 20090508 dhkim
  414. * 환자번호로 입원정보 및 외래정보 세팅
  415. */
  416. function fSetPatInfo(pid){
  417. var xPathTo = "/root/main/scheinfo/schelist";
  418. //20090507 dhkim 입원환자의 경우 입원외래구분, 진료과, 주치의, 입원일자, 병동, 병실이 자동 세팅되도록 한다 (최용숙선생님 요청사항)
  419. model.removenode('/root/send');
  420. model.removenode('/root/temp');
  421. model.makenode('/root/temp');
  422. model.makeValue('/root/send/pid', pid);
  423. if(submit('TRMNA00812')){
  424. var ioflag = model.getValue('/root/temp/patininfo/patininfolist/ioflag');//입원외래구분
  425. //환자정보세팅
  426. model.setValue(xPathTo + "/tnsrpid", model.getValue("/root/temp/patininfo/patininfolist/pid"));//등록번호
  427. model.setValue(xPathTo + "/hngnm", model.getValue("/root/temp/patininfo/patininfolist/hngnm"));//환자명
  428. model.setValue(xPathTo + "/age", model.getValue("/root/temp/patininfo/patininfolist/sexage"));//sexage
  429. model.setValue(xPathTo + "/ptbsrrgstno", model.getValue("/root/temp/patininfo/patininfolist/rrgstno"));//주민번호
  430. model.setValue(xPathTo + "/ioflag", ioflag);//입원외래구분
  431. model.setValue(xPathTo + "/orddeptcd", model.getValue("/root/temp/patininfo/patininfolist/orddeptcd"));//진료과
  432. model.refresh();
  433. fGetDrID();
  434. model.setValue(xPathTo + "/orddrid", model.getValue("/root/temp/patininfo/patininfolist/orddrid"));//주치의
  435. if(ioflag == 'I'){
  436. //입원정보세팅
  437. model.setValue(xPathTo + "/indd", model.getValue("/root/temp/patininfo/patininfolist/indd"));//입원일자
  438. model.setValue(xPathTo + "/wardcd", model.getValue("/root/temp/patininfo/patininfolist/wardcd"));//병동
  439. model.setValue(xPathTo + "/roomcd", model.getValue("/root/temp/patininfo/patininfolist/roomcd"));//병실
  440. }
  441. }
  442. model.refresh();
  443. }
  444. //---------------------------------------
  445. // 등록번호로 공여자 찾기
  446. //---------------------------------------
  447. function fSearchDnorno() {
  448. //초기화
  449. var xPathSendReqdata = "/root/send/reqdata";
  450. model.removeNodeset(xPathSendReqdata);
  451. model.makeNode(xPathSendReqdata);
  452. var Instcd = getUserInfo("dutplceinstcd");
  453. var pid = model.getValue("/root/main/scheinfo/schelist/tnsrpid");
  454. model.makeValue(xPathSendReqdata + "/instcd", Instcd); //병원코드
  455. model.makeValue(xPathSendReqdata + "/pid", pid); //환자id
  456. //조회
  457. submit("TRMNA00803");
  458. model.refresh();
  459. }
  460. //-----------------------------------------
  461. // 스케쥴 확정 입력란 clear
  462. //-----------------------------------------
  463. function fScheInti() {
  464. var xPathSchelist = "/root/main/scheinfo/schelist";
  465. model.setValue(xPathSchelist + "/tnsrpid", "");
  466. model.setValue(xPathSchelist + "/hngnm", "");
  467. model.setValue(xPathSchelist + "/age", "");
  468. model.setValue(xPathSchelist + "/ptbsrrgstno", "");
  469. model.setValue(xPathSchelist + "/ioflag", "");
  470. model.setValue(xPathSchelist + "/orddeptcd", "");
  471. model.setValue(xPathSchelist + "/orddrid", "");
  472. model.setValue(xPathSchelist + "/indd", "");
  473. model.setValue(xPathSchelist + "/scheprcpflag", cbo_scheprcpflag.item(0).value);
  474. model.setValue(xPathSchelist + "/scheprcpkindcd", cbo_scheprcpkindcd .item(0).value);
  475. model.setValue(xPathSchelist + "/scheerflag", cbo_scheerflag.item(0).value);
  476. model.setValue(xPathSchelist + "/wardcd", "");
  477. model.setValue(xPathSchelist + "/roomcd", "");
  478. model.setValue(xPathSchelist + "/schehopedd", "");
  479. model.setValue(xPathSchelist + "/schehopetm", "");
  480. model.setValue(xPathSchelist + "/schecmfmdd", "");
  481. model.setValue(xPathSchelist + "/schecmfmtm", "");
  482. model.setValue(xPathSchelist + "/remark", "매핑없이 스케쥴저장");
  483. model.setValue(xPathSchelist + "/dnorrrgstno", "");
  484. model.setValue(xPathSchelist + "/instcd", getUserInfo("dutplceinstcd"));
  485. model.setValue(xPathSchelist + "/schedd", fcalendarmake()); //없어도 괼것 같음(확인사항)
  486. model.setValue(xPathSchelist + "/scheseqno", "");
  487. model.setValue(xPathSchelist + "/dnorno", "");
  488. model.setValue(xPathSchelist + "/delyn", "N");
  489. //20090112 dhkim 장소추가
  490. model.setValue(xPathSchelist + "/plcecd", "-");
  491. model.refresh();
  492. }
  493. //---------------------------------
  494. // 달력 날짜를 yyyy-mm-dd로 변경
  495. //---------------------------------
  496. function fcalendarmake() {
  497. var pcalendar = calendar1;
  498. var tdate = pcalendar.year;
  499. var temp = pcalendar.month;
  500. if ( temp.length == 1 )
  501. tdate += "0" + temp;
  502. else
  503. tdate += temp;
  504. temp = pcalendar.day;
  505. if ( temp.length == 1 )
  506. tdate += "0" + temp;
  507. else
  508. tdate += temp;
  509. return tdate;
  510. }
  511. //-----------------------------------------------------
  512. // 스케쥴저장하기(신규,수정,삭제)
  513. //-----------------------------------------------------
  514. function fScheSave(saveflag) {
  515. //체크
  516. // var sinsertChk = finsertCheck();
  517. // if ( sinsertChk == false ) return;
  518. if (model.getValue("/root/main/scheinfo/schelist/schecmfmdd") == "") {
  519. messageBox("확정일자가 존재하지 않습니다.", "E999", "");
  520. model.setFocus("ipt_schecmfmdd");
  521. return;
  522. }
  523. if (model.getValue("/root/main/scheinfo/schelist/schecmfmtm") == "") {
  524. messageBox("확정일시가 존재하지 않습니다.", "E999", "");
  525. model.setFocus("ipt_schecmfmtm");
  526. return;
  527. }
  528. //--------------------------------------------------------
  529. //저장DATA
  530. //--------------------------------------------------------
  531. var xPathData = "/root/main/scheinfo/schelist";
  532. var xSendSaveData = "/root/send/savedata";
  533. var schedd = null;
  534. if (saveflag != "d" && model.getValue(xPathData +"/scheseqno") != ""){
  535. saveflag = "u"; //수정
  536. }else if (saveflag != "d" && model.getValue(xPathData +"/scheseqno") == ""){
  537. saveflag = "i"; //신규
  538. schedd = fcalendarmake();
  539. }
  540. if(schedd == null){
  541. schedd = model.getValue(xPathData + "/schedd");
  542. }
  543. var saveList1 = "m"
  544. + "▦rownum"
  545. + "▦instcd"
  546. + "▦schedd"
  547. + "▦scheseqno"
  548. + "▦tnsrpid"
  549. + "▦dnorno"
  550. + "▦ioflag"
  551. + "▦scheprcpflag"
  552. + "▦scheprcpkindcd"
  553. + "▦scheerflag"
  554. + "▦orddeptcd"
  555. + "▦orddrid"
  556. + "▦schehopedd"
  557. + "▦schehopetm"
  558. + "▦schecmfmdd"
  559. + "▦schecmfmtm"
  560. + "▦wardcd"
  561. + "▦roomcd"
  562. + "▦indd"
  563. + "▦remark"
  564. + "▦delyn"
  565. + "▦prcpdd"
  566. // + "▦prcpno";
  567. //20090112 dhkim 장소추가
  568. + "▦prcpno"
  569. + "▦plcecd";
  570. var saveList2 = "▩" + saveflag
  571. + "▦" + "1"
  572. + "▦" + model.getValue(xPathData + "/instcd")
  573. + "▦" + schedd
  574. + "▦" + model.getValue(xPathData + "/scheseqno")
  575. + "▦" + model.getValue(xPathData + "/tnsrpid")
  576. + "▦" + model.getValue(xPathData + "/dnorno")
  577. + "▦" + model.getValue(xPathData + "/ioflag")
  578. + "▦" + model.getValue(xPathData + "/scheprcpflag")
  579. + "▦" + model.getValue(xPathData + "/scheprcpkindcd")
  580. + "▦" + model.getValue(xPathData + "/scheerflag")
  581. + "▦" + model.getValue(xPathData + "/orddeptcd")
  582. + "▦" + model.getValue(xPathData + "/orddrid")
  583. + "▦" + model.getValue(xPathData + "/schehopedd")
  584. + "▦" + model.getValue(xPathData + "/schehopetm")
  585. + "▦" + model.getValue(xPathData + "/schecmfmdd")
  586. + "▦" + model.getValue(xPathData + "/schecmfmtm")
  587. + "▦" + model.getValue(xPathData + "/wardcd")
  588. + "▦" + model.getValue(xPathData + "/roomcd")
  589. + "▦" + model.getValue(xPathData + "/indd")
  590. + "▦" + model.getValue(xPathData + "/remark")
  591. + "▦" + model.getValue(xPathData + "/delyn")
  592. + "▦" + model.getValue(xPathData + "/prcpdd")
  593. // + "▦" + model.getValue(xPathData + "/prcpno");
  594. //20090112 dhkim
  595. //장소추가
  596. + "▦" + model.getValue(xPathData + "/prcpno")
  597. + "▦" + model.getValue(xPathData + "/plcecd");
  598. model.removeNodeset(xSendSaveData);
  599. model.makeNode(xSendSaveData);
  600. model.setValue(xSendSaveData, saveList1+saveList2);
  601. if (submit("TXMNA00802")) {
  602. fScheInti(); //확정스케쥴입력란 정리
  603. fScheQuery(); //확정스케쥴조회
  604. fNoScheQuery(); //미확정스케쥴조회
  605. model.refresh();
  606. }
  607. model.refresh();
  608. // if( model.getValue(xErrMsg) == "정상적으로 처리되었습니다." ) {
  609. // messageBox("삭제가", "I002");
  610. // }
  611. }
  612. //-------------------------------------------------
  613. // 스케줄이 잡히지 않은 bmt 지시처방 모든 내역
  614. //-------------------------------------------------
  615. function fNoScheQuery() {
  616. //초기화
  617. var xPathSendReqdata = "/root/send/reqdata";
  618. model.removeNodeset(xPathSendReqdata);
  619. model.makeNode(xPathSendReqdata);
  620. var Instcd = getUserInfo("dutplceinstcd");
  621. var ioflag = model.getValue("/root/main/cond1/ioflag");
  622. var wardcd = model.getValue("/root/main/cond1/wardcd");
  623. var prcpdd = model.getValue("/root/main/cond1/orddd");
  624. //값설정
  625. model.makeValue(xPathSendReqdata + "/instcd", Instcd); //병원코드
  626. model.makeValue(xPathSendReqdata + "/ioflag", ioflag); //입원외래구분
  627. model.makeValue(xPathSendReqdata + "/wardcd", wardcd); //병동
  628. model.makeValue(xPathSendReqdata + "/prcpdd", prcpdd); //처방일
  629. //조회
  630. submit("TRMNA00809");
  631. model.refresh();
  632. //model.refresh();
  633. // if (grd_chemo.rows > 1) { //자료가 존재하면 acting에 반영한다.
  634. // if (row < grd_chemo.rows && row > 1 ) {
  635. // grd_chemo.row = row;
  636. // } else {
  637. // grd_chemo.row= 1;
  638. // }
  639. // fGrdChemoRowChange();
  640. // }
  641. }