SMMRI03500.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806
  1. var sORDERBY = "desc";
  2. var sORDERBYDTL = "";
  3. var sSEARCHTYPE = "";
  4. /**
  5. * @desc : 화면 초기화 및 날짜 set
  6. */
  7. function fInit() {
  8. model.removenode("/root/send/req/hardcdno");
  9. model.removenode("/root/send/req/trgtcd");
  10. model.makeValue("/root/send/req/hardcdno", "1001");
  11. model.makeValue("/root/send/req/trgtcd", getUserInfo("dutplcecd"));
  12. if(submit("TRMRI03502")){
  13. if(model.getValue("/root/main/hrdcdlist/hrdcdlist/existyn")=="Y"){
  14. //HardCode에 인가된 부서의 User
  15. btn_req.attribute("top") = "16px";
  16. caption4.attribute("top") = "10px";
  17. ipt_drid.attribute("top") = "10px";
  18. caption12.attribute("top") = "10px";
  19. cmb_doctkindflag.attribute("top") = "10px";
  20. caption14.attribute("top") = "37px";
  21. ipt_medispclid.attribute("top") = "37px";
  22. caption15.attribute("top") = "37px";
  23. ipt_reccosignid.attribute("top") = "37px";
  24. cap_reqflag.attribute("top") = "63px";
  25. chk_DayChk.attribute("top") = "63px";
  26. cmb_ddflag.attribute("top") = "63px";
  27. ipt_fromdd.attribute("top") = "63px";
  28. caption5.attribute("top") = "66px";
  29. ipt_todd.attribute("top") = "63px";
  30. } else {
  31. caption10.visible=false;
  32. chk_SearchPointTimeAll.visible = false;
  33. chk_SearchPointTimeBefore.visible = false;
  34. chk_SearchPointTimeAfter.visible = false;
  35. chk_SearchPointTimeBeforeNon.visible = false;
  36. chk_SearchPointTimeAfterNon.visible = false;
  37. btn_req.attribute("top") = "31px";
  38. caption4.attribute("top") = "37px";
  39. ipt_drid.attribute("top") = "37px";
  40. caption12.attribute("top") = "37px";
  41. cmb_doctkindflag.attribute("top") = "37px";
  42. caption14.attribute("top") = "63px";
  43. ipt_medispclid.attribute("top") = "63px";
  44. caption15.attribute("top") = "63px";
  45. ipt_reccosignid.attribute("top") = "63px";
  46. cap_reqflag.attribute("top") = "89px";
  47. chk_DayChk.attribute("top") = "89px";
  48. cmb_ddflag.attribute("top") = "89px";
  49. ipt_fromdd.attribute("top") = "89px";
  50. caption5.attribute("top") = "92px";
  51. ipt_todd.attribute("top") = "89px";
  52. }
  53. ipt_fromdd.value = getCurrentDate().substr(0, 8);
  54. ipt_todd.value = getCurrentDate().substr(0, 8);
  55. cmb_ddflag.select(2);
  56. ipt_fromdd.disabled = true;
  57. ipt_todd.disabled = true;
  58. cap_0000001594.visible = true;
  59. opt_0000001594.visible = true;
  60. model.setValue("/root/main/cond/drid", getUserId());
  61. model.setValue("/root/main/cond/drnm", getUserName());
  62. model.setValue("/root/main/cond/fromall", "ALL");
  63. model.setValue("/root/main/cond/tmppointtimebeforenon", "BEFORENON");
  64. //model.setValue("/root/main/cond/tmppointtimeafternon", "AFTERNON");
  65. zbcfGetKindCodeList(new Array("M0037"), new Array("M0546"), new Array("/root/init/openday"), false);
  66. fInitMainList();
  67. fInitMainCol();
  68. fInitMainCombo();
  69. fInitMainFromChang("ture");//false
  70. fColHidden("short");
  71. btn_req.dispatch("DOMActivate"); //시점미비 조회
  72. model.refresh();
  73. }
  74. }
  75. /**
  76. * @desc : 서식 가져오기
  77. */
  78. function fInitMainCombo() {
  79. if(submit("TRMRI03401")){
  80. var nodeList = instance1.selectNodes("/root/init/rspd/form");
  81. for(var i =1; i<=nodeList.length; i++){
  82. if(model.getValue("/root/init/rspd/form["+i+"]/eventcd") !="00"){
  83. if(model.getValue("/root/init/rspd/form["+i+"]/eventcd") =="01" || model.getValue("/root/init/rspd/form["+i+"]/eventcd") =="02" || model.getValue("/root/init/rspd/form["+i+"]/eventcd") =="05"){
  84. model.makeValue("/root/init/rspd/forminhosp["+i+"]/srcformcd", model.getValue("/root/init/rspd/form["+i+"]/srcformcd"));
  85. model.makeValue("/root/init/rspd/forminhosp["+i+"]/srcformnm", model.getValue("/root/init/rspd/form["+i+"]/srcformnm"));
  86. model.makeValue("/root/init/rspd/forminhosp["+i+"]/eventcd", model.getValue("/root/init/rspd/form["+i+"]/eventcd"));
  87. } else if(model.getValue("/root/init/rspd/form["+i+"]/eventcd") =="03"){
  88. model.makeValue("/root/init/rspd/formop["+i+"]/srcformcd", model.getValue("/root/init/rspd/form["+i+"]/srcformcd"));
  89. model.makeValue("/root/init/rspd/formop["+i+"]/srcformnm", model.getValue("/root/init/rspd/form["+i+"]/srcformnm"));
  90. model.makeValue("/root/init/rspd/formop["+i+"]/eventcd", model.getValue("/root/init/rspd/form["+i+"]/eventcd"));
  91. } else if(model.getValue("/root/init/rspd/form["+i+"]/eventcd") =="04" || model.getValue("/root/init/rspd/form["+i+"]/eventcd") =="06"){
  92. model.makeValue("/root/init/rspd/formdsch["+i+"]/srcformcd", model.getValue("/root/init/rspd/form["+i+"]/srcformcd"));
  93. model.makeValue("/root/init/rspd/formdsch["+i+"]/srcformnm", model.getValue("/root/init/rspd/form["+i+"]/srcformnm"));
  94. model.makeValue("/root/init/rspd/formdsch["+i+"]/eventcd", model.getValue("/root/init/rspd/form["+i+"]/eventcd"));
  95. }
  96. }
  97. }
  98. zbcfGetCodeList(new Array("M0501", "M0502", "M0503"), new Array("/root/init/M0501", "/root/init/M0502", "/root/init/M0503"));
  99. model.refresh();
  100. model.setValue("/root/main/cond/ordddflag", "orddd");
  101. model.setValue("/root/main/cond/inhospformall", "Y");
  102. }
  103. }
  104. /**
  105. * @desc : 서식 전체일때 작성대사 체크
  106. */
  107. function fInitMainFromChang(flag){
  108. rdo_orddd.disabled = flag;
  109. rdo_anstenddd.disabled = flag;
  110. rdo_dschdd.disabled = flag;
  111. //chk_informcd.disabled = flag;
  112. chk_inhospformcd.disabled = flag;
  113. chk_opformcd.disabled = flag;
  114. chk_dschformcd.disabled = flag;
  115. chk_inhospformall.disabled = flag;
  116. chk_opformall.disabled = flag;
  117. chk_dschformall.disabled = flag;
  118. }
  119. /**
  120. * @desc : 리스트 초기화
  121. */
  122. function fInitMainList() {
  123. model.resetInstanceNode("/root/main/unpreplist/unpreplist");
  124. model.removeNodeset("/root/main/unpreplist/unpreplist");
  125. model.refresh();
  126. }
  127. /**
  128. * @desc : 칼럼 초기화
  129. */
  130. function fInitMainCol() {
  131. model.makeValue("/root/main/unpreplist/cnt/patcnt", "");
  132. model.makeValue("/root/main/unpreplist/cnt/reccnt", "");
  133. model.makeValue("/root/main/unpreplist/cnt/cnfmcmplcnt", "");
  134. model.makeValue("/root/main/unpreplist/formcnt/cnt_0000000680", "");
  135. model.makeValue("/root/main/unpreplist/formcnt/cnt_0000000003", "");
  136. model.makeValue("/root/main/unpreplist/formcnt/cnt_0000000004", "");
  137. model.makeValue("/root/main/unpreplist/formcnt/cnt_0000003169", "");
  138. model.makeValue("/root/main/unpreplist/formcnt/cnt_0000000676", "");
  139. model.makeValue("/root/main/unpreplist/formcnt/cnt_0000001592", "");
  140. model.makeValue("/root/main/unpreplist/formcnt/cnt_0800003416", "");
  141. model.makeValue("/root/main/unpreplist/formcnt/cnt_0000001595", "");
  142. model.makeValue("/root/main/unpreplist/formcnt/cnt_0000001596", "");
  143. model.makeValue("/root/main/unpreplist/formcnt/cnt_0900007052", "");
  144. model.makeValue("/root/main/unpreplist/formcnt/cnt_0000001594", "");
  145. model.refresh();
  146. }
  147. /**
  148. * @desc : 서식 전체 체크
  149. */
  150. function fFromChk(sort){
  151. var dayflag = "";
  152. var ordddflag = model.getValue("/root/main/cond/ordddflag"); //재원일
  153. var anstendddflag = model.getValue("/root/main/cond/anstendddflag"); //수술일
  154. var dschddflag = model.getValue("/root/main/cond/dschddflag"); //퇴원일
  155. if(ordddflag == "orddd" ){
  156. dayflag = ordddflag;
  157. } else if(anstendddflag == "anstenddd" ){
  158. dayflag = anstendddflag;
  159. } else if(dschddflag == "dschdd" ){
  160. dayflag = dschddflag;
  161. }
  162. if(sort == "Y"){
  163. fInitMainFromChang("ture");
  164. chk_DayChk.value="N";
  165. } else {
  166. if(dayflag=="orddd"){ //입원, 재원
  167. }else if(dayflag=="anstenddd"){ //수술
  168. cmb_ddflag.select(3);
  169. }else { //퇴원
  170. cmb_ddflag.select(0);
  171. }
  172. fInitMainFromChang("false");
  173. chk_DayChk.value="Y";
  174. }
  175. fDayChk(chk_DayChk.value);
  176. model.refresh();
  177. }
  178. /**
  179. * @desc : 의사명 가져오기
  180. */
  181. function fReqGetUnPrepDrSmplList(srchflag, srchdata){
  182. model.removeNodeset("/root/send/reqdata");
  183. model.makeValue("/root/send/reqdata/srchflag", srchflag);
  184. model.makeValue("/root/send/reqdata/srchdata", srchdata);
  185. if(submit("TRMRI02901")){
  186. }
  187. }
  188. /**
  189. * @desc : 조회
  190. */
  191. function fReqGetUnPrepDrClsList() {
  192. fInitMainList();
  193. fInitMainCol();
  194. fInitGrid();
  195. model.removenode("/root/send/req");
  196. var dayflag = "";
  197. var deptcd = model.getValue("/root/main/cond/deptcd"); //작성과
  198. var detldeptcd = model.getValue("/root/main/cond/detldeptcd"); //작성분과
  199. var drid = model.getValue("/root/main/cond/drid"); //작성의사
  200. var drnm = model.getValue("/root/main/cond/drnm"); //작성의사명
  201. var fromall = model.getValue("/root/main/cond/fromall"); //서식전체
  202. var informcd = model.getValue("/root/main/cond/informcd"); //입원일
  203. var inhospformcd = model.getValue("/root/main/cond/inhospformcd"); //재원일
  204. var inhospformall = model.getValue("/root/main/cond/inhospformall"); //재원일전체
  205. var opformcd = model.getValue("/root/main/cond/opformcd"); //수술일
  206. var opformall = model.getValue("/root/main/cond/opformall"); //수술일전체
  207. var dschformcd = model.getValue("/root/main/cond/dschformcd"); //퇴원일
  208. var dschformall = model.getValue("/root/main/cond/dschformall"); //퇴원일전체
  209. var getFormin = "/root/init/rspd/formIn";
  210. var getForminhosp = "/root/init/rspd/forminhosp";
  211. var getFormop = "/root/init/rspd/formop";
  212. var getFormdsch = "/root/init/rspd/formdsch";
  213. var cntFormin = parseInt(model.getXPathValue( "count("+getFormin+")"));
  214. var cntForminhosp = parseInt(model.getXPathValue( "count("+getForminhosp+")"));
  215. var cntFormop = parseInt(model.getXPathValue( "count("+getFormop+")"));
  216. var cntFormdsch = parseInt(model.getXPathValue( "count("+getFormdsch+")"));
  217. var ordddflag = model.getValue("/root/main/cond/ordddflag"); //재원일
  218. var anstendddflag = model.getValue("/root/main/cond/anstendddflag"); //수술일
  219. var dschddflag = model.getValue("/root/main/cond/dschddflag"); //퇴원일
  220. if(ordddflag == "orddd" ){
  221. dayflag = ordddflag;
  222. } else if(anstendddflag == "anstenddd" ){
  223. dayflag = anstendddflag;
  224. } else if(dschddflag == "dschdd" ){
  225. dayflag = dschddflag;
  226. }
  227. if(fromall == "ALL"){
  228. if(deptcd.getTrim() == "" && (drid.getTrim() == "" || drnm.getTrim() == "")){
  229. messageBox("작성과 또는 작성의사 중 하나는 반드시 선택 또는 입력을 해 주십시요.","I003");
  230. return;
  231. }
  232. }
  233. if(fromall != "ALL" && dayflag.getTrim() == ""){
  234. messageBox("서식 작성대상일을 선택하세요.","I003");
  235. if(ordddflag == "orddd" ){
  236. model.setFocus("rdo_ordddflag");
  237. } else if(anstendddflag == "anstenddd" ){
  238. model.setFocus("rdo_anstendddflag");
  239. } else if(dschddflag == "dschdd" ){
  240. model.setFocus("rdo_dschddflag");
  241. }
  242. return;
  243. } else {
  244. if(fromall != "ALL"){
  245. if(dayflag == "orddd"){ //재원일
  246. if(inhospformcd == "" && inhospformall == ""){
  247. messageBox("재원일 작성대상을 선택하세요.","I003");
  248. model.setFocus("chk_inhospformcd");
  249. return;
  250. }
  251. if(inhospformcd.getTrim() == ""){
  252. for(var i = 0; i <= cntForminhosp ; i++) {
  253. inhospformcd = inhospformcd+"|" + model.getValue(getForminhosp+"[" + i + "]/srcformcd").getTrim();
  254. }
  255. }
  256. model.makeValue("/root/send/req/srcformcd", inhospformcd.getTrim()); //서식코드
  257. } else if(dayflag == "anstenddd"){ //수술일
  258. if(opformcd == "" && opformall == ""){
  259. messageBox("수술일 작성대상을 선택하세요.","I003");
  260. model.setFocus("chk_opformcd");
  261. return;
  262. }
  263. if(opformcd.getTrim() == ""){
  264. for(var i = 0; i <= cntFormop ; i++) {
  265. opformcd = opformcd+"|" + model.getValue(getFormop+"[" + i + "]/srcformcd").getTrim();
  266. }
  267. }
  268. model.makeValue("/root/send/req/srcformcd", opformcd.getTrim()); //서식코드
  269. } else if(dayflag == "dschdd"){ //퇴원일
  270. if(dschformcd.getTrim() == ""){
  271. if(dschformcd == "" && dschformall == ""){
  272. messageBox("퇴원일 작성대상을 선택하세요.","I003");
  273. model.setFocus("chk_dschformcd");
  274. return;
  275. }
  276. for(var i = 0; i <= cntFormdsch ; i++) {
  277. dschformcd = dschformcd+"|" + model.getValue(getFormdsch+"[" + i + "]/srcformcd").getTrim();
  278. }
  279. }
  280. model.makeValue("/root/send/req/srcformcd", dschformcd.getTrim()); //서식코드
  281. }
  282. } else {
  283. model.makeValue("/root/send/req/srcformcd", ""); //서식코드
  284. }
  285. }
  286. model.makeValue("/root/send/req/dayflag", dayflag); //작성대상일
  287. model.makeValue("/root/send/req/recorddrid", model.getValue("/root/main/cond/drid")); //작성의사ID
  288. model.makeValue("/root/send/req/medispclid", model.getValue("/root/main/cond/medispclid")); //주치의
  289. model.makeValue("/root/send/req/reccosignid", model.getValue("/root/main/cond/reccosignid")); //집도의
  290. model.makeValue("/root/send/req/ddflag", model.getValue("/root/main/cond/tmpddflag")); //조회구분(입원, 퇴원,진료, 재원)
  291. model.makeValue("/root/send/req/fromdd", model.getValue("/root/main/cond/tmpfromdd")); //날짜 from
  292. model.makeValue("/root/send/req/todd", model.getValue("/root/main/cond/tmptodd")); //날짜 to
  293. model.makeValue("/root/send/req/btnflag", sSEARCHTYPE); //미비조회(1), 기록작성율(2)
  294. model.makeValue("/root/send/req/drflag", model.getValue("/root/main/cond/tmpdrflag")); //의사구분
  295. model.makeValue("/root/send/req/deptcd", model.getValue("/root/main/cond/deptcd")); //작성과
  296. model.makeValue("/root/send/req/detldeptcd", detldeptcd); //작성분과
  297. model.makeValue("/root/send/req/fromall", fromall); //서식 전체
  298. model.makeValue("/root/send/req/daychk", model.getValue("/root/main/cond/daychk")); //날짜조회
  299. //시점구분
  300. model.makeValue("/root/send/req/timeall", model.getValue("/root/main/cond/tmppointtimeall"));
  301. model.makeValue("/root/send/req/timebefore", model.getValue("/root/main/cond/tmppointtimebefore"));
  302. model.makeValue("/root/send/req/timeafter", model.getValue("/root/main/cond/tmppointtimeafter"));
  303. model.makeValue("/root/send/req/timeinnon", model.getValue("/root/main/cond/tmppointtimebeforenon"));
  304. model.makeValue("/root/send/req/timeoutnon", model.getValue("/root/main/cond/tmppointtimeafternon"));
  305. model.makeValue("/root/send/req/orderby", model.getValue("/root/main/cond/tmporderbydtl"));
  306. fGridChang();
  307. submit("TRMRI03501");
  308. }
  309. /**
  310. * @desc : 조회시 칼럼 변경
  311. */
  312. function fGridChang(){
  313. var anstendddflag = model.getValue("/root/main/cond/anstendddflag");
  314. if(anstendddflag == "anstenddd"){
  315. //수술과, 집도의 숨김
  316. grd_unprepllist.colhidden(17) = false;
  317. grd_unprepllist.colhidden(18) = false;
  318. } else {
  319. grd_unprepllist.colhidden(17) = true;
  320. grd_unprepllist.colhidden(18) = true;
  321. }
  322. }
  323. /**
  324. * @desc : 그리드 초기화
  325. */
  326. function fInitGrid(){
  327. grd_unprepllist.mergeCells = "bycol";
  328. grd_unprepllist.mergeCol(3) = false;
  329. grd_unprepllist.mergeCol(4) = false;
  330. grd_unprepllist.mergeCol(5) = false;
  331. grd_unprepllist.mergeCol(6) = false;
  332. grd_unprepllist.mergeCol(7) = false;
  333. grd_unprepllist.mergeCol(8) = false;
  334. grd_unprepllist.mergeCol(9) = false;
  335. grd_unprepllist.mergeCol(10) = false;
  336. grd_unprepllist.mergeCol(11) = false;
  337. grd_unprepllist.mergeCol(12) = false;
  338. grd_unprepllist.mergeCol(13) = false;
  339. grd_unprepllist.mergeCol(14) = false;
  340. grd_unprepllist.mergeCol(15) = false;
  341. grd_unprepllist.mergeCol(16) = false;
  342. grd_unprepllist.mergeCol(17) = false;
  343. grd_unprepllist.mergeCol(18) = false;
  344. grd_unprepllist.mergeCol(19) = false;
  345. grd_unprepllist.mergeCol(20) = false;
  346. grd_unprepllist.mergeCol(21) = false;
  347. grd_unprepllist.mergeCol(22) = false;
  348. grd_unprepllist.mergeCol(23) = false;
  349. grd_unprepllist.mergeCol(24) = false;
  350. grd_unprepllist.mergeCol(25) = false;
  351. grd_unprepllist.merge();
  352. }
  353. /**
  354. * @desc : 작성의사, 직종 숨기기 적용
  355. */
  356. function fColHidden(sort){
  357. if(sort == "long"){
  358. grd_unprepllist.colhidden(16) = false;
  359. grd_unprepllist.colhidden(21) = false;
  360. } else {
  361. grd_unprepllist.colhidden(16) = true;
  362. grd_unprepllist.colhidden(21) = true;
  363. }
  364. }
  365. /**
  366. * @desc : 서식명 작성대상일 변경시 조회구분 날짜 구분변경
  367. */
  368. function fFormessChang(dayflag){
  369. var getFormin = "/root/init/rspd/formIn";
  370. var getForminhosp = "/root/init/rspd/forminhosp";
  371. var getFormop = "/root/init/rspd/formop";
  372. var getFormdsch = "/root/init/rspd/formdsch";
  373. var cntFormin = parseInt(model.getXPathValue( "count("+getFormin+")"));
  374. var cntForminhosp = parseInt(model.getXPathValue( "count("+getForminhosp+")"));
  375. var cntFormop = parseInt(model.getXPathValue( "count("+getFormop+")"));
  376. var cntFormdsch = parseInt(model.getXPathValue( "count("+getFormdsch+")"));
  377. model.refresh();
  378. if(dayflag=="orddd"){ //재원
  379. rdo_anstenddd.deselect(0);
  380. rdo_dschdd.deselect(0);
  381. chk_inhospformall.select(0);
  382. chk_opformall.deselect(0);
  383. for(var i = 0; i <= cntFormop ; i++) {
  384. chk_opformcd.deselect(i);
  385. }
  386. chk_dschformall.deselect(0);
  387. for(var i = 0; i <= cntFormdsch ; i++) {
  388. chk_dschformcd.deselect(i);
  389. }
  390. cmb_ddflag.select(2);
  391. }else if(dayflag=="anstenddd"){ //수술
  392. rdo_orddd.deselect(0);
  393. rdo_dschdd.deselect(0);
  394. chk_opformall.select(0);
  395. chk_inhospformall.deselect(0);
  396. for(var i = 0; i <= cntForminhosp ; i++) {
  397. chk_inhospformcd.deselect(i);
  398. }
  399. chk_dschformall.deselect(0);
  400. for(var i = 0; i <= cntFormdsch ; i++) {
  401. chk_dschformcd.deselect(i);
  402. }
  403. cmb_ddflag.select(3);
  404. }else if(dayflag=="dschdd"){ //퇴원
  405. rdo_orddd.deselect(0);
  406. rdo_anstenddd.deselect(0);
  407. chk_dschformall.select(0);
  408. chk_inhospformall.deselect(0);
  409. for(var i = 0; i <= cntForminhosp ; i++) {
  410. chk_inhospformcd.deselect(i);
  411. }
  412. chk_opformall.deselect(0);
  413. for(var i = 0; i <= cntFormop ; i++) {
  414. chk_opformcd.deselect(i);
  415. }
  416. cmb_ddflag.select(0);
  417. } else {
  418. chk_inhospformall.deselect(0);
  419. for(var i = 0; i <= cntForminhosp ; i++) {
  420. chk_inhospformcd.deselect(i);
  421. }
  422. chk_opformall.deselect(0);
  423. for(var i = 0; i <= cntFormop ; i++) {
  424. chk_opformcd.deselect(i);
  425. }
  426. chk_dschformall.deselect(0);
  427. for(var i = 0; i <= cntFormdsch ; i++) {
  428. chk_dschformcd.deselect(i);
  429. }
  430. }
  431. model.refresh();
  432. }
  433. /**
  434. * @desc : 서식 전체 체크
  435. */
  436. function fFormessAll(flag){
  437. var formall = "";
  438. var getForminhosp = "/root/init/rspd/forminhosp";
  439. var cntForminhosp = parseInt(model.getXPathValue( "count("+getForminhosp+")"));
  440. var getFormop = "/root/init/rspd/formop";
  441. var cntFormop = parseInt(model.getXPathValue( "count("+getFormop+")"));
  442. var getFormdsch = "/root/init/rspd/formdsch";
  443. var cntFormdsch = parseInt(model.getXPathValue( "count("+getFormdsch+")"));
  444. if(flag == "I"){ //재원
  445. formall = model.getValue("/root/main/cond/inhospformall");
  446. if(formall == "Y"){
  447. for(var i = 0; i <= cntForminhosp ; i++) {
  448. chk_inhospformcd.deselect(i);
  449. }
  450. }
  451. } else if(flag == "O"){ //수술
  452. formall = model.getValue("/root/main/cond/opformall");
  453. if(formall == "Y"){
  454. for(var i = 0; i <= cntFormop ; i++) {
  455. chk_opformcd.deselect(i);
  456. }
  457. }
  458. } else if(flag == "D"){ //퇴원
  459. formall = model.getValue("/root/main/cond/dschformall");
  460. if(formall == "Y"){
  461. for(var i = 0; i <= cntFormdsch ; i++) {
  462. chk_dschformcd.deselect(i);
  463. }
  464. }
  465. }
  466. model.refresh();
  467. }
  468. /**
  469. * @desc : 재원일 체크
  470. */
  471. function fChkInhospform(){
  472. var dayflag = "";
  473. var ordddflag = model.getValue("/root/main/cond/ordddflag"); //재원일
  474. var anstendddflag = model.getValue("/root/main/cond/anstendddflag"); //수술일
  475. var dschddflag = model.getValue("/root/main/cond/dschddflag"); //퇴원일
  476. if(ordddflag == "orddd" ){
  477. dayflag = ordddflag;
  478. } else if(anstendddflag == "anstenddd" ){
  479. dayflag = anstendddflag;
  480. } else if(dschddflag == "dschdd" ){
  481. dayflag = dschddflag;
  482. }
  483. model.setValue("/root/main/cond/dayflag" , dayflag);
  484. var getForminhosp = "/root/init/rspd/forminhosp";
  485. var cntForminhosp = parseInt(model.getXPathValue( "count("+getForminhosp+")"));
  486. var formcd = model.getValue("/root/main/cond/inhospformcd").getTrim();
  487. if(dayflag=="orddd"){
  488. if(formcd.length > 0){
  489. chk_inhospformall.deselect(0);
  490. }
  491. }
  492. model.refresh();
  493. }
  494. /**
  495. * @desc : 수술일 체크
  496. */
  497. function fChkOpform(){
  498. var dayflag = "";
  499. var ordddflag = model.getValue("/root/main/cond/ordddflag"); //재원일
  500. var anstendddflag = model.getValue("/root/main/cond/anstendddflag"); //수술일
  501. var dschddflag = model.getValue("/root/main/cond/dschddflag"); //퇴원일
  502. if(ordddflag == "orddd" ){
  503. dayflag = ordddflag;
  504. } else if(anstendddflag == "anstenddd" ){
  505. dayflag = anstendddflag;
  506. } else if(dschddflag == "dschdd" ){
  507. dayflag = dschddflag;
  508. }
  509. model.setValue("/root/main/cond/dayflag" , dayflag);
  510. var getFormop = "/root/init/rspd/formop";
  511. var cntFormop = parseInt(model.getXPathValue( "count("+getFormop+")"));
  512. var formcd = model.getValue("/root/main/cond/opformcd").getTrim();
  513. if(dayflag=="anstenddd"){
  514. if(formcd.length > 0){
  515. chk_opformall.deselect(0);
  516. }
  517. }
  518. model.refresh();
  519. }
  520. /**
  521. * @desc : 퇴원일 체크
  522. */
  523. function fChkDschform(){
  524. var dayflag = "";
  525. var ordddflag = model.getValue("/root/main/cond/ordddflag"); //재원일
  526. var anstendddflag = model.getValue("/root/main/cond/anstendddflag"); //수술일
  527. var dschddflag = model.getValue("/root/main/cond/dschddflag"); //퇴원일
  528. if(ordddflag == "orddd" ){
  529. dayflag = ordddflag;
  530. } else if(anstendddflag == "anstenddd" ){
  531. dayflag = anstendddflag;
  532. } else if(dschddflag == "dschdd" ){
  533. dayflag = dschddflag;
  534. }
  535. model.setValue("/root/main/cond/dayflag" , dayflag);
  536. var getFormdsch = "/root/init/rspd/formdsch";
  537. var cntFormdsch = parseInt(model.getXPathValue( "count("+getFormdsch+")"));
  538. var formcd = model.getValue("/root/main/cond/dschformcd").getTrim();
  539. if(dayflag=="dschdd"){
  540. if(formcd.length > 0){
  541. chk_dschformall.deselect(0);
  542. }
  543. }
  544. model.refresh();
  545. }
  546. /**
  547. * @desc : 시점 구분체크
  548. */
  549. function fTimepointChk(value){
  550. var all = model.getValue("/root/main/cond/tmppointtimeall");
  551. var before = model.getValue("/root/main/cond/tmppointtimebefore");
  552. var after = model.getValue("/root/main/cond/tmppointtimeafter");
  553. var beforenon = model.getValue("/root/main/cond/tmppointtimebeforenon");
  554. var afternon = model.getValue("/root/main/cond/tmppointtimeafternon");
  555. if(value == "ALL"){
  556. chk_SearchPointTimeBefore.deselect(0);
  557. chk_SearchPointTimeAfter.deselect(0);
  558. chk_SearchPointTimeBeforeNon.deselect(0);
  559. chk_SearchPointTimeAfterNon.deselect(0);
  560. } else {
  561. if(all == "" && before == "" && after == "" && beforenon == "" && afternon == ""){
  562. chk_SearchPointTimeAll.select(0);
  563. } else {
  564. chk_SearchPointTimeAll.deselect(0);
  565. }
  566. }
  567. }
  568. /**
  569. * @desc 날짜조회 체크
  570. */
  571. function fDayChk(chk){
  572. if(chk == "Y"){
  573. ipt_fromdd.disabled = false;
  574. ipt_todd.disabled = false;
  575. } else {
  576. ipt_fromdd.disabled = true;
  577. ipt_todd.disabled = true;
  578. }
  579. }
  580. /**
  581. * @desc 미비기록 load
  582. */
  583. function fLoadUnPrepRec(){
  584. var currow = grd_unprepllist.row;
  585. var pid = model.getValue("/root/main/unpreplist/unpreplist["+ currow +"]/pid");
  586. var indd = model.getValue("/root/main/unpreplist/unpreplist["+ currow +"]/orddd");
  587. var cretno = model.getValue("/root/main/unpreplist/unpreplist["+ currow +"]/cretno");//생성번호
  588. var formcd = model.getValue("/root/main/unpreplist/unpreplist["+ currow +"]/formcd");
  589. var srcformcd = model.getValue("/root/main/unpreplist/unpreplist["+ currow +"]/srcformcd");
  590. var formrecdd = model.getValue("/root/main/unpreplist/unpreplist["+ currow +"]/orddt");//진료일자
  591. var dschdd = model.getValue("/root/main/unpreplist/unpreplist["+ currow +"]/dschdt");
  592. var formrecseq = model.getValue("/root/main/unpreplist/unpreplist["+ currow +"]/formrecseq");
  593. var oprsrvno = model.getValue("/root/main/unpreplist/unpreplist["+ currow +"]/oprsrvno");
  594. var instcd = getUserInfo("dutplceinstcd");
  595. var opendd = model.getValue("/root/init/openday/M0037M0546/cdid"); // 병원별 오픈일
  596. //2009-07-08 오후 8:03:43 강지훈 수정 : 20091002로 하드코딩된 내역을 공통코드 "M0546" 유형코드 "M0037" 로 관리
  597. var preopendd = opendd.toDate().getAddDate(-1, "D").getDateFormat();
  598. var preOpenMonth = preopendd.substring(4,6);
  599. var preOpenDay = preopendd.substring(6,8);
  600. //2010-01-04 이남익 수정 : 응급실미비 조회를 위한 ordertype 구분
  601. var ordtype = model.getValue("/root/main/unpreplist/unpreplist["+ currow +"]/ordtype");//진료형태(pmihinpt)
  602. formrecdd = formrecdd.substr(0,8);
  603. if(formrecdd <= preopendd){
  604. messageBox(preOpenMonth+"월 "+preOpenDay+"일까지 발생된 미비기록은 구OCS프로그램과 종이에 작성", "I008");
  605. return;
  606. }
  607. //작성미비된 기록인 경우, formrecseq값을 삭제함
  608. if(formrecseq == -1){
  609. formrecseq = "";
  610. }
  611. // 2009.07.01 이경희
  612. // 환자의 퇴원일이 해당 일자 이후인 경우. 즉 재원중인 환자는 dschdd를 현재일자로 넘긴다.
  613. var today = getCurrentDate();
  614. if(dschdd > today) {
  615. dschdd = today;
  616. }
  617. // 수술기록연동
  618. // 수술환자 parameter 구조 ioflag▦pid ▦opcnfmdd▦cretno ▦instcd ▦perfdeptcd▦perfdrid▦patflag ▦procflag▦oprsrvno▦ophistno▦srchdd
  619. // 외래/입원구분▦등록번호▦수술일자▦생성번호▦기관코드▦집도과 ▦집도의 ▦환자구분▦처리구분
  620. // Brief OP Note
  621. if(srcformcd == "0000000676" || srcformcd == "0000003169"){
  622. /*
  623. if(oprsrvno == ""){
  624. messageBox("수술정보를 연결할 수", "I004");
  625. return;
  626. }
  627. */
  628. var param = "T" + "▦" + // ioflag
  629. pid + "▦" + // pid
  630. formrecdd + "▦" + // opcnfmdd
  631. cretno + "▦" + // cretno
  632. instcd + "▦" + // instcd
  633. "" + "▦" + // perfdeptcd
  634. "" + "▦" + // perfdrid
  635. "I" + "▦" + // patflag
  636. "F" + "▦" + // procflag
  637. oprsrvno + "▦" + // oprsrvno
  638. "" + "▦" + // ophistno
  639. dschdd; // srchdd
  640. /*
  641. // 수술기록인 경우 환자원무키 조회를 한다.
  642. // 조회 결과가 1건인 경우에는 기존 로직대로 진행
  643. // 2건인 경우에는 조회된 결과를 팝업으로 띄워 사용자가 어떤 수진을 열것인지 선택
  644. // 선택된 수진으로 열도록 설정.
  645. param = fGetEtcPatPamPrimaryKey(param);
  646. */
  647. //수술기록 이외의 기록연동
  648. }else{
  649. /*추가 2010.01.05 이남익 응급실 관련 추가 이전
  650. var param = "I" + "▦" +
  651. pid + "▦" +
  652. indd + "▦" +
  653. cretno + "▦" +
  654. instcd + "▦" +
  655. dschdd;
  656. */
  657. if(ordtype!="E"){
  658. ordtype = "I";
  659. }
  660. var param = ordtype + "▦" +
  661. pid + "▦" +
  662. indd + "▦" +
  663. cretno + "▦" +
  664. instcd + "▦" +
  665. dschdd;
  666. }
  667. setParameter("condparam", param);
  668. //기록번호가 없는 경우, 작성미비가 아니면 연동불가
  669. setGlobalVariable("linked_formcd" , formcd , "emr");
  670. setGlobalVariable("linked_formrecseq", formrecseq , "emr");
  671. setGlobalVariable("linked_formrecdd" , formrecdd , "emr");
  672. modal("SPMMO08900", 1, 0, 0, "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  673. var gmainwnd = getMainViewer();
  674. setParameter("SMMMO04100_ANSWCNT", "");
  675. gmainwnd.javascript.navigate("SMMMR00100");
  676. model.refresh();
  677. }
  678. /**
  679. * @desc : Number 체크
  680. */
  681. function isNumber(str) {
  682. str += '';
  683. str = str.replace(/^\s*|\s*$/g, '');
  684. if (str == '' || isNaN(str)){
  685. return "N";
  686. }
  687. return "Y";
  688. }
  689. /**
  690. * @desc : 엑셀 저장
  691. */
  692. function fSaveExcel(){
  693. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  694. if (fileName != ""){
  695. grd_unprepllist.saveExcel(fileName, "SheetName", true, true, "", "", "false");
  696. }
  697. }
  698. /**
  699. * @desc : 시점관리 의사별 리스트 출력
  700. */
  701. function fPrntUnPrepInfo(){
  702. model.setValue("/root/main/cond/unprepdeptnm", cmb_deptcd.label);
  703. model.setValue("/root/main/cond/indschflagnm", rdo_inoutflag.label);
  704. model.setValue("/root/main/cond/dateflagnm" , cmb_inoutddflag.label);
  705. model.setValue("/root/main/cond/formnm" , cmb_formcd.label);
  706. model.setValue("/root/main/cond/unprepitemnm", cmb_itemcd.label);
  707. exeReportPreview("RPMRI01800", "XMLSTR");
  708. }