MMR00601.xjs 72 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[ /**
  3. * MMR00601.js
  4. * SMMMR00601_수술기록.xrw
  5. * -> 수술기록 신규 로딩할때에 brief 기록이 있으면 디폴트로 brief기록을 조회해옴(asis는 수술간호정보를 로딩했음)
  6. */
  7. //부분서식의 부모아이템 배열
  8. var arrItemCds = new Array( "0000515001"//수술일자
  9. , "0007983001"//수술전진단명
  10. , "0000521001"//수술후진단명
  11. , "0000509001"//수술명
  12. , "0000248001"
  13. // , "0015528001"//마취종류(주)
  14. // , "0008458001"//마취종류(부)
  15. , "0000980001"
  16. // , "0001830001"//집도의1
  17. // , "0001831001"//집도의2
  18. // , "0001832001"//집도의3
  19. , "0000341001"
  20. // , "0001830001"//보조의1
  21. // , "0001831001"//보조의2
  22. // , "0001832001"//보조의3
  23. // , "0001833001"//보조의4
  24. , "0000512001"//수술소견
  25. , "0000507001"//수술과정
  26. , "0008331001"//조직표본검체
  27. , "0000323001"//배액관
  28. , "0036148001"//특이사항
  29. , "0001115001"//특이사항
  30. );
  31. var gItemCds = new Array("0007983001", "0000521001", "0000509001", "0000512001", "0000507001");
  32. var gItemCdsTextArea = new Array("0000512001", "0000507001");
  33. var gItemCdsXRWArea = new Array("0007983001", "0000521001", "0000509001");
  34. //부분서식의 개수만큼 일단 '0'으로 채운다.
  35. var gPageIdx = new Array(0, 0);
  36. var iSurg = grup_base.ipt_surg.degnitemlevlcd;
  37. var iMcdnm = grup_base.ipt_mcdnm.degnitemlevlcd;
  38. var iScdnm = grup_base.ipt_scdnm.degnitemlevlcd;
  39. var cOdt1 = grup_base.cmb_odt1.degnitemlevlcd;
  40. var cSdt1 = grup_base.cmb_sdt1.degnitemlevlcd;
  41. var pageInfo = new PAGEINFO();
  42. var oprsrvno = ""; //수술예약번호
  43. var perfdeptcd = ""; //집도과
  44. var lodedYn = false;
  45. var gProcedures_itemcd = "";
  46. var gProcedures = "";
  47. var gFindings_itemcd = "";
  48. var gFindings = "";
  49. /**
  50. * @desc : 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시를 위한 버튼목록
  51. * @id :
  52. * @authur : 안치원
  53. * @history : 2009.09.09 신규 안치원 ACW_090909A
  54. */
  55. var gExtnBtnIds = new Array("btn_imge_0000512001", "btn_etcrec_0000512001",
  56. "btn_imge_0000507001", "btn_etcrec_0000507001");
  57. /****************************************************************************************
  58. * Function : fClearComnFormData
  59. * Description : 서식 데이터 Clear, 인터페이스 입력값 조회 입력
  60. * retrun type :
  61. ****************************************************************************************/
  62. function fClearComnFormData()
  63. {
  64. if (!utlf_isNull(gMaxSectionID))
  65. {
  66. frmf_inputEnterKey( "ComnFormObj.lbl_"+gMaxSectionID, "onclick", new ClickEventInfo);
  67. }
  68. if( lodedYn == true )
  69. ClearComnFormData(gItemCds);
  70. //2010.01.20 dhkim -권한체크로 리턴값 추가
  71. if(!fInitialize()){
  72. return false;
  73. }
  74. if (parent.fGetFormRec("status") == "C")
  75. {
  76. var rtn = 'true';
  77. if(!rtn)
  78. {
  79. fBtnDisEnable(true);
  80. return "oprfalse";
  81. } else {
  82. }
  83. }
  84. //포커스 처리
  85. SetDefFocusIVW(gItemCdsTextArea);
  86. return true;
  87. }
  88. /****************************************************************************************
  89. * Function : fLoadData
  90. * Description : 기록데이터 조회
  91. * retrun type :
  92. ****************************************************************************************/
  93. function fLoadData()
  94. {
  95. //2010.01.20 dhkim -권한체크로 리턴값 추가
  96. if(!fInitialize()){
  97. return false;
  98. }
  99. lf_setRecData(arrItemCds);
  100. var sStatus = fGetFormRec("status");
  101. lf_setBasicInfo(sStatus);
  102. /*
  103. //Program 서식 데이터 조회반영
  104. InitPgmFormData();
  105. this.recRef2 = "/root/hidden/recinfo"
  106. //부분서식 데이터 조회 반영
  107. InitUnitFormData(gItemCds);
  108. */
  109. parent.gSubmitID = TX_SUBMIT_EXTN_FORM;
  110. parent.fSetFormRec("extnflag", "opr");
  111. return true;//2010.01.21 dhkim - 리턴값 추가(blocking 메세지후 리턴)
  112. }
  113. /****************************************************************************************
  114. * Function : fInitialize
  115. * Description : 화면 초기화
  116. * retrun type : true / false
  117. * History : 2010.01.20 dhkim - 리턴값 추가
  118. ****************************************************************************************/
  119. function fInitialize()
  120. {
  121. //2010.01.18 dhkim - 작성권한 체크(수술예약번호, 집도과체크)->기존기능임
  122. var operation = utlf_transNullToEmpty(sysf_getGlobalVariable("operation")).split("▩")[1];
  123. if( dsf_getColumnNullToEmpty(parent.ds_temp_formdata, 0, "operation") != "" ){
  124. operation = parent.ds_temp_formdata.getColumn(0, "operation").split("▩")[1];
  125. }
  126. if(!utlf_isNull(operation)){
  127. oprsrvno = operation.split("▦")[0];
  128. perfdeptcd = operation.split("▦")[10];
  129. }
  130. if (parent.fGetFormRec("status") == "C")
  131. {
  132. parent.fSetFormRec("extnflag", "opr");
  133. parent.fSetFormRec("oprsrvno", oprsrvno);
  134. //수술예약번호 체크
  135. if(utlf_isNull(oprsrvno))
  136. {
  137. sysf_messageBox("수술예약이 되지 않은", "I005");
  138. grup_base.enable = false;
  139. fBtnDisEnable(true);
  140. return false;
  141. } else {
  142. fBtnDisEnable(false);
  143. }
  144. //집도과 체크
  145. if (perfdeptcd != sysf_getUserInfo("dutplcecd"))
  146. {
  147. sysf_messageBox("작성 권한이", "I004");
  148. grup_base.enable = false;
  149. fBtnDisEnable(true);
  150. return false;
  151. } else {
  152. fBtnDisEnable(false);
  153. }
  154. }
  155. //그리드 top, hei확장값 세팅
  156. gTermViewTopPos = 26;//29;
  157. gTermViewHei = 255;//152;
  158. gTermViewItems = gItemCdsXRWArea;
  159. grup_base.ipt_surg.enable = false;
  160. return true;
  161. }
  162. /****************************************************************************************
  163. * Function : fChngDoct
  164. * Description : 의사 선택에 따른 reccnts셋팅
  165. ****************************************************************************************/
  166. function fChngDoct(obj:Combo, e:ItemChangeEventInfo)
  167. {
  168. var sDrnm, sDrcd;
  169. var sDegnitemlevlcd = obj.degnitemlevlcd;
  170. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  171. if(nFindRow == -1)
  172. {
  173. nFindRow = ds_data_recitem.addRow();
  174. var insRow = ds_temp_mainrecitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  175. ds_data_recitem.copyRow(nFindRow, ds_temp_mainrecitem, insRow);
  176. }
  177. sDrnm = e.posttext;
  178. sDrcd = e.postvalue;
  179. if( utlf_isNull(e.posttext) ){
  180. sDrnm = "";
  181. sDrcd = "";
  182. obj.value = "";
  183. }
  184. ds_data_recitem.setColumn(nFindRow, "rectermcd", sDrcd);
  185. ds_data_recitem.setColumn(nFindRow, "rectermnm", sDrnm);
  186. }
  187. /****************************************************************************************
  188. * Function : fRadioYN
  189. * Description : 라디오버튼 선택에 따른 reccnts셋팅
  190. ****************************************************************************************/
  191. function fRadioYN(obj:Radio, e:ItemChangeEventInfo)
  192. {
  193. var sDegnitemlevlcd = obj.degnitemlevlcd;
  194. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  195. if(nFindRow == -1)
  196. {
  197. nFindRow = ds_data_recitem.addRow();
  198. var insRow = ds_temp_mainrecitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  199. ds_data_recitem.copyRow(nFindRow, ds_temp_mainrecitem, insRow);
  200. }
  201. var sRectermnm = parent.ds_data_vallist.getColumn(parent.ds_data_vallist.findRow("valcd", e.postvalue), "valitemnm");
  202. if( utlf_isNull(sRectermnm) ) sRectermnm = e.posttext;
  203. ds_data_recitem.setColumn(nFindRow, "rectermcd", e.postvalue);
  204. ds_data_recitem.setColumn(nFindRow, "rectermnm", sRectermnm);
  205. }
  206. /****************************************************************************************
  207. * Function : fPatientHist
  208. * Description : 수술이력 팝업
  209. * retrun type :
  210. ****************************************************************************************/
  211. function fPatientHist()
  212. {
  213. frmf_modal("SMMMO02500", "SMMMO02500", null, null, null, null, null, null, null, null, null, null, "M");
  214. }
  215. /**
  216. * @desc : 기록 인스턴스 연결
  217. * @
  218. * @param :
  219. * @return :
  220. * @authur : 박종훈
  221. */
  222. function fSetRecItemValue(reciteminfo)
  223. {
  224. return SetCommMediFormValue(gItemCds, reciteminfo);
  225. }
  226. /**
  227. * @desc : 수술예약번호를 통한 진단명, 마취종류 조회
  228. * @
  229. * @param :
  230. * @return :
  231. * @---------------------------------------------------
  232. */
  233. function fGetdiagFormOprsrvno(oprsrvno, iMcdnm, iMcdnm, iScdnm, iScdnm)
  234. {
  235. if(oprsrvno != ""){
  236. model.removeNodeset("/root/main/diaginfo/diagcdlist");
  237. model.makeValue("/root/send/oprsrvno", oprsrvno);
  238. //model.makeValue("/root/send/oprsrvno", "2007000009");
  239. submit("TRMRF04001", false);//TRMRF04001 : (oprd, anst) 수술진단조회, 마취주부
  240. var anstmthdcd = model.getValue("/root/main/diaginfo/anstlist/anstmthdcd");
  241. var mcdnm = model.getValue("/root/main/diaginfo/anstlist/mcdnm");
  242. var anstmthdcdsub = model.getValue("/root/main/diaginfo/anstlist/anstmthdcdsub");
  243. var scdnm = model.getValue("/root/main/diaginfo/anstlist/scdnm");
  244. var pageInfo = new PAGEINFO();
  245. var iptMObj = document.controls("ipt_mcdnm");
  246. var iptSObj = document.controls("ipt_scdnm");
  247. if (anstmthdcd != "" && mcdnm != "")
  248. {
  249. //주마취
  250. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd", anstmthdcd);
  251. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm", mcdnm);
  252. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  253. }
  254. else
  255. {
  256. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/reccnts";
  257. }
  258. if (anstmthdcdsub != "" && scdnm != "")
  259. {
  260. //부마취
  261. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd", anstmthdcdsub);
  262. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm", scdnm);
  263. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  264. }
  265. else
  266. {
  267. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/reccnts";
  268. }
  269. //dhkim
  270. /*
  271. //수술전진단명, 수술후 진단명
  272. copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0007983001.model, model);
  273. copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0000521001.model, model);
  274. model.refresh();
  275. ivw_0007983001.window.javascript.fSetDiagNmInstance();
  276. ivw_0000521001.window.javascript.fSetDiagNmInstance();
  277. */
  278. return true;
  279. }else{
  280. //alert("해당환자는 수술환자가 아닙니다!");
  281. //grup_base.disabled = true;
  282. //parent.window.javascript.fBtnDisable();
  283. return false;
  284. }
  285. }
  286. /****************************************************************************************
  287. * Function : fSetSizeFormDiag
  288. * Description : 수술전 진단명 사이즈 조절
  289. * retrun type :
  290. ****************************************************************************************/
  291. function fSetSizeFormDiag()
  292. {
  293. grup_base.ivw_0007983001.fInitPage(false, parseInt(grup_base.ivw_0007983001.position.height), parseInt(grup_base.ivw_0007983001.position.width), "ivw_0007983001", "수술전 진단명(Free text))");
  294. }
  295. /****************************************************************************************
  296. * Function : fSetSizeFormDiag1
  297. * Description : 수술후 진단명 사이즈 조절
  298. * retrun type :
  299. ****************************************************************************************/
  300. function fSetSizeFormDiag1()
  301. {
  302. grup_base.ivw_0000521001.fInitPage(false, parseInt(grup_base.ivw_0000521001.position.height), parseInt(grup_base.ivw_0000521001.position.width), "ivw_0000521001", "수술후 진단명(Free text)");
  303. }
  304. /****************************************************************************************
  305. * Function : fSetSizeFormOpr
  306. * Description : 서식 수술명 사이즈 조절
  307. * retrun type :
  308. ****************************************************************************************/
  309. function fSetSizeFormOpr()
  310. {
  311. grup_base.ivw_0000509001.fInitPage(false, parseInt(grup_base.ivw_0000509001.position.height), parseInt(grup_base.ivw_0000509001.position.width), "ivw_0000509001");
  312. }
  313. /*****************************************************************************
  314. 튜닝
  315. ******************************************************************************/
  316. var gLoadFormCnts = 0;
  317. /****************************************************************************************
  318. * Function : fFormReady()
  319. * Description : 화면 로딩후 초기화 작업 수행
  320. * retrun type :
  321. ****************************************************************************************/
  322. function fFormReady()
  323. {
  324. this.ComnFormObj = this.grup_base;
  325. dsf_createDsRow("ds_temp_mainrecitem",
  326. [{col:"formxrw", val:""}]);
  327. // 공통서식의 초기 recitem 정보. 기록 데이터 조합시 사용
  328. ds_temp_mainrecitem.assign(ds_data_recitem);
  329. lf_setSectionSize(gItemCds, "grup_base.tar_0000512001", "grup_base.tar_0000507001", 350); //350
  330. //20080702 박종훈 추가
  331. //fInitialize();
  332. InitBtnImge(gItemCdsTextArea);
  333. InitBtnEtcRec(gItemCdsTextArea);
  334. // InitBtnComn(gItemCdsTextArea);
  335. // dispOnLoadComplete(COMN_FORM);
  336. // lf_checkUnitForm(gItemCds); // 부분서식 로딩
  337. lf_AllLoadUnitFormExpand(gItemCds); // 전체 로드
  338. // fonloadcomplete
  339. if (parent.fGetFormRec("status") == "C")
  340. {
  341. if(!fClearComnFormData()){
  342. return false;
  343. }
  344. }else{
  345. if(!fInitialize()){
  346. return false;
  347. }
  348. parent.gSubmitID = TX_SUBMIT_EXTN_FORM;
  349. parent.fSetFormRec("extnflag", "opr");
  350. }
  351. fCosignCheck();
  352. if (parent.fGetFormRec("status") == "C")
  353. {
  354. //20091211 dhkim 추가(수술과정 캡션 visible/hidden처리)
  355. fViewOPfindingsCaption_SMMMR00601("0000507001");//수술과정
  356. //2010.01.18 dhkim - 수술소견 캡션 visible/hidden처리 추가
  357. fViewOPfindingsCaption_SMMMR00601("0000512001");//수술과정
  358. }
  359. //2010.01.25, hkjoo
  360. // initCmbExtnList(gItemCds);
  361. //수술예방적 항생제 투약미비건수
  362. fGetMibiMedrCnt();
  363. lf_setRecData(arrItemCds);
  364. initFormAtLast_MMR01100I();
  365. }
  366. /****************************************************************************************
  367. * Function : fLoadUnitForm()
  368. * Description : 부분서식 로딩
  369. * retrun type :
  370. ****************************************************************************************/
  371. function fLoadUnitForm()
  372. {
  373. initSection(gItemCds);
  374. }
  375. var diagcnt = 0;
  376. /****************************************************************************************
  377. * Function : fOnLoadComplete()
  378. * Description : 부분서식 로딩후 후처리
  379. * retrun type :
  380. ****************************************************************************************/
  381. function fOnLoadComplete()
  382. {
  383. var rtn = false;
  384. var curLoadFormCd = frmf_getParameter("loadformcd");
  385. frmf_setParameter("loadformcd", "");
  386. var nFindRow = ds_data_unitformmast.findRowExpr("formcd=='" + curLoadFormCd + "' && loaded != 'true'");
  387. var fstLevlItemCd = ds_data_unitformmast.getColumn(nFindRow, "orgsupdegnitemcd");
  388. var ivwObj = ComnFormObj.components["ivw_" + fstLevlItemCd];
  389. var unitformload = ds_data_unitformmast.getColumn(nFindRow, "loaded");
  390. if(!utlf_isNull(ivwObj) && unitformload != "true")
  391. {
  392. //setFstLevlItemCd(ivwObj, curLoadFormCd);
  393. var nRow = ds_data_unitformmast.findRow("formcd", curLoadFormCd);
  394. ds_data_unitformmast.setColumn(nRow, "loaded", "true");
  395. }
  396. //수술전진단명 부분서식 로딩후 처리
  397. if(fstLevlItemCd == '0007983001')
  398. {
  399. fSetSizeFormDiag();
  400. }
  401. //수술후진단명 부분서식 로딩후 처리
  402. if(fstLevlItemCd == '0000521001')
  403. {
  404. fSetSizeFormDiag1();
  405. if (parent.fGetFormRec("status") == "C")
  406. {
  407. //rtn = fGetdiagFormOprsrvno(oprsrvno, iMcdnm, iMcdnm, iScdnm, iScdnm); //수술예약번호로 진단명 조회
  408. }
  409. }
  410. //수술명 부분서식 로딩후 처리
  411. if(fstLevlItemCd == '0000509001')
  412. {
  413. fSetSizeFormOpr();
  414. if (parent.fGetFormRec("status") == "C")
  415. {
  416. if(!fClearComnFormData()){
  417. return false;
  418. }
  419. }
  420. else if (parent.fGetFormRec("status") == "U")
  421. {
  422. fCosignCheck();
  423. }
  424. }
  425. gLoadFormCnts++;
  426. utlf_addLog("@@@@@ gItemCds.length : " + gItemCds.length + " gLoadFormCnts : " + gLoadFormCnts );
  427. if(gItemCds.length == gLoadFormCnts)
  428. {
  429. /* jw.choe 임시 주석
  430. if (parent.fGetFormRec("status") == "U")
  431. {
  432. var anstmthdcd = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd");
  433. var mcdnm = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm");
  434. var anstmthdcdsub = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd");
  435. var scdnm = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm");
  436. var iptMObj = document.controls("ipt_mcdnm");
  437. var iptSObj = document.controls("ipt_scdnm");
  438. if (anstmthdcd != "" && mcdnm != "")
  439. {
  440. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  441. }
  442. else
  443. {
  444. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/reccnts";
  445. }
  446. if (anstmthdcdsub != "" && scdnm != "")
  447. {
  448. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  449. }
  450. else
  451. {
  452. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/reccnts";
  453. }
  454. iptMObj.refresh();
  455. iptSObj.refresh();
  456. }
  457. */
  458. dispOnLoadComplete(UNIT_FORM);//COMN_FORM = 1, UNIT_FORM = 2, GENL_FORM = 3
  459. //서식 로딩 후 포커스 처리(2008-11-18 박종훈)
  460. SetDefFocusIVW(gItemCdsTextArea);
  461. }
  462. }
  463. /****************************************************************************************
  464. * Function : fGetDefData()
  465. * Description : 동일 서식이 떠있을 경우 내부 인스턴스 로딩 후 디폴트 조회내용 조회
  466. * retrun type :
  467. ****************************************************************************************/
  468. function fGetDefData()
  469. {
  470. fSetSizeFormOpr();
  471. operation = utlf_transNullToEmpty(sysf_getGlobalVariable("operation")).split("▩")[1];
  472. if( dsf_getColumnNullToEmpty(parent.ds_temp_formdata, 0, "operation") != "" ){
  473. operation = parent.ds_temp_formdata.getColumn(0, "operation").split("▩")[1];
  474. }
  475. if(!utlf_isNull(operation)){
  476. oprsrvno = operation.split("▦")[0];
  477. perfdeptcd = operation.split("▦")[10];
  478. }
  479. dispOnLoadComplete(UNIT_FORM);//COMN_FORM = 1, UNIT_FORM = 2, GENL_FORM = 3
  480. }
  481. /****************************************************************************************
  482. * Function : fBtnDisEnable()
  483. * Description : 저장버튼 Disable
  484. * retrun type :
  485. ****************************************************************************************/
  486. function fBtnDisEnable(flag)
  487. {
  488. if(flag)
  489. {
  490. parent.fDisalbeSave(flag);
  491. }
  492. else
  493. {
  494. parent.fDisalbeSave(flag);
  495. }
  496. }
  497. /****************************************************************************************
  498. * Function : fCosignCheck()
  499. * Description : 코사인버튼처리
  500. * retrun type :
  501. * History : 2010.04.20 dhkim 스탭권한체크 서브미션 TRMMR01302로 변경(unpreplib호출로 통합)
  502. ****************************************************************************************/
  503. function fCosignCheck()
  504. {
  505. //2010.04.20 dhkim 스탭권한체크 서브미션 TRMMR01302로 변경(unpreplib호출로 통합)
  506. //이전의 TRMMR00802 호출부분은 주석처리함.
  507. if (parent.fGetFormRec("status") == "U" && parent.fGetFormRec("espiyn") == "Y")
  508. {
  509. ds_send_extninfo.clearData();
  510. var nRow = ds_send_extninfo.addRow();
  511. ds_send_extninfo.setColumn(nRow, "infoflag", "staffauth");
  512. ds_send_extninfo.setColumn(nRow, "formrecseq", parent.fGetFormRec("formrecseq"));
  513. dsf_setDefaultVal(ds_send_extninfo, "dschdd:99991231");
  514. var oParam = {};
  515. oParam.id = "TRMMR01302";
  516. oParam.service = "medirecapp.RecIf";
  517. oParam.method = "reqGetFormRecExtnInfo";
  518. oParam.inds = "req=ds_send_extninfo";
  519. oParam.outds = "ds_main_extninfo_resultinfo=resultinfo ds_main_extninfo_staffauthinfo=staffauthinfo ds_main_extninfo_oprinfo=oprinfo "
  520. + "ds_main_extninfo_oplistinfo=oplistinfo ds_main_extninfo_recitem=recitem ds_main_extninfo_drlistinfo=drlistinfo "
  521. + "ds_data_diagcdlist=diagcdlist ds_main_extninfo_selectoplist=selectoplist ds_main_extninfo_dscinoutinfo=dscinoutinfo "
  522. + "ds_main_extninfo_rectextinfo=rectextinfo ds_main_extninfo_anstdrlistinfo=anstdrlistinfo ds_main_extninfo_oproomlistinfo=oproomlistinfo "
  523. + "ds_main_extninfo_recseqinfo=recseqinfo ds_main_extninfo_etcinfo=etcinfo";
  524. oParam.async = false;
  525. oParam.callback = "cf_TRMMR01302";
  526. tranf_submit(oParam);
  527. if(arErrorCode.pop("TRMMR01302") > -1)
  528. {
  529. var nRow = ds_main_extninfo_staffauthinfo.rowposition;
  530. var authyn = ds_main_extninfo_staffauthinfo.getColumn(nRow, "authyn");
  531. if(authyn == "Y")
  532. {
  533. //인증저장버튼과 코사인버튼처리
  534. parent.grup_btn.btn_cosign.position.x = parent.grup_btn.btn_signsave.position.x;
  535. parent.grup_btn.btn_signsave.visible = false;
  536. parent.grup_btn.btn_cosign.visible = true;
  537. //임시저장버튼과 기록반려버튼처리
  538. parent.grup_btn.btn_resend.position.x = parent.grup_btn.btn_tmpsave.position.x;
  539. parent.grup_btn.btn_tmpsave.visible = false;
  540. parent.grup_btn.btn_resend.visible = true;
  541. //기타버튼 disable처리
  542. parent.grup_btn.btn_init.enable = false;
  543. parent.grup_btn.btn_preview.enable = false;
  544. parent.grup_btn.btn_signsaveasnew.enable = false;
  545. parent.grup_btn.btn_del.enable = false;
  546. if (parent.fGetFormRec("cosign") == "Y")
  547. {
  548. parent.grup_btn.btn_cosign.enable = false;
  549. grup_base.enable = false;
  550. }
  551. else
  552. {
  553. parent.grup_btn.btn_cosign.enable = true;
  554. grup_base.enable = true;
  555. }
  556. }
  557. else
  558. {
  559. //인증저장버튼과 코사인버튼처리
  560. parent.grup_btn.btn_signsave.visible = true;
  561. parent.grup_btn.btn_cosign.visible = false;
  562. //임시저장버튼과 기록반려버튼처리
  563. parent.grup_btn.btn_tmpsave.visible = true;
  564. parent.grup_btn.btn_resend.visible = false;
  565. //기타버튼 disable처리
  566. parent.grup_btn.btn_init.enable = true;
  567. parent.grup_btn.btn_preview.enable = true;
  568. parent.grup_btn.btn_signsaveasnew.enable = true;
  569. parent.grup_btn.btn_del.enable = true;
  570. }
  571. }
  572. }
  573. }
  574. function cf_TRMMR01302(sSvcId, nErrorCode, sErrorMsg){
  575. arErrorCode.push(sSvcId, nErrorCode);
  576. if(nErrorCode < 0) return;
  577. dsf_setDefaultVal(ds_main_extninfo_recitem, "recitemno:'',degnitemno:'',supdegnitemno:''");
  578. dsf_setTypeFormat(ds_main_extninfo_recitem, "recitemno:INT^degnitemno:INT^supdegnitemno:INT");
  579. }
  580. /****************************************************************************************
  581. * Function : fDefInfo_MMR00601()
  582. * Description : 수술에 대한 기본 정보 조회
  583. * retrun type :
  584. ****************************************************************************************/
  585. function fDefInfo_MMR00601()
  586. {
  587. return;//2010.01..18 dhkim 사용안함
  588. }
  589. /****************************************************************************************
  590. * Function : fSetOprRecIf_MMR00601()
  591. * Description : 수술기록 인터페이스 내용 셋팅
  592. * retrun type :
  593. ****************************************************************************************/
  594. function fSetOprRecIf_MMR00601()
  595. {
  596. return; //2010.01.18 dhkim 사용안함
  597. }
  598. /**
  599. * @group :
  600. * @ver : 2009.01.05
  601. * @by : jonghun
  602. * @---------------------------------------------------
  603. * @type : function
  604. * @access : private
  605. * @desc : 서식 로딩 완료 후 수술 예약번호 유무에 따라 서식 내용 셋팅
  606. * @param :
  607. * @return :
  608. * @---------------------------------------------------
  609. */
  610. function fSetOprInfo_MMR00601()
  611. {
  612. if (parent.window.javascript.fGetFormRec("status") == "C")
  613. {
  614. var dschdd = parent.window.javascript.fGetPamInfo("dschdd");
  615. if (dschdd == "" || dschdd == "-")
  616. {
  617. dschdd = "99991231";
  618. }
  619. model.makeValue("/root/send/oprinfo/pid", parent.window.javascript.fGetPamInfo("pid"));
  620. model.makeValue("/root/send/oprinfo/indd", parent.window.javascript.fGetPamInfo("indd"));
  621. model.makeValue("/root/send/oprinfo/dschdd", dschdd);
  622. //TRMMR01002 : (oprs, opcr)수술확정일자, 수술명, 과 -->콤보에 세팅
  623. if (submit("TRMMR01002")) //수술 이력 조회
  624. {
  625. var nodeList = model.instances(0).selectNodes("/root/init/oprlist/oplist");
  626. if (oprsrvno != "")
  627. {
  628. parent.window.javascript.fSetFormRec("oprsrvno", oprsrvno);
  629. model.makeValue("/root/send/reqinfstrec/pid", parent.window.javascript.fGetPamInfo("pid"));
  630. model.makeValue("/root/send/reqinfstrec/orddd", parent.window.javascript.fGetPamInfo("indd"));
  631. model.makeValue("/root/send/reqinfstrec/cretno", parent.window.javascript.fGetPamInfo("cretno"));
  632. model.makeValue("/root/send/reqinfstrec/oprsrvno", oprsrvno);
  633. //TRMMR01003 : (oprd, anst)수술진단조회,마취주부
  634. if (submit("TRMMR01003")) //수술 예약번호에 따른 수술기록지 기록내용 조회
  635. {
  636. var nodeList1 = model.instances(0).selectNodes("/root/main/infstrec/recitem");
  637. //해당 수술건에 대한 수술기록 유무에 따른 분기
  638. if (nodeList1.length > 0)
  639. {
  640. fSetOprRecIf_MMR00601();
  641. }
  642. else
  643. {
  644. fDefInfo_MMR00601(); //수술기록이 없을경우 디폴트 정보 조회
  645. }
  646. }
  647. }
  648. else if(nodeList.length == 1)
  649. {
  650. var opsrvno = model.getValue("/root/init/oprlist/oplist/oprsrvno");
  651. if (opsrvno != "" && opsrvno != "-")
  652. {
  653. parent.window.javascript.fSetFormRec("oprsrvno", opsrvno);
  654. model.makeValue("/root/send/reqinfstrec/pid", parent.window.javascript.fGetPamInfo("pid"));
  655. model.makeValue("/root/send/reqinfstrec/orddd", parent.window.javascript.fGetPamInfo("indd"));
  656. model.makeValue("/root/send/reqinfstrec/cretno", parent.window.javascript.fGetPamInfo("cretno"));
  657. model.makeValue("/root/send/reqinfstrec/oprsrvno", opsrvno);
  658. //TRMMR01003 : (oprd, anst)수술진단조회,마취주부
  659. if (submit("TRMMR01003")) //수술 예약번호에 따른 수술기록지 기록내용 조회
  660. {
  661. var nodeList2 = model.instances(0).selectNodes("/root/main/infstrec/recitem");
  662. //해당 수술건에 대한 수술기록 유무에 따른 분기
  663. if (nodeList2.length > 0)
  664. {
  665. fSetOprRecIf_MMR00601();
  666. }
  667. else
  668. {
  669. fDefInfo_MMR00601(); //수술기록이 없을경우 디폴트 정보 조회
  670. }
  671. }
  672. }
  673. }
  674. else
  675. {
  676. var curdd = getCurrentDate();
  677. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000515]/reccnts", curdd);
  678. }
  679. }
  680. }
  681. }
  682. /****************************************************************************************
  683. * Function : fViewOPfindingsCaption_SMMMR00601
  684. * Description : 수술과정에 데이터가 없을때 캡션을 보여준다.
  685. * retrun type :
  686. *
  687. * 수술소견에 데이터가 없을때 캡션을 보여준다.(수술시 확인된 검체에 대한 findings도 기재해주세요.)
  688. * 수술과정에 데이터가 없을때 캡션을 보여준다.(좌측(하늘색부분)을 클릭하면 기록항목이 로딩됩니다.)
  689. ****************************************************************************************/
  690. function fViewOPfindingsCaption_SMMMR00601(itemcd){
  691. if(itemcd == "0000507001" || itemcd == "0000512001"){//수술과정, 수술소견
  692. var tarid = ComnFormObj.components["tar_" + itemcd];
  693. var ivwid = ComnFormObj.components["ivw_" + itemcd];
  694. var capid = ComnFormObj.components["cap_" + itemcd];
  695. var tarVal = "";
  696. if(!utlf_isNull(ivwid) && !utlf_isNull(ivwid.url) && lodedYn == true){
  697. //tarVal = ivwid.ds_data_recitem.lookup("fstlevlitemcd", itemcd, "reccnts");
  698. tarVal = ivwid.ds_data_itemvalue.getColumn(0, "MTX_1");
  699. }
  700. if(utlf_isNull(tarVal)){
  701. capid.visible = true;
  702. tarid.visible = false;
  703. ivwid.visible = false;
  704. capid.bringToFront();
  705. }else{
  706. capid.visible = false;
  707. if( !utlf_isNull(ivwid) && !utlf_isNull(ivwid.url) ){
  708. tarid.visible = false;
  709. ivwid.visible = true;
  710. ivwid.bringToFront();
  711. }else{
  712. tarid.visible = true;
  713. ivwid.visible = false;
  714. tarid.bringToFront();
  715. }
  716. }
  717. }
  718. }
  719. /****************************************************************************************
  720. * Function : getSubmitID_MMR01300I
  721. * Description : MMR01300.js에서 submit직전에 submitID를 설정하기 위해서 호출한다.
  722. * retrun type :
  723. ****************************************************************************************/
  724. function getSubmitID_MMR01300I(flag) {
  725. //2010.02.23 dhkim - 통합기록조회용 JCI구분자추가(fSetXsltFlag없애고 getSubmitID_MMR01300I로 이동)
  726. parent.fSetFormRec("xsltflag", "JCI");
  727. //2010.03.12 안치원 - 수정없이 staff-sign할때 xsltflag가 들어가지 않는 오류수정
  728. if (utlf_isNull(flag)) {
  729. parent.fSetFormRec("extnflag", "opr");
  730. parent.fSetFormRec("addexecflag", "cosign");
  731. return TX_SUBMIT_EXTN_FORM;
  732. }
  733. }
  734. function fSetOpInfo_SMMMR00601() {
  735. }
  736. /****************************************************************************************
  737. * Function : fCosignCheck_SMMMR00601
  738. * Description : staff-sign 버튼을 설정한다.
  739. * retrun type :
  740. ****************************************************************************************/
  741. function fCosignCheck_SMMMR00601() {
  742. if (parent.fGetFormRec("formrecdeptcd") == sysf_getUserInfo("dutplcecd")) {
  743. if (parent.fGetFormRec("espiyn") == "Y") {
  744. var nRow = ds_main_extninfo_staffauthinfo.rowposition;
  745. var authyn = ds_main_extninfo_staffauthinfo.getColumn(nRow, "authyn");
  746. var cosign = parent.fGetFormRec("cosign");
  747. utlf_addLog("authyn :"+authyn + "cosign :"+cosign );
  748. utlf_addLog("authyn getFormrec:"+parent.fGetFormRec("authyn"));
  749. if (cosign == "Y") {
  750. if (parent.fGetFormRec("cosignid") == sysf_getUserId()) {
  751. if (parent.fGetFormRec("formrecuserid") == sysf_getUserId()) {
  752. //staff이 신규작성하여 sign된 경우 수정모드
  753. parent.initButtonLayer_MMR01100("staff_auth_y");
  754. } else {
  755. //전공의가 신규작성하여 staff이 sign한 경우 싸인모드
  756. parent.initButtonLayer_MMR01100("staff_auth_y");
  757. }
  758. } else {
  759. //staff sign이후이므로 staff이외에는 수정불가
  760. parent.initButtonLayer_MMR01100("no_auth");
  761. }
  762. } else {
  763. if (authyn == "Y") {
  764. //전공의 신규작성후에 staff이 수정모드로 열었으므로, 싸인모드
  765. parent.initButtonLayer_MMR01100("staff_auth_y");
  766. } else {
  767. //수정모드
  768. parent.initButtonLayer_MMR01100("staff_auth_n");
  769. }
  770. }
  771. } else {
  772. //수정모드
  773. parent.initButtonLayer_MMR01100("staff_auth_n");
  774. }
  775. } else {
  776. parent.initButtonLayer_MMR01100("no_auth");
  777. }
  778. }
  779. /**
  780. * @desc : 보조의combo노드에 none을 추가한다.
  781. * @
  782. * @param :
  783. * @return :
  784. * @authur : dhkim 20091228
  785. */
  786. function fMakeNodeSdt_MMR00601(nodeset){
  787. ///root/init/drlist0000341.0001830/usercombo
  788. var sdtNodeCnt = getNodesetCount(nodeset);
  789. if(sdtNodeCnt > 0){
  790. model.makeValue(nodeset+"["+sdtNodeCnt+"]/userid", "none");
  791. model.makeValue(nodeset+"["+sdtNodeCnt+"]/usernm", "없음");
  792. model.makeValue(nodeset+"["+sdtNodeCnt+"]/mpphonno", "");
  793. model.makeValue(nodeset+"["+sdtNodeCnt+"]/refseq", "C");
  794. }
  795. model.refresh();
  796. }
  797. /****************************************************************************************
  798. * Function : initFormAtLast_MMR01100I
  799. * Description : MMR01100.js에서 서식load를 완료한 후에 호출한다.
  800. * retrun type :
  801. ****************************************************************************************/
  802. function initFormAtLast_MMR01100I() {
  803. var formcd = parent.fGetFormMast("formcd");
  804. //fInitAnstTypeCtrl_SMMMR00601();//2010.01.18 dhkim - 콤보바인딩 후 연동데이터 세팅하도록 순서변경
  805. //debugger;
  806. //신규서식로딩의 경우만 Brief Op Note 연동
  807. if (parent.fGetFormRec("status") == "C") {
  808. //2010.01.21 dhkim - 리턴값 추가(blocking 메세지후 리턴)
  809. if(!fGetRecIfData_MMR00601("oprec")){
  810. return false;
  811. }
  812. var cnt = ds_main_extninfo_oplistinfo.getRowCount();
  813. if (cnt == 0) {
  814. sysf_messageBox("수술이 없는", "I005");
  815. grup_base.enable = false;
  816. parent.initButtonLayer_MMR01100("no_auth");
  817. return;
  818. } else if (cnt == 1) {
  819. ds_send_reqinfstrec.setColumn(0, "oprsrvno", ds_init_extninfo_oplistinfo.getColumn(0, "oprsrvno"));
  820. grup_base.cmb_oplist.enable = false;
  821. parent.initButtonLayer_MMR01100("staff_auth_n");
  822. parent.fSetFormRec("oprsrvno", ds_send_reqinfstrec.getColumn(0, "oprsrvno"));
  823. } else {
  824. //ds_send_reqinfstrec.setColumn(0, "oprsrvno", ds_init_extninfo_oplistinfo.getColumn(0, "oprsrvno"));
  825. ds_send_reqinfstrec.setColumn(0, "oprsrvno", "");
  826. grup_base.cmb_oplist.enable = true;
  827. if (parent.fGetFormRec("status") == "C") {
  828. parent.initButtonLayer_MMR01100("no_auth");
  829. }
  830. }
  831. } else {
  832. if (parent.fGetFormRec("espiyn") == "Y") {
  833. //2010.01.21 dhkim - 리턴값 추가(blocking 메세지후 리턴)
  834. //2010.01.29 dhkim - 수술기록JCI Staff-Sign 막음.
  835. //2010.02.09 dhkim- 수술기록JCI Staff-Sign 주석해제.
  836. if(!fGetRecIfData_MMR00601("staffauth;oplist;drlist")){
  837. return false;
  838. }
  839. } else {
  840. if(!fGetRecIfData_MMR00601("oplist;drlist")){
  841. return false;
  842. }
  843. }
  844. ds_send_reqinfstrec.setColumn(0, "oprsrvno", parent.fGetFormRec("oprsrvno"));
  845. grup_base.cmb_oplist.enable = false;
  846. fCosignCheck_SMMMR00601();
  847. }
  848. return true;
  849. }
  850. /****************************************************************************************
  851. * Function : fChngOpList_MMR00601
  852. * Description : 수술리스트 콤보선택시 수술번호로 Brief OP Note를 찾아 설정한다.
  853. * 신규서식일때만 수행하도록 한다.
  854. * retrun type :
  855. ****************************************************************************************/
  856. function fChngOpList_MMR00601()
  857. {
  858. if (parent.fGetFormRec("status") == "C") {
  859. var v_oprsrvno = grup_base.cmb_oplist.value;
  860. if (!utlf_isNull(v_oprsrvno)) {
  861. //model.removenodeset("/root/init/extninfo/oplistinfo[oprsrvno = '']");
  862. parent.fSetFormRec("oprsrvno", v_oprsrvno);
  863. //2010.01.21 dhkim - 리턴값 추가(blocking 메세지후 리턴)
  864. //2010.01.29 dhkim - 수술기록JCI Staff-Sign 막음.
  865. //2010.02.09 dhkim- 수술기록JCI Staff-Sign 주석해제.
  866. if(!fGetRecIfData_MMR00601("drlist;opr;recdata;staffauth")){
  867. return false;
  868. }
  869. fCosignCheck_SMMMR00601();
  870. }
  871. }
  872. return true;//2010.01.21 dhkim - 리턴값 추가(blocking 메세지후 리턴)
  873. }
  874. /****************************************************************************************
  875. * Function : fGetRecIfData_MMR00601
  876. * Description : 수술기록의 Data를 설정한다.
  877. * retrun type :
  878. ****************************************************************************************/
  879. function fGetRecIfData_MMR00601(infoflag) {
  880. ds_send_extninfo.clearData();
  881. var nRow = ds_send_extninfo.addRow();
  882. ds_send_extninfo.setColumn(nRow, "infoflag", infoflag);
  883. ds_send_extninfo.setColumn(nRow, "pid", parent.fGetFormRec("pid"));
  884. ds_send_extninfo.setColumn(nRow, "orddd", parent.fGetFormRec("orddd"));
  885. ds_send_extninfo.setColumn(nRow, "cretno", parent.fGetFormRec("cretno"));
  886. ds_send_extninfo.setColumn(nRow, "fromsrcformcd", "0000003169"); //BriefOpNote기록의 기본서식코드
  887. ds_send_extninfo.setColumn(nRow, "toformcd", parent.fGetFormMast("formcd"));
  888. ds_send_extninfo.setColumn(nRow, "srcformcd", parent.fGetFormRec("srcformcd"));
  889. ds_send_extninfo.setColumn(nRow, "formrecdd", parent.fGetFormRec("formrecdd"));
  890. ds_send_extninfo.setColumn(nRow, "oprsrvno", parent.fGetFormRec("oprsrvno"));
  891. ds_send_extninfo.setColumn(nRow, "indd", ds_send_extninfo.getColumn(0, "orddd"));
  892. ds_send_extninfo.setColumn(nRow, "standd", parent.fGetFormRec("formrecdd"));
  893. ds_send_extninfo.setColumn(nRow, "deptcd", parent.fGetFormRec("formrecdeptcd"));
  894. ds_send_extninfo.setColumn(nRow, "jobkindcd", "0330");
  895. //2010.02.22 dhkim 추가
  896. ds_send_extninfo.setColumn(nRow, "formrecseq", parent.fGetFormRec("formrecseq"));
  897. dsf_setDefaultVal(ds_send_extninfo, "dschdd:99991231");
  898. lf_clearExtninfo();
  899. var oParam = {};
  900. oParam.id = "TRMMR01302";
  901. oParam.service = "medirecapp.RecIf";
  902. oParam.method = "reqGetFormRecExtnInfo";
  903. oParam.inds = "req=ds_send_extninfo";
  904. oParam.outds = "ds_main_extninfo_resultinfo=resultinfo ds_main_extninfo_staffauthinfo=staffauthinfo ds_main_extninfo_oprinfo=oprinfo "
  905. + "ds_main_extninfo_oplistinfo=oplistinfo ds_main_extninfo_recitem=recitem ds_main_extninfo_drlistinfo=drlistinfo "
  906. + "ds_data_diagcdlist=diagcdlist ds_main_extninfo_selectoplist=selectoplist ds_main_extninfo_dscinoutinfo=dscinoutinfo "
  907. + "ds_main_extninfo_rectextinfo=rectextinfo ds_main_extninfo_anstdrlistinfo=anstdrlistinfo ds_main_extninfo_oproomlistinfo=oproomlistinfo "
  908. + "ds_main_extninfo_recseqinfo=recseqinfo ds_main_extninfo_etcinfo=etcinfo";
  909. oParam.async = false;
  910. oParam.callback = "cf_TRMMR01302";
  911. tranf_submit(oParam);
  912. if(arErrorCode.pop("TRMMR01302") > -1)
  913. {
  914. var execInfoFlag = ds_main_extninfo_resultinfo.getColumn(0, "infoflag");
  915. utlf_addLog(" fGetRecIfData_MMR00601 execInfoFlag : " + execInfoFlag +" lodedYn : " + lodedYn );
  916. if (execInfoFlag.indexOf("oplist;") != -1) {
  917. //수술리스트설정
  918. ds_init_extninfo_oplistinfo.clearData();
  919. ds_init_extninfo_oplistinfo.copyData(ds_main_extninfo_oplistinfo);
  920. }
  921. if (execInfoFlag.indexOf("drlist;") != -1) {
  922. //집도의 설정
  923. ds_init_cmb_odt1.clearData();
  924. ds_init_cmb_odt1.copyData(ds_main_extninfo_drlistinfo);
  925. //보조의 설정
  926. ds_init_cmb_sdt1.clearData();
  927. ds_init_cmb_sdt1.copyData(ds_main_extninfo_drlistinfo);
  928. //보조의 마지막에 '없음' 추가
  929. var nAddRow = ds_init_cmb_sdt1.addRow();
  930. ds_init_cmb_sdt1.setColumn(nAddRow, "userid", "-");
  931. ds_init_cmb_sdt1.setColumn(nAddRow, "usernm", "없음");
  932. //2010.01.11 dhkim 로딩해온 집도의, 보조의가 nodelist없으면 마지막에 추가
  933. //집도의
  934. var nOprRow = ds_main_extninfo_oprinfo.rowposition;
  935. var perfdrid = ds_main_extninfo_oprinfo.getColumn(nOprRow, "perfdrid");
  936. var perfdrnm = ds_main_extninfo_oprinfo.getColumn(nOprRow, "perfdrnm");
  937. var perfCnt = ds_init_cmb_odt1.getCaseCount("userid=='"+perfdrid+"'");
  938. if(perfCnt < 1){
  939. //2010-06-23 김달현 - id에 연동해온 값이 없는 경우 '-' 를 넣어준다.
  940. if(utlf_isNull(perfdrid)){
  941. perfdrid = "-";
  942. }
  943. nAddRow = ds_init_cmb_odt1.addRow();
  944. ds_init_cmb_odt1.setColumn(nAddRow, "userid", perfdrid);
  945. ds_init_cmb_odt1.setColumn(nAddRow, "usernm", perfdrnm);
  946. }
  947. //보조의
  948. var assdrid = ds_main_extninfo_oprinfo.getColumn(nOprRow, "assdrid");
  949. var assdrnm = ds_main_extninfo_oprinfo.getColumn(nOprRow, "assdrnm");
  950. var assCnt = ds_init_cmb_sdt1.getCaseCount("userid='"+assdrid+"'");
  951. if(assCnt < 1){
  952. //2010-06-23 김달현 - assdrid에 연동해온 값이 없는 경우 '-' 를 넣어준다.
  953. if(utlf_isNull(assdrid)){
  954. assdrid = "-";
  955. }
  956. nAddRow = ds_init_cmb_sdt1.addRow();
  957. ds_init_cmb_sdt1.setColumn(nAddRow, "userid", assdrid);
  958. ds_init_cmb_sdt1.setColumn(nAddRow, "usernm", assdrnm);
  959. }
  960. }
  961. //2010.05.19 김달현 - recdata, opr, opdiag 분기순서변경
  962. if (execInfoFlag.indexOf("opr;") != -1) {
  963. //수술정보설정
  964. //수술일자,진료일자
  965. var degnitemlevlcd = "";
  966. var nFindRow = "";
  967. var nOprRow = ds_main_extninfo_oprinfo.rowposition;
  968. var opcnfmdd = ds_main_extninfo_oprinfo.getColumn(nOprRow, "opcnfmdd");
  969. var opcnfmhm = ds_main_extninfo_oprinfo.getColumn(nOprRow, "opcnfmhm");
  970. grup_base.ipt_surg.value = opcnfmdd
  971. degnitemlevlcd = grup_base.ipt_surg.degnitemlevlcd;
  972. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  973. ds_data_recitem.setColumn(nFindRow, "reccnts", opcnfmdd);
  974. //2010.01.11 dhkim - 진료일자,진료시간 세팅
  975. parent.fSetFormRec("formrecdd", opcnfmdd);
  976. parent.fSetFormRec("formrechm", opcnfmhm);
  977. //2010.01.08 dhkim - 마취종류 주,부 설정 추가
  978. var anstmthdcd = ds_main_extninfo_oprinfo.getColumn(nOprRow, "anstmthdcd");
  979. var anstmthdnm = ds_main_extninfo_oprinfo.getColumn(nOprRow, "anstmthdnm");
  980. var anstmthdcdsub = ds_main_extninfo_oprinfo.getColumn(nOprRow, "anstmthdcdsub");
  981. var anstmthdcdsubnm = ds_main_extninfo_oprinfo.getColumn(nOprRow, "anstmthdcdsubnm");
  982. //2010.01.18 dhkim - 마취종류 주,부를 rectermcd, rectermnm에 바인딩으로 변경
  983. //마취종류 주
  984. grup_base.ipt_mcdnm.value = anstmthdnm;
  985. degnitemlevlcd = grup_base.ipt_mcdnm.degnitemlevlcd;
  986. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  987. ds_data_recitem.setColumn(nFindRow, "rectermcd", anstmthdcd);
  988. ds_data_recitem.setColumn(nFindRow, "rectermnm", anstmthdnm);
  989. //마취종류 부
  990. grup_base.ipt_scdnm.value = anstmthdcdsubnm;
  991. degnitemlevlcd = grup_base.ipt_scdnm.degnitemlevlcd;
  992. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  993. ds_data_recitem.setColumn(nFindRow, "rectermcd", anstmthdcdsub);
  994. ds_data_recitem.setColumn(nFindRow, "rectermnm", anstmthdcdsubnm);
  995. //집도의1 설정
  996. var sPerfdrid = ds_main_extninfo_oprinfo.getColumn(nOprRow, "perfdrid");
  997. var sPerfdrnm = ds_main_extninfo_oprinfo.getColumn(nOprRow, "perfdrnm");
  998. grup_base.cmb_odt1.value = sPerfdrid;
  999. degnitemlevlcd = grup_base.cmb_odt1.degnitemlevlcd;
  1000. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1001. ds_data_recitem.setColumn(nFindRow, "rectermcd" , sPerfdrid);
  1002. ds_data_recitem.setColumn(nFindRow, "rectermnm" , sPerfdrnm);
  1003. //보조의1 설정
  1004. var sAssdrid = ds_main_extninfo_oprinfo.getColumn(nOprRow, "assdrid");
  1005. var sAssdrnm = ds_main_extninfo_oprinfo.getColumn(nOprRow, "assdrnm");
  1006. grup_base.cmb_sdt1.value = sAssdrid;
  1007. degnitemlevlcd = grup_base.cmb_sdt1.degnitemlevlcd;
  1008. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1009. ds_data_recitem.setColumn(nFindRow, "rectermcd" , sAssdrid);
  1010. ds_data_recitem.setColumn(nFindRow, "rectermnm" , sAssdrnm);
  1011. //그외 집도의,보조의 설정
  1012. var sPerfdrnm2 = ds_main_extninfo_oprinfo.getColumn(nOprRow, "perfdrnm2");
  1013. grup_base.ipt_odt2.value = sPerfdrnm2;
  1014. degnitemlevlcd = grup_base.ipt_odt2.degnitemlevlcd;
  1015. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1016. ds_data_recitem.setColumn(nFindRow, "reccnts", sPerfdrnm2);
  1017. var sPerfdrnm3 = ds_main_extninfo_oprinfo.getColumn(nOprRow, "perfdrnm3");
  1018. grup_base.ipt_odt3.value = sPerfdrnm3;
  1019. degnitemlevlcd = grup_base.ipt_odt3.degnitemlevlcd;
  1020. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1021. ds_data_recitem.setColumn(nFindRow, "reccnts", sPerfdrnm3);
  1022. var sAssdrnm2 = ds_main_extninfo_oprinfo.getColumn(nOprRow, "assdrnm2");
  1023. grup_base.ipt_sdt2.value = sAssdrnm2;
  1024. degnitemlevlcd = grup_base.ipt_sdt2.degnitemlevlcd;
  1025. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1026. ds_data_recitem.setColumn(nFindRow, "reccnts", sAssdrnm2);
  1027. var sAssdrnm3 = ds_main_extninfo_oprinfo.getColumn(nOprRow, "assdrnm3");
  1028. grup_base.ipt_sdt3.value = sAssdrnm3;
  1029. degnitemlevlcd = grup_base.ipt_sdt3.degnitemlevlcd;
  1030. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1031. ds_data_recitem.setColumn(nFindRow, "reccnts", sAssdrnm3);
  1032. var sAssdrnm4 = ds_main_extninfo_oprinfo.getColumn(nOprRow, "assdrnm4");
  1033. grup_base.ipt_sdt4.value = sAssdrnm4;
  1034. degnitemlevlcd = grup_base.ipt_sdt4.degnitemlevlcd;
  1035. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1036. ds_data_recitem.setColumn(nFindRow, "reccnts", sAssdrnm4);
  1037. }
  1038. //2010.01.15 dhkim - 수술전 진단명, 수술후 진단명 추가
  1039. if (execInfoFlag.indexOf("opdiag;") != -1 && lodedYn == true) {
  1040. //수술진단 설정
  1041. // copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/extninfo/diagcdlist", "replace", ivw_0007983001.model, model);
  1042. // copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/extninfo/diagcdlist", "replace", ivw_0000521001.model, model);
  1043. grup_base.ivw_0007983001.fSetDiagNmInstance();
  1044. grup_base.ivw_0000521001.fSetDiagNmInstance();
  1045. }
  1046. //2010.05.19 김달현 - recdata, opr, opdiag 분기순서변경
  1047. //alert("execInfoFlag : " + execInfoFlag);
  1048. if (execInfoFlag.indexOf("recdata;") != -1) {
  1049. /*--> 2010.01.15 dhkim - Brief Op Note의 OP Findings & Procedure -> 수술과정으로 연동
  1050. --> 2010.01.18 dhkim - Brief Op Note의 OP Findings & Procedure 연동 안하는 것으로 다시 변경됨.
  1051. --> 2010.05.19 김달현 - Brief OP Note서식이 OP Findings 와 Procedure로 분리되면서 수술소견, 수술과정에 연동하는 것으로 변경
  1052. */
  1053. var nFindRow = "";
  1054. var nAddRow = "";
  1055. //수술소견
  1056. var findings_itemcd = '0000512001';
  1057. nFindRow = ds_main_extninfo_recitem.findRow("fstlevlitemcd", findings_itemcd);
  1058. var findings = ds_main_extninfo_recitem.getColumn(nFindRow, "reccnts");
  1059. if( utlf_isNull(findings) ) findings = "";
  1060. ds_main_extninfo_recitem.deleteRow(nFindRow);
  1061. nFindRow = ds_data_formdegn.findRowExpr("supdegnitemcd=='"+findings_itemcd+"' && degnitemkind=='FRM'");
  1062. var findings_degnitemcd = ds_data_formdegn.getColumn(nFindRow, "degnitemcd");
  1063. //수술과정
  1064. var procedures_itemcd = '0000507001';
  1065. nFindRow = ds_main_extninfo_recitem.findRow("fstlevlitemcd", procedures_itemcd);
  1066. var procedures = ds_main_extninfo_recitem.getColumn(nFindRow, "reccnts");
  1067. if( utlf_isNull(procedures) ) procedures = "";
  1068. ds_main_extninfo_recitem.deleteRow(nFindRow);
  1069. nFindRow = ds_data_formdegn.findRowExpr("supdegnitemcd=='"+procedures_itemcd+"' && degnitemkind=='FRM'");
  1070. var procedures_degnitemcd = ds_data_formdegn.getColumn(nFindRow, "degnitemcd");
  1071. //2010.05.26 김달현 - Brief OP Note 기록의 모든항목 연동한다.
  1072. // Brief OP Note의 집도의, 보조의는 inputbox로 되어있으나, 수술기록은 combo 로 되어있음.
  1073. // 입력한 이름값이 노드리스트에 있을 경우에 연동하고 없을경우 하위노드에 해당 이름을 추가.
  1074. //집도의콤보 노드 설정
  1075. nFindRow = ds_main_extninfo_recitem.findRow("fstlevlitemcd", "0000980001");
  1076. var perfdrnm = ds_main_extninfo_recitem.getColumn(nFindRow, "reccnts");
  1077. var perfCnt = ds_init_cmb_odt1.getCaseCount("usernm=='"+perfdrnm+"'");
  1078. var perfdrid = ds_init_cmb_odt1.lookup("usernm", perfdrnm, "userid");
  1079. if(perfCnt < 1){
  1080. //2010-06-23 김달현 - id에 연동해온 값이 없는 경우 '-' 를 넣어준다.
  1081. if(utlf_isNull(perfdrid)){
  1082. perfdrid = "-";
  1083. }
  1084. nAddRow = ds_init_cmb_odt1.addRow();
  1085. ds_init_cmb_odt1.setColumn(nAddRow, "userid", perfdrid);
  1086. ds_init_cmb_odt1.setColumn(nAddRow, "usernm", perfdrnm);
  1087. }
  1088. ds_main_extninfo_recitem.deleteRow(nFindRow);
  1089. //보조의콤보 노드 설정
  1090. nFindRow = ds_main_extninfo_recitem.findRow("fstlevlitemcd", "0000341001");
  1091. var assdrnm = ds_main_extninfo_recitem.getColumn(nFindRow, "reccnts");
  1092. var assCnt = ds_init_cmb_sdt1.getCaseCount("usernm=='"+assdrnm+"'");
  1093. var assdrid = ds_init_cmb_sdt1.lookup("usernm", assdrnm, "userid");
  1094. if(assCnt < 1){
  1095. //2010-06-23 김달현 - assdrid에 연동해온 값이 없는 경우 '-' 를 넣어준다.
  1096. if(utlf_isNull(assdrid)){
  1097. assdrid = "-";
  1098. }
  1099. nAddRow = ds_init_cmb_sdt1.addRow();
  1100. ds_init_cmb_sdt1.setColumn(nAddRow, "userid", assdrid);
  1101. ds_init_cmb_sdt1.setColumn(nAddRow, "usernm", assdrnm);
  1102. }
  1103. ds_main_extninfo_recitem.deleteRow(nFindRow);
  1104. if( lodedYn == true ){
  1105. ClearComnFormData(gItemCds);
  1106. }
  1107. /* jw.choe 임시 주석
  1108. //Copy Of Brief OP Note
  1109. copyNodeset(gPageInfo.recItemRef2, "/root/main/extninfo/recitem", "replace", model, model);
  1110. //2010.01.21 dhkim - 리턴값 추가(blocking 메세지후 리턴)
  1111. if(!fLoadData()){
  1112. return false;
  1113. }
  1114. */
  1115. fSetCopyRecData();
  1116. //수술소견 세팅
  1117. if(findings_degnitemcd == "0000000005"){//자유입력서식
  1118. if (!utlf_isNull(grup_base.ivw_0000512001.url) )//&& lodedYn == true)
  1119. {
  1120. gFindings_itemcd = findings_itemcd;
  1121. gFindings = findings;
  1122. this.setTimer(512, 500);
  1123. sysf_trace(gFindings_itemcd + " || " + gFindings);
  1124. /*
  1125. nFindRow = grup_base.ivw_0000512001.ds_data_recitem.findRow("fstlevlitemcd", findings_itemcd);
  1126. var degnitemkind = grup_base.ivw_0000512001.ds_data_recitem.getColumn(nFindRow, "degnitemkind");
  1127. var degnitemno = grup_base.ivw_0000512001.ds_data_recitem.getColumn(nFindRow, "degnitemno");
  1128. var colId = degnitemkind + "_" + degnitemno;
  1129. grup_base.ivw_0000512001.ds_data_recitem.setColumn(nFindRow, "reccnts", findings);
  1130. grup_base.ivw_0000512001.ds_data_itemvalue.setColumn(0, colId, findings);
  1131. */
  1132. }
  1133. }else if(utlf_isNull(findings_degnitemcd)){
  1134. nFindRow = ds_data_recitem.findRow("fstlevlitemcd", findings_itemcd);
  1135. ds_data_recitem.setColumn(nFindRow, "reccnts", findings); //MTX
  1136. var tarObj = ComnFormObj.components["tar_" + findings_itemcd];
  1137. if(tarObj != null)
  1138. tarObj.value = findings;
  1139. }
  1140. //수술과정 세팅
  1141. if(procedures_degnitemcd == "0000000005"){//자유입력서식
  1142. //var node = gPageInfo.recItemRef+"/reccnts";
  1143. if (!utlf_isNull(grup_base.ivw_0000507001.url) )//&& lodedYn == true) //knuh_20110512_박성호_수정_수술과정의 iview에 src가 셋팅되지 않은 경우
  1144. {
  1145. gProcedures_itemcd = procedures_itemcd;
  1146. gProcedures = procedures;
  1147. this.setTimer(507, 500);
  1148. sysf_trace(gProcedures_itemcd + " || " + gProcedures);
  1149. /*
  1150. nFindRow = grup_base.ivw_0000507001.ds_data_recitem.findRow("fstlevlitemcd", procedures_itemcd);
  1151. var degnitemkind = grup_base.ivw_0000507001.ds_data_recitem.getColumn(nFindRow, "degnitemkind");
  1152. var degnitemno = grup_base.ivw_0000507001.ds_data_recitem.getColumn(nFindRow, "degnitemno");
  1153. var colId = degnitemkind + "_" + degnitemno;
  1154. grup_base.ivw_0000507001.ds_data_recitem.setColumn(nFindRow, "reccnts", procedures);
  1155. grup_base.ivw_0000507001.ds_data_itemvalue.setColumn(0, colId, procedures);
  1156. */
  1157. }
  1158. }else if(utlf_isNull(procedures_degnitemcd)){
  1159. nFindRow = ds_data_recitem.findRow("fstlevlitemcd", procedures_itemcd);
  1160. ds_data_recitem.setColumn(nFindRow, "reccnts", procedures); //MTX
  1161. var tarObj = ComnFormObj.components["tar_" + procedures_itemcd];
  1162. if(tarObj != null)
  1163. tarObj.value = procedures;
  1164. }
  1165. //집도의1,보조의1 콤보 값 세팅
  1166. grup_base.cmb_odt1.value = perfdrid;
  1167. degnitemlevlcd = grup_base.cmb_odt1.degnitemlevlcd;
  1168. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1169. ds_data_recitem.setColumn(nFindRow, "rectermcd" , perfdrid);
  1170. ds_data_recitem.setColumn(nFindRow, "rectermnm" , perfdrnm);
  1171. grup_base.cmb_sdt1.value = assdrid;
  1172. degnitemlevlcd = grup_base.cmb_sdt1.degnitemlevlcd;
  1173. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1174. ds_data_recitem.setColumn(nFindRow, "rectermcd" , assdrid);
  1175. ds_data_recitem.setColumn(nFindRow, "rectermnm" , assdrnm);
  1176. //2010.05.19 김달현 - 수술소견, 수술과정 캡션 visible/hidden 처리
  1177. /*
  1178. if(!utlf_isNull(findings)){
  1179. fViewOPfindingsCaption_SMMMR00601(findings_itemcd);
  1180. }
  1181. if(!utlf_isNull(procedures)){
  1182. fViewOPfindingsCaption_SMMMR00601(procedures_itemcd);
  1183. }
  1184. */
  1185. }
  1186. var sStatus = parent.fGetFormRec("status");
  1187. lf_setBasicInfo(sStatus); //수술 정보 기록데이터 세팅
  1188. //2013.12.30
  1189. fSetArrayDoctor();
  1190. }
  1191. else
  1192. {
  1193. return false;
  1194. }
  1195. lodedYn = true; // 로드 시점 처리
  1196. //2010.01.21 dhkim - 리턴값 추가(blocking 메세지후 리턴)
  1197. return true;
  1198. }
  1199. /****************************************************************************************
  1200. * Function : fSetCopyRecData
  1201. * Description : BriefOpNote 정보 연계
  1202. * retrun type :
  1203. ****************************************************************************************/
  1204. function fSetCopyRecData()
  1205. {
  1206. utlf_addLog(" fGetFormRec(status) : " + fGetFormRec("status") + "\n\n" + ds_main_extninfo_recitem.saveXML() );
  1207. if(fGetFormRec("status") == "C")
  1208. {
  1209. var fstlevlitemcd = "";
  1210. var degnitemcd = "";
  1211. var reccnts = "";
  1212. var degnitemkind = "";
  1213. var sRow = "";
  1214. // 1계층 MTX값 세팅, 조회해온 기록값 rowcount 만큼 루프
  1215. for(var i = 0; i < ds_main_extninfo_recitem.rowcount; i++)
  1216. {
  1217. fstlevlitemcd = ds_main_extninfo_recitem.getColumn(i, "fstlevlitemcd");
  1218. degnitemcd = ds_main_extninfo_recitem.getColumn(i, "degnitemcd");
  1219. reccnts = ds_main_extninfo_recitem.getColumn(i, "reccnts");
  1220. degnitemkind = ds_main_extninfo_recitem.getColumn(i, "degnitemkind");
  1221. // 최상위 아이템이고 1계층 MTX 값이 있으면 세팅
  1222. // 부분서식은 각자 onload 시 기록데이터 세팅
  1223. if( (fstlevlitemcd == degnitemcd) && !utlf_isNull(reccnts))
  1224. {
  1225. sRow = ds_data_recitem.findRowExpr("fstlevlitemcd == '"+ fstlevlitemcd +"' && degnitemcd == '"+ degnitemcd +"' && degnitemkind == 'MTX'");
  1226. ds_data_recitem.setColumn(sRow, "reccnts", reccnts);
  1227. var tarObj = ComnFormObj.components["tar_" + fstlevlitemcd];
  1228. if(tarObj != null)
  1229. tarObj.value = reccnts;
  1230. }
  1231. // Grid 설정
  1232. if( degnitemkind == "DGN" || degnitemkind == "OPN" ){
  1233. var grdObj = grup_base.components["ivw_" + fstlevlitemcd ];
  1234. if( lodedYn == true && !utlf_isNull(grdObj) && !utlf_isNull(grdObj.url) ){
  1235. grdObj.lf_setGridModify(fstlevlitemcd, "N");
  1236. }
  1237. }
  1238. }
  1239. for(var i = 0; i < grup_base.components.length; i++)
  1240. {
  1241. var ctrlObj = grup_base.components[i];
  1242. var ctrlNm = ctrlObj.name;
  1243. var degnitemlevlcd = ctrlObj.degnitemlevlcd;
  1244. var refitem = ctrlObj.refitem;
  1245. if(!utlf_isNull(degnitemlevlcd))
  1246. {
  1247. var nRow = ds_main_extninfo_recitem.findRow("degnitemlevlcd", degnitemlevlcd); //0000248.0015528
  1248. if(nRow > -1)
  1249. {
  1250. var recIndex = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1251. if(ctrlObj instanceof Edit || ctrlObj instanceof Calendar || ctrlObj instanceof TextArea)
  1252. {
  1253. if( utlf_isNull(refitem) ){
  1254. ctrlObj.value = ds_main_extninfo_recitem.getColumn(nRow, "reccnts");
  1255. ds_data_recitem.setColumn(recIndex, "reccnts", ds_main_extninfo_recitem.getColumn(nRow, "reccnts"));
  1256. }else{
  1257. ctrlObj.value = ds_main_extninfo_recitem.getColumn(nRow, "rectermnm");
  1258. ds_data_recitem.setColumn(recIndex, "rectermnm", ds_main_extninfo_recitem.getColumn(nRow, "rectermnm"));
  1259. }
  1260. }
  1261. else
  1262. {
  1263. if(recIndex > -1)
  1264. {
  1265. ctrlObj.value = ds_main_extninfo_recitem.getColumn(nRow, "rectermcd");
  1266. ds_data_recitem.setColumn(recIndex, "rectermnm", ds_main_extninfo_recitem.getColumn(nRow, "rectermnm"));
  1267. ds_data_recitem.setColumn(recIndex, "rectermcd", ds_main_extninfo_recitem.getColumn(nRow, "rectermcd"));
  1268. }
  1269. }
  1270. }
  1271. }
  1272. }
  1273. }
  1274. }
  1275. /* jw.choe 주석처리
  1276. function fInitAnstTypeCtrl_SMMMR00601() {
  1277. var anstmthdcd = "";
  1278. var mcdnm = "";
  1279. var anstmthdcdsub = "";
  1280. var scdnm = "";
  1281. //주마취
  1282. var node = model.instance1.selectSingleNode(gPageInfo.recItemRef2+"[degnitemlevlcd='0000248.0015528']");
  1283. if (node != null) {
  1284. anstmthdcd = node.getXPathString("rectermcd");
  1285. mcdnm = node.getXPathString("rectermnm");
  1286. }
  1287. //부마취
  1288. node = model.instance1.selectSingleNode(gPageInfo.recItemRef2+"[degnitemlevlcd='0000248.0008458']");
  1289. if (node != null) {
  1290. anstmthdcdsub = node.getXPathString("rectermcd");
  1291. scdnm = node.getXPathString("rectermnm");
  1292. }
  1293. var pageInfo = new PAGEINFO();
  1294. var iptMObj = document.controls("ipt_mcdnm");
  1295. var iptSObj = document.controls("ipt_scdnm");
  1296. //2010.01.18 dhkim - 마취바인딩 무조건 rectermcd, rectermnm으로 변경
  1297. if(anstmthdcd == null || anstmthdcd == ""){
  1298. anstmthdcd = "-";
  1299. }
  1300. if(anstmthdcdsub == null || anstmthdcdsub == ""){
  1301. anstmthdcdsub = "-";
  1302. }
  1303. //주마취
  1304. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd", anstmthdcd);
  1305. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm", mcdnm);
  1306. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  1307. //부마취
  1308. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd", anstmthdcdsub);
  1309. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm", scdnm);
  1310. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  1311. iptMObj.refresh();
  1312. iptSObj.refresh();
  1313. }
  1314. */
  1315. /****************************************************************************************
  1316. * Function : fChkPreSave
  1317. * Description : 2010.01.18 dhkim - 추가) 저장전 체크 로직
  1318. * retrun type :
  1319. ****************************************************************************************/
  1320. function fChkPreSave()
  1321. {
  1322. var mibimedrcnt = ds_hidden.getColumn(0, "mibimedrcnt");
  1323. if (mibimedrcnt > 0){
  1324. sysf_messageBox("투약기록 미비된 수술예방적 항생제가 있습니다.", "E");
  1325. fGetMedr();
  1326. return false;
  1327. }
  1328. var nFindRow = "";
  1329. //2010.01.18 dhkim 마취종류 주, 부 필수체크
  1330. //(degnitemkind='STX'이나 데이터는 rectermcd, rectermnm에 들어가므로 EMRCommon.js에서 필수체크할수 없음)
  1331. //주마취
  1332. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", grup_base.ipt_mcdnm.degnitemlevlcd);
  1333. var anstmthdcd = ds_data_recitem.getColumn(nFindRow, "rectermcd");
  1334. var anstmthdnm = ds_data_recitem.getColumn(nFindRow, "rectermnm");
  1335. //default값세팅
  1336. if(utlf_isNull(anstmthdcd)){
  1337. anstmthdcd = "-";
  1338. ds_data_recitem.setColumn(nFindRow, "rectermcd", anstmthdcd);
  1339. }
  1340. if(utlf_isNull(anstmthdnm)){
  1341. sysf_messageBox("마취종류(주)는 필수 입력입니다.", "E");
  1342. return false;
  1343. }
  1344. //부마취
  1345. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", grup_base.ipt_scdnm.degnitemlevlcd);
  1346. var anstmthdcdsub = ds_data_recitem.getColumn(nFindRow, "rectermcd");
  1347. var anstmthdcdsubnm = ds_data_recitem.getColumn(nFindRow, "rectermnm");
  1348. //default값세팅
  1349. if(utlf_isNull(anstmthdcdsub)){
  1350. anstmthdcdsub = "-";
  1351. ds_data_recitem.setColumn(nFindRow, "rectermcd", anstmthdcdsub);
  1352. }
  1353. if(utlf_isNull(anstmthdcdsubnm)){
  1354. sysf_messageBox("마취종류(부)는 필수 입력입니다.", "E");
  1355. return false;
  1356. }
  1357. // [요청번호:20161230015] 수술관련 기록인증 제어여부(일반의사)
  1358. if( lf_getHardCDList("Y", 9976, 3 , null) == "Y" ){
  1359. var arrOdSd = ["cmb_odt1", "cmb_sdt1", "ipt_odt2", "ipt_odt3", "ipt_sdt2", "ipt_sdt3", "ipt_sdt4"];
  1360. var objItem = null;
  1361. for(var i=0; i<arrOdSd.length; i++){
  1362. objItem = grup_base.components[arrOdSd[i]];
  1363. if(!utlf_isNull(objItem)){
  1364. var degnitemlevlcd = objItem.degnitemlevlcd;
  1365. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1366. var drNames = "";
  1367. if( i < 2 ){
  1368. drNames = ds_data_recitem.getColumn(nFindRow, "rectermnm");
  1369. }else{
  1370. drNames = ds_data_recitem.getColumn(nFindRow, "reccnts");
  1371. }
  1372. if( !utlf_isNull(drNames) && drNames.indexOf("일반의사") > -1){
  1373. sysf_messageBox("집도의/보조의는 [일반의사]가 불가능합니다.", "E");
  1374. return false;
  1375. }
  1376. }
  1377. }
  1378. }
  1379. //특이사항 여부 관련 체크
  1380. if (grup_base.radio3.value == "0001347001" && !utlf_isNull(grup_base.textarea10.value)) {
  1381. sysf_messageBox("특이사항 여부가 [N] 으로 체크되었지만 특이사항이 입력되었습니다","E");
  1382. return false;
  1383. }
  1384. if (grup_base.radio3.value == "0001965001" && utlf_isNull(grup_base.textarea10.value)) {
  1385. sysf_messageBox("특이사항 여부가 [Y] 으로 체크되었지만 특이사항이 없습니다","E");
  1386. return false;
  1387. }
  1388. }
  1389. /****************************************************************************************
  1390. * Function : fSetArrayDoctor
  1391. * Description : FreeText로 들어온 집도의, 보조의를 각 항목에 입력처리
  1392. * retrun type :
  1393. ****************************************************************************************/
  1394. function fSetArrayDoctor(){
  1395. var objItem;
  1396. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", grup_base.cmb_sdt1.degnitemlevlcd);
  1397. var sAssistantDoctorList = ds_data_recitem.getColumn(nFindRow, "rectermnm");
  1398. if(!utlf_isNull(sAssistantDoctorList)){
  1399. var arrAssistantDoctorList = sAssistantDoctorList.split(',');
  1400. // 보조의 1
  1401. var bSdt1 = false;
  1402. var aSdtNm = utlf_transNullToEmpty(arrAssistantDoctorList[0]).getTrim().split(" ");
  1403. for(var k = 0; k < aSdtNm.length; k++){
  1404. for(var i = 0; i < ds_init_cmb_sdt1.getRowCount(); i++){
  1405. if( ds_init_cmb_sdt1.getColumn(i, "usernm") == aSdtNm[k].getTrim() ){
  1406. //grup_base.cmb_sdt1.index = i;
  1407. var userid = ds_init_cmb_sdt1.getColumn(i, "userid");
  1408. var usernm = ds_init_cmb_sdt1.getColumn(i, "usernm");
  1409. grup_base.cmb_sdt1.value = userid;
  1410. var degnitemlevlcd = grup_base.cmb_sdt1.degnitemlevlcd;
  1411. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1412. ds_data_recitem.setColumn(nFindRow, "rectermcd" , userid);
  1413. ds_data_recitem.setColumn(nFindRow, "rectermnm" , usernm);
  1414. bSdt1 = true;
  1415. }
  1416. }
  1417. }
  1418. if( bSdt1 == false ){
  1419. grup_base.cmb_sdt1.value = "-";
  1420. var degnitemlevlcd = grup_base.cmb_sdt1.degnitemlevlcd;
  1421. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1422. ds_data_recitem.setColumn(nFindRow, "rectermcd" , "-");
  1423. ds_data_recitem.setColumn(nFindRow, "rectermnm" , "없음");
  1424. }
  1425. // 보조의 2 ~ 4
  1426. for(var i = 1; i < arrAssistantDoctorList.length; i++){
  1427. objItem = grup_base.components["ipt_sdt"+eval(i+1)];
  1428. if(!utlf_isNull(objItem)){
  1429. objItem.value = arrAssistantDoctorList[i].getTrim();
  1430. var degnitemlevlcd = objItem.degnitemlevlcd;
  1431. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1432. ds_data_recitem.setColumn(nFindRow, "reccnts", arrAssistantDoctorList[i].getTrim());
  1433. }
  1434. }
  1435. }
  1436. objItem = null;
  1437. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", grup_base.cmb_odt1.degnitemlevlcd);
  1438. var sOperateurDoctorList = ds_data_recitem.getColumn(nFindRow, "rectermnm");
  1439. if(!utlf_isNull(sOperateurDoctorList)){
  1440. var arrOperateurDoctorList = sOperateurDoctorList.split(',');
  1441. // 집도의 1
  1442. for(var i = 0; i < ds_init_cmb_odt1.getRowCount(); i++){
  1443. if( ds_init_cmb_odt1.getColumn(i, "usernm") == arrOperateurDoctorList[0].getTrim() ){
  1444. //grup_base.cmb_odt1.index = i;
  1445. var userid = ds_init_cmb_odt1.getColumn(i, "userid");
  1446. var usernm = ds_init_cmb_odt1.getColumn(i, "usernm");
  1447. grup_base.cmb_odt1.value = userid;
  1448. var degnitemlevlcd = grup_base.cmb_odt1.degnitemlevlcd;
  1449. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1450. ds_data_recitem.setColumn(nFindRow, "rectermcd" , userid);
  1451. ds_data_recitem.setColumn(nFindRow, "rectermnm" , usernm);
  1452. }
  1453. }
  1454. // 집도의 2 ~ 3
  1455. for(var i = 1; i < arrOperateurDoctorList.length; i++){
  1456. objItem = grup_base.components["ipt_odt"+eval(i+1)];
  1457. if(!utlf_isNull(objItem)){
  1458. objItem.value = arrOperateurDoctorList[i].getTrim();
  1459. var degnitemlevlcd = objItem.degnitemlevlcd;
  1460. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1461. ds_data_recitem.setColumn(nFindRow, "reccnts", arrOperateurDoctorList[i].getTrim());
  1462. }
  1463. }
  1464. }
  1465. }
  1466. /****************************************************************************************
  1467. * Function : fGetMedr_new
  1468. * Description : 예방적 항생제 미투약 리스트 띄우기
  1469. * retrun type :
  1470. ****************************************************************************************/
  1471. function fGetMedr(){
  1472. var mibimedrcnt = ds_hidden.getColumn(0, "mibimedrcnt");
  1473. if (mibimedrcnt == 0) {
  1474. sysf_messageBox("항생제 투약미비건수가 없습니다","I999");
  1475. return;
  1476. }
  1477. var tmp = utlf_transNullToEmpty(sysf_getGlobalVariable("operation"));
  1478. var operation = utlf_transNullToEmpty(sysf_getGlobalVariable("operation")).split("▩")[1];
  1479. if( dsf_getColumnNullToEmpty(parent.ds_temp_formdata, 0, "operation") != "" ){
  1480. operation = parent.ds_temp_formdata.getColumn(0, "operation").split("▩")[1];
  1481. }
  1482. if(!utlf_isNull(operation)){
  1483. var carebasedd = "";
  1484. var carebasetm = "";
  1485. var oprsrvno = operation.split("▦")[0];
  1486. //수술시작시간(절개시각,마취시작시간) 가져오기(20150916 이윤주)
  1487. dsf_createDsRow("ds_cond_op", [{col:"oprsrvno", type:"string", size:256, val:oprsrvno}]);
  1488. dsf_createDs("ds_data_oplist");
  1489. var oParam = {};
  1490. oParam.id = "TRMMR06003";
  1491. oParam.service = "medirecapp.PrgmMediRec";
  1492. oParam.method = "reqGetCarebasedt";
  1493. oParam.inds = "req=ds_cond_op";
  1494. oParam.outds = "ds_data_oplist=list";
  1495. oParam.async = false;
  1496. oParam.callback = "cf_TRMMR06003";
  1497. tranf_submit(oParam);
  1498. var nRow = ds_data_oplist.rowposition;
  1499. carebasedd = ds_data_oplist.getColumn(nRow, "carebasedd");
  1500. carebasetm = ds_data_oplist.getColumn(nRow, "carebasetm");
  1501. frmf_setParameter("SMMNR00600_carebasedd", carebasedd);
  1502. frmf_setParameter("SMMNR00600_carebasetm", carebasetm);
  1503. frmf_setParameter("SMMNR00600_caregbn", "dr");
  1504. //temp dataset delete
  1505. dsf_deleteDs("ds_cond_op");
  1506. dsf_deleteDs("ds_data_oplist");
  1507. frmf_modal("SMMNR00600", "SMMNR00600", null, null, null, null, null, null, null, null, null, null, "M");
  1508. sysf_setGlobalVariable("operation", tmp);
  1509. fGetMibiMedrCnt();
  1510. }
  1511. }
  1512. function cf_TRMMR06003(sSvcId, nErrorCode, sErrorMsg) {
  1513. if(nErrorCode < 0) return;
  1514. }
  1515. /****************************************************************************************
  1516. * Function : fGetMedr
  1517. * Description : 예방적 항생제 미투약 리스트 띄우기 20140124 이윤주
  1518. * retrun type :
  1519. ****************************************************************************************/
  1520. function fGetMedr_old(){
  1521. var mibimedrcnt = ds_hidden.getColumn(0, "mibimedrcnt");
  1522. if (mibimedrcnt == 0) {
  1523. sysf_messageBox("항생제 투약미비건수가 없습니다","I999");
  1524. return;
  1525. }
  1526. var tmp = utlf_transNullToEmpty(sysf_getGlobalVariable("operation"));
  1527. var operation = utlf_transNullToEmpty(sysf_getGlobalVariable("operation")).split("▩")[1];
  1528. if(!utlf_isNull(operation)){
  1529. opno = operation.split("▦")[0];
  1530. pid = operation.split("▦")[5];
  1531. todd = operation.split("▦")[8];
  1532. var fromdd = (todd.toDate()).getAddDate(-1, "D");
  1533. fromdd = fromdd.getDateFormat();
  1534. frmf_setParameter("SMMNR00600_gbn", "dr");
  1535. frmf_setParameter("SMMNR00600_pid", pid);
  1536. frmf_setParameter("SMMNR00600_opdate", todd);
  1537. frmf_setParameter("SMMNR00600_oprsrvno", opno);
  1538. frmf_modal("SMMNR00600", "SMMNR00600", null, null, null, null, null, null, null, null, null, null, "M");
  1539. // SMMNR00600 화면에서 sysf_setGlobalVariable("operation") 변경되는지 확인필요.
  1540. sysf_setGlobalVariable("operation", tmp);
  1541. fGetMibiMedrCnt();
  1542. }
  1543. }
  1544. /****************************************************************************************
  1545. * Function : fGetMibiMedrCnt
  1546. * Description : 예방적 항생제 미투약 리스트 띄우기 20140124 이윤주
  1547. * retrun type :
  1548. ****************************************************************************************/
  1549. function fGetMibiMedrCnt(){
  1550. var tmp = utlf_transNullToEmpty(sysf_getGlobalVariable("operation"));
  1551. operation = utlf_transNullToEmpty(sysf_getGlobalVariable("operation")).split("▩")[1];
  1552. if( dsf_getColumnNullToEmpty(parent.ds_temp_formdata, 0, "operation") != "" ){
  1553. operation = parent.ds_temp_formdata.getColumn(0, "operation").split("▩")[1];
  1554. }
  1555. if(!utlf_isNull(operation)){
  1556. opno = operation.split("▦")[0];
  1557. todd = operation.split("▦")[8];
  1558. var fromdd = (todd.toDate()).getAddDate(-1, "D");
  1559. fromdd = fromdd.getDateFormat();
  1560. var sSendDs = dsf_createDsRow("ds_send_mibi", [{col:"pid", type:"string", size:256, val:ds_data_paminfo.getColumn(0, "pid")}
  1561. , {col:"orddd", type:"string", size:256, val:ds_data_paminfo.getColumn(0, "indd")}
  1562. , {col:"cretno", type:"string", size:256, val:ds_data_paminfo.getColumn(0, "cretno")}
  1563. , {col:"fromdd", type:"string", size:256, val:fromdd}
  1564. , {col:"todd", type:"string", size:256, val:todd}]);
  1565. // var objSendDs:Dataset = new Dataset;
  1566. // objSendDs = this.objects[sSendDs];
  1567. var sRtnDs = dsf_createDs("ds_hidden", [{col:"mibimedrcnt", type:"string", size:256}]);
  1568. var oParam = {};
  1569. oParam.id = "TRMMR06001";
  1570. oParam.service = "medirecapp.PrgmMediRec";
  1571. oParam.method = "reqGetMibiMedrCnt";
  1572. oParam.inds = "req="+sSendDs;
  1573. oParam.outds = sRtnDs+"=mibimedrcnt";
  1574. oParam.async = true;
  1575. oParam.progress = false;
  1576. oParam.callback = "cf_TRMMR06001";
  1577. tranf_submit(oParam);
  1578. sysf_setGlobalVariable("operation", tmp);
  1579. }
  1580. }
  1581. function cf_TRMMR06001(sSvcId, nErrorCode, sErrorMsg) {
  1582. if(nErrorCode < 0) return;
  1583. }
  1584. ]]></Script>