SMMMR00902.js 44 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364
  1. /**
  2. * MMR00902.js
  3. * SMMMR00902_DSC기록JCI.xrw
  4. */
  5. //부분서식의 부모아이템 배열
  6. var gItemCds = new Array(
  7. "0007983001" //수술전진단명
  8. , "0000521001" //수술후진단명
  9. , "0000509001" //수술명
  10. , "0000512001" //수술소견및절차
  11. , "0001113001" //투약정보
  12. , "0008539001" //처치정보
  13. , "0001115001" //특이사항
  14. );
  15. var gItemCdsTextArea = new Array("0000512001");//수술소견및절차
  16. var gItemCdsXRWArea = new Array(
  17. "0007983001" //수술전진단명
  18. , "0000521001" //수술후진단명
  19. , "0000509001" //수술명
  20. );
  21. var gItemCdsExpand = new Array(
  22. "0000509001" //수술명
  23. , "0000512001" //수술소견및절차
  24. , "0001113001" //투약정보
  25. , "0008539001" //처치정보
  26. , "0001115001" //특이사항
  27. );
  28. //부분서식의 개수만큼 일단 '0'으로 채운다.
  29. var iOpdate = ipt_opdate.attribute("degnitemno");
  30. var cOdt = cmb_odt.attribute("degnitemno");
  31. var cSdt = cmb_sdt.attribute("degnitemno");
  32. var cOproom = cmb_oproom.attribute("degnitemno");
  33. //var iSurg = ipt_surg.attribute("degnitemlevlcd");
  34. var iMcdnm = ipt_mcdnm.attribute("degnitemlevlcd");
  35. var iScdnm = ipt_scdnm.attribute("degnitemlevlcd");
  36. var cOdt1 = cmb_odt.attribute("degnitemlevlcd");
  37. //var cOdt1 = cmb_odt1.attribute("degnitemlevlcd");
  38. //var cSdt1 = cmb_sdt1.attribute("degnitemlevlcd");
  39. var instance = document.models(0).instances(0);
  40. var pageInfo = new PAGEINFO();
  41. //var operation = getGlobalVariable("operation").split("▩")[1];
  42. var oprsrvno = "";
  43. //2010.01.25 dhkim 마취과코드추가
  44. var anstdeptcd = "";
  45. /**
  46. * @desc : 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시를 위한 버튼목록
  47. * @id :
  48. * @authur : 안치원
  49. * @history : 2009.09.09 신규 안치원 ACW_090909A
  50. */
  51. var gExtnBtnIds = new Array("btn_imge_0000512001" //수술소견및절차 이미지버튼
  52. , "btn_etcrec_0000512001" //수술소견및절차 추가기록버튼
  53. );
  54. /*
  55. if(operation != null && operation != "")
  56. oprsrvno = operation.split("▦")[0];
  57. */
  58. /**
  59. * @desc : 서식 데이터 Clear, 인터페이스 입력값 조회 입력
  60. * @id :
  61. * @event : xforms-ready
  62. * @return : void
  63. * @authur : 박종훈
  64. */
  65. function fClearComnFormData()
  66. {
  67. if (gMaxSectionID != "")
  68. {
  69. var MaxObj = document.controls("lbl_" + gMaxSectionID);
  70. MaxObj.dispatch("onclick");
  71. }
  72. ClearComnFormData(gItemCds);
  73. fInitialize();
  74. /* //20100104 dhkim 수술정보연동 주석후 변경(initFormAtLast_MMR01100I에서 조회)
  75. var rtn = fGetdiagFormOprsrvno(oprsrvno, iMcdnm, iMcdnm, iScdnm, iScdnm); //수술예약번호로 진단명 조회
  76. //ivw_0000509001.window.javascript.fSrchOprlist(oprsrvno, cOdt1); //환자정보로 수술명, 집도의 조회
  77. fSrchOprPerfDrlist(oprsrvno); //환자정보로 수술명, 집도의, 마취의 조회
  78. if(!rtn)
  79. {
  80. fBtnDisEnable(true);
  81. return "oprfalse";
  82. } else {
  83. model.refresh();
  84. }
  85. fGetIfCnts();
  86. */
  87. //포커스 처리
  88. SetDefFocusIVW(gItemCdsTextArea);
  89. parent.window.javascript.fSetFormRec("extnflag", "opr");
  90. parent.window.javascript.fSetFormRec("oprsrvno", oprsrvno);
  91. }
  92. /**
  93. * @desc : 기록데이터 조회
  94. * @id :
  95. * @event : xforms-ready
  96. * @return : void
  97. * @authur : 박종훈
  98. */
  99. function fLoadData()
  100. {
  101. fInitialize();
  102. //Program 서식 데이터 조회반영
  103. InitPgmFormData();
  104. this.recRef2 = "/root/hidden/recinfo"
  105. //부분서식 데이터 조회 반영
  106. InitUnitFormData(gItemCds);
  107. parent.window.javascript.gSubmitID = TX_SUBMIT_EXTN_FORM;
  108. parent.window.javascript.fSetFormRec("extnflag", "opr");
  109. //parent.window.javascript.fSetFormRec("oprsrvno", oprsrvno);
  110. }
  111. /**
  112. * @desc : 화면 초기화
  113. * @
  114. * @param :
  115. * @return :
  116. * @authur : 박종훈
  117. */
  118. function fInitialize()
  119. {
  120. var operation = getGlobalVariable("operation").split("▩")[1];
  121. if(operation != null && operation != ""){
  122. oprsrvno = operation.split("▦")[0];
  123. perfdeptcd = operation.split("▦")[10];
  124. }
  125. if (parent.window.javascript.fGetFormRec("status") == "C")
  126. {
  127. parent.window.javascript.fSetFormRec("extnflag", "opr");
  128. parent.window.javascript.fSetFormRec("oprsrvno", oprsrvno);
  129. }
  130. /*
  131. var uInfo = getUserInfos();
  132. uInfo = uInfo.split("|");
  133. //초기조건 설정
  134. mmbfGetUserComboList("/root/init/reqdata", "/root/init/drlist" + cOdt , uInfo[8], "0330"); //집도의과 의사 조회
  135. mmbfGetUserComboList("/root/init/reqdata", "/root/init/drlist" + cSdt , '2090000000', "0330"); //마취통증의학과 의사 조회
  136. reqOpRoomList(getCurrentDate(), "/root/init/oproom", "total"); //수술실 조회
  137. */
  138. ivw_0007983001.attribute("border-style") = "none";//수술전진단명
  139. ivw_0000521001.attribute("border-style") = "none";//수술후진단명
  140. ivw_0000509001.attribute("border-style") = "none";
  141. // gTermViewTopPos = 29;
  142. gTermViewTopPos = 0;
  143. // gTermViewHei = 152;
  144. gTermViewHei = 266;
  145. gTermViewItems = gItemCdsXRWArea;
  146. //fRadioYN();
  147. model.refresh();
  148. }
  149. /**
  150. * @desc : 의사 조회에 따른 reccnts셋팅(tur)
  151. * @
  152. * @param :
  153. * @return :
  154. * @authur : 박종훈
  155. */
  156. function fChngDocts(degnitemno1, degnitemno2, degnitemno3)
  157. {
  158. //집도의
  159. var sDrid = model.getValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno1 + "']/rectermcd");
  160. var sDrnm = model.getValue("/root/init/drlist" + degnitemno1 + "/usercombo[userid='" + sDrid + "']/usernm");
  161. if (sDrnm == "")
  162. {
  163. sDrnm = "";
  164. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno1 + "']/rectermcd", "");
  165. }
  166. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno1 + "']/rectermnm", sDrnm);
  167. //마취의
  168. var sanstDrid = model.getValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno2 + "']/rectermcd");
  169. var sanstDrnm = model.getValue("/root/init/drlist" + degnitemno2 + "/usercombo[userid='" + sanstDrid + "']/usernm");
  170. if (sanstDrnm == "")
  171. {
  172. sanstDrnm = "";
  173. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno2 + "']/rectermcd", "");
  174. }
  175. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno2 + "']/rectermnm", sanstDrnm);
  176. //수술방
  177. var sRoomcd = model.getValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno3 + "']/rectermcd");
  178. var sRoomnm = model.getValue("/root/init/oproom/oproomlist[oproomcd='"+sRoomcd+"']/oproomnm");
  179. if (sRoomnm == "")
  180. {
  181. sRoomnm = "";
  182. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno3 + "']/rectermcd", "");
  183. }
  184. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno3 + "']/rectermnm", sRoomnm);
  185. model.refresh();
  186. }
  187. /**
  188. * @desc : 의사 선택에 따른 reccnts셋팅(tur)
  189. * @
  190. * @param :
  191. * @return :
  192. * @authur : 박종훈
  193. */
  194. function fChngDoct(degnitemno)
  195. {
  196. var sDrid = model.getValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno + "']/rectermcd");
  197. var sDrnm = model.getValue("/root/init/drlist"+degnitemno+"/usercombo[userid='"+sDrid+"']/usernm");
  198. if (sDrnm == "")
  199. {
  200. sDrnm = "";
  201. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno + "']/rectermcd", "");
  202. }
  203. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno + "']/rectermnm", sDrnm);
  204. model.refresh();
  205. }
  206. /**
  207. * @desc : 수술실 선택에 따른 reccnts셋팅(tur)
  208. * @
  209. * @param :
  210. * @return :
  211. * @authur : 박종훈
  212. */
  213. function fChngOproom(degnitemno)
  214. {
  215. var sRoomcd = model.getValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno + "']/rectermcd");
  216. var sRoomnm = model.getValue("/root/init/oproom/oproomlist[oproomcd='"+sRoomcd+"']/oproomnm");
  217. if (sRoomnm == "")
  218. {
  219. sRoomnm = "";
  220. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno + "']/rectermcd", "");
  221. }
  222. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno + "']/rectermnm", sRoomnm);
  223. model.refresh();
  224. }
  225. /**
  226. * @desc : 라디오버튼 선택에 따른 reccnts셋팅
  227. * @
  228. * @param :
  229. * @return :
  230. * @authur : 박종훈
  231. */
  232. function fRadioYN(degnitemlevlcd)
  233. {
  234. var sRdoCd = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + degnitemlevlcd + "']/rectermcd");
  235. var sRdoNm = model.getValue("/root/main/forminfo/vallist[valcd='" + sRdoCd + "']/valitemnm");
  236. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + degnitemlevlcd + "']/rectermnm", sRdoNm);
  237. }
  238. /**
  239. * @desc : 기록 인스턴스 연결
  240. * @
  241. * @param :
  242. * @return :
  243. * @authur : 박종훈
  244. */
  245. function fSetRecItemValue(reciteminfo)
  246. {
  247. return SetCommMediFormValue(gItemCds, reciteminfo);
  248. }
  249. /**
  250. * @desc : 수술예약번호를 통한 진단명, 마취종류 조회(tur)
  251. * @
  252. * @param :
  253. * @return :
  254. * @---------------------------------------------------
  255. * /
  256. function fGetdiagFormOprsrvno(oprsrvno, iMcdnm, iMcdnm, iScdnm, iScdnm)
  257. {
  258. if(oprsrvno != ""){
  259. model.removeNodeset("/root/main/diaginfo/diagcdlist");
  260. model.makeValue("/root/send/oprsrvno", oprsrvno);
  261. //model.makeValue("/root/send/oprsrvno", "2007000009");
  262. submit("TRMRF04001", false);
  263. var anstmthdcd = model.getValue("/root/main/diaginfo/anstlist/anstmthdcd");
  264. var mcdnm = model.getValue("/root/main/diaginfo/anstlist/mcdnm");
  265. var anstmthdcdsub = model.getValue("/root/main/diaginfo/anstlist/anstmthdcdsub");
  266. var scdnm = model.getValue("/root/main/diaginfo/anstlist/scdnm");
  267. var pageInfo = new PAGEINFO();
  268. var iptMObj = document.controls("ipt_mcdnm");
  269. var iptSObj = document.controls("ipt_scdnm");
  270. if (anstmthdcd != "" && mcdnm != "")
  271. {
  272. //주마취
  273. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd", anstmthdcd);
  274. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm", mcdnm);
  275. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  276. }
  277. else
  278. {
  279. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/reccnts";
  280. }
  281. if (anstmthdcdsub != "" && scdnm != "")
  282. {
  283. //부마취
  284. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd", anstmthdcdsub);
  285. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm", scdnm);
  286. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  287. }
  288. else
  289. {
  290. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/reccnts";
  291. }
  292. copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0007983001.model, model);
  293. copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0000521001.model, model);
  294. model.refresh();
  295. ivw_0007983001.window.javascript.fSetDiagNmInstance();
  296. ivw_0000521001.window.javascript.fSetDiagNmInstance();
  297. return true;
  298. }else{
  299. //alert("해당환자는 수술환자가 아닙니다!");
  300. //grup_base.disabled = true;
  301. //parent.window.javascript.fBtnDisable();
  302. return false;
  303. }
  304. }
  305. */
  306. /**
  307. * @desc : 수술명, 집도의 조회(tur)
  308. * @
  309. * @param :
  310. * @return :
  311. * @---------------------------------------------------
  312. * /
  313. function fSrchOprPerfDrlist(oprsrvno)
  314. {
  315. model.removeNodeset("/root/tmpop/selectoplist");
  316. model.removeNodeset("/root/main/paminfo/list");
  317. var node = getGlobalVariable("paminfo");
  318. if(node != "" && node != null){
  319. setCSVToNode("/root/main/paminfo", node);
  320. model.makeValue("/root/send/pid", model.getValue("/root/main/paminfo/list/pid"));
  321. model.makeValue("/root/send/cretno", model.getValue("/root/main/paminfo/list/cretno"));
  322. if (model.getValue("/root/main/paminfo/list/ioflag") == "O")
  323. {
  324. model.makeValue("/root/send/orddd", model.getValue("/root/main/paminfo/list/orddd"));
  325. }
  326. else
  327. {
  328. model.makeValue("/root/send/orddd", model.getValue("/root/main/paminfo/list/indd"));
  329. }
  330. model.makeValue("/root/send/oprsrvno", oprsrvno);
  331. model.makeValue("/root/send/srchmode", "rec");
  332. model.removeNodeset("/root/main/recinfo/recitem[degnitemno = '1']");
  333. if ( submit("TRMRF04301") )
  334. {
  335. copyNodeset("/root/tmpop/selectoplist", "/root/tmpop/selectoplist", "replace", ivw_0000509001.model, model);//수술명
  336. ivw_0000509001.window.javascript.fAfterSrch();
  337. }
  338. if ( submit("TRMRF04302") )
  339. {
  340. var perfdrid = model.getValue("/root/tmp/perfdr/perfdrid");
  341. var anstdrid = model.getValue("/root/tmp/perfdr/anstdrid");
  342. var oproomcd = model.getValue("/root/tmp/perfdr/oproomcd");
  343. var opfromdt = model.getValue("/root/tmp/perfdr/opfromdt");
  344. var opstdd = opfromdt.substring(0, 8);
  345. var opsttm = opfromdt.substring(8, 12);
  346. if (opstdd == "" || opstdd.length < 8)
  347. {
  348. opstdd = getCurrentDate();
  349. }
  350. if (opsttm == "" || opsttm.length < 4)
  351. {
  352. opsttm = getCurrentTime().substr(0, 4);
  353. }
  354. //var transopdd = opstdd.substr(0, 4) + "-" + opstdd.substr(4, 2) + "-" + opstdd.substr(6, 2)
  355. parent.window.javascript.fSetFormRec("formrecdd" , opstdd);
  356. parent.window.javascript.fSetFormRec("formrechm" , opsttm);
  357. parent.ipt_formrecdd.refresh();
  358. parent.ipt_formrectm.refresh();
  359. model.setValue("/root/main/recinfo/recitem[degnitemno='" + iOpdate + "']/reccnts", opstdd); //수술일
  360. model.setValue("/root/main/recinfo/recitem[degnitemno='" + cOdt + "']/rectermcd", perfdrid);
  361. model.setValue("/root/main/recinfo/recitem[degnitemno='" + cSdt + "']/rectermcd", anstdrid);
  362. model.setValue("/root/main/recinfo/recitem[degnitemno='" + cOproom + "']/rectermcd", oproomcd);
  363. fChngDocts(cOdt, cSdt, cOproom);
  364. }
  365. }
  366. }
  367. */
  368. /**
  369. * @desc : 진단명 사이즈 조절(tur)
  370. * @
  371. * @param :
  372. * @return :
  373. * @---------------------------------------------------
  374. */
  375. function fSetSizeFormDiag()
  376. {
  377. ivw_0007983001.window.javascript.fInitPage(false, parseInt(ivw_0007983001.attribute("height")), parseInt(ivw_0007983001.attribute("width")), "ivw_0007983001", "수술전 진단명");
  378. }
  379. /**
  380. * @desc : 수술후 진단명 사이즈 조절
  381. * @
  382. * @param :
  383. * @return :
  384. * @---------------------------------------------------
  385. */
  386. function fSetSizeFormDiag1()
  387. {
  388. ivw_0000521001.window.javascript.fInitPage(false, parseInt(ivw_0000521001.attribute("height")), parseInt(ivw_0000521001.attribute("width")), "ivw_0000521001", "수술후 진단명(Free text)");
  389. }
  390. /**
  391. * @desc : 서식 수술명 사이즈 조절(tur)
  392. * @
  393. * @param :
  394. * @return :
  395. * @---------------------------------------------------
  396. */
  397. function fSetSizeFormOpr()
  398. {
  399. ivw_0000509001.window.javascript.fInitPage(false, parseInt(ivw_0000509001.attribute("height")), parseInt(ivw_0000509001.attribute("width")), "ivw_0000509001");
  400. }
  401. /*****************************************************************************
  402. 튜닝
  403. ******************************************************************************/
  404. var gLoadFormCnts = 0;
  405. /**
  406. * @group :
  407. * @ver : 2008.06.13
  408. * @by : snoweye
  409. * @---------------------------------------------------
  410. * @type : function
  411. * @access : private
  412. * @desc : 화면 로딩후 초기화 작업 수행
  413. * @param :
  414. * @return :
  415. * @---------------------------------------------------
  416. */
  417. function fFormReady()
  418. {
  419. grup_base.attribute("border-style") = "none";
  420. setSectionSize(gItemCds, 201, 431);
  421. //20080702 박종훈 추가
  422. InitBtnImge(gItemCdsTextArea);
  423. InitBtnComn(gItemCds);
  424. InitBtnEtcRec(gItemCdsTextArea);
  425. dispOnLoadComplete(COMN_FORM);
  426. fInitialize();
  427. if (parent.window.javascript.fGetFormRec("status") == "C")
  428. {
  429. fViewOPfindingsCaption_SMMMR00902("0000512001");
  430. }
  431. //2010.01.21, hkjoo
  432. initCmbExtnList(gItemCds);
  433. }
  434. /**
  435. * @group :
  436. * @ver : 2008.06.13
  437. * @by : snoweye
  438. * @---------------------------------------------------
  439. * @type : function
  440. * @access : private
  441. * @desc : 부분서식 로딩
  442. * @param :
  443. * @return :
  444. * @---------------------------------------------------
  445. */
  446. function fLoadUnitForm()
  447. {
  448. initSection(gItemCds);
  449. }
  450. var diagcnt = 0;
  451. /**
  452. * @group :
  453. * @ver : 2008.06.13
  454. * @by : snoweye
  455. * @---------------------------------------------------
  456. * @type : function
  457. * @access : private
  458. * @desc : 부분서식 로딩후 후처리
  459. * @param :
  460. * @return :
  461. * @---------------------------------------------------
  462. */
  463. function fOnLoadComplete()
  464. {
  465. var rtn = false;
  466. var curLoadFormCd = getParameter("loadformcd");
  467. setParameter("loadformcd", "");
  468. var fstLevlItemCd = model.getValue(gPageInfo.forminfoRef + "/unitformmast[formcd='" + curLoadFormCd + "' and loaded != 'true']/orgsupdegnitemcd");
  469. var ivwObj = document.controls("ivw_" + fstLevlItemCd);
  470. var unitformload = model.getValue(gPageInfo.forminfoRef + "/unitformmast[formcd='" + curLoadFormCd + "' and loaded != 'true']/loaded");
  471. if(ivwObj != null && unitformload != "true")
  472. {
  473. //ivwObj.window.javascript.setFstLevlItemCd(fstLevlItemCd);
  474. setFstLevlItemCd(ivwObj, curLoadFormCd);
  475. model.setValue(gPageInfo.forminfoRef + "/unitformmast[formcd='" + curLoadFormCd + "']/loaded", "true");
  476. }
  477. //수술전진단명 부분서식 로딩후 처리
  478. if(fstLevlItemCd == '0007983001')
  479. {
  480. fSetSizeFormDiag();
  481. // rtn = fGetdiagFormOprsrvno(oprsrvno); //수술예약번호로 수술전진단명 조회
  482. }
  483. //수술후진단명 부분서식 로딩후 처리
  484. if(fstLevlItemCd == '0000521001')
  485. {
  486. fSetSizeFormDiag1();
  487. if (parent.window.javascript.fGetFormRec("status") == "C")
  488. {
  489. //rtn = fGetdiagFormOprsrvno(oprsrvno, iMcdnm, iMcdnm, iScdnm, iScdnm); //수술예약번호로 진단명 조회
  490. }
  491. }
  492. /*
  493. //수술명 부분서식 로딩후 처리
  494. if(fstLevlItemCd == '0000509001')
  495. {
  496. dispOnLoadComplete(UNIT_FORM);
  497. }
  498. */
  499. //수술명 부분서식 로딩후 처리
  500. if(fstLevlItemCd == '0000509001')
  501. {
  502. fSetSizeFormOpr();
  503. if (parent.window.javascript.fGetFormRec("status") == "C")
  504. {
  505. //fSrchOprPerfDrlist(oprsrvno, cOdt1); //환자정보로 수술명, 집도의 조회
  506. fClearComnFormData();
  507. //2010.01.25 dhkim - 화면 두번 호출되어 주석처리함
  508. //dispOnLoadComplete(UNIT_FORM);
  509. }
  510. // else if (parent.window.javascript.fGetFormRec("status") == "U")
  511. // {
  512. // fCosignCheck();
  513. // }
  514. }
  515. gLoadFormCnts++;
  516. if(gItemCds.length == gLoadFormCnts)
  517. {
  518. fSetSizeFormOpr();
  519. if (parent.window.javascript.fGetFormRec("status") == "C")
  520. {
  521. //model.setValue("/root/main/recinfo/recitem[degnitemno='" + iSurg + "']/reccnts", getCurrentDate()); //수술일
  522. //2010.03.22 dhkim ordtype이 상단설정과 다른 환자로 세팅되는 오류 발견하여 상단환자로 다시세팅하도록 변경함.
  523. //var ordtype = model.getValue("/root/main/paminfo/ioflag");
  524. model.removeNodeset("/root/main/paminfo/list");
  525. var node = getGlobalVariable("paminfo");
  526. if(node != "" && node != null)
  527. {
  528. setCSVToNode("/root/main/paminfo", node);
  529. var ordtype = model.getValue("/root/main/paminfo/list/ioflag");
  530. if(ordtype != "D")
  531. {
  532. messageBox("해당환자는 DSC가 아닌", "I005");
  533. grup_base.disabled = true;
  534. fBtnDisEnable(true);
  535. return;
  536. }
  537. else
  538. {
  539. if(oprsrvno == "")
  540. {
  541. messageBox("수술예약이 되지 않은 환자이거나 수술탭에서 선택하지 않은", "I005");
  542. grup_base.disabled = true;
  543. fBtnDisEnable(true);
  544. return;
  545. } else {
  546. fBtnDisEnable(false);
  547. }
  548. }
  549. }
  550. // fSrchOprPerfDrlist(oprsrvno); //환자정보로 수술명, 집도의, 마취의 조회
  551. parent.window.javascript.fSetFormRec("extnflag", "opr");
  552. parent.window.javascript.fSetFormRec("oprsrvno", oprsrvno);
  553. //서식 로딩 후 포커스 처리(2008-11-18 박종훈)
  554. SetDefFocusIVW(gItemCdsTextArea);
  555. // fGetIfCnts(); //인터페이스 항목 조회
  556. }
  557. if(parent.window.javascript.fGetFormRec("status") == "U"){
  558. //마취정보세팅
  559. var anstmthdcd = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd");
  560. var mcdnm = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm");
  561. var anstmthdcdsub = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd");
  562. var scdnm = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm");
  563. var iptMObj = document.controls("ipt_mcdnm");
  564. var iptSObj = document.controls("ipt_scdnm");
  565. if (anstmthdcd != "" && mcdnm != "")
  566. {
  567. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  568. }
  569. else
  570. {
  571. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/reccnts";
  572. }
  573. if (anstmthdcdsub != "" && scdnm != "")
  574. {
  575. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  576. }
  577. else
  578. {
  579. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/reccnts";
  580. }
  581. iptMObj.refresh();
  582. iptSObj.refresh();
  583. //버튼세팅
  584. if(parent.window.javascript.fCheckSaveDept()){
  585. grup_base.disabled = false;
  586. fBtnDisEnable(false);
  587. }
  588. else{
  589. messageBox("타과에서 작성된 DSC기록은 수정", "E001");
  590. grup_base.disabled = true;
  591. fBtnDisEnable(true);
  592. }
  593. }
  594. dispOnLoadComplete(UNIT_FORM);
  595. }
  596. if(!rtn)
  597. {
  598. return "oprfalse";
  599. } else {
  600. model.refresh();
  601. }
  602. }
  603. /**
  604. * @group :
  605. * @ver : 2008.11.28
  606. * @by : jonghun
  607. * @---------------------------------------------------
  608. * @type : function
  609. * @access : private
  610. * @desc : 동일 서식이 떠있을 경우 내부 인스턴스 로딩 후 디폴트 조회내용 조회
  611. * @param :
  612. * @return :
  613. * @---------------------------------------------------
  614. */
  615. function fGetDefData()
  616. {
  617. fSetSizeFormOpr();
  618. operation = getGlobalVariable("operation").split("▩")[1];
  619. if(operation != null && operation != ""){
  620. oprsrvno = operation.split("▦")[0];
  621. perfdeptcd = operation.split("▦")[10];
  622. }
  623. if (parent.window.javascript.fGetFormRec("status") == "C")
  624. {
  625. //model.setValue("/root/main/recinfo/recitem[degnitemno='" + iSurg + "']/reccnts", getCurrentDate()); //수술일
  626. //2010.03.22 dhkim ordtype이 상단설정과 다른 환자로 세팅되는 오류 발견하여 상단환자로 다시세팅하도록 변경함.
  627. //var ordtype = model.getValue("/root/main/paminfo/ioflag");
  628. model.removeNodeset("/root/main/paminfo/list");
  629. var node = getGlobalVariable("paminfo");
  630. if(node != "" && node != null)
  631. {
  632. setCSVToNode("/root/main/paminfo", node);
  633. var ordtype = model.getValue("/root/main/paminfo/list/ioflag");
  634. if(ordtype != "D")
  635. {
  636. messageBox("해당환자는 DSC가 아닌", "I005");
  637. grup_base.disabled = true;
  638. fBtnDisEnable(true);
  639. return;
  640. }
  641. else
  642. {
  643. if(oprsrvno == "")
  644. {
  645. messageBox("수술예약이 되지 않은 환자이거나 수술탭에서 선택하지 않은", "I005");
  646. grup_base.disabled = true;
  647. fBtnDisEnable(true);
  648. return;
  649. } else {
  650. fBtnDisEnable(false);
  651. }
  652. }
  653. }
  654. // fSrchOprPerfDrlist(oprsrvno); //환자정보로 수술명, 집도의, 마취의 조회
  655. parent.window.javascript.fSetFormRec("extnflag", "opr");
  656. parent.window.javascript.fSetFormRec("oprsrvno", oprsrvno);
  657. //서식 로딩 후 포커스 처리(2008-11-18 박종훈)
  658. SetDefFocusIVW(gItemCdsTextArea);
  659. // fGetIfCnts(); //인터페이스 항목 조회
  660. }
  661. dispOnLoadComplete(UNIT_FORM);
  662. }
  663. /**
  664. * @desc : 저장버튼 Disable
  665. * @
  666. * @param :
  667. * @return :
  668. * @authur : 박종훈
  669. */
  670. function fBtnDisEnable(flag)
  671. {
  672. if(flag)
  673. {
  674. parent.window.javascript.fDisalbeSave(flag);
  675. }
  676. else
  677. {
  678. parent.window.javascript.fDisalbeSave(flag);
  679. }
  680. }
  681. /**
  682. * @group :
  683. * @ver : 2008.09.05
  684. * @by : jonghun
  685. * @---------------------------------------------------
  686. * @type : function
  687. * @access : private
  688. * @desc : 서식기록 인터페이스 항목 조회
  689. * @param :
  690. * @return :
  691. * @---------------------------------------------------
  692. * /
  693. function fGetIfCnts()
  694. {
  695. var pid = model.getValue("/root/main/paminfo/pid");
  696. var ioflag = model.getValue("/root/main/paminfo/ioflag");
  697. var orddd = "";
  698. if (ioflag == "O" || ioflag == "S")
  699. {
  700. orddd = model.getValue("/root/main/paminfo/orddd");
  701. }
  702. else if (ioflag == "I" || ioflag == "E" || ioflag == "D")
  703. {
  704. orddd = model.getValue("/root/main/paminfo/indd");
  705. }
  706. var cretno= model.getValue("/root/main/paminfo/cretno");
  707. //model.removeNodeset("/root/send");
  708. model.makeValue("/root/send/pid", pid);
  709. model.makeValue("/root/send/orddd", orddd);
  710. model.makeValue("/root/send/cretno", cretno);
  711. model.makeValue("/root/send/oprsrvno", oprsrvno);
  712. if (submit("TRMMR00901"))
  713. {
  714. var opcmt = model.getValue("/root/init/iflist/opcmt");
  715. var nurin = model.getValue("/root/init/iflist/nurin");
  716. var nurout = model.getValue("/root/init/iflist/nurout");
  717. var oprin = model.getValue("/root/init/iflist/oprin");
  718. var oprout = model.getValue("/root/init/iflist/oprout");
  719. var skinprep = model.getValue("/root/init/iflist/skinprep");
  720. var skintermcd = "";
  721. var skintermnm = "";
  722. //수술부위 피부준비
  723. if (skinprep == "Y")
  724. {
  725. var skintermcd = model.getValue(pageInfo.forminfoRef + "/vallist[valitemnm = 'Yes']/valcd");
  726. var skintermnm = model.getValue(pageInfo.forminfoRef + "/vallist[valitemnm = 'Yes']/valitemnm");
  727. }
  728. else
  729. {
  730. var skintermcd = model.getValue(pageInfo.forminfoRef + "/vallist[valitemnm = 'No']/valcd");
  731. var skintermnm = model.getValue(pageInfo.forminfoRef + "/vallist[valitemnm = 'No']/valitemnm");
  732. }
  733. if(skintermcd != "" && skintermnm != "")
  734. {
  735. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='0016684.0005330']/rectermcd", skintermcd);
  736. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='0016684.0005330']/rectermnm", skintermnm);
  737. }
  738. //수술소견
  739. ivw_0000512001.model.setValue("/root/main/recinfo/recitem[degnitemlevlcd = '0000512.0000146']/reccnts", opcmt);
  740. ivw_0000512001.model.refresh();
  741. //DSC입퇴실 시간
  742. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='0018614']/reccnts", nurin);
  743. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='0018617']/reccnts", nurout);
  744. //수술실 입퇴실시간
  745. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='0018615']/reccnts", oprin);
  746. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='0018616']/reccnts", oprout);
  747. //투약, 처치정보 조회
  748. GetPatDrugPrcpList("0001113001", "0008539001");
  749. model.refresh();
  750. }
  751. }
  752. */
  753. /**
  754. * 20091211 dhkim
  755. * 수술소견 및 절차에 데이터가 없을때 캡션을 보여준다.
  756. */
  757. function fViewOPfindingsCaption_SMMMR00902(itemcd){
  758. if(itemcd == '0000512001'){//수술소견및절차
  759. var tarid = document.controls("tar_" + itemcd);
  760. var ivwid = document.controls("ivw_" + itemcd);
  761. var capid = document.controls("cap_" + itemcd);
  762. var tarVal = ivwid.model.getValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + itemcd + "']/reccnts");
  763. if(tarVal == null || tarVal == ""){
  764. capid.attribute("visibility") = "visible";
  765. tarid.attribute("visibility") = "hidden";
  766. ivwid.attribute("visibility") = "hidden";
  767. }else{
  768. capid.attribute("visibility") = "hidden";
  769. tarid.attribute("visibility") = "visible";
  770. ivwid.attribute("visibility") = "visible";
  771. }
  772. }
  773. }
  774. /**
  775. * 20091231 dhkim 추가
  776. * MMR01100.js에서 서식load를 완료한 후에 호출한다.
  777. * @return
  778. */
  779. function initFormAtLast_MMR01100I() {
  780. //2010.01.25 dhkim 마취과코드 추가(간호공통기준자료테이블에서 가죠옴)
  781. var pCode = "'012'"; // 조회할 CdGrupID 코드정보(012:마취과)
  782. var pDate = getCurrentDate(); //조회기준일자
  783. fGetNursHardCdInfo_MMR00902(pCode, pDate);
  784. anstdeptcd = model.getValue("/root/code_mmr00902/codeinfo/codelist[cdgrupid = '012']/cdid");
  785. var formcd = parent.window.javascript.fGetFormMast("formcd");
  786. //신규서식로딩의 경우만 수술기록정보 연동
  787. if (parent.window.javascript.fGetFormRec("status") == "C") {
  788. //2010.01.25 dhkim 집도의, 마취의 리스트 조회추가
  789. fGetRecIfData_MMR00902("opr;opnm;opdiag;dscinout;drlist;anstdrlist;oproomlist");
  790. } else {
  791. //2010.01.25 dhkim 집도의, 마취의, 수술방 리스트 조회추가
  792. fGetRecIfData_MMR00902("drlist;anstdrlist;oproomlist");
  793. }
  794. fInitAnstTypeCtrl_SMMMR00902();
  795. //2010.01.19 dhkim - 통합기록조회용 JCI구분자추가
  796. //parent.window.javascript.fSetFormRec("xsltflag", "JCI");//(fSetXsltFlag없애고 getSubmitID_MMR01300I로 이동)
  797. model.refresh();
  798. }
  799. /**
  800. * MMR01300.js에서 submit직전에 submitID를 설정하기 위해서 호출한다.
  801. * @return
  802. */
  803. function getSubmitID_MMR01300I() {
  804. //2010.02.23 dhkim - 통합기록조회용 JCI구분자추가(fSetXsltFlag없애고 getSubmitID_MMR01300I로 이동)
  805. parent.window.javascript.fSetFormRec("xsltflag", "JCI");
  806. return TX_SUBMIT_EXTN_FORM;
  807. }
  808. /**
  809. * 수술기록의 Data를 설정한다.
  810. * TRMMR01302 submission 호출로 통합
  811. * @return
  812. */
  813. function fGetRecIfData_MMR00902(infoflag) {
  814. model.removenode("/root/send/extninfo");
  815. model.makeValue("/root/send/extninfo/infoflag", infoflag);
  816. model.makeValue("/root/send/extninfo/pid", parent.window.javascript.fGetFormRec("pid"));
  817. model.makeValue("/root/send/extninfo/oprsrvno", parent.window.javascript.fGetFormRec("oprsrvno"));
  818. //2010.01.11 dhkim - dsc 입퇴실정보 조회위해 orddd, cretno 추가
  819. model.makeValue("/root/send/extninfo/orddd", parent.window.javascript.fGetFormRec("orddd"));//dsc는 orddd로 들어감
  820. model.makeValue("/root/send/extninfo/cretno", parent.window.javascript.fGetFormRec("cretno"));
  821. //2010.01.25 dhkim - 집도의,마취의, 수술방 리스트조회 콤보에 필요한 파라미터 추가
  822. if(isSearchString(infoflag, "drlist"))
  823. model.makeValue("/root/send/extninfo/deptcd", getUserInfo("dutplcecd"));
  824. if(isSearchString(infoflag, "anstdrlist"))
  825. model.makeValue("/root/send/extninfo/anstdeptcd", anstdeptcd);
  826. if(isSearchString(infoflag, "oproomlist"))
  827. model.makeValue("/root/send/extninfo/opdd", parent.window.javascript.fGetFormRec("orddd"));
  828. if (submit("TRMMR01302")) {
  829. var execInfoFlag = model.getValue("/root/main/extninfo/resultinfo/infoflag");
  830. //2010.01.25 dhkim - 집도의,마취의,수술방 콤보 리스트 추가
  831. if (execInfoFlag.indexOf("anstdrlist;") != -1) {
  832. //extninfo에 조회해온 마취의 노드리스트 콤보리스트에 copy
  833. model.removenode("/root/init/drlist" + cSdt);
  834. copyNodeset("/root/init/drlist" + cSdt + "/usercombo", "/root/main/extninfo/anstdrlistinfo");
  835. }
  836. if (execInfoFlag.indexOf("drlist;") != -1) {
  837. //extninfo에 조회해온 집도의 노드리스트 콤보리스트에 copy
  838. model.removenode("/root/init/drlist" + cOdt);
  839. copyNodeset("/root/init/drlist" + cOdt + "/usercombo", "/root/main/extninfo/drlistinfo");
  840. }
  841. if (execInfoFlag.indexOf("oproomlist;") != -1) {
  842. //extninfo에 조회해온 수술방 노드리스트 콤보리스트에 copy
  843. model.removenode("/root/init/oproom");
  844. copyNodeset("/root/init/oproom/oproomlist", "/root/main/extninfo/oproomlistinfo");
  845. }
  846. //2010.01.11 dhkim - 집도의, 마취의 콤보 노드리스트에 조회한 의사정보 없을경우 노드추가
  847. //집도의
  848. var perfdrnm = makeDrNames_MMR00902(new Array("perfdrnm"));
  849. var perfdrid = makeDrNames_MMR00902(new Array("perfdrid"));
  850. //2010.01.25 dhkim - 수정모드일 경우는 recinfo에서 조회
  851. if(parent.window.javascript.fGetFormRec("status") == "U"){
  852. perfdrnm = model.getValue("/root/main/recinfo/recitem[degnitemno='" + cOdt + "']/rectermnm");
  853. perfdrid = model.getValue("/root/main/recinfo/recitem[degnitemno='" + cOdt + "']/rectermcd");
  854. perfCnt = getNodesetCount("/root/main/extninfo/drlistinfo[userid='"+perfdrid+"']/userid");
  855. }
  856. var perfCnt = getNodesetCount("/root/main/extninfo/drlistinfo[userid='"+perfdrid+"']/userid");
  857. if(perfCnt == 0){
  858. var node_userid = instance1.createElement("userid");
  859. var node_usernm = instance1.createElement("usernm");
  860. var node_usercombo = instance1.createElement("usercombo");
  861. node_userid.text = perfdrid;
  862. node_usernm.text = perfdrnm;
  863. node_usercombo.appendChild(node_userid);
  864. node_usercombo.appendChild(node_usernm);
  865. var nodedrlist = model.instance1.selectSingleNode("/root/init/drlist" + cOdt);
  866. nodedrlist.appendChild(node_usercombo);
  867. }
  868. //마취의
  869. var anstdrnm = makeDrNames_MMR00902(new Array("anstdrnm"));
  870. var anstdrid = makeDrNames_MMR00902(new Array("anstdrid"));
  871. //2010.01.25 dhkim - 수정모드의 경우 recinfo에서 조회
  872. if(parent.window.javascript.fGetFormRec("status") == "U"){
  873. anstdrnm = model.getValue("/root/main/recinfo/recitem[degnitemno='" + cSdt + "']/rectermnm");
  874. anstdrid = model.getValue("/root/main/recinfo/recitem[degnitemno='" + cSdt + "']/rectermcd");
  875. }
  876. var anstdrCnt = getNodesetCount("/root/main/extninfo/anstdrlistinfo[userid='"+anstdrid+"']/userid");
  877. if(anstdrCnt == 0){
  878. var node_userid = instance1.createElement("userid");
  879. var node_usernm = instance1.createElement("usernm");
  880. var node_usercombo = instance1.createElement("usercombo");
  881. node_userid.text = anstdrid;
  882. node_usernm.text = anstdrnm;
  883. node_usercombo.appendChild(node_userid);
  884. node_usercombo.appendChild(node_usernm);
  885. var nodedrlist = model.instance1.selectSingleNode("/root/init/drlist" + cSdt);
  886. nodedrlist.appendChild(node_usercombo);
  887. }
  888. if (execInfoFlag.indexOf("opr;") != -1) {
  889. //수술정보 설정
  890. //수술일자,진료일자
  891. var opcnfmdd = model.getValue("/root/main/extninfo/oprinfo/opcnfmdd");
  892. var opcnfmhm = model.getValue("/root/main/extninfo/oprinfo/opcnfmhm");
  893. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000515']/reccnts", opcnfmdd);
  894. //2010.01.11 dhkim - 진료일자,진료시간 세팅
  895. parent.window.javascript.fSetFormRec("formrecdd", opcnfmdd);
  896. parent.window.javascript.fSetFormRec("formrechm", opcnfmhm);
  897. parent.ipt_formrecdd.refresh();
  898. parent.ipt_formrectm.refresh();
  899. //집도의 설정
  900. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000980']/rectermcd", perfdrid);
  901. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000980']/rectermnm", perfdrnm);
  902. //마취의 설정
  903. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0007992']/rectermcd", anstdrid);
  904. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0007992']/rectermnm", anstdrnm);
  905. //수술방 설정
  906. var oproomcd = model.getValue("/root/main/extninfo/oprinfo/oproomcd");
  907. var oproomnm = model.getValue("/root/init/oproom/oproomlist[oproomcd='"+oproomcd+"']/oproomnm");
  908. if(oproomcd != ""){
  909. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0016684.0007004']/rectermcd", oproomcd);
  910. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0016684.0007004']/rectermnm", oproomnm);
  911. }
  912. //수술부위피부준비 설정
  913. var skinprepcc = model.getValue("/root/main/extninfo/oprinfo/skinprepcc");
  914. if(skinprepcc == "0001965001"){
  915. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0016684.0005330']/rectermnm", "Yes");
  916. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0016684.0005330']/rectermcd", skinprepcc);
  917. }else if(skinprepcc == "0001347001"){
  918. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0016684.0005330']/rectermnm", "No");
  919. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0016684.0005330']/rectermcd", skinprepcc);
  920. }
  921. //주마취 설정
  922. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000248.0015528']/rectermnm", model.getValue("/root/main/extninfo/oprinfo/anstmthdnm"));
  923. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000248.0015528']/rectermcd", model.getValue("/root/main/extninfo/oprinfo/anstmthdcd"));
  924. //부마취 설정
  925. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000248.0008458']/rectermnm", model.getValue("/root/main/extninfo/oprinfo/anstmthdcdsubnm"));
  926. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000248.0008458']/rectermcd", model.getValue("/root/main/extninfo/oprinfo/anstmthdcdsub"));
  927. }
  928. if (execInfoFlag.indexOf("opdiag;") != -1) {
  929. //수술진단 설정
  930. copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/extninfo/diagcdlist", "replace", ivw_0007983001.model, model);
  931. copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/extninfo/diagcdlist", "replace", ivw_0000521001.model, model);
  932. ivw_0007983001.window.javascript.fSetDiagNmInstance();
  933. ivw_0000521001.window.javascript.fSetDiagNmInstance();
  934. }
  935. if (execInfoFlag.indexOf("opnm;") != -1) {
  936. //수술명설정
  937. copyNodeset("/root/tmpop/selectoplist", "/root/main/extninfo/selectoplist", "replace", ivw_0000509001.model, model);
  938. ivw_0000509001.window.javascript.fAfterSrch();
  939. }
  940. //2010.01.10 dhkim dsc 입퇴실시간 정보 추가
  941. if (execInfoFlag.indexOf("dscinout;") != -1) {
  942. //dsc입퇴실시간
  943. var nurin = model.getValue("/root/main/extninfo/dscinoutinfo/nurin");
  944. var nurout = model.getValue("/root/main/extninfo/dscinoutinfo/nurout");
  945. //수술 입퇴실시간
  946. var oprin = model.getValue("/root/main/extninfo/dscinoutinfo/oprin");
  947. var oprout = model.getValue("/root/main/extninfo/dscinoutinfo/oprout");
  948. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0018614']/reccnts", nurin);//DSC 도착시간
  949. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0018617']/reccnts", nurout);//DSC 퇴실시간
  950. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0018615']/reccnts", oprin);//OR 도착시간
  951. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0018616']/reccnts", oprout);//DSC 회복시간
  952. }
  953. }
  954. }
  955. /**
  956. * @desc : 의사명 노드리스트 세팅
  957. */
  958. function makeDrNames_MMR00902(arr) {
  959. var buf = "";
  960. for (var i=0; i<arr.length; i++) {
  961. var nm = model.getValue("/root/main/extninfo/oprinfo/" + arr[i]);
  962. if (nm == "") {
  963. break;
  964. } else {
  965. buf += nm;
  966. if (i<arr.length-1 && model.getValue("/root/main/extninfo/oprinfo/" + arr[i+1]) != "") {
  967. buf += ", ";
  968. }
  969. }
  970. }
  971. return buf;
  972. }
  973. /**
  974. * @desc : 수술연동관련 컨트롤 바인딩 초기화
  975. * 마취종류(주/부) 바인딩
  976. *
  977. */
  978. function fInitAnstTypeCtrl_SMMMR00902() {
  979. var anstmthdcd = "";
  980. var mcdnm = "";
  981. var anstmthdcdsub = "";
  982. var scdnm = "";
  983. var node = "";
  984. //주마취
  985. anstmthdcd = model.getValue("/root/main/extninfo/oprinfo/anstmthdcd");
  986. mcdnm = model.getValue("/root/main/extninfo/oprinfo/anstmthdnm");
  987. if(parent.window.javascript.fGetFormRec("status") == "U"){
  988. node = model.instance1.selectSingleNode(gPageInfo.recItemRef2+"[degnitemlevlcd='0000248.0015528']");
  989. if (node != null) {
  990. anstmthdcd = node.getXPathString("rectermcd");
  991. mcdnm = node.getXPathString("rectermnm");
  992. }
  993. }
  994. //부마취
  995. anstmthdcdsub = model.getValue("/root/main/extninfo/oprinfo/anstmthdcdsub");
  996. scdnm = model.getValue("/root/main/extninfo/oprinfo/anstmthdcdsubnm");
  997. if(parent.window.javascript.fGetFormRec("status") == "U"){
  998. node = model.instance1.selectSingleNode(gPageInfo.recItemRef2+"[degnitemlevlcd='0000248.0008458']");
  999. if (node != null) {
  1000. anstmthdcdsub = node.getXPathString("rectermcd");
  1001. scdnm = node.getXPathString("rectermnm");
  1002. }
  1003. }
  1004. var pageInfo = new PAGEINFO();
  1005. var iptMObj = document.controls("ipt_mcdnm");
  1006. var iptSObj = document.controls("ipt_scdnm");
  1007. //2010.01.18 dhkim - 마취바인딩 무조건 rectermcd, rectermnm으로 변경
  1008. if(anstmthdcd == null || anstmthdcd == ""){
  1009. anstmthdcd = "-";
  1010. }
  1011. if(anstmthdcdsub == null || anstmthdcdsub == ""){
  1012. anstmthdcdsub = "-";
  1013. }
  1014. //주마취
  1015. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd", anstmthdcd);
  1016. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm", mcdnm);
  1017. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  1018. //부마취
  1019. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd", anstmthdcdsub);
  1020. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm", scdnm);
  1021. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  1022. iptMObj.refresh();
  1023. iptSObj.refresh();
  1024. /*
  1025. if (anstmthdcd != "" && mcdnm != "")
  1026. {
  1027. //주마취
  1028. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd", anstmthdcd);
  1029. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm", mcdnm);
  1030. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  1031. }
  1032. else
  1033. {
  1034. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/reccnts";
  1035. }
  1036. if (anstmthdcdsub != "" && scdnm != "")
  1037. {
  1038. //부마취
  1039. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd", anstmthdcdsub);
  1040. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm", scdnm);
  1041. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  1042. }
  1043. else
  1044. {
  1045. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/reccnts";
  1046. }
  1047. */
  1048. }
  1049. /**
  1050. * @desc : 마취과코드조회(간호공통테이블에서조회)
  1051. * @ver : 2010.01.25 dhkim 추가
  1052. */
  1053. function fGetNursHardCdInfo_MMR00902(pCode, pDate){
  1054. model.removeNodeset("/root/send_mmr00902");
  1055. model.removeNodeset("/root/code_mmr00902");
  1056. model.makeNode("/root/code_mmr00902");
  1057. model.makeValue("/root/send_mmr00902/cdgrupid", pCode); // 조회할 CdGrupID 코드정보
  1058. model.makeValue("/root/send_mmr00902/srchdd" , pDate); // 조회기준일자
  1059. submit("TRMMR00902",false);
  1060. }
  1061. /**
  1062. * @desc : 2010.01.25 dhkim - 추가) 저장전 체크 로직
  1063. * @id :
  1064. * @event : xforms-ready
  1065. * @return : void
  1066. * @authur : dhkim
  1067. */
  1068. function fChkPreSave()
  1069. {
  1070. //2010.01.25 dhkim - DSC는 마취종류 주, 부 필수체크 안하여 주석처리함.
  1071. /*
  1072. //2010.01.25 dhkim 마취종류 주, 부 필수체크
  1073. //(degnitemkind='STX'이나 데이터는 rectermcd, rectermnm에 들어가므로 EMRCommon.js에서 필수체크할수 없음)
  1074. //주마취
  1075. var anstmthdcd = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd");
  1076. var anstmthdnm = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm");
  1077. //default값세팅
  1078. if(anstmthdcd == null || anstmthdcd == ""){
  1079. anstmthdcd = "-";
  1080. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd", anstmthdcd);
  1081. model.refresh();
  1082. }
  1083. if(anstmthdnm == null || anstmthdnm == ""){
  1084. messageBox("마취종류(주)는 필수 입력입니다.", "E");
  1085. return false;
  1086. }
  1087. //부마취
  1088. var anstmthdcdsub = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd");
  1089. var anstmthdcdsubnm = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm");
  1090. //default값세팅
  1091. if(anstmthdcdsub == null || anstmthdcdsub == ""){
  1092. anstmthdcdsub = "-";
  1093. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd", anstmthdcdsub);
  1094. model.refresh();
  1095. }
  1096. if(anstmthdcdsubnm == null || anstmthdcdsubnm == ""){
  1097. messageBox("마취종류(부)는 필수 입력입니다.", "E");
  1098. return false;
  1099. }
  1100. */
  1101. }