SMMMR00903.js 46 KB

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