SMMNP06300.js 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203
  1. /* ---------------------------------------------------------------------
  2. DSC MAIN 등록 (SMMNP06000.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2015.05.02
  7. ---------------------------------------------------------------------- */
  8. // --------------------------------------------------
  9. // 화면 Loading시 처리하는 함수
  10. // --------------------------------------------------
  11. function fInitScreen() {
  12. ipt_opcnfmdd.value = getCurrentDate();
  13. var instcd = getUserInfo("dutplceinstcd");
  14. var standard_yn = "orduseyn";
  15. var ord_deptflag = 'D';
  16. var rslt_ref = "/root/main/cond/orddeptlist";
  17. var sort_field = "depthngnm";
  18. var sort_method = "asc";
  19. rdo_dschflag.value = 'D';
  20. fGetNursHardCdInfo("'049', '077'", ipt_opcnfmdd.value);
  21. if(getNodesetCnt(model, "/root/code/codeinfo/codelist/cdid") < 1 ){
  22. messageBox("부서 세팅 기준자료를 확인하시기 바랍니다.", "I000");
  23. return;
  24. }
  25. model.setValue("/root/main/cond/prestimportid", getScreenMenuParameter()); // tab 기본값 (DSC Main)
  26. model.setValue("/root/main/cond/wardcd", model.getValue("/root/code/codeinfo/codelist/cdid"));
  27. model.toggle("case_dm");
  28. zbcfGetDeptCodeList(instcd, standard_yn, ord_deptflag, rslt_ref, sort_field, sort_method);
  29. zbcfGetCodeList(new Array("M0065"), new Array("/root/init/M0065list")); //수술환자의 현재 위치 장소에 대한 종류
  30. model.removenode("/root/send");
  31. model.makeNode("/root/send");
  32. model.makeValue("/root/send/opcnfmdd" ,ipt_opcnfmdd.value );
  33. submit("TRMNP06301");
  34. fInqurySelectedPrgm(); // 오픈시 수술확정리스트 조회
  35. grd_dscList.frozenCols = grd_dscList.colRef("indschstat");
  36. // 바코드OCX 생성
  37. lzzfMakeBrcdPrntObjHanDo("CommAX");
  38. }
  39. // --------------------------------------------------
  40. // 조회 클릭시 탭상태값에 따른 조회
  41. // --------------------------------------------------
  42. function fInqurySelectedPrgm()
  43. {
  44. switch(model.getValue("/root/main/cond/prestimportid")) {
  45. // 외래예약처방전송탭 추가_20090804
  46. case "rp" :
  47. btn_rp.selected = true; //예약처방전송탭 활성화
  48. // cap_color.visible = false;
  49. // cap_uncnfm.visible = false;
  50. // cap_prcp.visible = false;
  51. //상단정보 받아옴
  52. var paminfo = getGlobalVariable("paminfo");
  53. if(paminfo.length > 0) { //원무 정보(기본 정보)가 있는 경우
  54. //설정된 상단정보를 불러옴
  55. model.removenode("/root/main_om/paminfo");
  56. model.makeNode("/root/main_om/paminfo");
  57. setCSVToNode("/root/main_om/paminfo", paminfo);
  58. //상단 정보를 이용하여 프로그램 수행
  59. var pid = model.getValue("/root/main_om/paminfo/list/pid");
  60. var indd = model.getValue("/root/main_om/paminfo/list/indd");
  61. var cretno = model.getValue("/root/main_om/paminfo/list/cretno");
  62. var ordtype = model.getValue("/root/main_om/paminfo/list/ioflag");
  63. var medispclid = model.getValue("/root/main_om/paminfo/list/medispclid");
  64. var sexage = model.getValue("/root/main_om/paminfo/list/sex")+"/"+model.getValue("/root/main_om/paminfo/list/age");
  65. var hngnm = model.getValue("/root/main_om/paminfo/list/hngnm");
  66. var roomcd = model.getValue("/root/main_om/paminfo/list/roomcd");
  67. model.toggle("case_rp");
  68. fGetRsrvPrcpChemo(pid, indd, cretno, ordtype, medispclid, roomcd, sexage, hngnm);
  69. }else{
  70. messageBox("환자가 선택되지 않았습니다.","I");
  71. }
  72. break;
  73. case "om": // Order Manage 호출
  74. btn_om.selected = true;
  75. //cap_color.visible = true;
  76. //cap_uncnfm.visible = true;
  77. //cap_prcp.visible = true;
  78. cap_color.attribute("left") = "15px";
  79. cap_uncnfm.attribute("left") = "35px";
  80. cap_prcp.attribute("left") = "120px";
  81. cap_prcp.attribute("color") = "#0000ff";
  82. fnOrderManageParam(); //(20080417)
  83. //model.setValue("/root/main/cond/orddd", model.getValue("/root/main/cond/opcnfmdd")); // 업무일자(20080417)
  84. // DCC용 조회조건 추가
  85. model.makeValue("/root/main_om/cond/dschflag", model.getValue("/root/main/cond/dschflag"));
  86. model.makeValue("/root/main_om/cond/ampmflag", model.getValue("/root/main/cond/ampmflag"));
  87. model.toggle("case_om"); //Order Manage
  88. fGetOMPatList("dcc");
  89. //fGetOMPatList();
  90. break;
  91. case "prn": //Order Manage의 Prn 처방을 Direct 호출
  92. btn_om.selected = true;
  93. // cap_color.visible = false;
  94. // cap_uncnfm.visible = false;
  95. // cap_prcp.visible = true;
  96. cap_ser.visible = false;
  97. cap_prcp.attribute("left") = "698px";
  98. cap_prcp.attribute("color") = "#000000";
  99. fnOrderManageParam(); //(20080417)
  100. //model.setValue("/root/main/cond/orddd", model.getValue("/root/main/cond/opcnfmdd")); // 업무일자(20080417)
  101. model.toggle("case_om"); //Order Manage
  102. fSetPrnMode();
  103. fGetOMPatList("dcc");
  104. break;
  105. default:
  106. btn_dm.selected = true;
  107. //cap_color.visible = false;
  108. //cap_uncnfm.visible = false;
  109. //cap_prcp.visible = false;
  110. model.toggle("case_dm"); //DSC Main
  111. fDscDataRead();
  112. break;
  113. }
  114. }
  115. /* --------------------------------------------------*/
  116. /* type : function */
  117. /* access : public */
  118. /* desc : order manage tab클릭시 추가정보 넘김 */
  119. /* param : 기관코드 */
  120. /* return : */
  121. /* --------------------------------------------------*/
  122. function fnOrderManageParam() {
  123. //(20080417)
  124. var pGrd = grd_dscList;
  125. var opcnfmdd = "";
  126. var statflag1 = "";
  127. var statflag2 = "";
  128. var sPath = "/root/main/cond";
  129. // 업무일자
  130. opcnfmdd = model.getValue(sPath + "/opcnfmdd");
  131. model.setValue( sPath + "/orddd", opcnfmdd );
  132. /*
  133. //재원정보
  134. statflag1 = model.getValue( "/root/main/dsc/dscList["+pGrd.row+"]/INDSCHSTAT")
  135. if (statflag1 = "ⓓ" ) statflag2 = "3"; //퇴원예고
  136. if (statflag1 = "퇴원" ) statflag2 = "4"; //퇴원
  137. if (statflag2 != "")
  138. model.setValue( sPath + "/indschacptstat", statflag2);
  139. */
  140. }
  141. /* --------------------------------------------------*/
  142. /* type : function */
  143. /* access : public */
  144. /* desc : DSC Main을 조회 */
  145. /* param : 기관코드 */
  146. /* return : */
  147. /* --------------------------------------------------*/
  148. function fDscDataRead() {
  149. //20080917
  150. grd_dscList.row = 0;
  151. var blodpreppatlist = "";
  152. var anticncrppatlist = "";
  153. fMsgDisp();//메세지 지우기
  154. model.removenode("/root/send");
  155. model.removeNodeset("/root/main/dsc");
  156. //model.makeValue("/root/send/" , cmb_opdeptcd.value ); // 수행부서
  157. model.makeValue("/root/send/opcnfmdd" , ipt_opcnfmdd.value );
  158. model.makeValue("/root/send/dschflag" , rdo_dschflag.value ); // 수술환자구분코드
  159. model.makeValue("/root/send/dscflag" , "D" ); // 수술환자구분코드
  160. model.makeValue("/root/send/opflag" , rdo_opflag.value ); // 수술진행
  161. model.makeValue("/root/send/orddeptcd" , cmb_orddeptlist.value); // 진료과
  162. model.makeValue("/root/send/drcd" , cmb_drcd.value ); // 집도의
  163. model.makeValue("/root/send/oproomcd" , cmb_oproomcd.value );
  164. model.makeValue("/root/send/pid" , ipt_pid.value );
  165. model.makeValue("/root/send/ampmflag" , radio1.value );
  166. model.makeValue("/root/send/wardcd" ,model.getValue("/root/main/cond/wardcd"));
  167. model.makeValue("/root/send/orddd" ,ipt_opcnfmdd.value );
  168. if(submit("TRMNP06303")){
  169. var opstatcd ;
  170. for(var i = 1; i < grd_dscList.rows; i++){
  171. grd_dscList.removeStatus(i, "update");
  172. //20080917 수술취소환자 붉은색으로 표시
  173. opstatcd = model.getValue('/root/main/dsc/dscList[' + i + ']/opstatcd' );
  174. if(opstatcd == '29'){
  175. grd_dscList.cellStyle("color", i, grd_dscList.colRef("careinrmdd"), i, grd_dscList.colRef("iprccount")) = "#FF0000";
  176. }else{
  177. grd_dscList.cellStyle("color", i, grd_dscList.colRef("careinrmdd"), i, grd_dscList.colRef("iprccount")) = "#000000";
  178. }
  179. //혈액 컬럼 이미지삽입
  180. var blodprep = model.getValue("/root/main/dsc/dscList[" + i + "]/blodprepyn");
  181. if (blodprep == "Y") {
  182. model.setValue("/root/main/dsc/dscList[" + i + "]/blodprepyn", "");
  183. grd_dscList.cellstyle("background-image", i , grd_dscList.colRef("blodprepyn")) = "../../../emr/commonweb/images/blood.gif";
  184. } else {
  185. grd_dscList.cellstyle("background-image", i , grd_dscList.colRef("blodprepyn")) = "";
  186. }
  187. }
  188. //혈액준비환자리스트 조합
  189. for(var i = 1; i <= getNodesetCount("/root/main/dsc/blodprep"); i++) {
  190. if (i == 1) {
  191. blodpreppatlist += model.getValue("/root/main/dsc/blodprep["+ i +"]/patnm");
  192. } else {
  193. blodpreppatlist += ", " + model.getValue("/root/main/dsc/blodprep["+ i +"]/patnm");
  194. }
  195. }
  196. model.removeNodeset("/root/main/precondlist/blodpreplist");
  197. model.makeValue("/root/main/precondlist/blodpreplist", blodpreppatlist);
  198. //항암미승인환자리스트 조합
  199. for(var i = 1; i <= getNodesetCount("/root/main/dsc/anticncr"); i++) {
  200. if (i == 1) {
  201. anticncrppatlist += model.getValue("/root/main/dsc/anticncr["+ i +"]/patnm");
  202. } else {
  203. anticncrppatlist += ", " + model.getValue("/root/main/dsc/anticncr["+ i +"]/patnm");
  204. }
  205. }
  206. model.removeNodeset("/root/main/precondlist/anticncrlist");
  207. model.makeValue("/root/main/precondlist/anticncrlist", anticncrppatlist);
  208. model.removeNodeset("/root/main/MmohiprcLists/CureList");
  209. model.removeNodeset("/root/main/MmohiprcLists/CartList");
  210. model.refresh();
  211. fInputNo();
  212. }else{
  213. messageBox("dcc환자조회를 실패하였습니다.", "E");
  214. return;
  215. }
  216. }
  217. //--------------------
  218. //(20080129)
  219. //--------------------
  220. // 간호퇴원확정이후는 입실시간/퇴실시간변경 불가로 처리예정
  221. function fInputNo() {
  222. if(model.getValue("/root/main/cond/dschflag") == "D"){
  223. //-----------------------------------------------
  224. //선택불가로 변경
  225. //-----------------------------------------------
  226. var pGrd = grd_dscList;
  227. if (pGrd.rows <= 1 ) return;
  228. //전부 수정불가
  229. pGrd.isReadOnly(1,pGrd.colRef("careinrmdd"),pGrd.rows-1,pGrd.colRef("careinrmdd"))= true;
  230. pGrd.isReadOnly(1,pGrd.colRef("dschdd"),pGrd.rows-1,pGrd.colRef("dschdd"))= true;
  231. for (var row=1;row<pGrd.rows;row++) {
  232. var temp = model.getValue("/root/main/dsc/dscList[" + row + "]/indschstat");
  233. var careinrmdd = model.getValue("/root/main/dsc/dscList[" + row + "]/careinrmdd");
  234. var dschdd = model.getValue("/root/main/dsc/dscList[" + row + "]/dschdd");
  235. //if (false == finputCheck(temp)) {
  236. //if (false == finputCheck(careinrmdd, dschdd)) {
  237. if((careinrmdd != "--" || careinrmdd != "-" || careinrmdd != "") && (dschdd == "-" || dschdd == "")){
  238. pGrd.isReadOnly(row,pGrd.colRef("careinrmdd"),row,pGrd.colRef("careinrmdd")) = false; //입력가능
  239. }else if((dschdd != "-" || dschdd != "")){
  240. pGrd.isReadOnly(row,pGrd.colRef("dschdd"),row,pGrd.colRef("dschdd")) = false; //입력가능
  241. }
  242. }
  243. }
  244. }
  245. //function finputCheck(temp) {
  246. function finputCheck(careinrmdd, dschdd) {
  247. //if ( temp == "ⓓ" || temp == "") {
  248. if((careinrmdd != "--" || careinrmdd != "-" || careinrmdd != "") && (dschdd == "-" || dschdd == "")){
  249. return true; //수정가능(입실이후~퇴실이전)
  250. } else {
  251. return false; //수정불가
  252. }
  253. }
  254. /* --------------------------------------------------*/
  255. /* type : function */
  256. /* access : public */
  257. /* desc : 처방상세내역 조회하기 */
  258. /* param : row */
  259. /* return : */
  260. /* --------------------------------------------------*/
  261. function fDscDataView(pRow) {
  262. var tPath = "/root/main/dscdetl/";
  263. var sPath = "/root/main/dsc/dscList["+pRow+"]/";
  264. model.removenode("/root/send");
  265. model.removeNodeset("/root/main/MmohiprcLists");
  266. model.makeValue("/root/send/instcd" , "" ); // 기관코드
  267. model.makeValue("/root/send/pid" , model.getValue(sPath +"pid" )); // 등록(환자)번호
  268. model.makeValue("/root/send/orddd" , model.getValue(sPath +"indd" )); // 진료(입원)일자
  269. model.makeValue("/root/send/cretno" , model.getValue(sPath +"cretno")); // 생성번호
  270. model.makeValue("/root/send/oprsrvno", model.getValue(sPath +"oprsrvno")); // 수술예약번호
  271. if (submit("TRMNP06304")) {
  272. //messageBox("자료 조회가 ", "I002");
  273. } else {
  274. //grd_dscList.refresh();
  275. }
  276. model.refresh();
  277. }
  278. /* --------------------------------------------------*/
  279. /* type : function */
  280. /* access : public */
  281. /* desc : 환자정보 가져오기 */
  282. /* param : 검색구분 */
  283. /* return : */
  284. /* --------------------------------------------------*/
  285. function fSearchPatInfo(qryflag) {
  286. modal("../../../pam/patinfomngtweb/xrw/SPPMC02500", qryflag,"150", "150", "SPPMC02500", "/root/source", "/root/send");
  287. //환자번호 copy
  288. var popupendflag = model.getValue("/root/main/popupendflag");
  289. if (popupendflag == "ok"){
  290. model.setValue("/root/main/rghtref/rghtreflist/pid",model.getValue("/root/main/patinfo/patinfolist/pid"));
  291. model.refresh();
  292. var pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  293. if (pid != null && pid != "" && pid != " " && pid != "-"){
  294. fpidref();
  295. }
  296. }
  297. }
  298. /* --------------------------------------------------*/
  299. /* type : function */
  300. /* access : public */
  301. /* desc : 등록번호에 따른 환자정보 검색 */
  302. /* param : */
  303. /* return : */
  304. /* --------------------------------------------------*/
  305. function fpidref(){
  306. model.removeNodeset("/root/send");
  307. var pid = ipt_pid.value
  308. model.makeValue("/root/send/pid",pid);
  309. if(submit("TRMNI00102")){
  310. var hngnm=model.getValue("/root/main/rghtref/rghtreflist/hngnm");
  311. //데이타가 없을시 이전 출력 내용 삭제.
  312. if(hngnm==""){
  313. opt_hngnm.value="";
  314. opt_gndrage.value="";
  315. opt_rrgstno.value="";
  316. opt_hngnm.refresh();
  317. opt_gndrage.refresh();
  318. opt_rrgstno.refresh();
  319. model.makeValue("/root/main/rghtref/rghtreflist/pid","");
  320. return;
  321. }
  322. }
  323. }
  324. // --------------------------------------------------
  325. // 팝업메뉴
  326. // --------------------------------------------------
  327. function fShowPopupMenu(gridID, menuPath)
  328. {
  329. var gridObj = document.controls.item(gridID);
  330. if(event.button == 3) {
  331. if(gridObj.isCell(event.target) && gridObj.mouseRow >= gridObj.fixedrows){
  332. window.setPopupMenu(true, menuPath, "name", "func", false);
  333. }else{
  334. window.setPopupMenu(false);
  335. }
  336. }
  337. }
  338. // --------------------------------------------------
  339. // 입실시각 적용(환자팔찌출력)
  340. // --------------------------------------------------
  341. function fSetIntime()
  342. {
  343. var pRow = grd_dscList.row;
  344. var sPath = "/root/main/dsc/dscList["+pRow+"]";
  345. var tmpcareinrmdd = model.getValue(sPath + "/tmpcareinrmdd");
  346. var indd = model.getValue(sPath + "/indd");
  347. var dschdd = model.getValue(sPath + "/dschdd");
  348. if((tmpcareinrmdd != '--') && (tmpcareinrmdd != '-') && (tmpcareinrmdd != '')){
  349. messageBox("이미 입실처리된 환자입니다.", "E999", "");
  350. return;
  351. }
  352. if(indd != getCurrentDate()){
  353. messageBox("입실등록은 입원당일에만 가능합니다.", "E999", "");
  354. return;
  355. }
  356. if((dschdd != '-') && (dschdd != '')){
  357. messageBox("이미 퇴실처리된 환자입니다.", "E999", "");
  358. return;
  359. }
  360. model.setValue(sPath+"/careinrmdd", getCurrentDate()+""+getCurrentTime().substring(0,4));
  361. grd_dscList.addStatus(pRow, "update");
  362. // 추가_20090623
  363. /*
  364. var rtnMsg = messageBox(model.getValue(sPath+"/pid")+" "+model.getValue(sPath+"/hngnm")+"("+model.getValue(sPath+"/sexage")+") 입실등록", "Q004");
  365. if("6" == rtnMsg){
  366. model.removenode("/root/send");
  367. model.removenode("/root/rtndata/dsc");
  368. model.makeNode("/root/send/dscList");
  369. model.copyNode("/root/send/dscList", sPath); // model.makeValue("/root/send/dscList", grd_dscList.getUpdateData());
  370. if(submit("TXMNP06301", false) == true) {
  371. fGetRsrvPrcp(pRow); // 외래예약처방조회
  372. fOpenPatBC(); // 환자팔찌출력
  373. }
  374. }
  375. */
  376. //입실등록 팝업생성_20090803_SMY
  377. clearParameter("Patinfo");
  378. clearParameter("ChkYN");
  379. clearParameter("CareinrmDD");
  380. clearParameter("CareinrmTM");
  381. var patinfo_msg = model.getValue(sPath+"/pid")+" "+model.getValue(sPath+"/hngnm")+"("+model.getValue(sPath+"/sexage")+")";
  382. setParameter("Patinfo", patinfo_msg);
  383. var monNo = getCurrentMonitorNumber(); // 현재모니터번호
  384. modal("SPMNP06700", monNo, "400", "400");
  385. var ChkYN = getParameter("ChkYN");
  386. var CareinrmDD = getParameter("CareinrmDD");
  387. var CareinrmTM = getParameter("CareinrmTM");
  388. if(ChkYN == "Y"){
  389. model.setValue(sPath + "/careinrmdd", CareinrmDD + CareinrmTM);
  390. model.removenode("/root/send");
  391. model.removenode("/root/rtndata/dsc");
  392. model.makeNode("/root/send/dscList");
  393. model.copyNode("/root/send/dscList", sPath); // model.makeValue("/root/send/dscList", grd_dscList.getUpdateData());
  394. if(submit("TXMNP06301", false) == true) {
  395. // 예약처방전송 tab 추가로 인해 팝업화면 기능 삭제_20090804
  396. // fGetRsrvPrcp(pRow); // 외래예약처방조회
  397. //fOpenPatBC(); // 환자팔찌출력 -- 김숙인 ITC 요청 20091029
  398. }
  399. }
  400. fDscDataRead(); // 조회
  401. }
  402. // --------------------------------------------------
  403. // 저장한 간호입실시간을 지우는 경우
  404. // 입실시각 취소
  405. // --------------------------------------------------
  406. function fClsIntime()
  407. {
  408. var pRow = grd_dscList.row;
  409. var sPath = "/root/main/dsc/dscList["+pRow+"]";
  410. var temp = model.getValue("/root/main/dsc/dscList[" + pRow + "]/indschstat");
  411. if(temp != '') {
  412. messageBox("재원상태를 확인하십시오.", "E999", "");
  413. return;
  414. }
  415. if(model.getValue(sPath + "/pid") != "") { //선택된 환자가 있는 경우
  416. model.setValue(sPath + "/careinrmdd", '');
  417. grd_dscList.addStatus(pRow, "update");
  418. model.refresh();
  419. }
  420. }
  421. // --------------------------------------------------
  422. // 환자팔찌 재출력 - 20091027 by 박영우
  423. // --------------------------------------------------
  424. function fOpenPatBC()
  425. {
  426. /*
  427. var pRow = grd_dscList.row;
  428. var sPath = "/root/main/dsc/dscList["+pRow+"]/";
  429. */
  430. //20080905 추가
  431. //port정보 가져오기
  432. model.removenode('/root/send');
  433. model.removenode('/root/main/barcdprntsetup');
  434. model.makenode('/root/main/barcdprntsetup');
  435. model.makeValue('/root/send/scrnid', 'SMMNR00600');
  436. var comport = '1';
  437. if(submit('TRLLC90101')){
  438. comport = model.getValue('/root/main/barcdprntsetup/prntsetupinfo/setupinfo[1]/comm02/comm');
  439. }
  440. // 환자정보 상단으로..
  441. fSetPatInfo();
  442. //설정된 상단정보를 불러옴
  443. model.makeNode("/root/main/paminfo");
  444. var node = getGlobalVariable("paminfo");
  445. setCSVToNode("/root/main/paminfo", node);
  446. var pid, indd, cretno, mskind, histstat;
  447. /*
  448. //patinfo 정보 셋팅
  449. pid = model.getValue(sPath +"pid");
  450. indd = model.getValue(sPath +"indd" );
  451. cretno = model.getValue(sPath +"cretno");
  452. mskind = model.getValue(sPath +"mskind");
  453. histstat = model.getValue(sPath +"histstat");
  454. */
  455. // 바코드OCX 생성
  456. //2. 바코드 라벨 환경설정
  457. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  458. lzzfMakeBrcdPrntObjHanDo("CommAX", barcdRef);
  459. // if(document.all("CommAX") == null){
  460. // lzzfMakeBrcdPrntObjHanDo("CommAX");
  461. // }
  462. pid = model.getValue("/root/main/paminfo/list/pid");
  463. indd = model.getValue("/root/main/paminfo/list/indd");
  464. cretno = model.getValue("/root/main/paminfo/list/cretno");
  465. mskind = model.getValue("/root/main/paminfo/list/mskind");
  466. histstat = model.getValue("/root/main/paminfo/list/histstat");
  467. model.makeNode("/root/send/data17");
  468. model.makeNode("/root/hidden/h_receipt");
  469. model.makeNode("/root/hidden/h_receipt/receipt");
  470. //원무 메소드 호출
  471. //fInPatBarCodePrn(pid, indd, cretno, mskind, histstat, comport);
  472. pmifPrintBarCode(pid, indd, cretno, mskind, histstat, "N", "SMMNR00600", barcdRef);
  473. }
  474. // --------------------------------------------------
  475. // 임상관찰 기록 - SMMNR00900
  476. // --------------------------------------------------
  477. function fOpenClincObsRec() {
  478. fSetPatInfo();
  479. modal("SMMNR00900","1","20","128");
  480. }
  481. // --------------------------------------------------
  482. // 간호기록TypeII 오픈 -- 1차 오픈에서 제외됨
  483. // --------------------------------------------------
  484. function fOpenNursingRecord()
  485. {
  486. fSetPatInfo();
  487. var sPath = "/root/main/dsc/dscList["+grd_dscList.row+"]";
  488. var parammsg = "recflag▦dutplaccd▦reclnkkey▩1▦024▦"
  489. + model.getValue(sPath+"/pid")+","
  490. + model.getValue(sPath+"/indd")+","
  491. + model.getValue(sPath+"/cretno")+","
  492. + model.getValue(sPath+"/instcd")+"▩"
  493. setParameter("SMMNR03400_ParamBase",parammsg);
  494. modal("SMMNR03400","1","20","128");
  495. }
  496. // --------------------------------------------------
  497. // 투약기록 - SMMNR00600
  498. // --------------------------------------------------
  499. function fOpenMediRecord()
  500. {
  501. fSetPatInfo();
  502. open("SMMNR00600","1","20","128");
  503. }
  504. // --------------------------------------------------
  505. // 간호처방 오픈 - SMMNW10900
  506. // --------------------------------------------------
  507. function fOpenCarePrcp()
  508. {
  509. fSetPatInfo();
  510. open("SMMNW10900","1","20","128"); //간호처방
  511. }
  512. // --------------------------------------------------
  513. // 검사결과조회 오픈 - SMAER00800
  514. // --------------------------------------------------
  515. function fOpenTestRslt()
  516. {
  517. fSetPatInfo();
  518. open("SMAER00800","1","20","128");
  519. }
  520. // --------------------------------------------------
  521. // 통합기록 조회 - SMMRI00400
  522. // --------------------------------------------------
  523. function fOpenSytsRec()
  524. {
  525. fSetPatInfo();
  526. open("SMMRI00400","1","20","128");
  527. }
  528. // --------------------------------------------------
  529. // 수술준비확인창 오픈 - SMMNP00200
  530. // --------------------------------------------------
  531. function fOpenTPR()
  532. {
  533. fSetPatInfo();
  534. setParameter("OpMenu", "W");
  535. open("SMMNP00200","1","20","128");
  536. }
  537. // --------------------------------------------------
  538. // 환자진료 정보 - SMMMO02500
  539. // --------------------------------------------------
  540. function fOpenPatOrd()
  541. {
  542. fSetPatInfo();
  543. open("SMMMO02500","1","20","128");
  544. }
  545. // --------------------------------------------------
  546. // 바코드 관리 - SMLLC00200
  547. // --------------------------------------------------
  548. function fOpenBarCdMngt()
  549. {
  550. fSetPatInfo();
  551. open("SMLLC00200","1","20","128");
  552. }
  553. // --------------------------------------------------
  554. // 개인별 예약현황 조회 - SMAEA04100
  555. // --------------------------------------------------
  556. function fOpenIndRsrv()
  557. {
  558. fSetPatInfo();
  559. open("SMAEA04100","1","20","128");
  560. }
  561. // --------------------------------------------------
  562. // 외래진료 예약 - SMPMO00300
  563. // --------------------------------------------------
  564. function fOpenOutOrdRsrv()
  565. {
  566. fSetPatInfo();
  567. open("SMPMO00300","1","20","128");
  568. }
  569. // --------------------------------------------------
  570. // 퇴실정리 오픈(20080129) - SMMNP06010
  571. // --------------------------------------------------
  572. function fOpenOutRm()
  573. {
  574. var pGrd = grd_dscList;
  575. //20090123 dhkim
  576. //itc김숙인 변경요청사항 반영
  577. //입실시각이 입력되지 않은 상태에서 오른쪽 마우스의 퇴실정리 선택시 [입실체크 후 퇴실정리가 가능합니다.]라는 blocking메시지와 함께 퇴실정리 blocking함.
  578. var calcdd = model.getValue("/root/main/dsc/dscList[" + pGrd.row + "]/careinrmdd");
  579. var grdStat = grd_dscList.rowStatus(grd_dscList.row);
  580. if(calcdd == '--' || (calcdd != '--' && grdStat != 0)){//입실시각이 입력되지 않았거나 입실시각을 입력했으나 저장하지 않은상태
  581. messageBox('입실체크 후 퇴실정리가 가능합니다.', 'E999');
  582. return;
  583. }
  584. if (pGrd.rows <= 0 || pGrd.row < 1) {
  585. messageBox("자료를 선택하십시오.", "E999", "");
  586. return;
  587. }
  588. if (model.getValue( "/root/main/dsc/dscList["+pGrd.row+"]/pid")== "") {
  589. messageBox("등록번호가 없습니다.", "E999", "");
  590. return;
  591. }
  592. // 상단올리기
  593. fSetPatInfo();
  594. setParameter("SMMNP06300_DCC", "Y");
  595. open("SMMNP06010","1","20","128");
  596. }
  597. // --------------------------------------------------
  598. // 상단환자정보세팅하기
  599. // --------------------------------------------------
  600. function fSetPatInfo()
  601. {
  602. //상단정보 초기화 -by 박영우 20091029
  603. model.removeNodeSet("/root/main/paminfo");
  604. model.makeNode("/root/main/paminfo");
  605. var sPath = "/root/main/dsc/dscList["+grd_dscList.row+"]";
  606. var sPatFlag = model.getValue(sPath+"/oppatflagcd");
  607. if (sPatFlag == "") sPatFlag = "I"; //수술정보없는경우는 'I'
  608. //올리기 변경:수술하지 않는 사람도 나옴
  609. var sOprsrvno = model.getValue(sPath+"/oprsrvno");
  610. var param = "";
  611. //수술취소된 경우 T로 올리지 말것.(아직 구현안함)
  612. //20080917 dhkim 수술취소환자의 경우
  613. var opstatcd = model.getValue(sPath + "/opstatcd");//수술상태
  614. if (sOprsrvno != "" && opstatcd != '29') { //20080917 dhkim 수정. 수술일정이 있고 취소상태가 아닌 환자 상단올리기
  615. //수술전용 상단 올리기
  616. param = "T▦" // 01 O:외래, I:입원구분, T:수술예약
  617. + model.getValue(sPath+"/pid" ) + "▦" // 02 등록번호
  618. + model.getValue(sPath+"/opcnfmdd" ) + "▦" // 03 수술시작일자
  619. + "▦" // 04 cretno(없는 경우 ""로 처리)
  620. + model.getValue(sPath+"/instcd" ) + "▦" // 05 기관코드
  621. + model.getValue(sPath+"/perfdeptcd" ) + "▦" // 06 집도과부서
  622. + model.getValue(sPath+"/perfdrid" ) + "▦" // 07 집도의ID
  623. + sPatFlag + "▦" // 08 환자구분
  624. + "F▦" // 09 F -처리구분 무조건 F로 설정
  625. + model.getValue(sPath+"/oprsrvno" ) + "▦" // 10 수술예약번호
  626. + model.getValue(sPath+"/ophistno" ) + "▦" // 11 수술이력번호
  627. + model.getValue("/root/main/cond/opcnfmdd" ) + "▦"; // 12 조회일자 2007-09-13 오지훈 추가...
  628. } else if(sOprsrvno != "" && opstatcd == '29'){
  629. //20080917 dhkim 수정. 수술일정취소된 환자 상단올리기
  630. param = "I" //dsc
  631. + "▦" + model.getValue(sPath+"/pid") //등록번호
  632. + "▦" + model.getValue(sPath+"/indd") //입원일자
  633. + "▦" + model.getValue(sPath+"/cretno") //입원생성번호
  634. + "▦" + model.getValue(sPath+"/instcd") //기관코드
  635. + "▦" + model.getValue(sPath+"/indd") //진료일자(당일입원환자를 조회하므로)
  636. //alert(param);
  637. //condparam = ordtype + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd+ "▦" + orddd;
  638. } else {
  639. // 상단 세팅을 위한 파라미터(입원전용)
  640. param = "I"
  641. + "▦" + model.getValue(sPath+"/pid") //등록번호
  642. + "▦" + model.getValue(sPath+"/indd") //입원일자
  643. + "▦" + model.getValue(sPath+"/cretno") //입원생성번호
  644. + "▦" + model.getValue(sPath+"/instcd") //기관코드
  645. + "▦" + model.getValue(sPath+"/indd") //진료일자(당일입원환자를 조회하므로)
  646. /* 퇴원정리(병동) 확인해봐야함...
  647. // 상단 환자정보 parameter
  648. var sIoflag = "I";
  649. var sPid = model.getValue(dschPath + "[" + iRow + "]/pid");
  650. model.removenode ("/root/send");
  651. model.makeNode ("/root/send");
  652. model.makeValue ("/root/send/reqdata/pid" , sPid);
  653. model.makeValue ("/root/send/reqdata/histstat", sIoflag);
  654. model.removeNodeset("/root/temp/gettoplist");
  655. submit("TRMND00103");
  656. var sCretno = model.getValue("/root/temp/gettoplist/gettopinfo/cretno" ); //생성번호
  657. var sSeqno = model.getValue("/root/temp/gettoplist/gettopinfo/seqno" ); //일련번호
  658. var sInstcd = model.getValue("/root/temp/gettoplist/gettopinfo/instcd" ); //기관코드
  659. var sIndd = model.getValue("/root/temp/gettoplist/gettopinfo/indd" ); //입원일자
  660. var sOrddd = model.getValue("/root/temp/gettoplist/gettopinfo/orddd" ); //진료일자
  661. var sAcptseqno = model.getValue("/root/temp/gettoplist/gettopinfo/acptseqno"); //등록일련번호
  662. var sOrgorddd = model.getValue("/root/temp/gettoplist/gettopinfo/orgorddd" ); //원진료일자
  663. var sOrddd = model.getValue("/root/temp/gettoplist/gettopinfo/orddd" ); //진료일자
  664. var sParam;
  665. sParam = (sIoflag + "▦" + sPid + "▦" + sIndd + "▦" + sCretno + "▦" + sInstcd + "▦" + sOrddd);
  666. setParameter("condparam", sParam);
  667. */
  668. }
  669. //alert(sOprsrvno +"/" + param);
  670. setParameter("condparam", param);
  671. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  672. var curNurType2Obj = getOpenWindow("SMMNP00200");
  673. if(curNurType2Obj != null){//준비확인이 열려있으면 상단 환자로 재조회2010.01.04 K.J.M
  674. curNurType2Obj.javascript.fFormInit();
  675. }
  676. // 하단 처방상세조회, 수술상세조회
  677. fDscDataView(grd_dscList.row);
  678. }
  679. // --------------------------------------------------
  680. // DSC 메인리스트 입실시각, 퇴실시각 수정된 내용 저장
  681. // --------------------------------------------------
  682. function fSaveDscList(){
  683. if(!checkGridUpdate(grd_dscList)){
  684. messageBox("저장할 자료가 존재하지 않습니다.", "E");
  685. return;
  686. }
  687. //alert(grd_dscList.getUpdateData());
  688. var pRow = grd_dscList.row;
  689. var sPath = "/root/main/dsc/dscList["+pRow+"]";
  690. var careinrmdd = model.getValue(sPath + "/careinrmdd").substring(0,8);
  691. var indd = model.getValue(sPath + "/indd");
  692. if(careinrmdd != indd){
  693. messageBox("입실일자를 변경 할 수 없습니다.", "E", "입실시간만 변경가능합니다.");
  694. model.makeValue(sPath + "/careinrmdd", model.getValue(sPath + "/tmpcareinrmdd"));
  695. return;
  696. }
  697. model.removenode("/root/send");
  698. model.removenode("/root/rtndata/dsc");
  699. model.makeNode("/root/send");
  700. model.makeValue("/root/send/dscList",grd_dscList.getUpdateData());
  701. submit("TXMNP06303");
  702. fDscDataRead(); // 조회
  703. /* 원본_20090623
  704. if(submit("TXMNP06301", false) == true) {
  705. if(getNodesetCnt(model, "/root/main/dsc/dscList") > 0){
  706. var rtnMsg = messageBox("입실체크 환자에 대한 외래예약 처방 조회를", "Q004");
  707. var chkcnt = 0 ;
  708. if("6" == rtnMsg){
  709. for(var i = 1 ; i <= getNodesetCnt(model, "/root/main/dsc/dscList") ; i++){
  710. var rtnVO = fGetRsrvPrcp(i);
  711. if(rtnVO == "E"){
  712. messageBox("외래 예약처방 승계에 필요한 정보가 누락되어 처리를 실패하였습니다.", "C000");
  713. }else if(rtnVO == "X"){
  714. chkcnt++;
  715. }
  716. }
  717. }
  718. if(getNodesetCnt(model, "/root/main/dsc/dscList") == chkcnt){
  719. messageBox("외래 예약처방이 존재하지 않습니다.", "I000");
  720. }
  721. }
  722. fDscDataRead(); // 조회
  723. }
  724. */
  725. }
  726. // --------------------------------------------------
  727. // 외래예약처방 선택 및 저장 화면 호출_20090508추가(ByJA)
  728. // --------------------------------------------------
  729. function fGetRsrvPrcp(pRow){
  730. // 외래예약처방정보 조회
  731. model.removeNodeset("/root/send");
  732. model.makeValue ( "/root/send/cond1", model.getValue("/root/main/dsc/dscList["+pRow+"]/pid") );
  733. model.makeValue ( "/root/send/cond2", getUserInfo("dutplceinstcd"));
  734. model.makeValue ( "/root/send/cond3", getCurrentDate());
  735. submit ( "TRMMO00129", false );
  736. // 외래예약처방정보 존재시 외래예약처방 저장화면 호출
  737. var srcNodeList = model.instances(0).selectNodes ("/root/result/prcplist");
  738. var sParamPid = model.getValue("/root/main/dsc/dscList["+pRow+"]/pid" );
  739. var sParamIndd = model.getValue("/root/main/dsc/dscList["+pRow+"]/indd" );
  740. var sParamCretno = model.getValue("/root/main/dsc/dscList["+pRow+"]/cretno" );
  741. var sParamIoflag = model.getValue("/root/main/dsc/dscList["+pRow+"]/iocls" );
  742. var sParamActcertdrid = model.getValue("/root/main/dsc/dscList["+pRow+"]/medispclid" );
  743. var sParamSexAge = model.getValue("/root/main/dsc/dscList["+pRow+"]/sexage" );
  744. var sParamPatNm = model.getValue("/root/main/dsc/dscList["+pRow+"]/hngnm" );
  745. if ( srcNodeList.length > 0 ) {
  746. if(sParamPid == "" || sParamIndd == "" || sParamCretno == "" || sParamIoflag == "" || sParamActcertdrid == "" || sParamPatNm == "") return "E" ;
  747. setParameter ( "SPMMO18200_pid" , sParamPid );
  748. setParameter ( "SPMMO18200_orddd" , sParamIndd );
  749. setParameter ( "SPMMO18200_cretno" , sParamCretno );
  750. setParameter ( "SPMMO18200_prcpdd" , getCurrentDate() );
  751. setParameter ( "SPMMO18200_prcpinptflag" , "33" ); // 임시로 09임. 추후 번호배정되어 수정해야함.
  752. setParameter ( "SPMMO18200_ioflag" , sParamIoflag );
  753. setParameter ( "SPMMO18200_prcpkindcd" , "00" );
  754. setParameter ( "SPMMO18200_prcpsignflag" , "1" ); // 필요시 적용_처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료(default))
  755. setParameter ( "SPMMO18200_aftcertflag" , "12" ); // 필요시 적용_후인증여부
  756. setParameter ( "SPMMO18200_aftcertdrid" , sParamActcertdrid ); // 필요시 적용_후인증의사ID chngmedispclid
  757. setParameter ( "SPMMO18200_title" , "환자번호: " + sParamPid + " 환자명 : " + sParamPatNm + " S/A : " + sParamSexAge);
  758. //setParameter ( "SPMMO18200_prcpstatcd", "000"); //필요시 적용
  759. //setParameter ( "SPMMO18200_oprsrvno", "0"); //필요시 적용
  760. //setParameter ( "SPMMO18200_prcpauthflag", "0"); //필요시 적용
  761. var xpt = window.screenleft + 200;
  762. var ypt = window.screenTop + 100;
  763. var coord = getRelativeCoordinate ( xpt, ypt );
  764. var mon = coord[0];
  765. xpt = coord[1];
  766. ypt = coord[2];
  767. modal ( "SPMMO18200", mon, xpt, ypt, "SPMMO01000", "/root/result", "/root/result", "", false ); // 외래예약처방 저장화면 호출
  768. clearParameter ( "SPMMO18200_pid" );
  769. clearParameter ( "SPMMO18200_orddd" );
  770. clearParameter ( "SPMMO18200_cretno" );
  771. clearParameter ( "SPMMO18200_prcpdd" );
  772. clearParameter ( "SPMMO18200_prcpinptflag" );
  773. clearParameter ( "SPMMO18200_ioflag" );
  774. clearParameter ( "SPMMO18200_prcpkindcd" );
  775. clearParameter ( "SPMMO18200_prcpsignflag" );
  776. clearParameter ( "SPMMO18200_aftcertflag" );
  777. clearParameter ( "SPMMO18200_aftcertdrid" );
  778. return getParameter("SPMMO18200_rtnyn");
  779. }else{
  780. return "X";
  781. }
  782. }
  783. // --------------------------------------------------
  784. // 그리드 수정여부 확인
  785. // --------------------------------------------------
  786. function checkGridUpdate(grid)
  787. {
  788. var uData = grid.getUpdateDataXml("update");
  789. if (uData=="")
  790. return false;
  791. else
  792. return true;
  793. }
  794. // --------------------------------------------------
  795. // 리스트 출력
  796. // --------------------------------------------------
  797. function fPrntList(){
  798. /*
  799. var opcnfmdd = model.getValue("/root/main/dsc/dscList[1]/opcnfmdd");
  800. if (opcnfmdd == ""){
  801. messageBox("조회가 되지", "E007");
  802. return;
  803. }
  804. */
  805. var pGrd = grd_dscList;
  806. if (pGrd.rows <= 1){
  807. messageBox("조회가 되지", "E007");
  808. return;
  809. }
  810. model.removenode("/root/send");
  811. model.makeNode("/root/send");
  812. model.makeNode("/root/send/dsc");
  813. model.copyNode("/root/send/dsc","/root/main/dsc");
  814. exeReportPreview("RPMNP06300","XMLSTR");
  815. }
  816. // --------------------------------------------------
  817. // 엑셀 출력
  818. // --------------------------------------------------
  819. function fPrntExcl(){
  820. var pid = model.getValue("/root/main/dsc/dscList[1]/pid");
  821. if (pid == ""){
  822. messageBox("조회가 되지", "E007");
  823. return;
  824. }
  825. var sPrntDD = model.getValue("/root/main/cond/opcnfmdd");
  826. var file = window.fileDialog("save","","true","DCC환자정보_("+sPrntDD+")","xls","All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  827. if(file != "") {
  828. grd_dscList.saveExcel(file);
  829. }
  830. }
  831. // --------------------------------------------------
  832. // dsc메인에서 오른쪽 마우스버튼
  833. // --------------------------------------------------
  834. function fnonmousedown() {
  835. //박영우: 성빈센트 오른쪽 버튼메뉴 분류
  836. var uijungbuinstcd="", sunggainstcd="", vincentinstcd=""; // 의정부성모병원, 부천성가병원, 수원빈센트병원 기관코드
  837. for(var i=1; i<=getNodesetCount("/root/code/codeinfo/codelist"); i++){
  838. switch (model.getValue("/root/code/codeinfo/codelist["+i+"]/cdgrupid")){
  839. case "077": // 병원별 기관코드
  840. switch(model.getValue("/root/code/codeinfo/codelist["+i+"]/supcdid")){
  841. case "02": // 의정부성모병원 기관코드
  842. uijungbuinstcd = model.getValue("/root/code/codeinfo/codelist["+i+"]/cdid");
  843. break;
  844. case "03": // 부천성가병원 기관코드
  845. sunggainstcd = model.getValue("/root/code/codeinfo/codelist["+i+"]/cdid");
  846. break;
  847. case "04": // 수원빈센트병원 기관코드
  848. vincentinstcd = model.getValue("/root/code/codeinfo/codelist["+i+"]/cdid");
  849. break;
  850. }
  851. }
  852. }
  853. if (model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/pid")== "") return;
  854. var colnm = grd_dscList.valueMatrix(0, grd_dscList.mouseCol);
  855. var tmpcareinrmdd = model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/tmpcareinrmdd");
  856. var oppatflagcd = model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/oppatflagcd");
  857. colnm = colnm.substring(0,2);
  858. var sdschdd1 = model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/dschdd");
  859. sdschdd1 = sdschdd1.replace("-","");
  860. sdschdd1 = sdschdd1.substring(0,1);
  861. //---(수술환자+angio(수술정보없음)
  862. // if(oppatflagcd=="D"&&colnm== "입실"&&tmpcareinrmdd.substring(0,1)=="-") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  863. // fShowPopupMenu("grd_dscList","/root/main/menuitems/inmenu/item");
  864. // }else {
  865. // fShowPopupMenu("grd_dscList","/root/main/menuitems/grdmenu/item");
  866. // }
  867. //박영우: 성빈센트 병원 코드일 경우 버튼메뉴 변경
  868. if (rdo_dschflag.value == "D") {
  869. //if(colnm== "입실"&&tmpcareinrmdd.substring(0,1)=="-") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  870. if(colnm== "입실") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  871. fShowPopupMenu("grd_dscList","/root/main/menuitems/inmenu/item");
  872. } else {
  873. if(getUserInfo("dutplceinstcd")==vincentinstcd)
  874. fShowPopupMenu("grd_dscList","/root/main/menuitems/vgrdmenu/item");
  875. else
  876. fShowPopupMenu("grd_dscList","/root/main/menuitems/grdmenu/item");
  877. }
  878. } else {
  879. if(getUserInfo("dutplceinstcd")==vincentinstcd)
  880. fShowPopupMenu("grd_dscList","/root/main/menuitems/vgrdmenu/item");
  881. else
  882. fShowPopupMenu("grd_dscList","/root/main/menuitems/grdmenu/item");
  883. }
  884. }
  885. //--------------------------------
  886. // 수술상태에 따른 지시사항 메시지 표시
  887. //--------------------------------
  888. function fMsgDisp() {
  889. var pGrd = grd_dscList;
  890. var pid = model.getValue('/root/main/dsc/dscList[' + grd_dscList.row + ']/pid');
  891. var hngnm = model.getValue('/root/main/dsc/dscList[' + grd_dscList.row + ']/hngnm');
  892. var sMsg = "";
  893. if ( pGrd.rows <=1 || pGrd.row <= 0 )
  894. sMsg = "";
  895. var sPath = "/root/main/dsc/dscList[" + pGrd.row + "]";
  896. var opstatcd = model.getValue(sPath + "/opstatcd"); //수술상태값
  897. var prcpcnt = parseInt( model.getValue(sPath + "/iprccount")) + parseInt( model.getValue(sPath + "/oprccount") );//처방갯수
  898. var inflag = model.getValue(sPath + "/careinrmdd");//dsc입실여부
  899. var indschstat = model.getValue(sPath + "/indschstat");//재원상태
  900. inflag = fReplace(inflag, "-","");
  901. inflag = fReplace(inflag, " ","")
  902. //alert( opstatcd + "/" + inflag + "/" + prcpcnt);
  903. //마취취소 + 입실 전 + 진료처방 유
  904. if (opstatcd == '29' && inflag == "" & prcpcnt > 0)
  905. sMsg = hngnm + "(" + pid + ")님은 수술 취소가 되었고 DSC 입실전이며 진료처방이 있습니다. 원무팀에 전화로 '입원정보' 삭제를 요청하십시오.";
  906. //마취취소 + 입실 후 + 진료처방 무 + 퇴원예고없음
  907. if (opstatcd == '29' && inflag != "" & prcpcnt == 0 && indschstat == '')
  908. sMsg = hngnm + "(" + pid + ")님은 수술 취소가 되었고 DSC 입실후이며 진료처방이 없습니다. 원무팀에 전화로 '입원정보' 삭제를 요청하십시오.";
  909. //마취취소 + 입실 후 + 진료처방 무 + 퇴원예고있음 (20080917 dhkim - process 문의필요)
  910. if (opstatcd == '29' && inflag != "" && prcpcnt == 0 && indschstat == 'ⓓ')
  911. sMsg = hngnm + "(" + pid + ")님은 수술 취소가 되었고 DSC 입실후이며 퇴원예고 되었습니다. 퇴실정리를 하십시오.";
  912. //마취취소 + 입실 후 + 진료처방 유 + 퇴원예고없음 (20080917 dhkim - 퇴원예고 메세지 변경)
  913. if (opstatcd == '29' && inflag != "" && prcpcnt > 0 && indschstat == '')
  914. sMsg = hngnm + "(" + pid + ")님은 수술 취소가 되었고 DSC 입실후이며 진료처방이 있습니다. 진료팀에 퇴원예고를 요청하십시오.";
  915. //마취취소 + 입실 후 + 진료처방 유 + 퇴원예고있음 (20080917 dhkim - 퇴원예고 메세지 변경)
  916. if (opstatcd == '29' && inflag != "" && prcpcnt > 0 && indschstat == 'ⓓ')
  917. sMsg = hngnm + "(" + pid + ")님은 수술 취소가 되었고 DSC 입실후이며 진료처방이 있습니다. 퇴실정리를 하십시오.";
  918. if(sMsg != ""){
  919. out_msg.visible = true;
  920. }else{
  921. out_msg.visible = false;
  922. }
  923. out_msg.value = sMsg;
  924. }
  925. //--------------------------------
  926. // 문자열 바꾸기
  927. //--------------------------------
  928. function fReplace(str0,str1,str2) {
  929. str0 += "";
  930. str1 += "";
  931. str2 += "";
  932. while ( str0.indexOf(str1) > -1 ) {
  933. str0 = str0.replace(str1,str2);
  934. }
  935. return str0;
  936. }
  937. //-----------------------------------------
  938. // dsc 퇴실 취소(20080129)
  939. //-----------------------------------------
  940. function fOutCancel() {
  941. var pGrd = grd_dscList;
  942. var sPath = "/root/main/dsc/dscList[" + pGrd.row + "]";
  943. if (pGrd.rows <= 1 || pGrd.row < 1) {
  944. messageBox("자료가 선택되지 않았습니다.", "E999", "");
  945. return;
  946. }
  947. var sChk = model.getValue(sPath + "/chngroomstat" );
  948. var sDsch = model.getValue(sPath + "/indschstat" );
  949. var dschdd = model.getValue(sPath + "/dschdd");
  950. //테스트중....
  951. //alert(sChk+dschdd);
  952. if (sDsch == "ⓒ" || (sChk == "◆" && dschdd != '-')) {
  953. //20081218 dhkim
  954. //6시간미만 환자의 경우 심사를 거치지 않고 바로 퇴원수납을 하는 경우가 존재함(안과의경우만해당)
  955. //그리하여 퇴원수납여부를 체크해 퇴원수납된 환자의 경우 퇴실취소를 하지 못하도록 blocking처리 추가
  956. var rcptyn = model.getValue('/root/main/dsc/dscList[' + pGrd.row + ']/rcptyn');
  957. if(rcptyn == 'Y'){
  958. messageBox("이미 퇴원수납된 환자입니다.\r\n원무팀에 퇴원수납취소를 요청하신 후\r\n간호퇴실취소를 진행 하십시오.", "E999", "");
  959. return;
  960. }
  961. //20081219 dhkim
  962. //오늘일자환자가 아니면 취소불가
  963. var indd = model.getValue("/root/main/dsc/dscList[" + pGrd.row + "]/indd");
  964. if(indd != getCurrentDate()){
  965. messageBox("입원일이 오늘인 환자만 간호퇴실취소 할 수 있습니다.", "E999", "");
  966. return;
  967. }
  968. //if(!checkGridUpdate(grd_dscList))
  969. //{
  970. // alert("저장할 자료가 존재하지 않습니다.");
  971. // return;
  972. //}
  973. if (messageBox("간호사퇴원정리완료 취소 ",'Q003',"") != 6) return;
  974. var sHeader = "m▦careinrmdd▦pid▦indd▦cretno▦seqno▩";
  975. var sData = "u" +
  976. "▦" + model.getValue(sPath + "/careinrmdd") +
  977. "▦" + model.getValue(sPath + "/pid") +
  978. "▦" + model.getValue(sPath + "/indd") +
  979. "▦" + model.getValue(sPath + "/cretno") +
  980. "▦" + model.getValue(sPath + "/seqno") + "▩";
  981. model.removenode("/root/send");
  982. model.makeNode("/root/send");
  983. //model.makeValue("/root/send/dscList",grd_dscList.getUpdateData());
  984. model.makeValue("/root/send/dscList",sHeader + sData );
  985. // alert( sHeader + sData);
  986. // return;
  987. if ( submit("TXMNP06302") ) {
  988. fDscDataRead(); // 조회
  989. }
  990. } else {
  991. messageBox("간호퇴실취소할 수 없는 상태입니다.", "E999", "");
  992. }
  993. }
  994. /* ------------------------------------------------- */
  995. /* ------End Of List ------------------------------- */
  996. /* -------------------------------------------------- */