SMMNP00100.js 67 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480
  1. /* ---------------------------------------------------------------------
  2. 수술마취메인 (SMMNP00100.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2015.05.02
  7. ---------------------------------------------------------------------- */
  8. var s1="";
  9. /**
  10. * @group :
  11. * @ver : 2007.04.17
  12. * @by : Choi HakRok
  13. * @---------------------------------------------------
  14. * @type : function
  15. * @access : public
  16. * @desc : 수술 예약정보 가져오기
  17. * @param :
  18. * @return :
  19. * @---------------------------------------------------
  20. */
  21. function fInit(){
  22. //grp_opm.visible = true;
  23. //roundrect1.visible = true;
  24. //cap_state.visible = true;
  25. //수술명, 진단명,수술후 수술명 모두 보이기.2012.01.17_ 손성훈.
  26. chk_opnmen.value = "Y";
  27. chk_diagnmkr.value = "Y";
  28. chk_diagnmen.value = "Y";
  29. chk_opnmkr.value = "Y";
  30. chk_afopnm.value = "Y";
  31. group1.visible = true;
  32. grp_opmdisc.visible = true;
  33. group5.visible = false;
  34. var param = getScreenMenuParameter();
  35. var node = getGlobalVariable("operation");
  36. setCSVToNode("/root/main/operation", node);
  37. inp_opddfr.value = getCurrentDate();
  38. inp_opddto.value = getCurrentDate();
  39. grd_oppatlist.explorerbar = "sortshow";
  40. model.setValue("/root/main/cond/usernm", getUserName() );
  41. model.setValue("/root/main/cond/orddd" , getCurrentDate());//업무일자(Order Manage 조회일자)
  42. model.removenode("/root/send");
  43. model.makeValue("/root/send/flag" , "X" );
  44. model.makeValue("/root/send/searchitem", "XX" );
  45. model.makeValue("/root/send/deptflag" , "011" );
  46. submit("TRMNP00107", false);
  47. submit("TRMNP03004", false) // 수술실(Rosette) 가져오기
  48. model.removenode("/root/send");
  49. model.makeNode("/root/send");
  50. model.makeValue("/root/send/opcnfmdd" ,model.getValue("/root/main/cond/opddfr") );
  51. model.makeValue("/root/send/rosette" ,model.getValue("/root/main/cond/oprosette"));
  52. submit("TRMNP03002", false); // 수술실코드 가져오기
  53. addComboItem("cmb_oproomlist","전체","","above");
  54. //addComboItem("cmb_oproomlist", "전 체", "", "above" ); //2009-03-16 TRMNP03004 추가로 인하여 삭제 처리
  55. addComboItem("cmb_orddept" , "전 체" , "" , "above" );
  56. addComboItem("cmb_ccrtstatlist" , "전 체" , "" , "above" ); //2009/01/07 추가부분
  57. addComboItem("cmb_rosette" , "전 체" , "" , "above" );
  58. if( param == "ordmn" ) {//메뉴를 통해 Order Manage를 선택한 경우
  59. fSeletedToggle( param );
  60. }else {
  61. fSelectPos();
  62. }
  63. }
  64. /* --------------------------------------------------*/
  65. /* type : function */
  66. /* access : public */
  67. /* desc : 수술/마취 메인 조회 */
  68. /* param : */
  69. /* return : */
  70. /* --------------------------------------------------*/
  71. function fSelectPos() {
  72. var iRows = -1;
  73. var opflagcd, callyn;
  74. model.removenode("/root/send");
  75. model.makeNode("/root/send/reqdata" ); //저장 후 조회조건
  76. model.copyNode("/root/send/reqdata", "/root/main/cond");
  77. submit("TRMNP00100");
  78. iRows = getNodesetCount("/root/main/opPatlist/opPatInfo");
  79. var refMsg = model.getValue("/root/properties/error/msg");
  80. var refMsgCnt = refMsg.substring(0, 1);
  81. if( refMsgCnt == "0" ) {
  82. model.removeNodeset("/root/main/opPatlist/opPatInfo");
  83. if(chk_opnmen.value == "Y"){
  84. grd_oppatlist.colHidden(grd_oppatlist.colRef("opcdenm")) = false;
  85. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "115";
  86. }else{
  87. grd_oppatlist.colHidden(grd_oppatlist.colRef("opcdenm")) = true;
  88. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "0";
  89. }
  90. if(chk_opnmkr.value == "Y"){
  91. grd_oppatlist.colHidden(grd_oppatlist.colRef("opcdknm")) = false;
  92. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "115";
  93. }else{
  94. grd_oppatlist.colHidden(grd_oppatlist.colRef("opcdknm")) = true;
  95. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "0";
  96. }
  97. if(chk_afopnm.value == "Y"){
  98. grd_oppatlist.colHidden(grd_oppatlist.colRef("afopnm")) = false;
  99. //grd_oppatlist.colWidth(grd_oppatlist.colRef("afopnm")) = "115";
  100. }else{
  101. grd_oppatlist.colHidden(grd_oppatlist.colRef("afopnm")) = true;
  102. //grd_oppatlist.colWidth(grd_oppatlist.colRef("afopnm")) = "0";
  103. }
  104. model.refresh();
  105. return;
  106. }else {
  107. var ii = 0 ;
  108. var wCnfmDT = "";
  109. var sRoomCd = "";
  110. var sPrcpCnt = 0;
  111. var sDispCnt = 0;
  112. var wRoomCd = model.getValue("/root/main/opPatlist/opPatInfo[1]/oproomcd");
  113. for(var i = 1; i<=iRows; i++) {
  114. wCnfmDT = model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/opcnfmdd")
  115. + model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/fstrgstdt").substr(0,4);
  116. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/fstrgstdt", wCnfmDT);
  117. sRoomCd = model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/oproomcd");
  118. callyn = model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/callyn");
  119. opflagcd = model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/opflagcd");
  120. if (model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/delivefact") != "") {
  121. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("delivefactyn")) = "../../../com/commonweb/images/icon_list.gif";
  122. }else{
  123. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("delivefactyn")) = "";
  124. }
  125. if(model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/disp1") == "Y" ||
  126. model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/disp2") == "Y" ||
  127. model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/disp3") == "Y" ){
  128. sDispCnt++;
  129. }
  130. //감염정보
  131. if (model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/disp1") == "Y") {
  132. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp1img")) = "../../../com/hismainweb/images/injector_en.gif";
  133. }else{
  134. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp1img")) = "";
  135. }
  136. if (model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/disp2") == "Y") {
  137. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp2img")) = "../../../com/hismainweb/images/touch_en.gif";
  138. }else{
  139. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp2img")) = "";
  140. }
  141. if (model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/disp3") == "Y") {
  142. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp3img")) = "../../../com/hismainweb/images/air_en.gif";
  143. }else{
  144. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp3img")) = "";
  145. }
  146. if(model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/uncnfm") != "0/0/0"){
  147. sPrcpCnt++;
  148. }
  149. //변경여부
  150. var cnfmcnclresncd = model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd");
  151. if( ( cnfmcnclresncd == "302" )||( cnfmcnclresncd == "303" ) ) {//수술시간변경(환자, 병원사유)
  152. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd", "ⓣ");
  153. }else if( cnfmcnclresncd == "305" ) {//수술집도의 변경
  154. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd", "ⓞ");
  155. }else if( cnfmcnclresncd == "301" ) {//수술명 변경
  156. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd", "ⓝ");
  157. }else if( cnfmcnclresncd == "307" ) {//마취방법 변경
  158. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd", "ⓐ");
  159. }else if( cnfmcnclresncd == "306" ) {//수술방 변경
  160. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd", "ⓡ");
  161. }else if( cnfmcnclresncd == "308" ) {//수술집도과 변경
  162. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd", "ⓓ");
  163. }else if( cnfmcnclresncd == "309" ) {//수술체위 변경
  164. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd", "ⓢ");
  165. }else{
  166. model.setValue("/root/main/opPatlist/opPatInfo["+i+"]/cnfmcnclresncd", "");
  167. }
  168. if( wRoomCd != sRoomCd ) {
  169. ii++;
  170. wRoomCd = sRoomCd;
  171. }
  172. if( ii % 2 == 0 ) {//짝수
  173. grd_oppatlist.rowstyle( i , "data", "background-color") = "#FFFFFF";
  174. }else {
  175. grd_oppatlist.rowstyle( i , "data", "background-color") = "#F7FFF7";
  176. }
  177. if( (opflagcd == "1")||(opflagcd == "3") ){//정규, 추가
  178. grd_oppatlist.rowstyle( i , "data", "color") = "#2D2D2D";
  179. }
  180. if( opflagcd == "2" ) {//응급
  181. grd_oppatlist.rowstyle( i , "data", "color") = "#D22D2D";
  182. }
  183. // 2008-03-13 수정 요청으로... // 2008-08-22 오전 10:27:32 주석해제
  184. //if( opflagcd == "3" ) {//추가
  185. // grd_oppatlist.rowstyle( i , "data", "color") = "#000000";
  186. //}
  187. if( callyn == "Y" ) {//호출여부
  188. grd_oppatlist.rowstyle( i , "data", "background-color") = "#c9d6b9";
  189. }
  190. if( opflagcd == "4" ) {//취소
  191. grd_oppatlist.rowstyle( i , "data", "color") = "#2D2DD2";
  192. }
  193. if (model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/opstatcd").substr(1,1)=="9") {//임시취소
  194. grd_oppatlist.rowstyle( i , "data", "color") = "#2D2DD2";
  195. }
  196. }
  197. model.setValue("/root/temp/sPrcpCnt", sPrcpCnt);
  198. model.setValue("/root/temp/sDispCnt", sDispCnt);
  199. opt_prcpcnt.refresh();
  200. opt_dispcnt.refresh();
  201. if(chk_opnmen.value == "Y"){
  202. grd_oppatlist.colHidden(grd_oppatlist.colRef("opcdenm")) = false;
  203. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "115";
  204. }else{
  205. grd_oppatlist.colHidden(grd_oppatlist.colRef("opcdenm")) = true;
  206. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "0";
  207. }
  208. if(chk_opnmkr.value == "Y"){
  209. grd_oppatlist.colHidden(grd_oppatlist.colRef("opcdknm")) = false;
  210. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "115";
  211. }else{
  212. grd_oppatlist.colHidden(grd_oppatlist.colRef("opcdknm")) = true;
  213. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "0";
  214. }
  215. if(chk_diagnmen.value == "Y"){
  216. grd_oppatlist.colHidden(grd_oppatlist.colRef("diagengnm")) = false;
  217. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "115";
  218. }else{
  219. grd_oppatlist.colHidden(grd_oppatlist.colRef("diagengnm")) = true;
  220. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "0";
  221. }
  222. if(chk_diagnmkr.value == "Y"){
  223. grd_oppatlist.colHidden(grd_oppatlist.colRef("diagcdnm")) = false;
  224. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "115";
  225. }else{
  226. grd_oppatlist.colHidden(grd_oppatlist.colRef("diagcdnm")) = true;
  227. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "0";
  228. }
  229. if(chk_afopnm.value == "Y"){
  230. grd_oppatlist.colHidden(grd_oppatlist.colRef("afopnm")) = false;
  231. //grd_oppatlist.colWidth(grd_oppatlist.colRef("afopnm")) = "115";
  232. }else{
  233. grd_oppatlist.colHidden(grd_oppatlist.colRef("afopnm")) = true;
  234. //grd_oppatlist.colWidth(grd_oppatlist.colRef("afopnm")) = "0";
  235. }
  236. }
  237. model.refresh();
  238. }
  239. /* --------------------------------------------------*/
  240. /* type : function */
  241. /* access : public */
  242. /* desc : 콤보아이템 제거 */
  243. /* param : */
  244. /* return : */
  245. /* --------------------------------------------------*/
  246. function removeComboItem( comboID ) {
  247. var comboObj = document.all.item(comboID);
  248. var comboItemNodeSet = comboObj.choices.itemset.attribute("nodeset");
  249. model.removenode(comboItemNodeSet + "[1]");
  250. model.refresh();
  251. }
  252. /* --------------------------------------------------*/
  253. /* type : function */
  254. /* access : public */
  255. /* desc : 탭 메뉴 선택처리 함수 */
  256. /* param : selFlag : 선택 탭 구분값 */
  257. /* return : */
  258. /* --------------------------------------------------*/
  259. function fSeletedToggle( selFlag ) {
  260. if(model.getValue("/root/main_om/cond/hopedd")==""){
  261. model.makeValue("/root/main_om/cond/hopedd",'4');
  262. model.makeValue("/root/main_om/cond/hopefmdd", '');
  263. model.makeValue("/root/main_om/cond/hopetodd", '');
  264. }
  265. switch(selFlag) {
  266. case "opm" :
  267. model.toggle("opmain");
  268. fSelectPos();
  269. break;
  270. case "ordmn" :
  271. model.toggle("ordmanage");
  272. fGetOMPatList("op");
  273. break;
  274. }
  275. }
  276. /**
  277. * @group :
  278. * @ver : 2007.06.07
  279. * @by : Choi HAkRok
  280. * @---------------------------------------------------
  281. * @type : function
  282. * @access : public
  283. * @desc : 화면상단정보설정
  284. * @param :
  285. * @return :
  286. * @---------------------------------------------------
  287. */
  288. function fSetParam(){
  289. // 입원환자 화면상단정보 설정
  290. if(grd_oppatlist.rows == "1"){
  291. return;
  292. } else {
  293. var sPath = "/root/main/opPatlist/opPatInfo";
  294. var sPatFlag = model.getValue(sPath+"["+grd_oppatlist.row+"]/oppatflagcd");
  295. if (model.getValue(sPath+"["+grd_oppatlist.row+"]/opstatcd").substr(1,1)=="9") {
  296. messageBox('취소된 자료는 선택', 'E001');
  297. return;
  298. }
  299. //2008-08-28 오전 9:26:44 taebum add 수술기록 관련 요구사항 처리중
  300. var sOpenSusulOprsrvno = model.getAttribute("susulrec_oprsrvno");
  301. var sCurrentOprsrvno = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/oprsrvno");
  302. if(sOpenSusulOprsrvno != null && sOpenSusulOprsrvno != "" && sOpenSusulOprsrvno != "undefined"){
  303. if(sOpenSusulOprsrvno != sCurrentOprsrvno){
  304. var sOpenSusulPid = model.getAttribute("susulrec_pid" );
  305. var sOpenSusulHngnm = model.getAttribute("susulrec_hngnm");
  306. messageBox("등록번호 : "+sOpenSusulPid+" "+sOpenSusulHngnm+"님의 수술기록 작성 중 입니다. 작성완료 후 수술기록을 닫으시기 바랍니다.", "");
  307. return;
  308. }
  309. }
  310. var sOpenTempOprsrvno = model.getAttribute("SuSulOrder_Temp_oprsrvno");
  311. if(sOpenTempOprsrvno != null && sOpenTempOprsrvno != "" && sOpenTempOprsrvno != "undefined"){
  312. if(sOpenTempOprsrvno != sCurrentOprsrvno){
  313. var sOpenTempPid = model.getAttribute("SuSulOrder_Temp_pid");
  314. var sOpenTempHngnm = model.getAttribute("SuSulOrder_Temp_hngnm");
  315. messageBox("등록번호 : "+sOpenTempPid+" "+sOpenTempHngnm+"님의 수술/마취 간호처방 작성 중 입니다. 작성완료 후 수술/마취 간호처방을 닫으시기 바랍니다.", "");
  316. return;
  317. }
  318. }
  319. //2008-08-30 오후 2:52:48 taebum
  320. //환자구분이 DSC일 경우 수술구분이 정규이면서 현재일자가 수술일자 이전일 경우 CartList만
  321. //저장할 수 있도록 외래상단정보 세팅. 후 수술마취 간호처방에 parameter를 전송한다.
  322. /*
  323. var oppatflagnm = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/oppatflagnm");
  324. var opflagcdnm = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/opflagcdnm");
  325. if((oppatflagnm == "DSC") && (opflagcdnm == "정규") && ( sCurrentdd < opcnfmdd ))
  326. */
  327. //2008-09-26 오전 11:05:01 taebum DSC 뿐 아니라 외래로 확정한 케이스에도 CartList 저장 및 상단 정보 생성요청 적용중.
  328. var sTmpIndd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/iindd");
  329. var orddeptcd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/orddeptcd");
  330. var opcnfmdd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/opcnfmdd");
  331. var sCurrentdd = getCurrentDate();
  332. var sInordtype = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/inordtype");
  333. if(sTmpIndd == "" || sTmpIndd == null || sTmpIndd == "undefined"){
  334. var sTmpPid = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/pid");
  335. model.removenode("/root/send");
  336. model.makeNode("/root/send/reqdata" ); //저장 후 조회조건
  337. model.makeValue("/root/send/reqdata/pid" , sTmpPid);
  338. model.makeValue("/root/send/reqdata/opcnfmdd", opcnfmdd);
  339. model.makeValue("/root/send/reqdata/orddeptcd", orddeptcd);
  340. submit("TRMNP00108");
  341. if(model.getValue("/root/HideData/otptinfo/pid") != ""&&model.getValue("/root/HideData/otptinfo/pid") != null &&model.getValue("/root/HideData/otptinfo/pid") != "undefined" ){
  342. if (sPatFlag == "") {
  343. sPatFlag = "O";
  344. }
  345. var param = "";
  346. if(sPatFlag == "D" || sPatFlag == "I" || sPatFlag == "E"){
  347. //외래환자 상단올리기
  348. //2009-05-11 YCD 외래 환자 상단정보 세팅 변경
  349. param = model.getValue("/root/HideData/otptinfo/ordtype") + "▦"
  350. + model.getValue("/root/HideData/otptinfo/pid") + "▦"
  351. + model.getValue("/root/HideData/otptinfo/orddd") + "▦"
  352. + model.getValue("/root/HideData/otptinfo/cretno") + "▦"
  353. + model.getValue("/root/HideData/otptinfo/instcd") + "▦"
  354. + "" + "▦"
  355. + model.getValue("/root/HideData/otptinfo/orgorddd");
  356. }else {
  357. param = "T▦" // 01 O:외래, I:입원구분, T:수술예약
  358. + model.getValue(sPath+"["+grd_oppatlist.row+"]/pid" ) + "▦" // 02 등록번호
  359. + model.getValue(sPath+"["+grd_oppatlist.row+"]/opcnfmdd" ) + "▦" // 03 수술시작일자
  360. + model.getValue(sPath+"["+grd_oppatlist.row+"]/cretno" ) + "▦" // 04 cretno(없는 경우 ""로 처리)
  361. + model.getValue(sPath+"["+grd_oppatlist.row+"]/instcd" ) + "▦" // 05 기관코드
  362. + model.getValue(sPath+"["+grd_oppatlist.row+"]/perfdeptcd" ) + "▦" // 06 집도과부서
  363. + model.getValue(sPath+"["+grd_oppatlist.row+"]/perfdrid1" ) + "▦" // 07 집도의ID
  364. + sPatFlag + "▦" // 08 환자구분
  365. + "F▦" // 09 F -처리구분 무조건 F로 설정
  366. + model.getValue(sPath+"["+grd_oppatlist.row+"]/oprsrvno" ) + "▦" // 10 수술예약번호
  367. + model.getValue(sPath+"["+grd_oppatlist.row+"]/ophistno" ) + "▦" // 11 수술이력번호
  368. + model.getValue(sPath+"["+grd_oppatlist.row+"]/opcnfmdd" ) + "▦"; // 12 조회일자 2007-09-13 오지훈 추가...
  369. }
  370. setParameter("condparam", param);
  371. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  372. }
  373. }else {
  374. // sPatFlag = (sPatFlag == "O" ) ? "O" : "I";
  375. // sPatFlag = (sPatFlag == "D" ) ? "O" : sPatFlag;
  376. if(sPatFlag != sInordtype) {
  377. var status1="";
  378. var status2="";
  379. if(sPatFlag == "I") {
  380. status1="입원";
  381. } else if(sPatFlag == "E") {
  382. status1="응급";
  383. }
  384. if(sInordtype == "I") {
  385. status2="입원";
  386. } else if(sInordtype == "E") {
  387. status2="응급";
  388. }
  389. messageBox(status2 + "환자가 " + "환자구분이 " + status1 + "으로 등록되어있습니다.", "I");
  390. return;
  391. }
  392. if (sPatFlag == "") {
  393. sPatFlag = "I";
  394. }
  395. var param = "T▦" // 01 O:외래, I:입원구분, T:수술예약
  396. + model.getValue(sPath+"["+grd_oppatlist.row+"]/pid" ) + "▦" // 02 등록번호
  397. + model.getValue(sPath+"["+grd_oppatlist.row+"]/opcnfmdd" ) + "▦" // 03 수술시작일자
  398. + "▦" // 04 cretno(없는 경우 ""로 처리)
  399. + model.getValue(sPath+"["+grd_oppatlist.row+"]/instcd" ) + "▦" // 05 기관코드
  400. + model.getValue(sPath+"["+grd_oppatlist.row+"]/perfdeptcd" ) + "▦" // 06 집도과부서
  401. + model.getValue(sPath+"["+grd_oppatlist.row+"]/perfdrid1" ) + "▦" // 07 집도의ID
  402. + sPatFlag + "▦" // 08 환자구분
  403. + "F▦" // 09 F -처리구분 무조건 F로 설정
  404. + model.getValue(sPath+"["+grd_oppatlist.row+"]/oprsrvno" ) + "▦" // 10 수술예약번호
  405. + model.getValue(sPath+"["+grd_oppatlist.row+"]/ophistno" ) + "▦" // 11 수술이력번호
  406. + model.getValue(sPath+"["+grd_oppatlist.row+"]/opcnfmdd" ) + "▦"; // 12 조회일자 2007-09-13 오지훈 추가...
  407. setParameter("condparam", param);
  408. modal("SPMMO08900", 1, "", "", "", "SPMMO08900", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  409. }
  410. var curNurType2Obj = getOpenWindow("SMMNP00200");
  411. if(curNurType2Obj != null){//준비확인이 열려있으면 상단 환자로 재조회2010.01.04 K.J.M
  412. curNurType2Obj.javascript.fFormInit();
  413. }
  414. }
  415. }
  416. //
  417. function fShowPopup(pData){
  418. var PopupName = "수술준비확인 #"
  419. + "수술간호기록 #"
  420. + "임상관찰기록 #"
  421. + "수술간호처방 #"
  422. + "시행부서처방 #"
  423. + "바코드 출력 #"
  424. + "NAME LABEL 출력 #"
  425. + "단문메세지 #"
  426. + "이송요원호출 #"
  427. + "보호자호출 #"
  428. + "보호자호출취소 #"
  429. + "입실취소 ";
  430. var PopupNm = PopupName.split("#");
  431. var Idx = Number(pData);
  432. var sPath = "/root/main/opPatlist/opPatInfo";
  433. if (Idx != 15 ){ // 15: '환자구분변경' 에는 상단 정보 올리지 않는다._2012.10.31_손성훈.
  434. fSetParam(); // 상단정보 올리기
  435. }
  436. switch(Idx) {
  437. case 0://수술준비확인
  438. setParameter("OpMenu", "O");
  439. open("SMMNP00200", "", "100", "100", "SMMNP00200", "", "");
  440. break;
  441. case 1://수술간호기록
  442. open("SMMNP00300", "", "100", "100", "SMMNP00300", "", "");
  443. break;
  444. case 2://임상관찰기록
  445. setParameter("SMMNR00900_Param", "");
  446. setParameter("SMMNR00900_SpParam", "");
  447. if(model.getValue(sPath+"["+grd_oppatlist.row+"]/patinroomdt" ) == "" ){
  448. setParameter("SMMNR00900_Param", "pid▦indd▦cretno▦instcd▩"
  449. + model.getValue(sPath+"["+grd_oppatlist.row+"]/pid" ) + "▦"
  450. + model.getValue(sPath+"["+grd_oppatlist.row+"]/iindd" ) + "▦"
  451. + model.getValue(sPath+"["+grd_oppatlist.row+"]/icretno" ) + "▦"
  452. + model.getValue(sPath+"["+grd_oppatlist.row+"]/instcd" ) + "▩");
  453. }else{
  454. setParameter("SMMNR00900_SpParam", "pid▦indd▦cretno▦instcd▦inrmdt▦dutplcecd▩"
  455. + model.getValue(sPath+"["+grd_oppatlist.row+"]/pid" ) + "▦"
  456. + model.getValue(sPath+"["+grd_oppatlist.row+"]/iindd" ) + "▦"
  457. + model.getValue(sPath+"["+grd_oppatlist.row+"]/icretno" ) + "▦"
  458. + model.getValue(sPath+"["+grd_oppatlist.row+"]/instcd" ) + "▦"
  459. + model.getValue(sPath+"["+grd_oppatlist.row+"]/patinroomdt" ) + "▦"
  460. + getUserInfo("dutplcecd") + "▩");
  461. }
  462. open("SMMNR00900", "", "100", "100", "SMMNR00900", "", "");
  463. break;
  464. case 3://수술간호처방
  465. /*
  466. var oppatflagnm = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/oppatflagnm");
  467. var opflagcdnm = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/opflagcdnm");
  468. var opcnfmdd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/opcnfmdd");
  469. var sCurrentdd = getCurrentDate();
  470. if((oppatflagnm == "DSC") && (opflagcdnm == "정규") && ( sCurrentdd < opcnfmdd )){
  471. */
  472. //2008-09-26 오전 11:05:01 taebum DSC 뿐 아니라 외래로 확정한 케이스에도 CartList 저장 및 상단 정보 생성요청 적용중.
  473. var sTmpIndd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/iindd");
  474. var orddeptcd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/orddeptcd");
  475. var opcnfmdd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/opcnfmdd");
  476. var sCurrentdd = getCurrentDate();
  477. if(sTmpIndd == "" || sTmpIndd == null || sTmpIndd == "undefined"){
  478. var iCurrentrow = grd_oppatlist.row;
  479. if(iCurrentrow > 0){
  480. var sOprsrvno = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/oprsrvno");
  481. var sInstcd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/instcd");
  482. var sOphistno = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/ophistno");
  483. var sOphistcd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/ophistcd");
  484. var sPid = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/pid");
  485. var sHngnm = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/hngnm");
  486. model.setAttribute("SuSulOrder_Oprsinfo_oprsrvno", sOprsrvno);
  487. model.setAttribute("SuSulOrder_Oprsinfo_instcd" , sInstcd);
  488. model.setAttribute("SuSulOrder_Oprsinfo_ophistno", sOphistno);
  489. model.setAttribute("SuSulOrder_Oprsinfo_ophistcd", sOphistcd);
  490. }
  491. }
  492. open("SMMNP01800", "", "100", "100", "SMMNP01800", "", "");
  493. break;
  494. case 4://시행부서처방
  495. open("SMMMO00200", "", "100", "100", "SMMMO00200", "", "");
  496. break;
  497. case 5://바코드 출력
  498. open("SMLLC00200", "", "100", "100", "SMLLC00200", "", "");
  499. break;
  500. case 6://NAME LABEL 출력
  501. group5.visible = true;//출력장수 선택
  502. //var iRow = -1;
  503. //iRow = grd_oppatlist.row;
  504. //var pid = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/pid");
  505. //var hngnm = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/hngnm");
  506. //var sexage = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/sa");
  507. //fPrintNameLabel(pid, hngnm, sexage);
  508. break;
  509. case 7://단문메시지 발송
  510. open("SPZMS00100", "", "100", "100", "SPZMS00100", "", "");
  511. break;
  512. case 8://이송요원호출
  513. var pid = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/pid");
  514. var prcpnm = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/opcdknm");
  515. var kind = "5";//기타
  516. var arvposcd = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/startposcd");
  517. var rsrvdt = "";
  518. //var startposcd = "3070000000";//수술실 부서코드
  519. var startposcd = getUserInfo("dutplcecd");
  520. fInsTranCallOP(pid, prcpnm, kind, rsrvdt, arvposcd, startposcd);
  521. modal("SMMNB01800" ,"", "200", "200", "SMMNB01800", "", "");
  522. break;
  523. case 9://보호자 호출
  524. var iRow = -1;
  525. var message = "";
  526. iRow = grd_oppatlist.row;
  527. var pid = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/pid" );
  528. var patnm = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/hngnm" );
  529. var oproomcd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/oproomcd");
  530. var oprsrvno = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/oprsrvno");
  531. var sa = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/sa" );
  532. var opdd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/opcnfmdd");
  533. var callyn = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/callyn");
  534. var calltel = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/calltel");
  535. var opstatcd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/opstatcd");
  536. var curtDate = getCurrentDate();
  537. curtDate = curtDate.substring(0, 8);
  538. oproomcd = oproomcd.setReplaceWord("0", ""); //'0'을 공백으로 대체
  539. // 2009-03-02 ycd 호출 Message 선택 기능 추가로 인하여 삭제 처리
  540. //message = patnm + "(" + sa + ") 보호자분은 수술실 입구로 오시기 바랍니다.";
  541. if( (opstatcd == "10")||(opstatcd == "19")||(opstatcd == "20")||(opstatcd == "29")||(opstatcd == "39")||(opstatcd == "49")||(opstatcd == "50")||(opstatcd == "70") ){
  542. messageBox("수술 예정, 취소, 종료 환자는 보호자 호출을", "E001");
  543. return;
  544. }
  545. if( opdd == curtDate ) {
  546. if( oprsrvno != "" ) {
  547. if( callyn == "Y" ) {
  548. messageBox("이미 호출 중 ", "E008");
  549. }else {
  550. if( calltel == "" ) {//호출 전화번호가 없으면 N으로 셋팅
  551. //calltel = "N";
  552. messageBox("호출 전화번호가 ", "I004");
  553. return;
  554. }
  555. //2009-03-02 YCD Message 선택 화면 Parameter 설정 및 호출 추가
  556. setParameter("SPMNP00101_Param", "patnm▦oproomcd▩" + patnm + "▦" + oproomcd + "▩");
  557. setParameter("SPMNP00101_RtnData", "");
  558. modal("SPMNP00101");
  559. message = getParameter("SPMNP00101_RtnData");
  560. if(message == ""){
  561. return;
  562. }
  563. model.removenode("/root/send");
  564. model.makeValue("/root/send/savedata/oprsrvno", oprsrvno);
  565. model.makeValue("/root/send/savedata/message", message);
  566. model.makeValue("/root/send/savedata/calltel", calltel);
  567. model.makeValue("/root/send/savedata/patnm", patnm);
  568. model.makeValue("/root/send/savedata/callyn", callyn);
  569. model.makeValue("/root/send/savedata/stat", "I");
  570. submit("TXMNP00101");
  571. messageBox("호출 ", "I002");
  572. }
  573. }else {
  574. messageBox("수술예약번호가 ", "I004");
  575. }
  576. }else {
  577. messageBox("현재 날짜 이외의 환자는 호출 ", "E001");
  578. }
  579. fSelectPos();
  580. break;
  581. case 10://보호자 호출취소
  582. var iRow = -1;
  583. iRow = grd_oppatlist.row;
  584. var oprsrvno = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/oprsrvno");
  585. var callyn = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/callyn");
  586. var opdd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/opcnfmdd");
  587. var curtDate = getCurrentDate();
  588. curtDate = curtDate.substring(0, 8);
  589. if( opdd == curtDate ) {
  590. if( oprsrvno != "" ) {
  591. if( callyn != "Y" ) {
  592. messageBox("미호출 상태 ", "E008");
  593. }else {
  594. model.removenode("/root/send");
  595. model.makeValue("/root/send/savedata/oprsrvno", oprsrvno);
  596. model.makeValue("/root/send/savedata/stat", "C");
  597. submit("TXMNP00101");
  598. messageBox("호출 취소를 ", "I002");
  599. }
  600. }else {
  601. messageBox("수술예약번호가 ", "I004");
  602. }
  603. }else {
  604. messageBox("현재 날짜 이외의 환자는 호출 취소", "E001");
  605. }
  606. fSelectPos();
  607. break;
  608. case 11://입 실 취 소
  609. // 직위 1140:간호사, 1110:수간호사
  610. // if (getUserInfo("jobposcd") == "1140" ||
  611. // getUserInfo("jobposcd") == "1110" ) {
  612. // fInOutRoomSave("9"); // 수술기록 1:입실저장,2:퇴실저장,9:입실취소 등록/수정/삭제 요청을 처리한다.
  613. // } else {
  614. // alert("입실 취소는 수간호사 선생님만 가능합니다.("+getUserInfo("jobkindnm")+")");
  615. // return;
  616. // }
  617. fInOutRoomSave("9"); // 수술기록 1:입실저장,2:퇴실저장,9:입실취소 등록/수정/삭제 요청을 처리한다.
  618. break;
  619. case 12://미수행처방관리
  620. open("SMMNW10700", "", "100", "100", "SMMNW10700", "", "");
  621. break;
  622. case 13://재수술 승인/취소
  623. // 2009-03-02 YCD 재수술일 경우 수술전준비확인 없이 간호기록이 가능하도록 처리 하기 위하여 재수술 체크 누락건에 한에서 간호에서
  624. // 재수술 승인을 할 수 있도록 처리하도록 함. 취소는 간호사가 재수술 승인한 경우에만 가능함.
  625. var iRow = -1;
  626. iRow = grd_oppatlist.row;
  627. var pid = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/pid" );
  628. var patnm = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/hngnm" );
  629. var oproomcd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/oproomcd" );
  630. var oprsrvno = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/oprsrvno" );
  631. var sa = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/sa" );
  632. var opdd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/opcnfmdd" );
  633. var callyn = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/callyn" );
  634. var calltel = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/calltel" );
  635. var opstatcd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/opstatcd" );
  636. var reopflag = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/reopflag" );
  637. var nursreoprgstid = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/nursreoprgstid" );
  638. var nursreoprgstdt = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/nursreoprgstdt" );
  639. var nursreopcncldt = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/nursreopcncldt" );
  640. var indd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/iindd" );
  641. var procflag = "E"; //R : 재수술 처리, C : 재수술 취소, E : 실행 종료 처리
  642. var rtnmsg = "";
  643. if(reopflag == "Y"){ //재수술 체크가 되어 있을 경우
  644. if(nursreoprgstid == "-"){
  645. procflag = "E";
  646. messageBox("의사 재수술 지정 스케쥴입니다.", "I000");
  647. return;
  648. }else{
  649. procflag = "C";
  650. }
  651. }else{
  652. procflag = "R";
  653. }
  654. if(procflag == "R"){
  655. rtnmsg = messageBox("재수술 처리를","Q004");
  656. }else if(procflag == "C"){
  657. rtnmsg = messageBox("재수술 취소 처리를","Q004");
  658. }else{
  659. return;
  660. }
  661. if(rtnmsg == "6"){
  662. model.removenode("/root/send");
  663. model.makeValue("/root/send/savedata/oprsrvno" , oprsrvno );
  664. model.makeValue("/root/send/savedata/procflag" , procflag );
  665. model.makeValue("/root/send/savedata/pid" , pid );
  666. model.makeValue("/root/send/savedata/opcnfmdd" , opdd );
  667. submit("TXMNP00103");
  668. }else{
  669. return;
  670. }
  671. fSelectPos();
  672. break;
  673. case 14://수술실 전광판관리
  674. open("SMMNP06100", "", "100", "100", "SMMNP06100", "", "");
  675. break;
  676. case 15: // 수술환자구분 동기화(입원, 응급실, 일일수술실)_2012.10.31_손성훈.
  677. var iRow = -1;
  678. iRow = grd_oppatlist.row;
  679. if(iRow > 0){
  680. var sOprsrvno = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/oprsrvno");
  681. var sInstcd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/instcd");
  682. var sOphistno = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/ophistno");
  683. var sOppatflagcd = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/oppatflagcd");
  684. var sOrdtype = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/inordtype");
  685. var status1="";
  686. var status2="";
  687. if(sOppatflagcd == "I") {
  688. status1="입원";
  689. } else if(sOppatflagcd == "E") {
  690. status1="응급";
  691. }
  692. if(sOrdtype == "I") {
  693. status2="입원";
  694. } else if(sOrdtype == "E") {
  695. status2="응급";
  696. }
  697. if(sOppatflagcd != sOrdtype) {
  698. var rtn = messageBox("수술구분을 " + status1 + "에서 " + status2 + "으로 변경하시겠습니까?", "Q");
  699. if(rtn == "6") {
  700. } else {
  701. return;
  702. }
  703. model.removenode("/root/send");
  704. model.makeValue("/root/send/chngedata/oprsrvno" , sOprsrvno );
  705. model.makeValue("/root/send/chngedata/ophistno" , sOphistno );
  706. model.makeValue("/root/send/chngedata/ordtype" , sOrdtype );
  707. model.makeValue("/root/send/chngedata/oppatflagcd", sOppatflagcd );
  708. model.removenode("/root/temp2");
  709. model.makeNode("/root/temp2");
  710. if ( submit("TXMNP00104") ){
  711. var sCnt = model.getValue("/root/temp2/tmp/cnt");
  712. if (sCnt == "1"){
  713. messageBox("환자구분 변경 완료 되었습니다.","I");
  714. fSelectPos();
  715. }else{
  716. messageBox("변경 내역이 존재하지 않습니다.","I");
  717. }
  718. }
  719. }else{
  720. messageBox("환자구분 변경 할 수 없는 상태입니다. 환자의 재원 상태를 확인하세요!","E");
  721. }
  722. }
  723. break;
  724. case 16:
  725. var iRow = grd_oppatlist.row;
  726. setParameter("SMMNP00208_PARM_OPRSRVNO", model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/oprsrvno"));
  727. setParameter("SMMNP00208_PARM_PID", model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/pid"));
  728. modal("SMMNP00208");
  729. break;
  730. case 17:
  731. fSetParam(); // 환자 화면상단정보 설정
  732. modal("SMMNR00600");
  733. break;
  734. case 18:
  735. fSetParam(); // 환자 화면상단정보 설정
  736. modal("SMMRF02300");
  737. break;
  738. case 19:
  739. modal("SPMRF02900");
  740. break;
  741. case 20:
  742. var pid = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/pid");
  743. var hngnm = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/hngnm");
  744. var orddeptcd = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/orddeptcd");
  745. var medispclid = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/medispclid");
  746. var diag = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/diagcdnm");
  747. var diagcd = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/diagcd");
  748. var sexagestr = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/sa").split("/");
  749. if( sexagestr[0] == "F" ){ var sex = "여자"; }
  750. if( sexagestr[0] == "M" ){ var sex = "남자"; }
  751. var age = sexagestr[1];
  752. var wardcd = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/wardcd");
  753. var roomcd = model.getValue("/root/main/opPatlist/opPatInfo[" + grd_oppatlist.row + "]/patposplcecd");
  754. var ioflag = "I";
  755. setParameter("SMMQR00100_PARAM", pid + "▦" + hngnm + "▦" + orddeptcd + "▦" + medispclid + "▦" + diag + "▦" + diagcd + "▦" + sex + "▦" + age + "▦" + wardcd + "▦" + roomcd + "▦" + ioflag);
  756. modal("../../../emr/qiweb/xrw/SMMQR00100", "","", "", "SMMQR00100", "", "");
  757. break;
  758. case 21:
  759. //조건체크 필요
  760. var selcnt = grd_oppatlist.selectedRows;
  761. if ( selcnt == 1 ) {
  762. messageBox("1건의 수술만 선택하셨습니다","I");
  763. return;
  764. }
  765. if ( selcnt > 2 ) {
  766. messageBox("3건의 이상의 수술을 선택하셨습니다","I");
  767. return;
  768. }
  769. var row1 = grd_oppatlist.selectedRow(0);
  770. var row2 = grd_oppatlist.selectedRow(1);
  771. var oprsrvno1 = model.getValue("/root/main/opPatlist/opPatInfo[" +row1+ "]/oprsrvno");
  772. var oprsrvno2 = model.getValue("/root/main/opPatlist/opPatInfo[" +row2+ "]/oprsrvno");
  773. var pid1 = model.getValue("/root/main/opPatlist/opPatInfo[" +row1+ "]/pid");
  774. var pid2 = model.getValue("/root/main/opPatlist/opPatInfo[" +row2+ "]/pid");
  775. var cnstopflag1 = model.getValue("/root/main/opPatlist/opPatInfo[" +row1+ "]/cnstopflag");
  776. var cnstopflag2 = model.getValue("/root/main/opPatlist/opPatInfo[" +row2+ "]/cnstopflag");
  777. if (pid1 != pid2) {
  778. messageBox("동일한 환자의 수술건이 아닙니다","I");
  779. return;
  780. }
  781. // if (cnstopflag1+cnstopflag2 != "Y" ) {
  782. // messageBox("부(협진)수술 및 메인수술 각1건이 선택되지 않았습니다 ","I");
  783. // return;
  784. // }
  785. model.makeNode("/root/main/opinfo/oplist");
  786. copyNodesetType("/root/main/opinfo/oplist","/root/main/opPatlist/opPatInfo[oprsrvno="+oprsrvno1+"or oprsrvno="+oprsrvno2+"]","replace", model, model);
  787. modal("SPMNP00306", "","", "", "SPMNP00306", "/root/main/opinfo", "/root/main");
  788. btn_srch.dispatch("DOMActivate");
  789. break;
  790. case 22:
  791. //협진 -> 주수술로
  792. var selcnt = grd_oppatlist.selectedRows;
  793. if ( selcnt != 1 ) {
  794. messageBox("부(협진)수술 1건만 선택되어야 합니다","I");
  795. return;
  796. }
  797. var row1 = grd_oppatlist.selectedRow(0);
  798. var oprsrvno1 = model.getValue("/root/main/opPatlist/opPatInfo[" +row1+ "]/oprsrvno");
  799. var cnstopflag1 = model.getValue("/root/main/opPatlist/opPatInfo[" +row1+ "]/cnstopflag");
  800. if (cnstopflag1 != "Y" ) {
  801. messageBox("부(협진)수술건이 아닙니다 ","I");
  802. return;
  803. }
  804. model.makeNode("/root/main/opinfo/oplist");
  805. copyNodesetType("/root/main/opinfo/oplist","/root/main/opPatlist/opPatInfo[oprsrvno="+oprsrvno1+"]","replace", model, model);
  806. modal("SPMNP00306", "","", "", "SPMNP00306", "/root/main/opinfo", "/root/main");
  807. btn_srch.dispatch("DOMActivate");
  808. break;
  809. default :
  810. break;
  811. }
  812. // }
  813. }
  814. // ------------------------------------------------------------------------------------------------
  815. // 수술기록 1:입실저장,2:퇴실저장,9:입실취소 등록/수정/삭제 요청을 처리한다.
  816. // 진행상태 (opstatcd)가 50보다 작은것만 입실취소가 가능하다.(코드정의서 M0015)
  817. // 00 : 임시, 10 : 의뢰, 20 : 확정, 30 : 대기, 40 : 수술중, 50 : 퇴실, 60 : 회복중, 70 : 퇴실
  818. // 09 : 임시취소, 19 : 의뢰취소, 29 : 확정취소
  819. // ------------------------------------------------------------------------------------------------
  820. function fInOutRoomSave(pFlag){
  821. //수술진행상태가 수술중 이전까지만 입실취소가 가능하다.
  822. var opstatcd = model.getValue('/root/main/opPatlist/opPatInfo[' + grd_oppatlist.row + ']/opstatcd');
  823. //취소데이터는 진행없이 바로리턴
  824. if(opstatcd.substring(1) == '9'){
  825. return;
  826. }
  827. if(opstatcd > 40){
  828. messageBox('수술이 끝난 환자는 입실취소', 'E001');
  829. return;
  830. }
  831. model.removenode("/root/send");
  832. var wRow = grd_oppatlist.row;
  833. var wDataPath = "/root/main/opPatlist/opPatInfo[" + wRow + "]"
  834. sPid = model.getValue(wDataPath + "/pid" ); // 01 환자번호
  835. sOprsrvno = model.getValue(wDataPath + "/oprsrvno"); // 02 수술예약(의뢰)번호(년도+일련번호)
  836. sOphistno = model.getValue(wDataPath + "/ophistno"); // 03 예약번호에따른이력번호
  837. sInstcd = model.getValue(wDataPath + "/instcd" ); // 04 기관코드
  838. sJobProc = "pid" + "▦" // 01 환자번호
  839. + "oprsrvno" + "▦" // 02 수술예약
  840. + "ophistno" + "▦" // 03 이력번호
  841. + "instcd" + "▦" // 04 기관코드
  842. + "jobflag" + "▩" // 05 작업구분(1:입실저장,2:퇴실저장,9:입실취소)
  843. + sPid + "▦" // 01 환자번호
  844. + sOprsrvno + "▦" // 02 수술예약
  845. + sOphistno + "▦" // 03 이력번호
  846. + sInstcd + "▦" // 04 기관코드
  847. + pFlag + "▩" // 05 작업구분(1:입실저장,2:퇴실저장,9:입실취소)
  848. model.makeValue("/root/send/JobProc", sJobProc);
  849. if (submit("TXMNP00102")){ // 수술간호기록정보 입실취소
  850. messageBox("입실취소가", "I002");
  851. fSelectPos();//재조회
  852. }
  853. }
  854. /**
  855. * @group :
  856. * @ver : 2010.11.19
  857. * @by : DARK9258
  858. * @---------------------------------------------------
  859. * @type : function
  860. * @access : public
  861. * @desc : 환자 name라벨 출력
  862. * @param :
  863. * @return :
  864. * @---------------------------------------------------
  865. */
  866. function fPrintNameLabel(pid, hngnm, sexage, oproomcdnm, depthngnm, prncnt, pPort,roomcd){
  867. ////////////////////////////////////////////////////////////////////////////////////////// 원본_20090522
  868. // //20080905 port찾기
  869. // //port정보 가져오기
  870. // model.removenode('/root/send');
  871. // model.removenode('/root/main/barcdprntsetup');
  872. // model.makenode('/root/main/barcdprntsetup');
  873. // model.makeValue('/root/send/scrnid', 'SMMNP00100');
  874. // if(submit('TRLLC90101')){
  875. // pPort = model.getValue('/root/main/barcdprntsetup/prntsetupinfo/setupinfo[1]/comm02/comm');
  876. // }
  877. //
  878. // if(document.all("CommAX") != null) {
  879. // //바코드 출력 시작
  880. //
  881. // var portOpenTF = "";
  882. //
  883. // // CommPort 설정
  884. // if (pPort == "" || pPort == null || pPort == " ") {
  885. // CommAX.CommPort = "1"; // default port setting
  886. // } else {
  887. // CommAX.CommPort = pPort; //Port 설정
  888. // }
  889. //
  890. // CommAX.Settings = "9600,n,8,1";
  891. //
  892. // portOpenTF = CommAX.PortOpen("true"); //Port Open
  893. //
  894. // if(portOpenTF == "TRUE") {
  895. //
  896. // var iLeft = model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/left");
  897. // var iTop = model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/top");
  898. //
  899. // if(iLeft == "" || iLeft == "-"){
  900. // iLeft = 0;
  901. // }
  902. // if(iTop == "" || iTop == "-"){
  903. // iTop = 0;
  904. // }
  905. //
  906. // var sData = "^XA^LH0,20";//출력시작점
  907. //
  908. // //출력일
  909. // var prndd = getCurrentDate().substr(0,4) + "/" + getCurrentDate().substr(4,2) + "/" + getCurrentDate().substr(6,2);
  910. // sData += "^CFA,20,20";//bold, height, width
  911. // sData += "^FO10,20";//위치지정(x축, y축)
  912. // sData += "^FD"+ prndd + "^FS";
  913. //
  914. // //수술정보
  915. // var opinfo = oproomcdnm + "R " + depthngnm + " " + pid;
  916. // sData += CommAX.PrtImgOut(20, 60, opinfo, 1, 1);//PrtImgOut(x축, y축, data, width, heigt)
  917. // sData += CommAX.HanImageData();
  918. //
  919. //
  920. // //환자명
  921. // //글자수가 4이상이면 left정렬 4이하이면 center정렬
  922. // var hx = 20; var hy = 105;
  923. // /*var len = hngnm.length;
  924. // if(len > 4){
  925. // hx = 10;
  926. // }else if(len == 4){
  927. // hx = 90;
  928. // }else if(len == 3){
  929. // hx = 120;
  930. // }else if(len == 2){
  931. // hx = 150;
  932. // }else if(len == 1){
  933. // hx = 180;
  934. // }*/
  935. // sData += CommAX.PrtImgOut(hx, hy, hngnm, 2, 2);//PrtImgOut(x축, y축, data, width, heigt)
  936. // sData += CommAX.HanImageData();
  937. //
  938. // //sexage
  939. // sData += "^CFE,20,20";
  940. // sData += "^FO300,120";//위치지정
  941. // sData += "^FD"+ sexage + "^FS";
  942. //
  943. // sData += "^PQ"+ prncnt + "^XZ";//출력장수
  944. //
  945. // CommAX.SendMessage(sData); // 출력
  946. // CommAX.PortOpen("false"); // 출력종료
  947. //
  948. //
  949. // } else {
  950. // messageBox("아래 사항을 확인후 재출력해주십시오."
  951. // + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  952. // + " \n 2.케이블 확인"
  953. // + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  954. // return;
  955. // }
  956. // }
  957. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  958. // SATO용 추가_20090522(ByJA)
  959. if(prncnt > 0){
  960. //1. 바코드 라벨 설정값 조회
  961. var scrnid = "SMMNP00100";
  962. model.removeNodeset("/root/main/barcdprntsetup");
  963. fGetBarCodeInfo(scrnid); // CareCom.js
  964. lzzfMakeBrcdPrntObjHanDo("CommAX");
  965. //2. 바코드 라벨 환경설정
  966. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  967. var portOpenTF = fSetNursBarcdInfo(barcdRef); // CareCom.js 바코드프린터별 환경설정(Zebra,SATO)
  968. /** <addon>
  969. *개발일시: 2010.05.13
  970. *개발자: 양천덕
  971. *요청병원: 세종병원
  972. *요청파트: 간호
  973. *개발내용: 바코드 출력 형식 변경으로 수정 처리(수술)
  974. </addon>
  975. */
  976. fPrtORPatNameLabel(barcdRef, pid, hngnm, sexage, oproomcdnm, depthngnm, prncnt, roomcd);
  977. return;
  978. }
  979. }
  980. /**
  981. * @group :
  982. * @ver : 2008.08.01
  983. * @by : dhkim
  984. * @---------------------------------------------------
  985. * @type : function
  986. * @access : public
  987. * @desc : 환자 name라벨 출력
  988. * @param :
  989. * @return :
  990. * @---------------------------------------------------
  991. */
  992. function fPrtCareInjLabel_INJ(pid, hngnm, sexage, oproomcdnm, depthngnm, prncnt, pPort){
  993. ////////////////////////////////////////////////////////////////////////////////////////// 원본_20090522
  994. // //20080905 port찾기
  995. // //port정보 가져오기
  996. // model.removenode('/root/send');
  997. // model.removenode('/root/main/barcdprntsetup');
  998. // model.makenode('/root/main/barcdprntsetup');
  999. // model.makeValue('/root/send/scrnid', 'SMMNP00100');
  1000. // if(submit('TRLLC90101')){
  1001. // pPort = model.getValue('/root/main/barcdprntsetup/prntsetupinfo/setupinfo[1]/comm02/comm');
  1002. // }
  1003. //
  1004. // if(document.all("CommAX") != null) {
  1005. // //바코드 출력 시작
  1006. //
  1007. // var portOpenTF = "";
  1008. //
  1009. // // CommPort 설정
  1010. // if (pPort == "" || pPort == null || pPort == " ") {
  1011. // CommAX.CommPort = "1"; // default port setting
  1012. // } else {
  1013. // CommAX.CommPort = pPort; //Port 설정
  1014. // }
  1015. //
  1016. // CommAX.Settings = "9600,n,8,1";
  1017. //
  1018. // portOpenTF = CommAX.PortOpen("true"); //Port Open
  1019. //
  1020. // if(portOpenTF == "TRUE") {
  1021. //
  1022. // var iLeft = model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/left");
  1023. // var iTop = model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/top");
  1024. //
  1025. // if(iLeft == "" || iLeft == "-"){
  1026. // iLeft = 0;
  1027. // }
  1028. // if(iTop == "" || iTop == "-"){
  1029. // iTop = 0;
  1030. // }
  1031. //
  1032. // var sData = "^XA^LH0,20";//출력시작점
  1033. //
  1034. // //출력일
  1035. // var prndd = getCurrentDate().substr(0,4) + "/" + getCurrentDate().substr(4,2) + "/" + getCurrentDate().substr(6,2);
  1036. // sData += "^CFA,20,20";//bold, height, width
  1037. // sData += "^FO10,20";//위치지정(x축, y축)
  1038. // sData += "^FD"+ prndd + "^FS";
  1039. //
  1040. // //수술정보
  1041. // var opinfo = oproomcdnm + "R " + depthngnm + " " + pid;
  1042. // sData += CommAX.PrtImgOut(20, 60, opinfo, 1, 1);//PrtImgOut(x축, y축, data, width, heigt)
  1043. // sData += CommAX.HanImageData();
  1044. //
  1045. //
  1046. // //환자명
  1047. // //글자수가 4이상이면 left정렬 4이하이면 center정렬
  1048. // var hx = 20; var hy = 105;
  1049. // /*var len = hngnm.length;
  1050. // if(len > 4){
  1051. // hx = 10;
  1052. // }else if(len == 4){
  1053. // hx = 90;
  1054. // }else if(len == 3){
  1055. // hx = 120;
  1056. // }else if(len == 2){
  1057. // hx = 150;
  1058. // }else if(len == 1){
  1059. // hx = 180;
  1060. // }*/
  1061. // sData += CommAX.PrtImgOut(hx, hy, hngnm, 2, 2);//PrtImgOut(x축, y축, data, width, heigt)
  1062. // sData += CommAX.HanImageData();
  1063. //
  1064. // //sexage
  1065. // sData += "^CFE,20,20";
  1066. // sData += "^FO300,120";//위치지정
  1067. // sData += "^FD"+ sexage + "^FS";
  1068. //
  1069. // sData += "^PQ"+ prncnt + "^XZ";//출력장수
  1070. //
  1071. // CommAX.SendMessage(sData); // 출력
  1072. // CommAX.PortOpen("false"); // 출력종료
  1073. //
  1074. //
  1075. // } else {
  1076. // messageBox("아래 사항을 확인후 재출력해주십시오."
  1077. // + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  1078. // + " \n 2.케이블 확인"
  1079. // + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  1080. // return;
  1081. // }
  1082. // }
  1083. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1084. // SATO용 추가_20090522(ByJA)
  1085. if(prncnt > 0){
  1086. //1. 바코드 라벨 설정값 조회
  1087. var scrnid = "SMMNP00100";
  1088. model.removeNodeset("/root/main/barcdprntsetup");
  1089. fGetBarCodeInfo(scrnid); // CareCom.js
  1090. lzzfMakeBrcdPrntObjHanDo("CommAX");
  1091. //2. 바코드 라벨 환경설정
  1092. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  1093. var portOpenTF = fSetNursBarcdInfo(barcdRef); // CareCom.js 바코드프린터별 환경설정(Zebra,SATO)
  1094. //3. 환자라벨출력
  1095. var esc = String.fromCharCode(27);
  1096. var sPrntKind = model.getvalue(barcdRef + "/prntkind");
  1097. var iLeft = model.getValue(barcdRef + "[1]/blank/left");
  1098. var iTop = model.getValue(barcdRef + "[1]/blank/top");
  1099. var prndd = getCurrentDate().substr(0,4) + "/" + getCurrentDate().substr(4,2) + "/" + getCurrentDate().substr(6,2);
  1100. if(iLeft == "" || iLeft == "-"){
  1101. iLeft = 0;
  1102. }
  1103. if(iTop == "" || iTop == "-"){
  1104. iTop = 0;
  1105. }
  1106. // SATO일 경우
  1107. if(sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  1108. // 시작위치 셋팅 (A1aaaabbbb:출력 용지 규격(aaaa:세로크기_최대 2848, bbbb:가로크기_최대 832))
  1109. var sSndMsg = esc + "A" + esc + "A103500500";
  1110. // 출력할 데이터 생성
  1111. sSndMsg += esc + "V" + (parseInt(iTop)+20) + esc + "H" + (parseInt(iLeft)+50) + esc + "M" + prndd;
  1112. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+60 , parseInt(iLeft)+50, oproomcdnm + "R " + depthngnm + " " + pid, 1, 1); // 한글출력시 PrtImgOut함수 이용
  1113. sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+105, parseInt(iLeft)+50, hngnm, 2, 2); // 한글출력시 PrtImgOut함수 이용
  1114. sSndMsg += esc + "V" + (parseInt(iTop)+120) + esc + "H" + (parseInt(iLeft)+320) + esc + "M" + sexage;
  1115. // 종료 및 출력물 출력수량
  1116. sSndMsg += esc + "Q" + prncnt + esc + "Z";
  1117. var a = CommAX.SendMsg(sSndMsg);
  1118. CommAX.PortOpen("false");
  1119. }
  1120. // SATO가 아닐 경우(기존)
  1121. else{
  1122. if(portOpenTF == "TRUE"){
  1123. var sData = "^XA^LH0,20";//출력시작점
  1124. sData += "^CFA,20,20^FO"+(parseInt(iLeft)+10)+","+(parseInt(iTop)+20)+"^FD"+ prndd + "^FS"; //출력일 bold, height, width, 위치지정(x축, y축)
  1125. sData += CommAX.PrtImgOut((parseInt(iLeft)+20),(parseInt(iTop)+60) , oproomcdnm + "R " + depthngnm + " " + pid, 1, 1);//수술정보 PrtImgOut(x축, y축, data, width, heigt)
  1126. sData += CommAX.HanImageData();
  1127. sData += CommAX.PrtImgOut((parseInt(iLeft)+20),(parseInt(iTop)+105), hngnm, 2, 2);//환자명 글자수가 4이상이면 left정렬 4이하이면 center정렬 PrtImgOut(x축, y축, data, width, heigt)
  1128. sData += CommAX.HanImageData();
  1129. sData += "^CFE,20,20^FO"+(parseInt(iLeft)+300)+","+(parseInt(iTop)+120)+"^FD"+ sexage + "^FS";
  1130. sData += "^PQ"+ prncnt + "^XZ";//출력장수
  1131. CommAX.SendMessage(sData); // 출력
  1132. CommAX.PortOpen("false"); // 출력종료
  1133. } else {
  1134. messageBox("아래 사항을 확인후 재출력해주십시오."
  1135. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  1136. + " \n 2.케이블 확인"
  1137. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  1138. return;
  1139. }
  1140. }
  1141. }
  1142. }
  1143. /**
  1144. * @group :
  1145. * @ver : 2007.10.17
  1146. * @by : Grace
  1147. * @---------------------------------------------------
  1148. * @type : function
  1149. * @access : public
  1150. * @desc : Exel 저장
  1151. * @param :
  1152. * @return :
  1153. * @---------------------------------------------------
  1154. */
  1155. function fSaveExcel(){
  1156. var opfromdd = model.getValue("/root/main/cond/opddfr");
  1157. var optodd = model.getValue("/root/main/cond/opddto");
  1158. model.removenode("/root/send");
  1159. model.makeNode("/root/send/reqdata");
  1160. model.copyNode("/root/send/reqdata", "/root/main/cond");
  1161. if(submit("TRMNP00106")){
  1162. grd_excel.refresh();
  1163. var fileName = window.fileDialog("save", ",", false, "수술스케쥴("+opfromdd+"~"+optodd+")", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  1164. if (fileName != "") {
  1165. grd_excel.saveExcel(fileName, "SheetName", true, true, "", "", false);
  1166. }
  1167. }
  1168. }
  1169. /**
  1170. * @group :
  1171. * @ver : 2008.07.19
  1172. * @by : Grace
  1173. * @---------------------------------------------------
  1174. * @type : function
  1175. * @access : public
  1176. * @desc : 출력
  1177. * @param :
  1178. * @return :
  1179. * @---------------------------------------------------
  1180. */
  1181. function fPrntSche(){
  1182. model.removenode("/root/send");
  1183. model.makeNode("/root/send/report/opnmflag");
  1184. model.makeNode("/root/send/report/diagnmflag");
  1185. var opnmen = model.getValue("/root/temp/opnmen");
  1186. var diagnmen = model.getValue("/root/temp/diagnmen");
  1187. if( opnmen == "Y" ) {
  1188. model.setValue("/root/send/report/opnmflag", "E");
  1189. }else {
  1190. model.setValue("/root/send/report/opnmflag", "H");
  1191. }
  1192. // 진단명(영문/한글)별 출력화면 달리 설정_손성훈.
  1193. if( diagnmen == "Y" ) {
  1194. model.setValue("/root/send/report/diagnmflag", "E");
  1195. }else {
  1196. model.setValue("/root/send/report/diagnmflag", "H");
  1197. }
  1198. exeReportPreview("RPMNP00100", "XMLSTR", "/root/send/report"); //미리보기
  1199. }
  1200. /**
  1201. * @group :
  1202. * @ver : 2008.08.26
  1203. * @by : 김 진 명
  1204. * @---------------------------------------------------
  1205. * @type : function
  1206. * @access : public
  1207. * @desc : 수술실 이송요원 호출 함수
  1208. * @param :
  1209. * @return :
  1210. * @---------------------------------------------------
  1211. */
  1212. function fInsTranCallOP(pid, prcpnm, kind, rsrvdt, arvposcd, startposcd){
  1213. setParameter("status", "OP");
  1214. setParameter("pid", pid);
  1215. setParameter("prcpnm", prcpnm);
  1216. setParameter("kind", kind);
  1217. setParameter("rsrvdt", rsrvdt);
  1218. setParameter("arvposcd", arvposcd);
  1219. setParameter("startposcd", startposcd);
  1220. modal("SMMNB01810" ,"", "300", "150", "SMMNB01810", "", "");
  1221. }
  1222. /**
  1223. * @desc : 화면ID에 해당하는 컬럼순서를 조회한다.
  1224. * @
  1225. * @param :
  1226. * @return :
  1227. * @author : 김영학
  1228. * @---------------------------------------------------
  1229. */
  1230. function reqOrderInfoOfCol(scrnid, grdid, compscd){
  1231. model.removeNodeset("/root/send/reqdata");
  1232. model.makeValue("/root/send/reqdata/scrnid" , scrnid);
  1233. model.makeValue("/root/send/reqdata/compscd" , compscd);
  1234. if(submit("TRMNB02401", false)){
  1235. var refdata = model.getValue("/root/init/userscrnenvinfo/gridseq/compsrefcnts");
  1236. var sizedata = model.getValue("/root/init/userscrnenvinfo/gridseq/compssizecnts");
  1237. if(refdata != "" || sizedata != ""){
  1238. setOrderInfoOfCol(grdid , refdata, sizedata);
  1239. }
  1240. }
  1241. }
  1242. function setOrderInfoOfCol(grdID, refdata, sizedata){
  1243. var grdObj = document.controls.item(grdID);
  1244. var refArray = refdata.split("^");
  1245. var sizeArray = sizedata.split("^");
  1246. for(var i = 0; i < refArray.length; i++){
  1247. var colcnt = grdObj.colref("" + refArray[i] + "");
  1248. if (colcnt <0 ) colcnt = 0;
  1249. // 이동 컬럼과 대상컬럼의 인덱스가 같지 않은 경우만 이동.
  1250. if (colcnt != i) {
  1251. grdObj.colMove(i, colcnt, "before", false);
  1252. }
  1253. var size = sizeArray[i];
  1254. if(size == 0){ // size of column 0 -> hidden
  1255. grdObj.colHidden(i) = true;
  1256. }else{
  1257. grdObj.colHidden(i) = false;
  1258. }
  1259. grdObj.colWidth(i) = eval(size);
  1260. }
  1261. model.refresh();
  1262. }
  1263. function fColumSetMove(scrnid, grd_nm) {
  1264. // 컬럼 순서 저장에 따른 불러오기 추가 : 2009. 10. 11 han19
  1265. var sWardCD = getScreenMenuParameter();//model.getValue("/root/main/cond/wardcd") //20080725_메뉴설정에 따른 그리드 동적생성으로 변겅(ByJA)
  1266. var prestimportid = model.getValue("/root/main/cond/prestimportid");
  1267. var compscd = "";
  1268. if(prestimportid == "nm") {
  1269. if (sWardCD == "Partrtn") { // 분만
  1270. compscd = "PA";
  1271. } else if(sWardCD == "NBaby"){ // 신생아
  1272. compscd = "NB";
  1273. } else if(sWardCD == "BMT"){ //BMT
  1274. compscd = "BT";
  1275. } else if(sWardCD == "spclinj"){ // 특수주사실
  1276. compscd = "SJ";
  1277. } else {
  1278. compscd = "NM";
  1279. }
  1280. } else if (prestimportid == "td") { // Todo List : 컬럼설정은 하지 않지만 구분값은 넣어놓음
  1281. compscd = "TD";
  1282. } else if (prestimportid =="om") { // Order Manage
  1283. compscd = "OM";
  1284. } else {
  1285. if (sWardCD == "Partrtn") { // 분만
  1286. compscd = "PA";
  1287. } else if(sWardCD == "NBaby"){ // 신생아
  1288. compscd = "NB";
  1289. } else if(sWardCD == "BMT"){ //BMT
  1290. compscd = "BT";
  1291. } else if(sWardCD == "spclinj"){ // 특수주사실
  1292. compscd = "SJ";
  1293. } else {
  1294. compscd = "NM";
  1295. }
  1296. }
  1297. reqOrderInfoOfCol(scrnid, grd_nm, compscd);
  1298. // 컬럼 순서 저장에 따른 불러오기 추가 : 2009. 10. 11 han19
  1299. }
  1300. function fCalcdate(calcn, calcd){
  1301. calcd = calcd.toDate("YYYYMMDD");
  1302. calcd = calcd.getAddDate(calcn , "D");
  1303. calcd = calcd.getDateFormat("YYYYMMDD");
  1304. return calcd;
  1305. }
  1306. /* ------------------------------------------------- */
  1307. /* ------End Of List ------------------------------- */
  1308. /* -------------------------------------------------- */