SMMMO05400.js 60 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 수술마취일정조정 ( SMMMO05400_수술마취일정조정.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var sOPANSTCNFMPATLIST_PATH = "/root/main/opanstpatinfo/opanstcnfmpatlist"; //마취수술 확정환자
  7. var sOPANSTWAITPATLIST_PATH = "/root/main/opanstpatinfo/opanstwaitpatlist"; //마취수술 대기환자
  8. var sOPANSTSCHECHNG_PATH = "/root/main/opanstschechng";
  9. /**
  10. * @desc : 화면 초기화
  11. * @
  12. * @param :
  13. * @return :
  14. * @author : 오지훈
  15. * @---------------------------------------------------
  16. */
  17. function fInitialize_SMMMO05400(){
  18. model.removeNodeset(sOPANSTWAITPATLIST_PATH);
  19. model.removeNodeset(sOPANSTCNFMPATLIST_PATH);
  20. model.setValue("/root/main/cond/reqdd", getCurrentDate());
  21. zbcfGetCodeList(new Array("M0013",
  22. "M0014",
  23. "M0015",
  24. "M0017",
  25. "M0020",
  26. "M0243",
  27. "M0244",
  28. "M0245",
  29. "M0246",
  30. "M0356",
  31. "M0377"),
  32. new Array("/root/init/M0013",
  33. "/root/init/M0014",
  34. "/root/init/M0015",
  35. "/root/init/M0017",
  36. "/root/init/M0020",
  37. "/root/init/M0243",
  38. "/root/init/M0244",
  39. "/root/init/M0245",
  40. "/root/init/M0246",
  41. "/root/init/M0356",
  42. "/root/init/M0377"));
  43. //일괄확정 버튼과 가확정 범례 서울성모만 보이도록 2009.07.17 이윤정
  44. /* fDelroiteScrnSet() 함수로 기능 이전
  45. if (getUserInfo("dutplceinstcd")=="012"){
  46. caption10.visible = true;
  47. rectangle5.visible = true;
  48. btn_cfm.visible = true;
  49. }
  50. */
  51. //마취통증의학과
  52. reqHardCodeInfo("/root/send/reqdata", "/root/init/hardcd", 18);
  53. // 딜로이트 관련 수술마취 조정화면 기관별 적용 여부 조회 하드코드 222번 2010.06.16 kskim
  54. model.makeNode("/root/init/hardcd222");
  55. mmbfGetHardCodeInfo("/root/send/reqdata", "/root/init/hardcd222", 222);
  56. // 수술/마취 의뢰 가확정 배치 사용 여부 하드코드: 115( 범례에서 가확정 범례 포함하여 하드코드 115로 함께 관리)
  57. model.makeNode("/root/init/hardcd115");
  58. mmbfGetHardCodeInfo("/root/send/reqdata", "/root/init/hardcd115", 115);
  59. fDelroiteScrnSet();
  60. //reqHardCodeInfo("/root/send/reqdata", "/root/init/formcd", 85); //수술전 평가지 서식코드
  61. submit("TRMMO05503");
  62. gANSTDEPT_CD = model.getValue("/root/init/hardcd/hardcd/hardcd");
  63. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept", "D");
  64. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", gANSTDEPT_CD, "0330");
  65. addComboInstance("/root/init/userlist", "userid^usernm", "-^-", "usercombo"); //의사콤보 전체항목 추가
  66. reqOpRoomList(getCurrentDate(), "/root/init/oproomlist", "total"); //수술방 콤보 조회
  67. addComboInstance("/root/init/oproomlist", "oproomcd^oproomnm", "0000^방없음", "oproomlist"); //수술방 방없음 추가
  68. fReqOpAnstSche();
  69. model.refresh();
  70. }
  71. /**
  72. * @desc : 수술마취일정 조회
  73. * @
  74. * @param :
  75. * @return :
  76. * @author : 오지훈
  77. * @---------------------------------------------------
  78. */
  79. function fReqOpAnstSche(){
  80. model.removeNodeset("/root/send/reqdata");
  81. model.makeNode("/root/send/reqdata");
  82. model.copyNode("/root/send/reqdata", "/root/main/cond");
  83. model.makeValue("/root/send/reqdata/instflag", model.getValue("/root/init/hardcd222/hardcd/hardcd"))
  84. model.removeNodeset(grd_opanstcnfmpatlist.nodeset);
  85. initGridStyle("grd_opanstcnfmpatlist"); // 그리드 속성 초기화
  86. initGridStyle("grd_opanstwaitpatlist"); // 그리드 속성 초기화
  87. if(submit("TRMMO05401")){
  88. fDispAprvCnclChng();
  89. fCheckWaitOpdelivefact();
  90. }
  91. }
  92. /**
  93. * @desc : 변경된 내역 유무확인(스케줄 변경 확인버튼 클릭)
  94. * @
  95. * @param :
  96. * @return :
  97. * @author : 오지훈
  98. * @---------------------------------------------------
  99. */
  100. function fClkScheChngBtn(){
  101. if(compareNodeVal("/root/temp/opanstschechng", "/root/main/opanstschechng") == true){ //변경된 내역이 있는 경우
  102. model.removeNodeset("/root/send/savedata");
  103. model.makeNode("/root/send/savedata");
  104. model.copyNode("/root/send/savedata", "/root/main/opanstschechng");
  105. if(submit("TXMMO05402")){
  106. }
  107. group2.attribute("height") = 0;
  108. }else{ //변경된 내역이 없는 경우
  109. messageBox("저장할 내역이", "I004");
  110. return;
  111. }
  112. }
  113. /**
  114. * @desc : 수술 마취일정 변경시, 기본정보 설정
  115. * @
  116. * @param :
  117. * @return :
  118. * @---------------------------------------------------
  119. */
  120. function fChngOpAnstPatInfo(){
  121. var iRow = grd_opanstcnfmpatlist.row;
  122. if(iRow < 1){
  123. return;
  124. }
  125. /*if(model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opstatcd") != 20 && model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opstatcd") != 30) {
  126. messageBox("수술을 시행하여 변경", "E001");
  127. return;
  128. }*/
  129. /*if(model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opstatcd") != 20) {
  130. messageBox("수술을 시행하여 변경", "E001");
  131. return;
  132. }*/
  133. var anstdeptcd = model.getValue("/root/init/hardcd/hardcd/hardcd"); //마취통증의학과 부서
  134. var authdrid = getUserInfo("userid"); //권한자
  135. var authdeptcd = getUserInfo("dutplcecd"); //권한부서
  136. if(authdrid != "EMR"){
  137. if(authdeptcd != anstdeptcd){
  138. messageBox("마취통증의학과만 수술마취변경을 ", "E001");
  139. return;
  140. }
  141. }
  142. //group2.attribute("height") = 273;
  143. fBtnDisabled(false);
  144. var oprsrvno = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/oprsrvno");
  145. var ophistno = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/ophistno");
  146. var opcnfmdd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opcnfmdd");
  147. var oproomcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/oproomcd");
  148. var opfromtmcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opfromtmcd");
  149. var opendtmcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opendtmcd");
  150. var opusetm = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opusetm");
  151. var perfdeptcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/perfdeptcd");
  152. var perfdrid = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/perfdrid");
  153. var anstdrid1 = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/anstdrid1");
  154. var anstdrid2 = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/anstdrid2");
  155. var anstdrid3 = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/anstdrid3");
  156. var anstmthdcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/anstmthdcd");
  157. var opflagcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opflagcd");
  158. var diagnm = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/diagnm");
  159. var opnm = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opnm");
  160. var diagcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/diagcd");
  161. var opcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opcd");
  162. var anstdetlmthdcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/anstdetlmthdcd");
  163. var reqdd = model.getValue("/root/main/cond/reqdd");
  164. var opstatcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opstatcd");
  165. var pid = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/pid");
  166. var oppatflagcd= model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/oppatflagcd");
  167. var ccrtno = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/ccrtno");
  168. var hngnm = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/hngnm");
  169. var sa = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/sa");
  170. var cnstopflag = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/cnstopflag");
  171. var anstccrtno = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/anstccrtno"); // 2008.10.17 마취CART
  172. var mainoprsrvno = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/mainoprsrvno"); // 2008.11.26 주수술예약번호
  173. //협진이면 주수술의 수술방, 시간을 함께 넘긴다.
  174. // 2008.09.25 수정함
  175. if(cnstopflag == "Y") {
  176. var mainoprsrvno = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/mainoprsrvno");
  177. var nodeList = instance1.selectNodes( sOPANSTCNFMPATLIST_PATH + "[oprsrvno = "+ mainoprsrvno +" ]");
  178. if( nodeList.length > 0) {
  179. var mOproomcd = nodeList.item(0).selectSingleNode("oproomcd").text;
  180. var mOpfromtmcd = nodeList.item(0).selectSingleNode("opfromtmcd").text;
  181. var mOpendtmcd = nodeList.item(0).selectSingleNode("opendtmcd").text;
  182. var mOpusetm = nodeList.item(0).selectSingleNode("opusetm").text;
  183. /*oproomcd =mOproomcd;
  184. opfromtmcd = mOpfromtmcd;
  185. opendtmcd = mOpendtmcd;
  186. opusetm = mOpusetm;*/
  187. }
  188. }
  189. var param = oprsrvno + "▦" +
  190. ophistno + "▦" +
  191. opcnfmdd + "▦" +
  192. oproomcd + "▦" +
  193. opfromtmcd + "▦" +
  194. opendtmcd + "▦" +
  195. opusetm + "▦" +
  196. perfdeptcd + "▦" +
  197. perfdrid + "▦" +
  198. anstdrid1 + "▦" +
  199. anstdrid2 + "▦" +
  200. anstdrid3 + "▦" +
  201. anstmthdcd + "▦" +
  202. opflagcd + "▦" +
  203. diagnm + "▦" +
  204. opnm + "▦" +
  205. diagcd + "▦" +
  206. opcd + "▦" +
  207. anstdetlmthdcd + "▦" +
  208. reqdd + "▦" +
  209. opstatcd + "▦" +
  210. pid + "▦" +
  211. oppatflagcd + "▦" +
  212. ccrtno + "▦" +
  213. hngnm + "▦" +
  214. sa + "▦" +
  215. cnstopflag + "▦" +
  216. mOproomcd +"▦" +
  217. mOpfromtmcd + "▦" +
  218. mOpendtmcd + "▦" +
  219. mOpusetm + "▦" +
  220. anstccrtno + "▦" +
  221. mainoprsrvno;
  222. setParameter("SPMMO05400_param", param);
  223. modal("SPMMO05400");
  224. if(getParameter("SPMMO05400_rtn_useyn") == "Y") {
  225. fReqOpAnstSche();
  226. }
  227. }
  228. /**
  229. * @desc : 마취의사 배정
  230. * @
  231. * @param :
  232. * @return :
  233. * @author : 오지훈
  234. * @---------------------------------------------------
  235. */
  236. function fAssgnAnstDr(){
  237. // 2008.10.23
  238. var iRow = grd_opanstcnfmpatlist.row;
  239. if(model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opstatcd") != 20 && model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opstatcd") != 30 && model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opstatcd") != 15) {
  240. messageBox("수술을 시행하여 변경", "E001");
  241. return;
  242. }
  243. //(e)
  244. fBtnDisabled(false);
  245. var selectedRows = grd_opanstcnfmpatlist.selectedRows;
  246. for(var i=0; i<selectedRows ; i++) {
  247. var anstmthdcd = model.getValue("/root/main/opanstpatinfo/opanstcnfmpatlist[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/anstmthdcd");
  248. if(anstmthdcd == "03"){ //국소마취
  249. messageBox("국소마취는 마취의를 배정", "E001");
  250. return;
  251. }
  252. }
  253. model.refresh();
  254. group1.attribute("height") = 117;
  255. }
  256. /**
  257. * @desc : 마취의 배정 정보 저장
  258. * @
  259. * @param :
  260. * @return :
  261. * @author : 오지훈
  262. * @---------------------------------------------------
  263. */
  264. function fSaveAssgnAnstDr(){
  265. var currow = grd_opanstcnfmpatlist.row;
  266. if(currow < 1){
  267. messageBox("마취의를 배정할 환자를", "C002");
  268. return;
  269. }
  270. var anstdrnm = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/anstdrnm");
  271. var header = "status▦oprsrvno▦anstdrid1▦anstdrid2▦anstdrid3▦anstmthdcd▦anstdetlmthdcd▦ageflag▦oproomcd▦ccrtno▦perfdeptcd▦anstccrtno▩";
  272. var savedata ="";
  273. var anstdrid1 = model.getValue("/root/main/anstdrid/anstdrid1"); //마취의사1 ID
  274. var anstdrid2 = model.getValue("/root/main/anstdrid/anstdrid2"); //마취의사2 ID
  275. var anstdrid3 = model.getValue("/root/main/anstdrid/anstdrid3"); //마취의사3 ID
  276. if(anstdrnm == "") { // 2008.10.01 신규일 경우만 묻도록 처리
  277. if( (anstdrid1 == "" || anstdrid1 == "-") && (anstdrid2 == "" || anstdrid2 == "-") && (anstdrid3 == "" || anstdrid3 == "-")) {
  278. messageBox("마취의를", "C002");
  279. return;
  280. }
  281. //마취의1이 배정되지 않고 마취의 2,3이 선택되는 문제점 방지
  282. if( !isNull(anstdrid2) || !isNull(anstdrid3) ) {
  283. if(anstdrid1 == "" || anstdrid1 == "-") {
  284. messageBox("마취의1을", "C002");
  285. return;
  286. }
  287. }
  288. }
  289. var selectedRows = grd_opanstcnfmpatlist.selectedRows;
  290. for(var i=0; i<selectedRows ; i++) {
  291. //2008.08.25 LWS 마취의 재배정 가능하도록 수정
  292. //if(model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/anstassgflag") == "Y"){
  293. //messageBox("마취의가 이미 배정된 환자", "E008");
  294. //return;
  295. //} else {
  296. var anstdrnm = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/anstdrnm");
  297. var anstmthdcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/anstmthdcd");
  298. if(anstdrnm == "") {
  299. //if(anstmthdcd != "03") { // 2008.10.31 국소마취가 아닌경우도 함께 배정되는 것을 막음
  300. savedata += "i" + "▦" +
  301. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/oprsrvno") + "▦" +
  302. anstdrid1 + "▦" +
  303. anstdrid2 + "▦" +
  304. anstdrid3 + "▦" +
  305. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/anstmthdcd") + "▦" +
  306. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/anstdetlmthdcd") + "▦" +
  307. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/ageflag") + "▦" +
  308. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/oproomcd") + "▦" +
  309. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/ccrtno") + "▦" +
  310. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/perfdeptcd") + "▦" +
  311. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/anstccrtno") + "▩";
  312. //}
  313. }else{
  314. //if(anstmthdcd != "03") { // 2008.10.31 국소마취가 아닌경우도 함께 배정되는 것을 막음
  315. savedata += "u" + "▦" +
  316. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/oprsrvno") + "▦" +
  317. anstdrid1 + "▦" +
  318. anstdrid2 + "▦" +
  319. anstdrid3 + "▦" +
  320. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/anstmthdcd") + "▦" +
  321. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/anstdetlmthdcd") + "▦" +
  322. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/ageflag") + "▦" +
  323. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/oproomcd") + "▦" +
  324. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/ccrtno") + "▦" +
  325. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/perfdeptcd") + "▦" +
  326. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/anstccrtno") + "▩";
  327. //}
  328. }
  329. // alert(savedata);
  330. }
  331. header += savedata;
  332. model.removeNodeset("/root/send/savedata");
  333. model.makeValue("/root/send/savedata", header);
  334. if(submit("TXMMO05403")){
  335. fReqOpAnstSche();
  336. }
  337. group1.attribute("height")=0;
  338. model.setValue("/root/main/anstdrid/anstdrid1", "-");
  339. model.setValue("/root/main/anstdrid/anstdrid2", "-");
  340. model.setValue("/root/main/anstdrid/anstdrid3", "-");
  341. model.refresh();
  342. }
  343. /**
  344. * @desc : 마취방법
  345. * @
  346. * @param :
  347. * @return :
  348. * @author : 박유미
  349. * @---------------------------------------------------
  350. */
  351. function fMthdAnst() {
  352. // 2008.10.23
  353. var iRow = grd_opanstcnfmpatlist.row;
  354. if(model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opstatcd") != 20 && model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opstatcd") != 30 && model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + iRow + "]/opstatcd") != 15) {
  355. messageBox("수술을 시행하여 변경", "E001");
  356. return;
  357. }
  358. //(e)
  359. fBtnDisabled(false);
  360. var selectedRows = grd_opanstcnfmpatlist.selectedRows;
  361. for(var i=0; i<selectedRows ; i++) {
  362. var sa = model.getValue("/root/main/opanstpatinfo/opanstcnfmpatlist[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/sa");
  363. sa = sa.split("/");
  364. if(sa[1] > 16){
  365. model.setValue("/root/main/anstdrid/ageflag", "20");
  366. }else if(sa[1] > 12 && sa[1] <= 15){
  367. model.setValue("/root/main/anstdrid/ageflag", "15");
  368. }else if(sa[1] > 8 && sa[1] <= 12){
  369. model.setValue("/root/main/anstdrid/ageflag", "14");
  370. }else if(sa[1] > 5 && sa[1] <= 8){
  371. model.setValue("/root/main/anstdrid/ageflag", "13");
  372. }else if(sa[1] > 3 && sa[1] <= 5){
  373. model.setValue("/root/main/anstdrid/ageflag", "12");
  374. }else if(sa[1] > 1 && sa[1] <= 3){
  375. model.setValue("/root/main/anstdrid/ageflag", "11");
  376. }else{
  377. model.setValue("/root/main/anstdrid/ageflag", "10");
  378. }
  379. }
  380. /*var currow = grd_opanstcnfmpatlist.row;
  381. //환자 나이구분 설정
  382. var sa = model.getValue("/root/main/opanstpatinfo/opanstcnfmpatlist[" + currow + "]/sa");
  383. sa = sa.split("/");
  384. if(sa[1] > 16){
  385. model.setValue("/root/main/anstdrid/ageflag", "20");
  386. }else if(sa[1] > 12 && sa[1] <= 15){
  387. model.setValue("/root/main/anstdrid/ageflag", "15");
  388. }else if(sa[1] > 8 && sa[1] <= 12){
  389. model.setValue("/root/main/anstdrid/ageflag", "14");
  390. }else if(sa[1] > 5 && sa[1] <= 8){
  391. model.setValue("/root/main/anstdrid/ageflag", "13");
  392. }else if(sa[1] > 3 && sa[1] <= 5){
  393. model.setValue("/root/main/anstdrid/ageflag", "12");
  394. }else if(sa[1] > 1 && sa[1] <= 3){
  395. model.setValue("/root/main/anstdrid/ageflag", "11");
  396. }else{
  397. model.setValue("/root/main/anstdrid/ageflag", "10");
  398. }*/
  399. model.refresh();
  400. group2.attribute("height") = 95;
  401. }
  402. /**
  403. * @desc : 마취방법 저장(수정)
  404. * @
  405. * @param :
  406. * @return :
  407. * @author : 박유미
  408. * @---------------------------------------------------
  409. */
  410. function fSaveMnthAnst() {
  411. /*var currow = grd_opanstcnfmpatlist.row;
  412. var header = "status▦oprsrvno▦anstmthdcd▦anstdetlmthdcd▦ageflag▩";
  413. var oprsrvno = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/oprsrvno");
  414. var anstmthdcd = model.getValue("/root/main/anstdrid/anstmthdcd"); //마취방법코드
  415. var anstdetlmthdcd= model.getValue("/root/main/anstdrid/anstdetlmthdcd");//마취방법코드
  416. var ageflag = model.getValue("/root/main/anstdrid/ageflag"); //마취방법코드
  417. if(anstmthdcd == "00" || anstmthdcd == "-" || anstmthdcd == ""){
  418. messageBox("마취방법을", "C002");
  419. return;
  420. }
  421. if( (anstmthdcd != "03" && (anstdetlmthdcd == "00" || anstdetlmthdcd == "-" || anstdetlmthdcd == "")) ){
  422. messageBox("마취상세방법을", "C002");
  423. return;
  424. }
  425. if(ageflag == ""){
  426. messageBox("마취상세방법을", "C002");
  427. return;
  428. }
  429. var status = "i";
  430. var savedata = status + "▦" +
  431. oprsrvno + "▦" +
  432. anstmthdcd + "▦" +
  433. anstdetlmthdcd + "▦" +
  434. ageflag + "▩";
  435. header += savedata;
  436. model.removeNodeset("/root/send/savedata");
  437. model.makeValue("/root/send/savedata", header);
  438. if(submit("TXMMO05405")){
  439. fReqOpAnstSche();
  440. }*/
  441. var header = "status▦oprsrvno▦anstmthdcd▦anstdetlmthdcd▦ageflag▩";
  442. var savedata ="";
  443. var anstmthdcd = model.getValue("/root/main/anstdrid/anstmthdcd"); //마취방법코드
  444. var anstdetlmthdcd= model.getValue("/root/main/anstdrid/anstdetlmthdcd");//마취방법코드
  445. var ageflag = model.getValue("/root/main/anstdrid/ageflag"); //마취방법코드
  446. if(anstmthdcd == "00" || anstmthdcd == "-" || anstmthdcd == ""){
  447. messageBox("마취방법을", "C002");
  448. return;
  449. }
  450. if( (anstmthdcd != "03" && (anstdetlmthdcd == "00" || anstdetlmthdcd == "-" || anstdetlmthdcd == "")) ){
  451. messageBox("마취상세방법을", "C002");
  452. return;
  453. }
  454. if(ageflag == ""){
  455. messageBox("마취상세방법을", "C002");
  456. return;
  457. }
  458. var selectedRows = grd_opanstcnfmpatlist.selectedRows;
  459. for(var i=0; i<selectedRows ; i++) {
  460. savedata += "i" + "▦" +
  461. model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + grd_opanstcnfmpatlist.selectedrow(i) + "]/oprsrvno") + "▦" +
  462. anstmthdcd + "▦" +
  463. anstdetlmthdcd + "▦" +
  464. ageflag + "▩";
  465. }
  466. header += savedata;
  467. model.removeNodeset("/root/send/savedata");
  468. model.makeValue("/root/send/savedata", header);
  469. if(submit("TXMMO05405")){
  470. fReqOpAnstSche();
  471. }
  472. group2.attribute("height") = 0;
  473. model.setValue("/root/main/anstdrid/anstmthdcd", "-");
  474. model.setValue("/root/main/anstdrid/anstdetlmthdcd", "-");
  475. model.refresh();
  476. }
  477. /**
  478. * @desc : 버튼 활성화/비활성화
  479. * @
  480. * @param : bFlag - true/false
  481. * @return :
  482. * @author : 오지훈
  483. * @---------------------------------------------------
  484. */
  485. function fBtnDisabled(bFlag){
  486. btn_req.disabled = bFlag;
  487. btn_open.disabled = bFlag;
  488. btn_close.disabled = bFlag;
  489. model.refresh();
  490. }
  491. /**
  492. * @desc : 수술 방/시간 설정
  493. * @
  494. * @param : bFlag - true/false
  495. * @return :
  496. * @author : 오지훈
  497. * @---------------------------------------------------
  498. */
  499. function fOpenOpScheTime(){
  500. var param = "u" + "▦" +
  501. model.getValue(sOPANSTSCHECHNG_PATH + "/oproomcd") + "▦" +
  502. model.getValue(sOPANSTSCHECHNG_PATH + "/oprsrvno") + "▦" +
  503. model.getValue(sOPANSTSCHECHNG_PATH + "/ophistno") + "▦" +
  504. model.getValue(sOPANSTSCHECHNG_PATH + "/pid") + "▦" +
  505. model.getValue(sOPANSTSCHECHNG_PATH + "/opcnfmdd") + "▦" +
  506. model.getValue(sOPANSTSCHECHNG_PATH + "/perfdeptcd") + "▦" +
  507. model.getValue(sOPANSTSCHECHNG_PATH + "/opfromtmcd") + "▦" +
  508. model.getValue(sOPANSTSCHECHNG_PATH + "/opendtmcd") + "▦" +
  509. "oprsrv";
  510. setParameter("SPMMO08800_param", param);
  511. modal("SPMMO08800");
  512. var rtnuseyn = getParameter("SPMMO08800_rtn_useyn");
  513. if(rtnuseyn == "Y"){
  514. setParameter("SPMMO08800_rtn_useyn", "N");
  515. var rtnparam = getParameter("SPMMO08800_rtn_param");
  516. rtnparam = rtnparam.split("▦");
  517. var difftime = getTimeInterval(rtnparam[1], rtnparam[2]);
  518. model.setValue(sOPANSTSCHECHNG_PATH + "/oproomcd" , rtnparam[0]);
  519. model.setValue(sOPANSTSCHECHNG_PATH + "/opfromtmcd", rtnparam[1]);
  520. model.setValue(sOPANSTSCHECHNG_PATH + "/opendtmcd" , rtnparam[2]);
  521. model.setValue(sOPANSTSCHECHNG_PATH + "/opusetm" , fTransSecToHourMin(difftime));
  522. model.refresh();
  523. }
  524. }
  525. /**
  526. * @desc : 초를 시/분으로 전환
  527. * @
  528. * @param : bFlag - true/false
  529. * @return :
  530. * @author : 오지훈
  531. * @---------------------------------------------------
  532. */
  533. function fTransSecToHourMin(sec){
  534. var hr = 3600;
  535. var min = 60;
  536. hour = parseInt(sec/hr);
  537. min = parseInt(sec%hr/min);
  538. hour = ("" + hour + "").getLeftPad(2, "0");
  539. min = ("" + min + "").getLeftPad(2, "0");
  540. var rtnstr = hour.concat(min);
  541. return rtnstr;
  542. }
  543. /**
  544. * @desc : 스케줄변경 취소
  545. * @
  546. * @param : bFlag - true/false
  547. * @return :
  548. * @author : 오지훈
  549. * @---------------------------------------------------
  550. */
  551. function fClkScheCnclBtn(){
  552. group2.attribute("height") = 0;
  553. fBtnDisabled(false);
  554. model.resetInstanceNode("/root/main/opanstschechng");
  555. model.refresh();
  556. }
  557. /**
  558. * @desc : 마취방법 변경시 마취방법상세 변경
  559. * @
  560. * @param :
  561. * @return :
  562. * @author : 오지훈
  563. * @---------------------------------------------------
  564. */
  565. function fChngAnstMthdCmb(cmbobj, cmbobjtrgt, cmbpath){
  566. var anstmthdcd = cmbobj.value;
  567. if(anstmthdcd == "01"){ //전신마취
  568. cmbobjtrgt.choices.itemset.attribute("nodeset") = "/root/init/M0243/M0243";
  569. }else if(anstmthdcd == "02"){ //부위마취
  570. cmbobjtrgt.choices.itemset.attribute("nodeset") = "/root/init/M0244/M0244";
  571. }else if(anstmthdcd == "03"){ //국소마취
  572. cmbobjtrgt.choices.itemset.attribute("nodeset") = "/root/init/M0245/M0245";
  573. }
  574. model.setValue(cmbpath, "-");
  575. model.setValue("/root/main/anstdrid/anstdetlmthdcd", "00");
  576. model.refresh();
  577. }
  578. /**
  579. * @desc : 취소버튼 클릭, 마취의사배정 화면 숨김
  580. * @
  581. * @param :
  582. * @return :
  583. * @author : 오지훈
  584. * @---------------------------------------------------
  585. */
  586. function fClkCnclBtn(){
  587. model.setValue("/root/main/anstdrid/anstdrid1", "-");
  588. model.setValue("/root/main/anstdrid/anstdrid2", "-");
  589. model.setValue("/root/main/anstdrid/anstdrid3", "-");
  590. group1.attribute("height") = 0;
  591. group1.refresh();
  592. }
  593. /**
  594. * @desc : 취소/변경 승인요청 표시, 빨간색 취소, 파란색 변경
  595. * @
  596. * @param :
  597. * @return :
  598. * @author : 오지훈
  599. * @---------------------------------------------------
  600. */
  601. function fDispAprvCnclChng(){
  602. for(var i = 1; i < grd_opanstcnfmpatlist.rows; i++){
  603. var aprvreqno = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + i + "]/aprvreqno");
  604. var reqrsncd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + i + "]/reqrsncd");
  605. var opstatcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + i + "]/opstatcd");
  606. var opflagcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + i + "]/opflagcd");
  607. if(aprvreqno != 0){
  608. if(reqrsncd < 300){ //취소
  609. grd_opanstcnfmpatlist.rowStyle(i, "all", "color") = "#ff0000";
  610. }else if( reqrsncd > 300 && opstatcd ==10 && opflagcd ==1 && (reqrsncd == "314" || reqrsncd == "315") ){
  611. grd_opanstcnfmpatlist.rowStyle(i, "all", "color") = "#999999"; // 요청번호: 847 수술일변경 2010.06.30 kskim
  612. }else if( reqrsncd > 300 ){ //변경
  613. grd_opanstcnfmpatlist.rowStyle(i, "all", "color") = "#0000ff";
  614. }
  615. }else if(opstatcd==15){ //가확정 2009.07.17
  616. grd_opanstcnfmpatlist.rowStyle(i, "all", "color") = "#00A400";
  617. }else if(opstatcd==10 && opflagcd ==1){
  618. grd_opanstcnfmpatlist.rowStyle(i, "all", "color") = "#999999"; // 정규의뢰이면서 미확정 건 2010.06.15 kskim
  619. }else{
  620. grd_opanstcnfmpatlist.rowStyle(i, "all", "color") = "#000000";
  621. }
  622. // 수술전달 사항(opdelivefact)컬럼 정보에 값이 있을 경우 내용이 있음을 알리는 이미지 표시
  623. // 2010.04.19. 김광성. kskim
  624. fCheckOpdelivefact( i );
  625. }
  626. // 09.02.02 방별 grouping
  627. var oproomnm = "";
  628. for(var i = 1; i < grd_opanstcnfmpatlist.rows; i++) {
  629. var toprm = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + i + "]/oproomnm");
  630. if(isSearchString(oproomnm, toprm) == false) {
  631. oproomnm += toprm + "▦";
  632. }
  633. }
  634. for( var k = 0; k < oproomnm.split("▦").length-1; k++) {
  635. var rmno = oproomnm.split("▦");
  636. for(var i = 1; i < grd_opanstcnfmpatlist.rows; i++) {
  637. var toprm = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + i + "]/oproomnm");
  638. if((k %2) == 0 && rmno[k] == toprm) grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#ffffff";
  639. else if((k %2) == 1 && rmno[k] == toprm)grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#C3E1FE";
  640. }
  641. }
  642. // (e)
  643. // 09.02.17 주수술이 취소된 부수술
  644. for(var i = 1; i < grd_opanstcnfmpatlist.rows; i++){
  645. var mainoprsrvno = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + i + "]/mainoprsrvno");
  646. var cnstoprsrvno = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + i + "]/cnstoprsrvno");
  647. var cnstopflag = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + i + "]/cnstopflag");
  648. if(cnstopflag == "Y") {
  649. if(mainoprsrvno == cnstoprsrvno) {
  650. grd_opanstcnfmpatlist.rowStyle(i, "all", "color") = "#ff00ff";
  651. }
  652. }
  653. }
  654. // (e)
  655. // 09.02.02 방별 grouping
  656. /*for(var i = 1; i < grd_opanstcnfmpatlist.rows; i++) {
  657. var oproomnm = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + i + "]/oproomnm");
  658. switch(oproomnm) {
  659. case "1": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#ffffff"; break;}
  660. case "2": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#C3E1FE"; break;}
  661. case "3": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#ffffff"; break;}
  662. case "4": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#C3E1FE"; break;}
  663. case "5": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#ffffff"; break;}
  664. case "6": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#C3E1FE"; break;}
  665. case "7": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#ffffff"; break;}
  666. case "8": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#C3E1FE"; break;}
  667. case "9": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#ffffff"; break;}
  668. case "10": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#C3E1FE"; break;}
  669. case "11": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#ffffff"; break;}
  670. case "12": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#C3E1FE"; break;}
  671. case "13": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#ffffff"; break;}
  672. case "14": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#C3E1FE"; break;}
  673. case "15": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#ffffff"; break;}
  674. case "16": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#C3E1FE"; break;}
  675. case "17": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#ffffff"; break;}
  676. case "DR": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#C3E1FE"; break;}
  677. case "ANGIO": { grd_opanstcnfmpatlist.rowStyle(i, "all", "background-color") = "#ffffff"; break;}
  678. }
  679. }*/
  680. //(e)
  681. grd_opanstcnfmpatlist.refresh();
  682. }
  683. /**
  684. * @desc : 추가, 응급 수술마취 확정처리
  685. * @
  686. * @param :
  687. * @return :
  688. * @author : 오지훈
  689. * @---------------------------------------------------
  690. */
  691. function fCnfmOpAnstSche(){
  692. var currow = grd_opanstwaitpatlist.row;
  693. if(currow < 1){
  694. return;
  695. }
  696. var opschedd = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/opschedd");
  697. var oproomcd = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/oproomcd");
  698. var opfromtmcd = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/opfromtmcd");
  699. var opendtmcd = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/opendtmcd");
  700. var opusetm = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/opusetm");
  701. var anstdrid1 = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/anstdrid1");
  702. var anstdrid2 = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/anstdrid2");
  703. var anstdrid3 = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/anstdrid3");
  704. var anstmthdcd = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/anstmthdcd");
  705. var oprsrvno = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/oprsrvno");
  706. var ccrtno = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/ccrtno");
  707. var mainoprsrvno = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/mainoprsrvno");
  708. var anstreqflag = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/anstreqflag");
  709. var sa = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/sa");
  710. var pid = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/pid");
  711. var hngnm = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/hngnm");
  712. var anstdetlmthdcd = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/anstdetlmthdcd");
  713. var ophistno = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/ophistno");
  714. var oppatflagcd = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/oppatflagcd");
  715. var opflagcd = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/opflagcd");
  716. var perfdeptcd = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/perfdeptcd");
  717. var perfdrid = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/perfdrid");
  718. var diagcd = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/diagcd");
  719. var opcd = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/opcd");
  720. var orddeptcd = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/orddeptcd");
  721. var cnstopflag = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/cnstopflag"); // 협진flag
  722. var anstccrtno = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/anstccrtno");
  723. var reopflag = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/reopflag");
  724. var painlessflag = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/painlessflag");
  725. // [요청번호: 847] 수술일자변경 2010.06.28 kskim
  726. var reqrsncd = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/reqrsncd"); //수술변경사유코드
  727. var aprvreqno = model.getValue(sOPANSTWAITPATLIST_PATH + "[" + currow + "]/aprvreqno"); //승인번호
  728. // 2008.09.25 협진일경우 주수술의 방, 시간을 끌고 보여주기
  729. // 09.02.04 mainoprsrvno == '-' 인경우는 부수술이 먼저 의뢰된 경우
  730. if(cnstopflag == "Y" && mainoprsrvno != '-') {
  731. var nodeList = instance1.selectNodes(sOPANSTCNFMPATLIST_PATH + "[oprsrvno = "+ mainoprsrvno +"]");
  732. if(nodeList.length > 0 ) {
  733. oproomcd = nodeList.item(0).selectSingleNode("oproomcd").text;
  734. opfromtmcd = nodeList.item(0).selectSingleNode("opfromtmcd").text;
  735. opendtmcd = nodeList.item(0).selectSingleNode("opendtmcd").text;
  736. opusetm = nodeList.item(0).selectSingleNode("opusetm").text;
  737. } else {
  738. model.removeNodeset("/root/send/reqdata");
  739. model.makeValue("/root/send/reqdata/mainoprsrvno", mainoprsrvno); //등록번호
  740. if(submit("TRMMO05403")) {
  741. var maopList = instance1.selectNodes("/root/main/rgstinfo/rgstinfo");
  742. if(maopList.length > 0) {
  743. opschedd = model.getValue("/root/main/rgstinfo/rgstinfo/opcnfmdd");
  744. oproomcd = model.getValue("/root/main/rgstinfo/rgstinfo/oproomcd");
  745. opfromtmcd = model.getValue("/root/main/rgstinfo/rgstinfo/opfromtmcd");
  746. opendtmcd = model.getValue("/root/main/rgstinfo/rgstinfo/opendtmcd");
  747. opusetm = model.getValue("/root/main/rgstinfo/rgstinfo/opusetm");
  748. }
  749. }
  750. }
  751. }
  752. // (e)
  753. setParameter("sa", sa);
  754. setParameter("opschedd", opschedd);
  755. setParameter("oproomcd", oproomcd);
  756. setParameter("opfromtmcd", opfromtmcd);
  757. setParameter("opendtmcd", opendtmcd);
  758. setParameter("opusetm", opusetm);
  759. setParameter("anstdrid1", anstdrid1);
  760. setParameter("anstdrid2", anstdrid2);
  761. setParameter("anstdrid3", anstdrid3);
  762. setParameter("anstmthdcd", anstmthdcd);
  763. setParameter("oprsrvno", oprsrvno);
  764. setParameter("ccrtno", ccrtno);
  765. setParameter("mainoprsrvno", mainoprsrvno);
  766. setParameter("anstreqflag", anstreqflag);
  767. setParameter("anstdetlmthdcd", anstdetlmthdcd);
  768. setParameter("ophistno", ophistno);
  769. setParameter("oppatflagcd", oppatflagcd); //수술환자구분
  770. setParameter("pid", pid); //등록번호
  771. setParameter("hngnm", hngnm); //이름
  772. setParameter("opflagcd", opflagcd); //수술구분코드
  773. setParameter("perfdeptcd", perfdeptcd); //집도과
  774. setParameter("perfdrid", perfdrid); //집도의
  775. setParameter("diagcd", diagcd); //진단코드
  776. setParameter("opcd", opcd); //수술코드
  777. setParameter("orddeptcd", orddeptcd);
  778. setParameter("cnstopflag", cnstopflag);
  779. setParameter("anstccrtno", anstccrtno);
  780. setParameter("reopflag", reopflag);
  781. setParameter("painlessflag", painlessflag);
  782. // [요청번호: 847] 수술일자변경 2010.06.28 kskim
  783. setParameter("reqrsncd", reqrsncd); // 수술변경사유코드
  784. setParameter("aprvreqno", aprvreqno); // 승인번호
  785. open("SPMMO15000");
  786. /*modal("SPMMO15000");
  787. if(getParameter("SPMMO15000_rtn_useyn") == "Y") {
  788. fReqOpAnstSche();
  789. }*/
  790. }
  791. /**
  792. * @desc : 재조회
  793. * @
  794. * @param :
  795. * @return :
  796. * @author : 박유미
  797. * @---------------------------------------------------
  798. */
  799. function fReqSearch(retflag) {
  800. if(retflag == "Y") {
  801. fReqOpAnstSche();
  802. }
  803. }
  804. /**
  805. * @desc : 마취방법 취소
  806. * @
  807. * @param :
  808. * @return :
  809. * @author : 박유미
  810. * @---------------------------------------------------
  811. */
  812. function fClkMnthCnclBtn() {
  813. model.setValue("/root/main/anstdrid/anstmthdcd", "-");
  814. model.setValue("/root/main/anstdrid/anstdetlmthdcd", "-");
  815. group2.attribute("height") = 0;
  816. model.refresh();
  817. }
  818. /**
  819. * @desc : 수술마취 확정 취소/변경 승인
  820. * @
  821. * @param :
  822. * @return :
  823. * @author : 오지훈
  824. * @---------------------------------------------------
  825. */
  826. function fOpAnstAprvChngCnl(){
  827. var currow = grd_opanstcnfmpatlist.row;
  828. if(currow < 1){
  829. return;
  830. }
  831. var aprvreqno = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/aprvreqno");
  832. if(aprvreqno == 0){
  833. messageBox("변경, 취소 승인 요청 건수가" , "I004");
  834. return;
  835. }
  836. var pid = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/pid");
  837. var oprsrvno = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/oprsrvno");
  838. var ophistno = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/ophistno");
  839. var opstatcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/opstatcd");
  840. var opcnfmdd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/opcnfmdd");
  841. var oproomcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/oproomcd");
  842. var opfromtmcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/opfromtmcd");
  843. var opendtmcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/opendtmcd");
  844. var opusetm = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/opusetm");
  845. var perfdeptcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/perfdeptcd");
  846. var perfdrid = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/perfdrid");
  847. var diagcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/diagcd");
  848. var opcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/opcd");
  849. var diagnm = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/diagnm");
  850. var opnm = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/opnm");
  851. var oppatflagcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/oppatflagcd");
  852. var pid = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/pid");
  853. var anstmthdcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/anstmthdcd");
  854. var anstdetlmthdcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/anstdetlmthdcd");
  855. var hngnm = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/hngnm");
  856. var sa = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/sa");
  857. var opposturecd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/opposturecd");
  858. var opdirecflag = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/opdirecflag");
  859. var opcntmdg = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/opcntmdg");
  860. var opdelivefact = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/opdelivefact");
  861. var orddeptcd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/orddeptcd");
  862. var reqrsncd = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/reqrsncd"); // 2008.12.23
  863. var drgyn = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/drgyn") // 2013.06.20 KJS
  864. var drgno = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/drgno")
  865. var drgnm = model.getValue(sOPANSTCNFMPATLIST_PATH + "[" + currow + "]/drgnm")
  866. setParameter("SPMMO05900_param_oprsrvno", oprsrvno);
  867. setParameter("SPMMO05900_param_ophistno", ophistno);
  868. setParameter("SPMMO05900_param_aprvreqno",aprvreqno);
  869. setParameter("SPMMO05900_param_opstatcd",opstatcd); // 2008.12.23
  870. setParameter("SPMMO05900_param_reqrsncd",reqrsncd); // 2008.12.23
  871. data = opcnfmdd + "▦" +
  872. oproomcd + "▦" +
  873. opfromtmcd + "▦" +
  874. opendtmcd + "▦" +
  875. opusetm + "▦" +
  876. opcd + "▦" +
  877. opnm + "▦" +
  878. diagcd + "▦" +
  879. diagnm + "▦" +
  880. perfdeptcd + "▦" +
  881. perfdrid + "▦" +
  882. oppatflagcd+ "▦" +
  883. pid+ "▦" +
  884. anstmthdcd + "▦" +
  885. anstdetlmthdcd + "▦" +
  886. hngnm + "▦" +
  887. sa + "▦" +
  888. opposturecd + "▦" +
  889. opdirecflag + "▦" +
  890. opcntmdg + "▦" +
  891. opdelivefact + "▦" +
  892. orddeptcd + "▦" +
  893. opstatcd + "▦" +
  894. drgyn + "▦" +
  895. drgno + "▦" +
  896. drgnm
  897. ;
  898. setParameter("SPMMO05900_param_data", data);
  899. modal("SPMMO05900");
  900. fReqOpAnstSche();
  901. }
  902. /**
  903. * @desc : 수술마취 조정 유효성 검사
  904. * @
  905. * @param :
  906. * @return :
  907. * @author : 오지훈
  908. * @---------------------------------------------------
  909. */
  910. function fVaildOpAnstCtrl(){
  911. var opfromtmcd = model.getValue("/root/main/opanstschecnfm/opfromtmcd");
  912. var opendtmcd = model.getValue("/root/main/opanstschecnfm/opendtmcd");
  913. var oproomcd = model.getValue("/root/main/opanstschecnfm/oproomcd");
  914. var anstdrid1 = model.getValue("/root/main/opanstschecnfm/anstdrid1");
  915. var anstmthdcd = model.getValue("/root/main/opanstschecnfm/anstmthdcd");
  916. var anstdetlmthdcd = model.getValue("/root/main/opanstschecnfm/anstdetlmthdcd");
  917. var ageflag = model.getValue("/root/main/opanstschecnfm/ageflag");
  918. if(opfromtmcd == "" || opendtmcd == ""){
  919. messageBox("수술시간을", "C001");
  920. return false;
  921. }
  922. if(oproomcd == ""){
  923. messageBox("수술방을", "C001");
  924. return false;
  925. }
  926. if(anstdrid1 == "-" || anstdrid1 == ""){
  927. messageBox("마취의1을" , "C001");
  928. return false;
  929. }
  930. if(anstmthdcd == ""){
  931. messageBox("마취방법코드를" , "C001");
  932. return false;
  933. }
  934. if(anstdetlmthdcd == ""){
  935. messageBox("마취방법상세코드를" , "C001");
  936. return false;
  937. }
  938. if(ageflag == ""){
  939. }
  940. }
  941. /**
  942. * @desc : 응급추가 수술시간 설정
  943. * @
  944. * @param :
  945. * @return :
  946. * @author : 오지훈
  947. * @---------------------------------------------------
  948. */
  949. function fAddERSetOpTime(){
  950. var param = "i" + "▦" +
  951. model.getValue("/root/main/opanstschecnfm/oproomcd") + "▦" +
  952. model.getValue("/root/main/opanstschecnfm/oprsrvno") + "▦" +
  953. model.getValue("/root/main/opanstschecnfm/ophistno") + "▦" +
  954. model.getValue("/root/main/opanstschecnfm/pid") + "▦" +
  955. model.getValue("/root/main/opanstschecnfm/opcnfmdd") + "▦" +
  956. model.getValue("/root/main/opanstschecnfm/perfdeptcd") + "▦" +
  957. "" + "▦" +
  958. "" + "▦" +
  959. "oprsrv";
  960. setParameter("SPMMO08800_param", param);
  961. modal("SPMMO08800");
  962. var rtnuseyn = getParameter("SPMMO08800_rtn_useyn");
  963. if(rtnuseyn == "Y"){
  964. setParameter("SPMMO08800_rtn_useyn", "N");
  965. var rtnparam = getParameter("SPMMO08800_rtn_param");
  966. rtnparam = rtnparam.split("▦");
  967. var difftime = getTimeInterval(rtnparam[1], rtnparam[2]);
  968. model.setValue("/root/main/opanstschecnfm/oproomcd" , rtnparam[0]);
  969. model.setValue("/root/main/opanstschecnfm/opfromtmcd", rtnparam[1]);
  970. model.setValue("/root/main/opanstschecnfm/opendtmcd" , rtnparam[2]);
  971. model.setValue("/root/main/opanstschecnfm/opusetm" , fTransSecToHourMin(difftime));
  972. model.refresh();
  973. }
  974. }
  975. /**
  976. * @desc : 응급추가 수술마취 확정
  977. * @
  978. * @param :
  979. * @return :
  980. * @author : 오지훈
  981. * @---------------------------------------------------
  982. */
  983. function fChkErAddOpAnstCnfm(){
  984. var oproomcd = model.getValue("/root/main/opanstschecnfm/oproomcd");
  985. var opfromtmcd = model.getValue("/root/main/opanstschecnfm/opfromtmcd");
  986. var opendtmcd = model.getValue("/root/main/opanstschecnfm/opendtmcd");
  987. var anstdrid1 = model.getValue("/root/main/opanstschecnfm/anstdrid1");
  988. var anstdrid2 = model.getValue("/root/main/opanstschecnfm/anstdrid2");
  989. var anstdrid3 = model.getValue("/root/main/opanstschecnfm/anstdrid3");
  990. var anstmthdcd = model.getValue("/root/main/opanstschecnfm/anstmthdcd");
  991. /*if(cmb_chngoproomcd.label == ""){
  992. messageBox("수술방을", "C001");
  993. return false;
  994. }*/
  995. if(cmb_chnganstmthdcd.label == ""){
  996. messageBox("마취방법을", "C001");
  997. return false;
  998. }
  999. if(anstmthdcd != "03" && cmb_chnganstdetlmthdcd.label == ""){
  1000. messageBox("마취방법상세를", "C001");
  1001. return false;
  1002. }
  1003. if(opfromtmcd == ""){
  1004. messageBox("수술시작시간을", "C001");
  1005. return false;
  1006. }
  1007. if(opendtmcd == ""){
  1008. messageBox("수술종료시간을", "C001");
  1009. return false;
  1010. }
  1011. if(opfromtmcd != "" || opendtmcd != "") {
  1012. if(cmb_chngoproomcd.value == "0000" || cmb_chngoproomcd.value == "2222"){
  1013. messageBox("수술방을", "C001");
  1014. model.setFocus("cmb_chngoproomcd");
  1015. return false;
  1016. }
  1017. }
  1018. // 마취의 3명 다 입력하지 않아도 됨
  1019. if( (anstmthdcd != "03" && (anstdrid1 == "" || anstdrid1 == "-")) &&
  1020. (anstmthdcd != "03" && (anstdrid2 == "" || anstdrid2 == "-")) &&
  1021. (anstmthdcd != "03" && (anstdrid3 == "" || anstdrid3 == "-")) ) {
  1022. messageBox("마취의를", "C002");
  1023. return;
  1024. }
  1025. //마취의1이 배정되지 않고 마취의 2,3이 선택되는 문제점 방지
  1026. if( (!isNull(anstdrid2) && anstdrid2 != '-') || (!isNull(anstdrid3) && anstdrid3 != '-') ) {
  1027. if(anstdrid1 == "" || anstdrid1 == "-") {
  1028. messageBox("마취의1을", "C002");
  1029. return;
  1030. }
  1031. }
  1032. return true;
  1033. }
  1034. /**
  1035. * @desc : 검색 조건없이 CaseCart조회
  1036. * @
  1037. * @param :
  1038. * @return :
  1039. * @author : 오지훈
  1040. * @---------------------------------------------------
  1041. */
  1042. function fOpenCCrtSearchNoCond(){
  1043. var param = model.getValue("/root/main/opanstschechng/opcnfmdd") + "▦" +
  1044. model.getValue("/root/main/opanstschechng/perfdeptcd") + "▦" +
  1045. model.getValue("/root/main/opanstschechng/perfdrid") + "▦" +
  1046. "▦" +
  1047. "▦" +
  1048. "perf";
  1049. setParameter("SPMMO11000_param", param);
  1050. modal("SPMMO11000");
  1051. var useyn = getParameter("SPMMO11000_rtn_useyn");
  1052. if(useyn == "Y"){
  1053. var rtnparam = getParameter("SPMMO11000_rtn_param");
  1054. rtnparam = rtnparam.split("▦");
  1055. model.setValue("/root/main/opanstschechng/ccrtno" , rtnparam[0]);
  1056. model.setValue("/root/main/opanstschechng/ccrtstat", 1);
  1057. model.setValue("/root/main/opanstschechng/opcd" , rtnparam[1]);
  1058. model.setValue("/root/main/opanstschechng/opnm" , rtnparam[2]);
  1059. setParameter("SPMMO11000_rtn_useyn", "N");
  1060. }
  1061. model.refresh();
  1062. }
  1063. /**
  1064. * @desc : 두 NodeList와 NodeValue값을 비교 결과에 따라 true, false를 return한다.
  1065. * @param : desNode - 목적노드
  1066. : srcNode - 원본노드
  1067. * @return : true, false
  1068. * @authur : 오지훈 2007. 6. 14
  1069. * @---------------------------------------------------
  1070. */
  1071. function compareNodeVal(desNode, srcNode){
  1072. var node = instance1.selectSingleNode(desNode);
  1073. var node2 = instance1.selectSingleNode(srcNode);
  1074. var nodeList = node.childNodes;
  1075. var nodeList2 = node2.childNodes;
  1076. while(childNode = nodeList.nextNode()){
  1077. childNode2 = nodeList2.nextNode();
  1078. //alert(childNode.NodeValue + "," + childNode2.NodeValue);
  1079. if(childNode.NodeValue != childNode2.NodeValue){
  1080. return true; //값이 다른 경우 true
  1081. }
  1082. }
  1083. return false; //값이 같은 경우 false
  1084. }
  1085. /**
  1086. * @desc : 수술전달 사항(opdelivefact)컬럼 정보에 값이 있을 경우 'C'로 표기된 이미지 표시함
  1087. @ 요구사항 : [요청번호: 12869, TASK번호: 48146, 우선순위: SY]
  1088. @ 요청제목 : 수술마취 의뢰에 전달사항 입력 시 마취과 확정/조정 화면에 전달사항 컬럼 추가 및 팝업 조회 기능 요청
  1089. * @authur : 김광성. kskim 2010.04.19
  1090. * @---------------------------------------------------
  1091. */
  1092. /*
  1093. function fCheckOpdelivefact( idx ){
  1094. // SMMMO05500.js에 구현
  1095. }
  1096. */
  1097. /*
  1098. function fCheckWaitOpdelivefact(){
  1099. // SMMMO05500.js에 구현
  1100. }
  1101. */
  1102. /*
  1103. function fOpenSPMMO05500(grdID){
  1104. // SMMMO05500.js에 구현
  1105. }
  1106. */
  1107. /*
  1108. [요청번호: 847, TASK번호: 2779, 우선순위: A]
  1109. 요청제목: 수술진행현황,확정수술스케줄조회,수술스케줄 변경 방법 변경 요청.
  1110. @desc: 딜로이트 건과 관련하여 수술마취일정 조정화면 수정, (딜로이트 개발 건 서울성모 선 적용 후 각 병원 별 후 적용
  1111. @authur: 김광성. kskim. 2010.06.16
  1112. */
  1113. function fDelroiteScrnSet()
  1114. {
  1115. var scrnFlag222 = model.getValue("/root/init/hardcd222/hardcd/hardcd");
  1116. var scrnFlag115 = model.getValue("/root/init/hardcd115/hardcd/hardcd");
  1117. if( isNull(scrnFlag222 ) || scrnFlag222 != "Y" ){
  1118. btn_cnclBatAprv.visible = false;
  1119. rectangle6.visible = false;
  1120. caption12.visible = false;
  1121. //일괄확정 버튼과 가확정 범례 서울성모만 보이도록 2009.07.17 이윤정
  1122. btn_cfm.visible = false;
  1123. group5.attribute("left") = group5.currentStyle.left + btn_cnclBatAprv.currentStyle.width;
  1124. //alert( group5.currentStyle.left );
  1125. }
  1126. if( isNull(scrnFlag115) || scrnFlag115 != "Y"){
  1127. //가확정 범례 서울성모만 보이도록 2009.07.17 이윤정
  1128. caption10.visible = false;
  1129. rectangle5.visible = false;
  1130. }
  1131. }
  1132. /*
  1133. [요청번호: 847, TASK번호: 2779, 우선순위: A]
  1134. 요청제목: 수술진행현황,확정수술스케줄조회,수술스케줄 변경 방법 변경 요청.
  1135. @desc: 딜로이트 건과 관련하여 수술마취일정 조정화면 수정, (딜로이트 개발 건 서울성모 선 적용 후 각 병원 별 후 적용
  1136. @authur: 김광성. kskim. 2010.06.16
  1137. */
  1138. function fCnclBatAprv(){
  1139. var msgvalue = messageBox("수술취소 의뢰된 건을 일괄 승인", "Q004");
  1140. // messageBox에서 리턴하는 값에 의해 전체 로직 수행 여부 결정
  1141. if(msgvalue == 7){
  1142. return;
  1143. }
  1144. var oprsrvno = null;
  1145. var ophistno = null;
  1146. var opstatcd = null;
  1147. var aprvreqno = null;
  1148. var opcnfmdd = null;
  1149. var oproomcd = null;
  1150. var opfromtmcd = null;
  1151. var opendtmcd = null;
  1152. var opusetm = null;
  1153. var perfdeptcd = null;
  1154. var perfdrid = null;
  1155. var diagcd = null;
  1156. var opcd = null;
  1157. var cnfmcnclresncd = null;
  1158. var orgdiagcd = null;
  1159. var oppatflagcd = null;
  1160. var pid = null;
  1161. var ccrtno = null;
  1162. //var updtflag = null;
  1163. var anstmthdcd = null;
  1164. var anstdetlmthdcd = null;
  1165. var hngnm = null;
  1166. var sa = null;
  1167. //var opchngcd = null;
  1168. //var opchngnm = null;
  1169. var opposturecd = null;
  1170. var opdirecflag = null;
  1171. var opcntmdg = null;
  1172. var opdelivefact = null;
  1173. var orddeptcd = null;
  1174. var chngmsopflag = null;
  1175. var savedata = "oprsrvno▦ophistno▦opstatcd▦aprvreqno▦opcnfmdd▦oproomcd▦opfromtmcd▦opendtmcd▦opusetm▦perfdeptcd▦perfdrid▦diagcd▦opcd▦cnfmcnclresncd▦orgdiagcd▦oppatflagcd▦pid▦ccrtno▦anstmthdcd▦anstdetlmthdcd▦hngnm▦sa▦opposturecd▦opdirecflag▦opcntmdg▦opdelivefact▦orddeptcd▦chngmsopflag▩";
  1176. var cnclcount = 0;
  1177. for(var i = 1; i < grd_opanstcnfmpatlist.rows; i++){
  1178. cnfmcnclresncd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/reqrsncd");
  1179. if( !isNull(cnfmcnclresncd) && cnfmcnclresncd < 300 ){
  1180. oprsrvno = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/oprsrvno");
  1181. ophistno = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/ophistno");
  1182. opstatcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opstatcd");
  1183. aprvreqno = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/aprvreqno");
  1184. opcnfmdd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opcnfmdd");
  1185. oproomcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/oproomcd");
  1186. opfromtmcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opfromtmcd");
  1187. opendtmcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opendtmcd");
  1188. opusetm = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opusetm");
  1189. perfdeptcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/perfdeptcd");
  1190. perfdrid = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/perfdrid");
  1191. diagcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/diagcd");
  1192. opcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opcd");
  1193. cnfmcnclresncd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/reqrsncd");
  1194. orgdiagcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/diagcd");
  1195. oppatflagcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/oppatflagcd");
  1196. pid = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/pid");
  1197. ccrtno = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/ccrtno");
  1198. //updtflag = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/updtflag");
  1199. anstmthdcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/anstmthdcd");
  1200. anstdetlmthdcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/anstdetlmthdcd");
  1201. hngnm = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/hngnm");
  1202. sa = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/sa");
  1203. //opchngcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opchngcd"); // 취소사유(병원사유, 개인사유 구분값)
  1204. //opchngnm = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opchngnm");
  1205. opposturecd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opposturecd");
  1206. opdirecflag = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opdirecflag");
  1207. opcntmdg = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opcntmdg");
  1208. opdelivefact = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opdelivefact");
  1209. orddeptcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/orddeptcd");
  1210. chngmsopflag = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/reqrsncd");
  1211. savedata += oprsrvno + "▦" +
  1212. ophistno + "▦" +
  1213. opstatcd + "▦" +
  1214. aprvreqno + "▦" +
  1215. opcnfmdd + "▦" +
  1216. oproomcd + "▦" +
  1217. opfromtmcd + "▦" +
  1218. opendtmcd + "▦" +
  1219. opusetm + "▦" +
  1220. perfdeptcd + "▦" +
  1221. perfdrid + "▦" +
  1222. diagcd + "▦" +
  1223. opcd + "▦" +
  1224. cnfmcnclresncd + "▦" +
  1225. orgdiagcd + "▦" +
  1226. oppatflagcd + "▦" +
  1227. pid + "▦" +
  1228. ccrtno + "▦" +
  1229. //updtflag + "▦" +
  1230. anstmthdcd + "▦" +
  1231. anstdetlmthdcd + "▦" +
  1232. hngnm + "▦" +
  1233. sa + "▦" +
  1234. //opchngcd + "▦" +
  1235. //opchngnm + "▦" +
  1236. opposturecd + "▦" +
  1237. opdirecflag + "▦" +
  1238. opcntmdg + "▦" +
  1239. opdelivefact + "▦" +
  1240. orddeptcd + "▦" +
  1241. chngmsopflag + "▩";
  1242. cnclcount ++;
  1243. }
  1244. }
  1245. if( cnclcount > 0 ){
  1246. //alert(savedata);
  1247. model.makeValue("/root/send/savedata", savedata);
  1248. if(submit("TXMMO05410")){
  1249. fReqOpAnstSche();
  1250. }
  1251. }
  1252. }
  1253. /*
  1254. [요청번호: 847, TASK번호: 2779, 우선순위: A]
  1255. 요청제목: 수술진행현황,확정수술스케줄조회,수술스케줄 변경 방법 변경 요청.
  1256. @desc: 딜로이트 건과 관련하여 수술마취일정 조정화면 수정, (딜로이트 개발 건 서울성모 선 적용 후 각 병원 별 후 적용
  1257. @authur: 김광성. kskim. 2010.06.16
  1258. */
  1259. function fCnclAprvOpAnst(){
  1260. var selflag;
  1261. var selRows = grd_opanstcnfmpatlist.selectedRows;
  1262. var oprsrvno = null;
  1263. var ophistno = null;
  1264. var opstatcd = null;
  1265. var aprvreqno = null;
  1266. var opcnfmdd = null;
  1267. var oproomcd = null;
  1268. var opfromtmcd = null;
  1269. var opendtmcd = null;
  1270. var opusetm = null;
  1271. var perfdeptcd = null;
  1272. var perfdrid = null;
  1273. var diagcd = null;
  1274. var opcd = null;
  1275. var cnfmcnclresncd = null;
  1276. var orgdiagcd = null;
  1277. var oppatflagcd = null;
  1278. var pid = null;
  1279. var ccrtno = null;
  1280. //var updtflag = null;
  1281. var anstmthdcd = null;
  1282. var anstdetlmthdcd = null;
  1283. var hngnm = null;
  1284. var sa = null;
  1285. //var opchngcd = null;
  1286. //var opchngnm = null;
  1287. var opposturecd = null;
  1288. var opdirecflag = null;
  1289. var opcntmdg = null;
  1290. var opdelivefact = null;
  1291. var orddeptcd = null;
  1292. var chngmsopflag = null;
  1293. var savedata = "oprsrvno▦ophistno▦opstatcd▦aprvreqno▦opcnfmdd▦oproomcd▦opfromtmcd▦opendtmcd▦opusetm▦perfdeptcd▦perfdrid▦diagcd▦opcd▦cnfmcnclresncd▦orgdiagcd▦oppatflagcd▦pid▦ccrtno▦anstmthdcd▦anstdetlmthdcd▦hngnm▦sa▦opposturecd▦opdirecflag▦opcntmdg▦opdelivefact▦orddeptcd▦chngmsopflag▩";
  1294. var cnclcount = 0;
  1295. for(var rowidx = 0; rowidx < selRows; rowidx++){
  1296. var i = grd_opanstcnfmpatlist.selectedRow(rowidx);
  1297. cnfmcnclresncd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/reqrsncd");
  1298. if( !isNull(cnfmcnclresncd) && cnfmcnclresncd < 300 ){
  1299. oprsrvno = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/oprsrvno");
  1300. ophistno = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/ophistno");
  1301. opstatcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opstatcd");
  1302. aprvreqno = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/aprvreqno");
  1303. opcnfmdd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opcnfmdd");
  1304. oproomcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/oproomcd");
  1305. opfromtmcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opfromtmcd");
  1306. opendtmcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opendtmcd");
  1307. opusetm = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opusetm");
  1308. perfdeptcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/perfdeptcd");
  1309. perfdrid = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/perfdrid");
  1310. diagcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/diagcd");
  1311. opcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opcd");
  1312. cnfmcnclresncd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/reqrsncd");
  1313. orgdiagcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/diagcd");
  1314. oppatflagcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/oppatflagcd");
  1315. pid = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/pid");
  1316. ccrtno = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/ccrtno");
  1317. //updtflag = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/updtflag");
  1318. anstmthdcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/anstmthdcd");
  1319. anstdetlmthdcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/anstdetlmthdcd");
  1320. hngnm = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/hngnm");
  1321. sa = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/sa");
  1322. //opchngcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opchngcd"); // 취소사유(병원사유, 개인사유 구분값)
  1323. //opchngnm = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opchngnm");
  1324. opposturecd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opposturecd");
  1325. opdirecflag = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opdirecflag");
  1326. opcntmdg = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opcntmdg");
  1327. opdelivefact = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/opdelivefact");
  1328. orddeptcd = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/orddeptcd");
  1329. chngmsopflag = model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + i + "]/reqrsncd");
  1330. savedata += oprsrvno + "▦" +
  1331. ophistno + "▦" +
  1332. opstatcd + "▦" +
  1333. aprvreqno + "▦" +
  1334. opcnfmdd + "▦" +
  1335. oproomcd + "▦" +
  1336. opfromtmcd + "▦" +
  1337. opendtmcd + "▦" +
  1338. opusetm + "▦" +
  1339. perfdeptcd + "▦" +
  1340. perfdrid + "▦" +
  1341. diagcd + "▦" +
  1342. opcd + "▦" +
  1343. cnfmcnclresncd + "▦" +
  1344. orgdiagcd + "▦" +
  1345. oppatflagcd + "▦" +
  1346. pid + "▦" +
  1347. ccrtno + "▦" +
  1348. //updtflag + "▦" +
  1349. anstmthdcd + "▦" +
  1350. anstdetlmthdcd + "▦" +
  1351. hngnm + "▦" +
  1352. sa + "▦" +
  1353. //opchngcd + "▦" +
  1354. //opchngnm + "▦" +
  1355. opposturecd + "▦" +
  1356. opdirecflag + "▦" +
  1357. opcntmdg + "▦" +
  1358. opdelivefact + "▦" +
  1359. orddeptcd + "▦" +
  1360. chngmsopflag + "▩";
  1361. cnclcount ++;
  1362. }
  1363. }//for
  1364. if( cnclcount > 0 ){
  1365. //alert(savedata);
  1366. model.makeValue("/root/send/savedata", savedata);
  1367. if(submit("TXMMO05410")){
  1368. fReqOpAnstSche();
  1369. }
  1370. }
  1371. }