SMMMO04300.js 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 입원환자리스트 ( SMMMO04300_입원환자리스트.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var sINPATLIST_PATH = "/root/main/inpatinfo/inpatlist";
  7. var sDSCHDCLRT_PATH = "/root/main/dschdclrt/dschdclrt";
  8. var sORDERBY = "";
  9. /**
  10. * @desc : 화면 초기화
  11. * @
  12. * @param :
  13. * @return :
  14. * @author : 오지훈
  15. * @---------------------------------------------------
  16. */
  17. function fInitialize_SMMMO04300(){
  18. model.removeNodeset(sINPATLIST_PATH);
  19. model.setValue(root.main.cond.indd, getCurrentDate());
  20. //의료협력 컬럼 추가 (성가 제외) 091019 kimsj
  21. // 하드코드 테이블 한번에 조회하도록 프로그램 수정
  22. fGethardcdArrayList(new Array(
  23. "reqphardcdno|138" , ///진료대상자 의료협력 컬럼 사용여부
  24. "npdeptcd|104", //정신과 과 코드 조회
  25. "hardcdno|63", // 응급의학과
  26. "opdrugresn|76" //수술예방적 항생제 사유 입력 부서코드 조회
  27. ),
  28. new Array(
  29. "root/init",
  30. "root/init",
  31. "root/init",
  32. "root/init"
  33. )
  34. );
  35. /*
  36. mmbfGetHardCodeInfo("/root/send/reqdata", "/root/init/reqphardcdno", 138); //진료대상자 의료협력 컬럼 사용여부
  37. mmbfGetHardCodeInfo("/root/send/reqdata", "/root/init/npdeptcd", 104); //정신과 과 코드 조회
  38. */
  39. if (model.getValue("/root/init/reqphardcdno/hardcd/hardcd") == "N") {
  40. grd_inpatlist.colHidden(grd_inpatlist.colRef("refer")) = true;
  41. grd_inpatlist.colHidden(grd_inpatlist.colRef("replstat")) = true;
  42. }
  43. var openflag = model.getValue(opener.root.list.inpatlistflag);
  44. var reopenflag = model.getValue(opener.root.reopen.reopenflag); //진료대상자 리스트 open여부
  45. var chngcolflag= model.getValue(opener.root.chngcol.chngcolflag); //컬럼변경 여부
  46. if(openflag == "N"){
  47. zbcfGetCodeList(new Array("P0008",
  48. "M0525",
  49. "M0623"),
  50. new Array("/root/init/P0008",
  51. "/root/init/M0525",
  52. "/root/init/M0623"));
  53. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept" , "D"); //부서코드 콤보
  54. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept2", "W"); //병동코드 콤보
  55. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist" , getUserInfo("dutplcecd"), "0330", "", "M", "", "", "P");
  56. if(fContainsHardCD("515", getUserInfo("dutplcecd"))) { // 담당의 항목에 교수도 조회해야 하는 부서
  57. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist2", getUserInfo("dutplcecd"), "0330", "", "T", "", "", "P"); // 담당의에 주치의도 포함 되도록 수정 -2015.11.06 엄영만 요청서:20151102005
  58. } else {
  59. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist2", getUserInfo("dutplcecd"), "0330", "", "A", "", "", "P");
  60. }
  61. /*
  62. mmbfGetHardCodeInfo("/root/send/reqdata", "/root/init/hardcdno", 63); //응급의학과 부서코드 조회
  63. mmbfGetHardCodeInfo("/root/send/reqdata", "/root/init/opdrugresn", 76); //수술예방적 항생제 사유 입력 부서코드 조회
  64. */
  65. addComboInstance("/root/init/orddept" , "deptcd^depthngnm", "-^전체", "dept"); //부서콤보 Item '전체'추가
  66. if (model.getValue(root.main.cond.orddeptcd) == "-") {
  67. model.makeValue("/root/init/userlist/usercombo/userid", "-");
  68. model.makeValue("/root/init/userlist/usercombo/usernm", "전체");
  69. model.makeValue("/root/init/userlist2/usercombo/userid", "-");
  70. model.makeValue("/root/init/userlist2/usercombo/usernm", "전체");
  71. } else {
  72. addComboInstance("/root/init/userlist", "userid^usernm", "-^전체", "usercombo"); //의사콤보 전체항목 추가
  73. addComboInstance("/root/init/userlist2", "userid^usernm", "-^전체", "usercombo");//의사콤보 전체항목 추가
  74. }
  75. addComboInstance("/root/init/orddept2" , "deptcd^depthngnm", "-^전체", "dept"); //병동콤보 전체항목 추가
  76. model.copyNode(opener.root.temp.inpatlist , root.init);
  77. model.setValue(opener.root.list.inpatlistflag, "Y");
  78. if(reopenflag != "Y"){ //다시 열린 경우가 아니면, 기본 조회 조건 설정
  79. model.setValue(root.main.cond.orddeptcd , getUserInfo("dutplcecd")); //진료과
  80. model.setValue(root.main.cond.wardcd , "-"); //병동콤보
  81. var sMediSpclId = model.getValue("/root/init/userlist/usercombo[userid = '" + getUserInfo("userid") + "']/userid"); // 2015.12.03 엄영만 전문의 항목에 있는 사용자면 설정하는 것으로 변경
  82. var sAtdoctId = model.getValue("/root/init/userlist2/usercombo[userid = '" + getUserInfo("userid") + "']/userid"); // 2015.12.03 엄영만 담당의 항목에 있는 사용자면 설정하는 것으로 변경
  83. if(isNull(sMediSpclId)) {
  84. model.setValue(root.main.cond.medispclid, "-"); //전문의
  85. } else {
  86. model.setValue(root.main.cond.medispclid, sMediSpclId); //전문의
  87. }
  88. //if(isNull(sAtdoctId)) {
  89. model.setValue(root.main.cond.atdoctid, "-"); //담당의
  90. //} else {
  91. // model.setValue(root.main.cond.atdoctid, sAtdoctId); //담당의
  92. //}
  93. model.refresh();
  94. }else{ //다시 열린 경우, main에 ordtab의 condlist(화면이 닫힐때 설정된 정보)를 그대로 재설정
  95. try {
  96. model.copyNode(root.main.cond, opener.root.reopen.condlist.condlist);
  97. } catch(E) {
  98. model.setValue("/root/main/cond/orddeptcd", getUserInfo("dutplcecd"));
  99. model.setValue("/root/main/cond/orddrid" , getUserInfo("userid"));
  100. model.refresh();
  101. }
  102. //model.copyNode(root.main.cond, opener.root.reopen.condlist.condlist);
  103. model.setValue(opener.root.reopen.reopenflag, "N");
  104. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist" , cmb_orddept.value, "0330", "", "M", "", "", "P");
  105. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist2", cmb_orddept.value, "0330", "", "A", "", "", "P");
  106. if (model.getValue(root.main.cond.orddeptcd) == "-") {
  107. model.makeValue("/root/init/userlist/usercombo/userid", "-");
  108. model.makeValue("/root/init/userlist/usercombo/usernm", "전체");
  109. model.makeValue("/root/init/userlist2/usercombo/userid", "-");
  110. model.makeValue("/root/init/userlist2/usercombo/usernm", "전체");
  111. } else {
  112. addComboInstance("/root/init/userlist", "userid^usernm", "-^전체", "usercombo"); //의사콤보 전체항목 추가
  113. addComboInstance("/root/init/userlist2", "userid^usernm", "-^전체", "usercombo");//의사콤보 전체항목 추가
  114. }
  115. model.refresh();
  116. }
  117. model.copyNode(opener.root.cond.inpatlist , root.main.cond);
  118. reqOrderInfoOfCol("SMMMO04300", "grd_inpatlist"); //입원환자리스트 컬럼 조회 및 설정
  119. }else if(openflag == "Y"){
  120. model.copyNode(root.init , opener.root.temp.inpatlist);
  121. model.copyNode(root.main.cond, opener.root.cond.inpatlist);
  122. var xmlnode = model.instance1.selectSingleNode("/root/init/userscrnenvinfo/gridseq");
  123. if(xmlnode != null){
  124. var refdata = model.getValue(root.init.userscrnenvinfo.gridseq.compsrefcnts);
  125. var sizedata = model.getValue(root.init.userscrnenvinfo.gridseq.compssizecnts);
  126. var frozencol = model.getValue(root.init.userscrnenvinfo.gridseq.frozencol);
  127. setOrderInfoOfCol("grd_inpatlist", refdata, sizedata, frozencol); //입원환자리스트 컬럼 설정, 기존에 조회한 내용으로 처리
  128. }
  129. }
  130. if(cmb_orddept.label == ""){cmb_orddept.select(1);} //선택된 진료과가 없는 경우 default로 첫번째 설정
  131. if(cmb_medispclid.label == ""){cmb_medispclid.select(1);} //선택된 담당교수가 없는 경우 default로 첫번째 설정
  132. if(chngcolflag == "Y"){ //컬럼설정을 통해 재설정 한 경우, 컬럼순서를 다시 조회 처리
  133. reqOrderInfoOfCol("SMMMO04300", "grd_inpatlist"); //외래환자리스트 컬럼 조회 및 설정
  134. model.setValue(opener.root.chngcol.chngcolflag, "N");
  135. }
  136. var orddeptcd = model.getValue(root.main.cond.orddeptcd);
  137. var medispclid = model.getValue(root.main.cond.medispclid);
  138. var atdoctid = model.getValue(root.main.cond.atdoctid);
  139. var wardcd = model.getValue(root.main.cond.wardcd);
  140. var rtorddeptcd = model.getValue("/root/init/hardcdno/hardcd/hardcd");
  141. if (orddeptcd == rtorddeptcd) { // 진료과가 방사선종양학과 일 경우 caption이 보여짐
  142. caption13.visible = true;
  143. } else {
  144. caption13.visible = false;
  145. }
  146. mmbfGetSubDeptComboList("/root/send/reqdata", "/root/init/subdeptinfo", orddeptcd);
  147. addComboInstance("/root/init/subdeptinfo", "subdeptnm^subdeptcd", "전체^-", "subdeptlist"); //의사콤보 전체항목 추가
  148. model.setValue("/root/main/cond/subdeptcd", "-");
  149. if (orddeptcd == "-" && medispclid == "-" && atdoctid == "-" && wardcd == "-" ) {
  150. messageBox("조회조건 전부가 전체가 될수는", "I004");
  151. return;
  152. } else {
  153. fReqInPatList();
  154. }
  155. opener.javascript.fCtrlBtnDisable(false); //외래환자 리스트 조회가 완료되기 전에는 다른 button을 disabled
  156. }
  157. /**
  158. * @desc : (입원)관심환자등록창 호출
  159. * @
  160. * @param :
  161. * @return :
  162. * @author : 오지훈
  163. * @---------------------------------------------------
  164. */
  165. function fCallWndConcPatRgst(){
  166. var iRow = grd_inpatlist.row;
  167. var pid = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/pid");
  168. var hngnm = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/hngnm");
  169. var indd = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/indd");
  170. var cretno = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/cretno");
  171. var seqno = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/seqno");
  172. var instcd = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/instcd");
  173. var param = "I" + "▩" + pid + "▩" + hngnm + "▩" + indd + "▩" + cretno + "▩" + seqno + "▩" + instcd;
  174. setParameter("param", param);
  175. open("SPMMO08200");
  176. //modal("SPMMO08200");
  177. //fReqInPatList();
  178. }
  179. /**
  180. * @desc : (입원)주의요망환자창 호출
  181. * @
  182. * @param :
  183. * @return :
  184. * @author : 엄영만
  185. * @---------------------------------------------------
  186. */
  187. function fCallWndWarnPat(){
  188. var nCurRow = grd_inpatlist.row;
  189. var sPid = model.getValue(sINPATLIST_PATH + "[" + nCurRow + "]/pid");
  190. var sHngnm = model.getValue(sINPATLIST_PATH + "[" + nCurRow + "]/hngnm");
  191. setParameter("SMMMO19100_warncd" , sPid);
  192. setParameter("SMMMO19100_warnnm" , sHngnm);
  193. modal("SMMMO19100");
  194. clearParameter("SMMMO19100_warncd");
  195. clearParameter("SMMMO19100_warnnm");
  196. }
  197. /**
  198. * @desc : 입원환자 환자 기본정보설정
  199. * @
  200. * @param :
  201. * @return :
  202. * @author : 오지훈
  203. * @---------------------------------------------------
  204. */
  205. function fReqInPatPamInfo(){
  206. var iRow = grd_inpatlist.row;
  207. var pid = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/pid");
  208. var indd = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/indd");
  209. var cretno = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/cretno");
  210. var instcd = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/instcd");
  211. var srchdd = model.getValue("/root/main/cond/indd"); //조회일자
  212. var param;
  213. param = "I" + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
  214. setParameter("condparam", param);
  215. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  216. var useyn = getParameter("SPMMO08900_rtn_useyn");
  217. if(useyn == "Y"){
  218. setParameter("SPMMO08900_rtn_useyn", "");
  219. return true;
  220. }else{
  221. return false;
  222. }
  223. }
  224. /**
  225. * @desc : 내 환자 적용/해제
  226. * @
  227. * @param :
  228. * @event : 팝업창 내 환자 적용 EVENT
  229. * @return :
  230. * @author : 오지훈
  231. * @---------------------------------------------------
  232. */
  233. function fRgstCnclMyPat(){
  234. var mypatinfo = "";
  235. var totrow = grd_inpatlist.rows;
  236. for(var currow = 1 ; currow < totrow ; currow++){
  237. if(grd_inpatlist.isSelected(currow)){
  238. var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
  239. var indd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
  240. var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
  241. var seqno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/seqno");
  242. var deptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
  243. var tmpstr = "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + seqno + "▦" + deptcd + "▩" ;
  244. mypatinfo += tmpstr;
  245. }
  246. }
  247. setParameter("apntflag", "mypat"); //화면 적용 구분을 내 환자 적용
  248. setParameter("mypatinfo", mypatinfo);
  249. modal("SPMMO10700");
  250. fReqInPatList();
  251. }
  252. /**
  253. * @desc : 입원환자 리스트 조회
  254. * @
  255. * @param :
  256. * @event : 조회버튼 EVENT
  257. * @return :
  258. * @author : 오지훈
  259. * @---------------------------------------------------
  260. */
  261. function fReqInPatList(){
  262. model.makeValue("/root/main/cond/srchdd", model.getValue(root.main.cond.indd));
  263. model.copyNode("/root/send/reqdata", "/root/main/cond");
  264. var compsrefcnts = model.getValue("/root/init/userscrnenvinfo/gridseq/compsrefcnts");
  265. var compssizecnts = model.getValue("/root/init/userscrnenvinfo/gridseq/compssizecnts");
  266. if(isNull(compsrefcnts)) compsrefcnts = "";
  267. if(isNull(compssizecnts)) compssizecnts = "";
  268. model.makeValue("/root/send/reqdata/compsrefcnts", compsrefcnts);
  269. model.makeValue("/root/send/reqdata/compssizecnts", compssizecnts);
  270. if(submit("TRMMO04301")){
  271. model.copyNode(parent.root.temp.inpatlist, root.init);
  272. model.copyNode(parent.root.cond.inpatlist, root.main.cond);
  273. }
  274. var orderby = model.getValue(root.main.cond.orderby);
  275. var sortcol = model.getValue(root.main.cond.sortcol);
  276. if(sortcol != "" && orderby != ""){
  277. sORDERBY = orderby;
  278. //nodeListSort(grd_inpatlist.nodeset, grd_inpatlist.colAttribute(sortcol, "ref"), sORDERBY);
  279. grd_inpatlist.colsort(sortcol) = sORDERBY
  280. grd_inpatlist.sort(1, 1, grd_inpatlist.rows -1, grd_inpatlist.cols -1) = "usersort";
  281. grd_inpatlist.gridToInstance();
  282. }
  283. model.setValue(root.main.cond.totcnt, grd_inpatlist.rows - 1);
  284. model.refresh();
  285. //내환자가 적용된 경우에만 색깔 표시
  286. fChngGrdCellColor();
  287. }
  288. /**
  289. * @desc : 환자 선택 후, 환자 정보 조회 및 기록지 화면 연동
  290. * @
  291. * @param :
  292. * @return :
  293. * @author : 오지훈
  294. * @---------------------------------------------------
  295. */
  296. function fSelectInPat(){
  297. // 환자 선택 로그 시작
  298. var ordrecflag = opener.model.getValue("/root/main/cond/ordrecflag");
  299. fStartLogCheck("fSelectInPat");
  300. var step1Elapsed = 0; // 외래 환자선택 진행 가능여부 체크 시간
  301. var step2Elapsed = 0; // 입원 환자선택 상단정보 설정 시간
  302. var step3Elapsed = 0; // 처방+기록+그외 팝업창 처리
  303. var currow = grd_inpatlist.row;
  304. if(currow < 1){
  305. return;
  306. }
  307. // 진행가능 한지 여부 체크
  308. fStartLogTempCheck("fSelectInPat_Step1");
  309. //처방, CP화면에 modal 또는 modaless가 뜬 경우, 환자 선택 불가
  310. if(fChkScrnDisable() == false){
  311. return;
  312. }
  313. var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
  314. var orddd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
  315. var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
  316. var ordtype = model.getValue(sINPATLIST_PATH + "[" + currow + "]/ordtype");
  317. var orddeptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
  318. setParameter("SPMMO016000_resnflag" , "P"); // 진료대상자에서 수술시 예방적 항생제를 띄울경우
  319. setParameter("SPMMO021100_resnflag" , "001"); // 진료대상자에서 정신과 차등수가제도 도입과 관련된 특정내역 팝업을 띄울경우
  320. setParameter("SPMMO016000_pid" , pid);
  321. setParameter("SPMMO016000_orddd" , orddd);
  322. setParameter("SPMMO016000_cretno" , cretno);
  323. setParameter("SPMMO016000_ordtype" , ordtype);
  324. setParameter("SPMMO016000_orddeptcd" , orddeptcd);
  325. var hngnm = model.getValue(sINPATLIST_PATH + "[" + currow + "]/hngnm");
  326. var reqptype = model.getValue(sINPATLIST_PATH + "[" + currow + "]/reqptype");
  327. var stnddd = model.getValue("/root/main/cond/indd");
  328. if( getGlobalVariable("able_sel_patlist", "M") == "N" ) { // 환자 선택 가능 여부 체크 2012.09.03 엄영만
  329. messageBox("현재 로그인한 '"+ getUserInfo("dutplcenm") +"' 부서는 기록저장 및 처방발행이 불가능한 부서 입니다.\n\n다시 로그인 후 진행 하십시오.","E");
  330. return false;
  331. }
  332. //환자수술 여부 및 수술처방 확인, 수술처방이 없는 경우 처방화면을 blocking
  333. if(fChkPatOpPrcp(pid, stnddd, cretno)==false){
  334. var opcnfmdd = model.getValue(root.main.opprcpinfo.opprcpinfo.opcnfmdd);
  335. //opcnfmdd = opcnfmdd.substring(0, 4) + "-" + opcnfmdd.substring(4, 6) + "-" + opcnfmdd.substring(6, 8);
  336. //messageBox("[" + hngnm + "]환자의 [" + opcnfmdd + "]일자 수술 처방을 수술탭에서", "C001");
  337. messageBox("수술 처방을 수술탭에서", "C001");
  338. }
  339. fChkPatDSCBook(pid, orddd, orddeptcd);
  340. var opstatcd = model.getValue("/root/main/opprcpinfo/opprcpinfo/opstatcd");
  341. if (opstatcd =="10") {
  342. messageBox("수술마취의뢰 내역에 환자 구분이 DSC로 되어 있습니다. \n\n 재원중인 경우 DSC 로 수술마취 확정이 불가합니다.\n\n 수술마취의뢰 정보를 확인하시기 바랍니다.", "");
  343. } else if (opstatcd =="20") {
  344. messageBox("수술마취의뢰 내역에 환자 구분이 DSC로 되어 있습니다. \n\n 수술 여부에 따라 변경 또는 취소 의뢰를 해야 합니다. \n\n 수술마취의뢰 정보를 확인하시기 바랍니다.", "");
  345. }
  346. //CP환자 여부 확인
  347. if(fChkCPPatValid(currow)==false){
  348. return;
  349. }
  350. // 진료기록에 수정된 사항이 있을 경우 저장할 것인지 묻는 함수 호출 : 2009. 07. 27 김영학
  351. var mainobj = getMainViewer();
  352. var mainscrnid = mainobj.javascript.getScreenID(); //메인화면의 기록지 ID
  353. if(mainscrnid == "SMMMR00100"){
  354. var prvIntRecPamInfRtn = mainobj.window.javascript.fPrevInitRecPamInfo();
  355. if(prvIntRecPamInfRtn == false){
  356. return;
  357. }// 기록지에 필수 입력사항을 입력하지 않았을 때 그냥 넘어가 버리는 오류 수정 20100305 LYJ
  358. }
  359. step1Elapsed = fEndLogTempCheck("fSelectInPat_Step1");
  360. // 상단정보 설정
  361. fStartLogTempCheck("fSelectInPat_Step2");
  362. if(!fReqInPatPamInfo()) { return; }
  363. step2Elapsed = fEndLogTempCheck("fSelectInPat_Step2");
  364. if (fChkOpDrugResn() == false) {
  365. return;
  366. }
  367. if (fChkNpDiffCalcScorResn() == false) {
  368. return;
  369. }
  370. // 진료기록, 처방화면 연동
  371. fStartLogTempCheck("fSelectInPat_Step3");
  372. var recflag = opener.model.getValue("/root/main/cond/recflag");
  373. opener.javascript.setParameter("SMMMO04100_reqptype", reqptype);
  374. opener.javascript.fOpenPrcpMainWnd(recflag); //처방화면 open
  375. step3Elapsed = fEndLogTempCheck("fSelectInPat_Step3");
  376. var recnaviyn = opener.model.getValue("/root/main/cond/recnaviyn");
  377. var mainObj = getMainViewer();
  378. var curPrcpObj = mainObj.javascript.getOpenWindow("SMMMO00100"); //활성화된 처방Main 화면 object loading
  379. if (curPrcpObj != null && recnaviyn == "N") { // 처방창이 팝업 된경우만 체크
  380. var sLogParam = "userid:" + getUserInfo("userid") + "|" // item02
  381. + "instcd:" + model.getValue(sINPATLIST_PATH + "["+ currow +"]/instcd") + "|" // item03
  382. + "pid:" + model.getValue(sINPATLIST_PATH + "["+ currow +"]/pid") + "|" // item04
  383. + "orddd:" + model.getValue(sINPATLIST_PATH + "["+ currow +"]/indd") + "|" // item05
  384. + "cretno:" + model.getValue(sINPATLIST_PATH + "["+ currow +"]/cretno") + "|" // item06
  385. + "orddeptcd:" + model.getValue(sINPATLIST_PATH + "["+ currow +"]/orddeptcd") + "|" // item07
  386. + "orddrid:" + model.getValue(sINPATLIST_PATH + "["+ currow +"]/medispclid") + "|" // item08
  387. + step1Elapsed + "|" // 진행가능 한지 여부 체크 // item09
  388. + step2Elapsed + "|" // 상단정보 // item10
  389. + step3Elapsed // 처방+기록+그외 팝업창 처리 // item11
  390. ;
  391. fEndLogCheck("fSelectInPat", sLogParam);
  392. }
  393. }
  394. /**
  395. * @desc : 전공의 등록
  396. * @
  397. * @param :
  398. * @event : 팝업창 내 환자 적용 EVENT
  399. * @return :
  400. * @author : 오지훈
  401. * @---------------------------------------------------
  402. */
  403. function fRgstCnclAtDoct(){
  404. var mypatinfo = "";
  405. var deptcd = model.getValue("/root/main/cond/orddeptcd");
  406. var userdeptcd = getUserInfo("dutplcecd");
  407. if (deptcd != userdeptcd) {
  408. messageBox("환자의 진료과가 다르면 담당의 적용을 할 수 없습니다.", "I");
  409. return;
  410. }
  411. var totrow = grd_inpatlist.rows;
  412. for(var currow = 1 ; currow < totrow ; currow++){
  413. if(grd_inpatlist.isSelected(currow)){
  414. var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
  415. var indd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
  416. var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
  417. var seqno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/seqno");
  418. var orddeptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
  419. var tmpstr = "▦" + pid +
  420. "▦" + indd +
  421. "▦" + cretno +
  422. "▦" + seqno +
  423. "▦" + orddeptcd +
  424. "▩";
  425. mypatinfo += tmpstr;
  426. }
  427. }
  428. setParameter("apntflag" , "atdoct"); //화면 적용 구분을 전공의 등록으로 적용
  429. setParameter("mypatinfo", mypatinfo);
  430. modal("SPMMO16200");
  431. fReqInPatList();
  432. }
  433. /**
  434. * @desc : 협진관리 화면 open
  435. * @
  436. * @param :
  437. * @return :
  438. * @author : 오지훈
  439. * @---------------------------------------------------
  440. */
  441. function fOpenCnstPat(){
  442. var currow = grd_inpatlist.row;
  443. if(currow < 1){
  444. return;
  445. }
  446. var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
  447. var hngnm = model.getValue(sINPATLIST_PATH + "[" + currow + "]/hngnm");
  448. var sa = model.getValue(sINPATLIST_PATH + "[" + currow + "]/sa");
  449. var orddeptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
  450. var medispclid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/medispclid");
  451. var medispclnm = model.getValue(sINPATLIST_PATH + "[" + currow + "]/medispclnm");
  452. var indd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
  453. var roomcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/roomcd");
  454. var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
  455. var patinfo = hngnm + "▦" + sa + "▦" + orddeptcd + "▦" + medispclid + "▦" + cretno + "▦" + medispclnm;
  456. setParameter("SPMMO03600_pid" , pid);
  457. setParameter("SPMMO03600_orddd" , indd);
  458. setParameter("SPMMO03600_roomcd" , roomcd);
  459. setParameter("SPMMO03600_patinfo", patinfo);
  460. setParameter("SPMMO03600_ioflag" , "I");
  461. modal("SPMMO03600");
  462. fReqInPatList();
  463. }
  464. /**
  465. * @desc : 간호 TPR 조회
  466. * @
  467. * @param :
  468. * @return :
  469. * @author :박유진 20091102
  470. * @---------------------------------------------------
  471. */
  472. function fCallCareTPRInfo(){
  473. var currow = grd_inpatlist.row;
  474. var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
  475. var indd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
  476. var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
  477. var instcd = getUserInfo("dutplceinstcd");
  478. setParameter("SMMNR00900_Param", "pid▦indd▦cretno▦instcd▦gbn▩" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd +"▦dr▩");
  479. var curNurTprObj = getOpenWindow("SMMNR00900"); //활성화된 간호 TPR 화면 object loading
  480. if(curNurTprObj != null){ //간호 TPR 화면 refresh
  481. curNurTprObj.javascript.fInitViewer();
  482. curNurTprObj.javascript.fInitialize("init");
  483. } else {
  484. open("SMMNR00900");
  485. }
  486. }
  487. /**
  488. * @desc : 그리드 data 엑셀화일로 저장
  489. * @
  490. * @param :
  491. * @return :
  492. * @author : 오지훈
  493. * @---------------------------------------------------
  494. */
  495. function fSaveGridToExcel(){
  496. saveGridToExcel(grd_inpatlist);
  497. }
  498. /**
  499. * @desc : CP환자 여부 검사
  500. * @
  501. * @param :
  502. * @return :
  503. * @author : 오지훈
  504. * @---------------------------------------------------
  505. */
  506. function fChkCPPatValid(currow){
  507. var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
  508. var orddd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
  509. var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
  510. var cpyn = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cpyn");
  511. var hngnm = model.getValue(sINPATLIST_PATH + "[" + currow + "]/hngnm");
  512. var orddeptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
  513. var ordtype = model.getValue(sINPATLIST_PATH + "[" + currow + "]/ordtype");
  514. if(isNull(orddeptcd)) orddeptcd = model.getValue("/root/main/cond/orddeptcd");
  515. if(isNull(ordtype)) ordtype = "I";
  516. model.removeNodeset("/root/send/reqdata");
  517. model.makeValue("/root/send/reqdata/pid" , pid);
  518. model.makeValue("/root/send/reqdata/orddd" , orddd);
  519. model.makeValue("/root/send/reqdata/cretno" , cretno);
  520. model.makeValue("/root/send/reqdata/hngnm" , hngnm); //추가(2008.08.25)
  521. model.makeValue("/root/send/reqdata/prcpgenrflag", ordtype);
  522. model.makeValue("/root/send/reqdata/srchtabflag" , "I"); //대상자리스트탭(I/D):조회결과orddd,cretno는 외래이력의 수전정보임
  523. if(submit("TRMMO04303",false)==true){
  524. var cppatnode = model.instance1.selectNodes("/root/init/rsltgetdata/getdata");
  525. if(cppatnode.length < 1){ //cp적용환자 tbl에 유효한 데이터가 없는 경우
  526. model.setValue(opener.root.cpflag, "N");
  527. return true;
  528. }else{ //CP적용환자 tbl에 유효한 데이터가 있는 경우
  529. var appstat = model.getValue(root.init.rsltgetdata.getdata.appstat);
  530. var cpgnm = model.getValue(root.init.rsltgetdata.getdata.cpgnm);
  531. var cpgappno = model.getValue(root.init.rsltgetdata.getdata.cpgappno);
  532. var msgcnts = model.getValue(root.init.rsltgetdata.getdata.msgcnts);
  533. var msgflag = model.getValue(root.init.rsltgetdata.getdata.msgflag);
  534. var prtlflagcd = model.getValue(root.init.rsltgetdata.getdata.prtlflagcd); //01:CP,02:CPG
  535. if(appstat == 52){ //case52: 입원장 CP
  536. var rtnval = messageBox(msgcnts, msgflag);
  537. if(rtnval == 6){
  538. model.setValue(opener.root.cpflag, "X"); // CP Main open
  539. return true;
  540. }else{
  541. model.setValue(opener.root.cpflag, "N");
  542. if(fUpdtCPPatAppStatVal(41) != false && instance1.selectSingleNode(sINPATLIST_PATH + "[" + currow + "]/cpyn") != null){ //41 : CP 취소
  543. model.setValue(sINPATLIST_PATH + "[" + currow + "]/cpyn", "N");
  544. return;
  545. }else{
  546. return false;
  547. }
  548. }
  549. }else{
  550. if( prtlflagcd == "02" && isNull(appstat) && msgflag == "P" ){ //모니터링구분:대상자탐색 Case. CPG & 호출flag:Popup(appyn:평가용여부)
  551. //CPG적용대상자 알림 팝업 호출 (2009.05.04)
  552. setParameter("SMMMO041_hngnm" , hngnm);
  553. setParameter("SMMMO041_pid" , pid);
  554. setParameter("SMMMO041_cretno" , cretno);
  555. setParameter("SMMMO041_orddd" , orddd);
  556. setParameter("SMMMO041_ordtype" , ordtype);
  557. setParameter("SMMMO041_orddeptcd" , orddeptcd);
  558. setParameter("SMMMO041_slipnm" , model.getValue(root.init.rsltgetdata.getdata.msgcnts)); //cpgno▦cpghistseq▦cpgnm▦slipno▦slipnm▦valusgeyn▦valunm▦guidedocucnts
  559. setParameter("SMMMO041_cpgmntrflag", appstat); //null, SPMMP03200화면에서 cpgmntrflag(M or S)으로 따짐
  560. setParameter("SMMMO041_cpgappno" , cpgappno); //적용중인 CP가 존재하면 값이 있음
  561. setParameter("SMMMO041_cpgnm" , cpgnm); //적용중인 CP가 존재하면 값이 있음
  562. modal("SPMMP03200"); //CP대상자 알람 팝업
  563. if( cpgappno > 0 && cpgappno != getParameter("SPMMP032_cpgappno") && instance1.selectSingleNode(sINPATLIST_PATH + "[" + currow + "]/cpyn") != null){ //진행중인 CP가 있는데 팝업에서 Drop한 경우 CP여부 N으로..
  564. model.setValue(sINPATLIST_PATH + "[" + currow + "]/cpyn", "N");
  565. }
  566. if( !isNull(getParameter("SPMMP032_cpgappno")) && getParameter("SPMMP032_cpgappno") > 0 ){
  567. model.setValue(opener.root.cpflag, "Y"); //CPG적용한 경우, MGPS 호출
  568. }else{
  569. model.setValue(opener.root.cpflag, "N"); //미적용 시 처방 화면 호출
  570. }
  571. clearParameter("SPMMP032_cpgappno");
  572. clearParameter("SMMMO041_hngnm");
  573. clearParameter("SMMMO041_pid");
  574. clearParameter("SMMMO041_cretno");
  575. clearParameter("SMMMO041_orddd");
  576. clearParameter("SMMMO041_ordtype");
  577. clearParameter("SMMMO041_orddeptcd");
  578. clearParameter("SMMMO041_slipnm");
  579. clearParameter("SMMMO041_cpgmntrflag");
  580. clearParameter("SMMMO041_cpgappno");
  581. clearParameter("SMMMO041_cpgnm");
  582. return true;
  583. } else{
  584. //case 12 : D0 ~ D1 CP
  585. //그외 case : (10 : 진행중...)
  586. if( !isNull(msgcnts) && !isNull(msgflag) ){
  587. //12: D0 처방일과 == 입원일 -> Drop 유도
  588. //그외: 오늘날짜 > CP퇴원예정일 -> Drop 유도
  589. messageBox(msgcnts, msgflag);
  590. setParameter("SMMMO043_cpgappno", cpgappno); //drop 팝업에서 인식할 수 있는 param
  591. setParameter("SMMMO043_drop" , "N"); //drop 팝업에서 인식할 수 있는 param
  592. modal("SPMMP02300"); //Drop 팝업 호출
  593. model.setValue(opener.root.cpflag, "N");
  594. if( getParameter("SMMMO043_drop") == "Y" ){
  595. model.setValue(sINPATLIST_PATH + "[" + currow + "]/cpyn", "N");
  596. }else{
  597. return false;
  598. }
  599. clearParameter("SMMMO043_cpgappno");
  600. clearParameter("SMMMO043_drop");
  601. return true;
  602. }
  603. model.setValue(opener.root.cpflag, "Y");
  604. return true;
  605. }
  606. }
  607. }
  608. } //end submit
  609. }
  610. /**
  611. * @desc : 입원환자 퇴원예고 여부 설정
  612. * @
  613. * @param :
  614. * @return :
  615. * @author : 오지훈
  616. * @---------------------------------------------------
  617. */
  618. function fReqDschDclrtInfo(){
  619. var currow = grd_inpatlist.row;
  620. if(currow < 1){
  621. return;
  622. }
  623. var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
  624. var indd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
  625. var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
  626. var seqno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/seqno");
  627. var stnddd = model.getValue("/root/main/cond/indd");
  628. setParameter("SPMMO15200_pid" , pid);
  629. setParameter("SPMMO15200_indd" , indd);
  630. setParameter("SPMMO15200_cretno", cretno);
  631. setParameter("SPMMO15200_seqno" , seqno);
  632. setParameter("SPMMO15200_stnddd", stnddd);
  633. modal("SPMMO15200");
  634. fReqInPatList();
  635. }
  636. /**
  637. * @desc : 미수행처방관리 화면 Open
  638. * @
  639. * @param :
  640. * @return :
  641. * @author : 오지훈
  642. * @---------------------------------------------------
  643. */
  644. function fOpenInFinPrcp(){
  645. var currow = grd_inpatlist.row;
  646. if(currow < 1){
  647. return;
  648. }
  649. var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
  650. var orddeptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
  651. var medispclid= model.getValue(sINPATLIST_PATH + "[" + currow + "]/medispclid");
  652. setParameter("SMMMO02800_pid" , pid);
  653. setParameter("SMMMO02800_ioflag" , "I");
  654. setParameter("SMMMO02800_orddeptcd", orddeptcd);
  655. setParameter("SMMMO02800_orddrid" , medispclid);
  656. open("SMMMO02800");
  657. }
  658. /**
  659. * @desc : 입원환자리스트 색상설정
  660. * : 내환자적용 환자는 color instance에 ffffff이외의 값이 들어옴
  661. * @param :
  662. * @return :
  663. * @author : 오지훈
  664. * @---------------------------------------------------
  665. */
  666. function fChngGrdCellColor(){
  667. for(var currow = 1; currow < grd_inpatlist.rows; currow++){
  668. var color = model.getValue(sINPATLIST_PATH + "[" + currow + "]/color");
  669. if(color == ""){
  670. color = "ffffff";
  671. }
  672. grd_inpatlist.rowStyle(currow, "data", "background-color") = "#" + color;
  673. }
  674. grd_inpatlist.refresh();
  675. }
  676. /**
  677. * @desc : 수술시 예방적 항생제 평가관련 사유를 입력
  678. * @param :
  679. * @return :
  680. * @author : 김영학
  681. * @---------------------------------------------------
  682. */
  683. function fChkOpDrugResn() {
  684. var currow = grd_inpatlist.row;
  685. var orddeptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
  686. var ordtype = model.getValue(sINPATLIST_PATH + "[" + currow + "]/ordtype");
  687. var hardcd = model.getValue("/root/init/opdrugresn/hardcd[hardcd='" + orddeptcd + "']/hardcd");
  688. var cdseqno = model.getValue("/root/init/opdrugresn/hardcd[hardcd='" + orddeptcd + "']/cdseqno");
  689. setParameter("SPMMO016000_seqno" , cdseqno);
  690. if (!isNull(hardcd)) {
  691. var resnyn = getPatientInfoDetail("resnyn");
  692. if(ordtype =="I" && isNull(resnyn)) {
  693. modal("SPMMO16000", "", "510px", "427px", "SPMMO16000", "", "", "sysmenu:hidden; min:visible; max:visible; icon:visible", false);
  694. }
  695. }
  696. return true;
  697. }
  698. /**
  699. * @desc : 입원환자 선택시 입원일이후 DSC 수술의뢰 또는 확정이 되어 있는 경우 경고를 띄워줌
  700. * @param :
  701. * @return :
  702. * @author : 김영학
  703. * @---------------------------------------------------
  704. */
  705. function fChkPatDSCBook(pid, orddd, orddeptcd){
  706. model.removeNodeset("root/send/reqdata");
  707. model.makeValue("/root/send/reqdata/pid" , pid);
  708. model.makeValue("/root/send/reqdata/orddd" , orddd);
  709. model.makeValue("/root/send/reqdata/orddeptcd" , orddeptcd);
  710. submit("TRMMO04309",false);
  711. }
  712. /**
  713. * @desc : ICU 입실 적정성
  714. * @
  715. * @param :
  716. * @return :
  717. * @author : 오지훈
  718. * @---------------------------------------------------
  719. */
  720. function fOpenIcuINChk(){
  721. var currow = grd_inpatlist.row;
  722. if(currow < 1){
  723. return;
  724. }
  725. var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
  726. var medispclid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/medispclid");
  727. var orddeptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
  728. var indd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
  729. var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
  730. setParameter("openmode" , "newform"); //오픈모드
  731. setParameter("pid" , pid); //등록번호
  732. setParameter("orddd" , indd); //진료일
  733. setParameter("cretno" , cretno); //생성번호
  734. setParameter("ioflag" , "I"); //내원구분
  735. setParameter("orddeptcd" , orddeptcd); //진료과
  736. setParameter("orddrid" , medispclid); //주치의(진료의)
  737. setParameter("formcd" , "0800000532"); //서식코드
  738. modal("SSMMR01100", 1, 0, 0, "", "", "");
  739. }
  740. function fPrtPatList() {
  741. var rptid = "RPMMO04103";
  742. var desNode = "/root/main/inpatinfo/inpatlist";
  743. model.makeValue("/root/main/cond/orddeptnm", cmb_orddept.label);
  744. model.makeValue("/root/main/cond/medispclnm", cmb_medispclid.label);
  745. model.makeValue("/root/main/cond/atdocnm", combo4.label);
  746. exeReportPreview(rptid, "XMLSTR", desNode);
  747. }
  748. /**
  749. * @desc : 정신과 의료급여 환자 환자수진별 입/퇴원 유형 입력 - 정신과 의료급여환자 차등수가제 관련 추가. 요청번호 :
  750. * @param :
  751. * @return :
  752. * @author : 김영학
  753. * @---------------------------------------------------
  754. */
  755. function fChkNpDiffCalcScorResn() {
  756. var currow = grd_inpatlist.row;
  757. var orddeptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
  758. var ordtype = model.getValue(sINPATLIST_PATH + "[" + currow + "]/ordtype");
  759. var insukind = model.getValue(sINPATLIST_PATH + "[" + currow + "]/insukind");
  760. var patdeptcd = model.getValue("/root/init/npdeptcd/hardcd[hardcd='" + orddeptcd + "']/hardcd");
  761. var userdeptcd = model.getValue("/root/init/npdeptcd/hardcd[hardcd='" + getUserInfo("dutplcecd") + "']/hardcd");
  762. if (!isNull(patdeptcd) && !isNull(userdeptcd)) {
  763. var resnyn = getPatientInfoDetail("npresnyn");
  764. if(ordtype == "I" && resnyn == "000" && (insukind == "21" || insukind == "22")) {
  765. setParameter ( "SPMMO21100_title1" , "입원유형입력"); //정신과 의료급여 환자
  766. setParameter ( "SPMMO21100_title2" , "정신과 차등수가제도 특정내역"); //정신과 의료급여 환자
  767. setParameter ( "SPMMO21100_resnflag" , "001"); //입원유형사유입력
  768. setParameter ( "SPMMO21100_hardcdno" , "174"); //입원유형사유 HARDCODE 번호
  769. setParameter ( "SPMMO21100_pid" , model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid"));
  770. setParameter ( "SPMMO21100_orddd" , model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd"));
  771. setParameter ( "SPMMO21100_cretno" , model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno"));
  772. setParameter ( "SPMMO21100_orddeptcd" , orddeptcd);
  773. setParameter ( "SPMMO21100_ordtype" , ordtype);
  774. modal("SPMMO21100", "", "510px", "427px", "SPMMO21100", "", "", "sysmenu:hidden; min:visible; max:visible; icon:visible", false);
  775. }
  776. }
  777. return true;
  778. }
  779. /**
  780. * @desc : 안전사고 보고
  781. * @param :
  782. * @return :
  783. * @author : 엄영만
  784. * @---------------------------------------------------
  785. */
  786. function fPatQi(){
  787. var currow = grd_inpatlist.row;
  788. var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
  789. var orddd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
  790. var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
  791. var ordtype = "I";
  792. var oprsrvno = "";
  793. setParameter("SMMQR00100_PARAM2", pid + "▦" + orddd + "▦" + cretno + "▦" + ordtype+"▦" + oprsrvno);
  794. modal("../../../emr/qiweb/xrw/SMMQR00100", "","", "", "SMMQR00100", "", "");
  795. }
  796. /**
  797. * @desc : 환자라벨출력
  798. * @param :
  799. * @return :
  800. * @author : 엄영만
  801. * @---------------------------------------------------
  802. */
  803. function fPrintPatLabel(){
  804. var currow = grd_inpatlist.row;
  805. var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
  806. var patnm = model.getValue(sINPATLIST_PATH + "[" + currow + "]/hngnm");
  807. var sexage = model.getValue(sINPATLIST_PATH + "[" + currow + "]/sa");
  808. setParameter("SMMMB00100_scrnid", "SMMMO04100");
  809. setParameter("SMMMB00100_pid", pid);
  810. setParameter("SMMMB00100_patnm", patnm);
  811. setParameter("SMMMB00100_sexage", sexage);
  812. modal("SMMMB00100");
  813. }