MMR00604.xjs 69 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[ /**
  3. * MMR00604.js
  4. * SMMMR00604_시술기록.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. , "0001156001"//시술전피부상태 이상유무
  31. , "0012039001"//시술전피부상태 이상상세
  32. , "0003008001"//시술후피부상태 이상유무
  33. , "0012040001"//시술후피부상태 이상상세
  34. );
  35. var gItemCds = new Array("0007983001", "0000521001", "0000509001", "0000512001", "0000507001");
  36. var gItemCdsTextArea = new Array("0000512001", "0000507001");
  37. var gItemCdsXRWArea = new Array("0007983001", "0000521001", "0000509001");
  38. //부분서식의 개수만큼 일단 '0'으로 채운다.
  39. var gPageIdx = new Array(0, 0);
  40. var iSurg = grup_base.ipt_surg.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. /****************************************************************************************
  57. * Function : fClearComnFormData
  58. * Description : 서식 데이터 Clear, 인터페이스 입력값 조회 입력
  59. * retrun type :
  60. ****************************************************************************************/
  61. function fClearComnFormData()
  62. {
  63. if (!utlf_isNull(gMaxSectionID))
  64. {
  65. frmf_inputEnterKey( "ComnFormObj.lbl_"+gMaxSectionID, "onclick", new ClickEventInfo);
  66. }
  67. if( lodedYn == true )
  68. ClearComnFormData(gItemCds);
  69. //2010.01.20 dhkim -권한체크로 리턴값 추가
  70. if(!fInitialize()){
  71. return false;
  72. }
  73. if (parent.fGetFormRec("status") == "C")
  74. {
  75. var rtn = 'true';
  76. if(!rtn)
  77. {
  78. fBtnDisEnable(true);
  79. return "oprfalse";
  80. } else {
  81. }
  82. }
  83. //포커스 처리
  84. SetDefFocusIVW(gItemCdsTextArea);
  85. return true;
  86. }
  87. /****************************************************************************************
  88. * Function : fLoadData
  89. * Description : 기록데이터 조회
  90. * retrun type :
  91. ****************************************************************************************/
  92. function fLoadData()
  93. {
  94. //2010.01.20 dhkim -권한체크로 리턴값 추가
  95. if(!fInitialize()){
  96. return false;
  97. }
  98. lf_setRecData(arrItemCds);
  99. var sStatus = fGetFormRec("status");
  100. lf_setBasicInfo(sStatus);
  101. /*
  102. //Program 서식 데이터 조회반영
  103. InitPgmFormData();
  104. this.recRef2 = "/root/hidden/recinfo"
  105. //부분서식 데이터 조회 반영
  106. InitUnitFormData(gItemCds);
  107. */
  108. parent.gSubmitID = TX_SUBMIT_EXTN_FORM;
  109. parent.fSetFormRec("extnflag", "opr");
  110. return true;//2010.01.21 dhkim - 리턴값 추가(blocking 메세지후 리턴)
  111. }
  112. /****************************************************************************************
  113. * Function : fInitialize
  114. * Description : 화면 초기화
  115. * retrun type : true / false
  116. * History : 2010.01.20 dhkim - 리턴값 추가
  117. ****************************************************************************************/
  118. function fInitialize()
  119. {
  120. //2010.01.18 dhkim - 작성권한 체크(시술예약번호, 집도과체크)->기존기능임
  121. var operation = sysf_getGlobalVariable("operation").split("▩")[1];
  122. if(!utlf_isNull(operation)){
  123. oprsrvno = operation.split("▦")[0];
  124. perfdeptcd = operation.split("▦")[10];
  125. }
  126. if (parent.fGetFormRec("status") == "C")
  127. {
  128. if( grup_base.ivw_0007983001.isValidObject("ds_data_diagcdlist") ){
  129. grup_base.ivw_0007983001.ds_data_diagcdlist.clearData();
  130. }
  131. }
  132. //그리드 top, hei확장값 세팅
  133. gTermViewTopPos = 29;
  134. gTermViewHei = 152;
  135. gTermViewItems = gItemCdsXRWArea;
  136. grup_base.ipt_surg.enable = false;
  137. //시술 전 피부상태 이상 유무
  138. fRadioYNDefault("0001156","0001347001", "radio4");
  139. //시술 후 피부상태 이상 유무
  140. fRadioYNDefault("0003008","0001347001", "radio5");
  141. //이윤주처리(20141211)
  142. var perfdrnm = sysf_getUserInfo("usernm");
  143. grup_base.ipt_odt1.value = perfdrnm;
  144. degnitemlevlcd = grup_base.ipt_odt1.degnitemlevlcd;
  145. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  146. ds_data_recitem.setColumn(nFindRow, "reccnts", perfdrnm); //0000980.0001830 집도의
  147. return true;
  148. }
  149. /****************************************************************************************
  150. * Function : fChngDoct
  151. * Description : 의사 선택에 따른 reccnts셋팅
  152. ****************************************************************************************/
  153. function fChngDoct(obj:Combo, e:ItemChangeEventInfo)
  154. {
  155. var sDrnm, sDrcd;
  156. var sDegnitemlevlcd = obj.degnitemlevlcd;
  157. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  158. if(nFindRow == -1)
  159. {
  160. nFindRow = ds_data_recitem.addRow();
  161. var insRow = ds_temp_mainrecitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  162. ds_data_recitem.copyRow(nFindRow, ds_temp_mainrecitem, insRow);
  163. }
  164. sDrnm = e.posttext;
  165. sDrcd = e.postvalue;
  166. if( utlf_isNull(e.posttext) ){
  167. sDrnm = "";
  168. sDrcd = "";
  169. obj.value = "";
  170. }
  171. ds_data_recitem.setColumn(nFindRow, "rectermcd", sDrcd);
  172. ds_data_recitem.setColumn(nFindRow, "rectermnm", sDrnm);
  173. }
  174. /****************************************************************************************
  175. * Function : fRadioYN
  176. * Description : 라디오버튼 선택에 따른 reccnts셋팅
  177. ****************************************************************************************/
  178. function fRadioYN(obj:Radio, e:ItemChangeEventInfo)
  179. {
  180. var sDegnitemlevlcd = obj.degnitemlevlcd;
  181. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  182. if(nFindRow == -1)
  183. {
  184. nFindRow = ds_data_recitem.addRow();
  185. var insRow = ds_temp_mainrecitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  186. ds_data_recitem.copyRow(nFindRow, ds_temp_mainrecitem, insRow);
  187. }
  188. var sRectermnm = parent.ds_data_vallist.getColumn(parent.ds_data_vallist.findRow("valcd", e.postvalue), "valitemnm");
  189. if( utlf_isNull(sRectermnm) ) sRectermnm = e.posttext;
  190. ds_data_recitem.setColumn(nFindRow, "rectermcd", e.postvalue);
  191. ds_data_recitem.setColumn(nFindRow, "rectermnm", sRectermnm);
  192. }
  193. /****************************************************************************************
  194. * Function : fRadioYNDefault
  195. * Description : 라이오버튼 디폴트 값 설정
  196. ****************************************************************************************/
  197. function fRadioYNDefault(degnitemlevlcd,rectermcd, objNm)
  198. {
  199. //fRadioYNDefault("0001156","0001965001", "radio4");
  200. var rdoObj = ComnFormObj.components[objNm];
  201. if( !utlf_isNull(rdoObj) ){
  202. rdoObj.value = rectermcd;
  203. // fRadioYN 함수 동작
  204. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  205. if(nFindRow == -1)
  206. {
  207. nFindRow = ds_data_recitem.addRow();
  208. var insRow = ds_temp_mainrecitem.findRow("degnitemlevlcd", degnitemlevlcd);
  209. ds_data_recitem.copyRow(nFindRow, ds_temp_mainrecitem, insRow);
  210. }
  211. var sRectermnm = parent.ds_data_vallist.getColumn(parent.ds_data_vallist.findRow("valcd", rectermcd), "valitemnm");
  212. if( utlf_isNull(sRectermnm) ) sRectermnm = "";
  213. ds_data_recitem.setColumn(nFindRow, "rectermcd", rectermcd);
  214. ds_data_recitem.setColumn(nFindRow, "rectermnm", sRectermnm);
  215. }
  216. }
  217. /****************************************************************************************
  218. * Function : fPatientHist
  219. * Description : 시술이력 팝업
  220. * retrun type :
  221. ****************************************************************************************/
  222. function fPatientHist()
  223. {
  224. frmf_modal("SMMMO02500", "SMMMO02500", null, null, null, null, null, null, null, null, null, null, "M");
  225. }
  226. /**
  227. * @desc : 기록 인스턴스 연결
  228. * @
  229. * @param :
  230. * @return :
  231. * @authur : 박종훈
  232. */
  233. function fSetRecItemValue(reciteminfo)
  234. {
  235. return SetCommMediFormValue(gItemCds, reciteminfo);
  236. }
  237. /**
  238. * @desc : 시술예약번호를 통한 진단명, 마취종류 조회
  239. * @
  240. * @param :
  241. * @return :
  242. * @---------------------------------------------------
  243. */
  244. function fGetdiagFormOprsrvno(oprsrvno, iMcdnm, iMcdnm, iScdnm, iScdnm)
  245. {
  246. if(oprsrvno != ""){
  247. model.removeNodeset("/root/main/diaginfo/diagcdlist");
  248. model.makeValue("/root/send/oprsrvno", oprsrvno);
  249. //model.makeValue("/root/send/oprsrvno", "2007000009");
  250. submit("TRMRF04001", false);//TRMRF04001 : (oprd, anst) 시술진단조회, 마취주부
  251. var anstmthdcd = model.getValue("/root/main/diaginfo/anstlist/anstmthdcd");
  252. var mcdnm = model.getValue("/root/main/diaginfo/anstlist/mcdnm");
  253. var anstmthdcdsub = model.getValue("/root/main/diaginfo/anstlist/anstmthdcdsub");
  254. var scdnm = model.getValue("/root/main/diaginfo/anstlist/scdnm");
  255. var pageInfo = new PAGEINFO();
  256. // var iptMObj = document.controls("ipt_mcdnm");
  257. // var iptSObj = document.controls("ipt_scdnm");
  258. //
  259. // if (anstmthdcd != "" && mcdnm != "")
  260. // {
  261. // //주마취
  262. // model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd", anstmthdcd);
  263. // model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm", mcdnm);
  264. //
  265. // iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  266. // }
  267. // else
  268. // {
  269. // iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/reccnts";
  270. // }
  271. //
  272. // if (anstmthdcdsub != "" && scdnm != "")
  273. // {
  274. // //부마취
  275. // model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd", anstmthdcdsub);
  276. // model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm", scdnm);
  277. //
  278. // iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  279. // }
  280. // else
  281. // {
  282. // iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/reccnts";
  283. // }
  284. //dhkim
  285. /*
  286. //시술전진단명, 시술후 진단명
  287. copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0007983001.model, model);
  288. copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0000521001.model, model);
  289. model.refresh();
  290. ivw_0007983001.window.javascript.fSetDiagNmInstance();
  291. ivw_0000521001.window.javascript.fSetDiagNmInstance();
  292. */
  293. return true;
  294. }else{
  295. //alert("해당환자는 시술환자가 아닙니다!");
  296. //grup_base.disabled = true;
  297. //parent.window.javascript.fBtnDisable();
  298. return false;
  299. }
  300. }
  301. /****************************************************************************************
  302. * Function : fSetSizeFormDiag
  303. * Description : 시술전 진단명 사이즈 조절
  304. * retrun type :
  305. ****************************************************************************************/
  306. function fSetSizeFormDiag()
  307. {
  308. grup_base.ivw_0007983001.fInitPage(false, parseInt(grup_base.ivw_0007983001.position.height), parseInt(grup_base.ivw_0007983001.position.width), "ivw_0007983001", "시술전 진단명(Free text))");
  309. }
  310. /****************************************************************************************
  311. * Function : fSetSizeFormDiag1
  312. * Description : 시술후 진단명 사이즈 조절
  313. * retrun type :
  314. ****************************************************************************************/
  315. function fSetSizeFormDiag1()
  316. {
  317. grup_base.ivw_0000521001.fInitPage(false, parseInt(grup_base.ivw_0000521001.position.height), parseInt(grup_base.ivw_0000521001.position.width), "ivw_0000521001", "시술후 진단명(Free text)");
  318. }
  319. /****************************************************************************************
  320. * Function : fSetSizeFormOpr
  321. * Description : 서식 시술명 사이즈 조절
  322. * retrun type :
  323. ****************************************************************************************/
  324. function fSetSizeFormOpr()
  325. {
  326. grup_base.ivw_0000509001.fInitPage(false, parseInt(grup_base.ivw_0000509001.position.height), parseInt(grup_base.ivw_0000509001.position.width), "ivw_0000509001");
  327. }
  328. /*****************************************************************************
  329. 튜닝
  330. ******************************************************************************/
  331. var gLoadFormCnts = 0;
  332. /****************************************************************************************
  333. * Function : fFormReady()
  334. * Description : 화면 로딩후 초기화 작업 수행
  335. * retrun type :
  336. ****************************************************************************************/
  337. function fFormReady()
  338. {
  339. this.ComnFormObj = this.grup_base;
  340. dsf_createDsRow("ds_temp_mainrecitem",
  341. [{col:"formxrw", val:""}]);
  342. // 공통서식의 초기 recitem 정보. 기록 데이터 조합시 사용
  343. ds_temp_mainrecitem.assign(ds_data_recitem);
  344. lf_setSectionSize(gItemCds, "grup_base.tar_0000512001", "grup_base.tar_0000507001", 350); //350
  345. //20080702 박종훈 추가
  346. //fInitialize();
  347. InitBtnImge(gItemCdsTextArea);
  348. InitBtnEtcRec(gItemCdsTextArea);
  349. // InitBtnComn(gItemCdsTextArea);
  350. // dispOnLoadComplete(COMN_FORM);
  351. // lf_checkUnitForm(gItemCds); // 부분서식 로딩
  352. lf_AllLoadUnitFormExpand(gItemCds); // 전체 로드
  353. fCosignCheck();
  354. //fonloadcomplete
  355. if (parent.fGetFormRec("status") == "C"){
  356. if(!fClearComnFormData()){
  357. return false;
  358. }
  359. }else if (parent.fGetFormRec("status") == "U"){
  360. // fCosignCheck();
  361. }
  362. //2010.01.25, hkjoo
  363. // initCmbExtnList(gItemCds);
  364. //시술예방적 항생제 투약미비건수
  365. fGetMibiMedrCnt();
  366. lf_setRecData(arrItemCds);
  367. initFormAtLast_MMR01100I();
  368. }
  369. /****************************************************************************************
  370. * Function : fLoadUnitForm()
  371. * Description : 부분서식 로딩
  372. * retrun type :
  373. ****************************************************************************************/
  374. function fLoadUnitForm()
  375. {
  376. initSection(gItemCds);
  377. }
  378. var diagcnt = 0;
  379. /****************************************************************************************
  380. * Function : fOnLoadComplete()
  381. * Description : 부분서식 로딩후 후처리
  382. * retrun type :
  383. ****************************************************************************************/
  384. function fOnLoadComplete()
  385. {
  386. var rtn = false;
  387. var curLoadFormCd = frmf_getParameter("loadformcd");
  388. frmf_setParameter("loadformcd", "");
  389. var nFindRow = ds_data_unitformmast.findRowExpr("formcd=='" + curLoadFormCd + "' && loaded != 'true'");
  390. var fstLevlItemCd = ds_data_unitformmast.getColumn(nFindRow, "orgsupdegnitemcd");
  391. var ivwObj = ComnFormObj.components["ivw_" + fstLevlItemCd];
  392. var unitformload = ds_data_unitformmast.getColumn(nFindRow, "loaded");
  393. if(!utlf_isNull(ivwObj) && unitformload != "true")
  394. {
  395. //setFstLevlItemCd(ivwObj, curLoadFormCd);
  396. var nRow = ds_data_unitformmast.findRow("formcd", curLoadFormCd);
  397. ds_data_unitformmast.setColumn(nRow, "loaded", "true");
  398. }
  399. //시술전진단명 부분서식 로딩후 처리
  400. if(fstLevlItemCd == '0007983001')
  401. {
  402. fSetSizeFormDiag();
  403. }
  404. //시술후진단명 부분서식 로딩후 처리
  405. if(fstLevlItemCd == '0000521001')
  406. {
  407. fSetSizeFormDiag1();
  408. if (parent.fGetFormRec("status") == "C")
  409. {
  410. //rtn = fGetdiagFormOprsrvno(oprsrvno, iMcdnm, iMcdnm, iScdnm, iScdnm); //시술예약번호로 진단명 조회
  411. }
  412. }
  413. //시술명 부분서식 로딩후 처리
  414. if(fstLevlItemCd == '0000509001')
  415. {
  416. fSetSizeFormOpr();
  417. if (parent.fGetFormRec("status") == "C")
  418. {
  419. if(!fClearComnFormData()){
  420. return false;
  421. }
  422. }
  423. else if (parent.fGetFormRec("status") == "U")
  424. {
  425. fCosignCheck();
  426. }
  427. }
  428. gLoadFormCnts++;
  429. utlf_addLog("@@@@@ gItemCds.length : " + gItemCds.length + " gLoadFormCnts : " + gLoadFormCnts );
  430. if(gItemCds.length == gLoadFormCnts)
  431. {
  432. /*
  433. if (parent.fGetFormRec("status") == "U")
  434. {
  435. var anstmthdcd = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd");
  436. var mcdnm = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm");
  437. var anstmthdcdsub = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd");
  438. var scdnm = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm");
  439. var iptMObj = document.controls("ipt_mcdnm");
  440. var iptSObj = document.controls("ipt_scdnm");
  441. if (anstmthdcd != "" && mcdnm != "")
  442. {
  443. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  444. }
  445. else
  446. {
  447. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/reccnts";
  448. }
  449. if (anstmthdcdsub != "" && scdnm != "")
  450. {
  451. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  452. }
  453. else
  454. {
  455. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/reccnts";
  456. }
  457. iptMObj.refresh();
  458. iptSObj.refresh();
  459. }
  460. */
  461. dispOnLoadComplete(UNIT_FORM);//COMN_FORM = 1, UNIT_FORM = 2, GENL_FORM = 3
  462. //서식 로딩 후 포커스 처리(2008-11-18 박종훈)
  463. SetDefFocusIVW(gItemCdsTextArea);
  464. }
  465. }
  466. /****************************************************************************************
  467. * Function : fGetDefData()
  468. * Description : 동일 서식이 떠있을 경우 내부 인스턴스 로딩 후 디폴트 조회내용 조회
  469. * retrun type :
  470. ****************************************************************************************/
  471. function fGetDefData()
  472. {
  473. fSetSizeFormOpr();
  474. operation = sysf_getGlobalVariable("operation").split("▩")[1];
  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", "NEW2");
  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. // [요청번호:20180712032] 입퇴원요약기록, 수술기록의 STAFF SIGN 관련건 수정모드 -> 싸인모드
  754. parent.initButtonLayer_MMR01100("staff_auth_y");
  755. } else {
  756. //전공의가 신규작성하여 staff이 sign한 경우 싸인모드
  757. parent.initButtonLayer_MMR01100("staff_auth_y");
  758. }
  759. } else {
  760. //staff sign이후이므로 staff이외에는 수정불가
  761. parent.initButtonLayer_MMR01100("no_auth");
  762. }
  763. } else {
  764. if (authyn == "Y") {
  765. //전공의 신규작성후에 staff이 수정모드로 열었으므로, 싸인모드
  766. parent.initButtonLayer_MMR01100("staff_auth_y");
  767. } else {
  768. //수정모드
  769. parent.initButtonLayer_MMR01100("staff_auth_n");
  770. }
  771. }
  772. } else {
  773. //수정모드
  774. parent.initButtonLayer_MMR01100("staff_auth_n");
  775. }
  776. } else {
  777. parent.initButtonLayer_MMR01100("no_auth");
  778. }
  779. }
  780. /**
  781. * @desc : 보조의combo노드에 none을 추가한다.
  782. * @
  783. * @param :
  784. * @return :
  785. * @authur : dhkim 20091228
  786. */
  787. function fMakeNodeSdt_MMR00601(nodeset){
  788. ///root/init/drlist0000341.0001830/usercombo
  789. var sdtNodeCnt = getNodesetCount(nodeset);
  790. if(sdtNodeCnt > 0){
  791. model.makeValue(nodeset+"["+sdtNodeCnt+"]/userid", "none");
  792. model.makeValue(nodeset+"["+sdtNodeCnt+"]/usernm", "없음");
  793. model.makeValue(nodeset+"["+sdtNodeCnt+"]/mpphonno", "");
  794. model.makeValue(nodeset+"["+sdtNodeCnt+"]/refseq", "C");
  795. }
  796. model.refresh();
  797. }
  798. /****************************************************************************************
  799. * Function : initFormAtLast_MMR01100I
  800. * Description : MMR01100.js에서 서식load를 완료한 후에 호출한다.
  801. * retrun type :
  802. ****************************************************************************************/
  803. function initFormAtLast_MMR01100I() {
  804. var formcd = parent.fGetFormMast("formcd");
  805. //fInitAnstTypeCtrl_SMMMR00601();//2010.01.18 dhkim - 콤보바인딩 후 연동데이터 세팅하도록 순서변경
  806. //신규서식로딩의 경우만 상단진단(과최근) 연동
  807. if (parent.fGetFormRec("status") == "C") {
  808. //20141211 이윤주
  809. if(!fGetRecIfData_MMR00601("sisuldiag")){
  810. return false;
  811. }
  812. var cnt = ds_main_extninfo_oplistinfo.getRowCount();
  813. if (cnt == 0) {
  814. //parent.initButtonLayer_MMR01100("no_auth");
  815. } else if (cnt == 1) {
  816. ds_send_reqinfstrec.setColumn(0, "oprsrvno", ds_init_extninfo_oplistinfo.getColumn(0, "oprsrvno"));
  817. grup_base.cmb_oplist.enable = false;
  818. parent.initButtonLayer_MMR01100("staff_auth_n");
  819. parent.fSetFormRec("oprsrvno", ds_send_reqinfstrec.getColumn(0, "oprsrvno"));
  820. } else {
  821. //ds_send_reqinfstrec.setColumn(0, "oprsrvno", ds_init_extninfo_oplistinfo.getColumn(0, "oprsrvno"));
  822. ds_send_reqinfstrec.setColumn(0, "oprsrvno", "");
  823. grup_base.cmb_oplist.enable = true;
  824. if (parent.fGetFormRec("status") == "C") {
  825. parent.initButtonLayer_MMR01100("no_auth");
  826. }
  827. }
  828. } else {
  829. if (parent.fGetFormRec("espiyn") == "Y") {
  830. //2010.01.21 dhkim - 리턴값 추가(blocking 메세지후 리턴)
  831. //2010.01.29 dhkim - 시술기록JCI Staff-Sign 막음.
  832. //2010.02.09 dhkim- 시술기록JCI Staff-Sign 주석해제.
  833. // if(!fGetRecIfData_MMR00601("staffauth;oplist;drlist")){
  834. // return false;
  835. // }
  836. } else {
  837. // if(!fGetRecIfData_MMR00601("oplist;drlist")){
  838. // return false;
  839. // }
  840. }
  841. var sStatus = parent.fGetFormRec("status");
  842. lf_setBasicInfo(sStatus); //시술 정보 기록데이터 세팅
  843. ds_send_reqinfstrec.setColumn(0, "oprsrvno", parent.fGetFormRec("oprsrvno"));
  844. grup_base.cmb_oplist.enable = false;
  845. fCosignCheck_SMMMR00601();
  846. }
  847. return true;
  848. }
  849. /****************************************************************************************
  850. * Function : fChngOpList_MMR00601
  851. * Description : 시술리스트 콤보선택시 시술번호로 Brief OP Note를 찾아 설정한다.
  852. * 신규서식일때만 수행하도록 한다.
  853. * retrun type :
  854. ****************************************************************************************/
  855. function fChngOpList_MMR00601()
  856. {
  857. if (parent.fGetFormRec("status") == "C") {
  858. var v_oprsrvno = grup_base.cmb_oplist.value;
  859. if (!utlf_isNull(v_oprsrvno)) {
  860. //model.removenodeset("/root/init/extninfo/oplistinfo[oprsrvno = '']");
  861. parent.fSetFormRec("oprsrvno", v_oprsrvno);
  862. //2010.01.21 dhkim - 리턴값 추가(blocking 메세지후 리턴)
  863. //2010.01.29 dhkim - 시술기록JCI Staff-Sign 막음.
  864. //2010.02.09 dhkim- 시술기록JCI Staff-Sign 주석해제.
  865. // if(!fGetRecIfData_MMR00601("drlist;opr;recdata;staffauth")){
  866. // return false;
  867. // }
  868. fCosignCheck_SMMMR00601();
  869. }
  870. }
  871. return true;//2010.01.21 dhkim - 리턴값 추가(blocking 메세지후 리턴)
  872. }
  873. /****************************************************************************************
  874. * Function : fGetRecIfData_MMR00601
  875. * Description : 시술기록의 Data를 설정한다.
  876. * retrun type :
  877. ****************************************************************************************/
  878. function fGetRecIfData_MMR00601(infoflag) {
  879. ds_send_extninfo.clearData();
  880. var nRow = ds_send_extninfo.addRow();
  881. ds_send_extninfo.setColumn(nRow, "infoflag", infoflag);
  882. ds_send_extninfo.setColumn(nRow, "pid", parent.fGetFormRec("pid"));
  883. ds_send_extninfo.setColumn(nRow, "orddd", parent.fGetFormRec("orddd"));
  884. ds_send_extninfo.setColumn(nRow, "cretno", parent.fGetFormRec("cretno"));
  885. ds_send_extninfo.setColumn(nRow, "fromsrcformcd", "0000003169"); //BriefOpNote기록의 기본서식코드
  886. ds_send_extninfo.setColumn(nRow, "toformcd", parent.fGetFormMast("formcd"));
  887. ds_send_extninfo.setColumn(nRow, "srcformcd", parent.fGetFormRec("srcformcd"));
  888. ds_send_extninfo.setColumn(nRow, "formrecdd", parent.fGetFormRec("formrecdd"));
  889. ds_send_extninfo.setColumn(nRow, "oprsrvno", parent.fGetFormRec("oprsrvno"));
  890. ds_send_extninfo.setColumn(nRow, "indd", ds_send_extninfo.getColumn(0, "orddd"));
  891. ds_send_extninfo.setColumn(nRow, "standd", parent.fGetFormRec("formrecdd"));
  892. ds_send_extninfo.setColumn(nRow, "deptcd", parent.fGetFormRec("formrecdeptcd"));
  893. ds_send_extninfo.setColumn(nRow, "jobkindcd", "0330");
  894. ds_send_extninfo.setColumn(nRow, "orddeptcd", parent.fGetPamInfo("orddeptcd"));
  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 );
  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("sisuldiag;") != -1 && lodedYn == true ){
  1040. //시술진단 설정
  1041. if (grup_base.ivw_0007983001.ds_data_diagcdlist.getCaseCount() == 0 ) {
  1042. // copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/extninfo/diagcdlist", "replace", ivw_0007983001.model, model);
  1043. // copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/extninfo/diagcdlist", "replace", ivw_0000521001.model, model);
  1044. grup_base.ivw_0007983001.fSetDiagNmInstance();
  1045. grup_base.ivw_0000521001.fSetDiagNmInstance();
  1046. }
  1047. }
  1048. //2010.05.19 김달현 - recdata, opr, opdiag 분기순서변경
  1049. //alert("execInfoFlag : " + execInfoFlag);
  1050. if (execInfoFlag.indexOf("recdata;") != -1) {
  1051. /*--> 2010.01.15 dhkim - Brief Op Note의 OP Findings & Procedure -> 시술과정으로 연동
  1052. --> 2010.01.18 dhkim - Brief Op Note의 OP Findings & Procedure 연동 안하는 것으로 다시 변경됨.
  1053. --> 2010.05.19 김달현 - Brief OP Note서식이 OP Findings 와 Procedure로 분리되면서 시술소견, 시술과정에 연동하는 것으로 변경
  1054. */
  1055. var nFindRow = "";
  1056. var nAddRow = "";
  1057. //시술소견
  1058. var findings_itemcd = '0000512001';
  1059. nFindRow = ds_main_extninfo_recitem.findRow("fstlevlitemcd", findings_itemcd);
  1060. var findings = ds_main_extninfo_recitem.getColumn(nFindRow, "reccnts");
  1061. ds_main_extninfo_recitem.deleteRow(nFindRow);
  1062. nFindRow = ds_data_formdegn.findRowExpr("supdegnitemcd=='"+findings_itemcd+"' && degnitemkind=='FRM'");
  1063. var findings_degnitemcd = ds_data_formdegn.getColumn(nFindRow, "degnitemcd");
  1064. //시술과정
  1065. var procedures_itemcd = '0000507001';
  1066. nFindRow = ds_main_extninfo_recitem.findRow("fstlevlitemcd", procedures_itemcd);
  1067. var procedures = ds_main_extninfo_recitem.getColumn(nFindRow, "reccnts");
  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) )
  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(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)) //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(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. //
  1297. //
  1298. // //2010.01.18 dhkim - 마취바인딩 무조건 rectermcd, rectermnm으로 변경
  1299. // if(anstmthdcd == null || anstmthdcd == ""){
  1300. // anstmthdcd = "-";
  1301. // }
  1302. //
  1303. // if(anstmthdcdsub == null || anstmthdcdsub == ""){
  1304. // anstmthdcdsub = "-";
  1305. // }
  1306. //
  1307. // //주마취
  1308. // model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd", anstmthdcd);
  1309. // model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm", mcdnm);
  1310. //
  1311. // iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  1312. //
  1313. // //부마취
  1314. // model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd", anstmthdcdsub);
  1315. // model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm", scdnm);
  1316. //
  1317. // iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  1318. //
  1319. // iptMObj.refresh();
  1320. // iptSObj.refresh();
  1321. }
  1322. */
  1323. /****************************************************************************************
  1324. * Function : fChkPreSave
  1325. * Description : 2010.01.18 dhkim - 추가) 저장전 체크 로직
  1326. * retrun type :
  1327. ****************************************************************************************/
  1328. function fChkPreSave()
  1329. {
  1330. var intm = ComnFormObj.ipt_intm.value;
  1331. var outtm = ComnFormObj.ipt_outtm.value;
  1332. if (utlf_isNull(intm)) {
  1333. sysf_messageBox("시술시작시간을 입력하시기 바랍니다.", "E");
  1334. return false;
  1335. }
  1336. else {
  1337. var r_intm = intm.replace("-","").replace(":","").replace(" ","");
  1338. if (r_intm.length != 12) {
  1339. sysf_messageBox("시술시작시간을 정확히 입력하시기 바랍니다.", "E");
  1340. return false;
  1341. }
  1342. }
  1343. if (utlf_isNull(outtm)) {
  1344. sysf_messageBox("시술종료시간을 입력하시기 바랍니다.", "E");
  1345. return false;
  1346. }
  1347. else {
  1348. var r_outtm = outtm.replace("-","").replace(":","").replace(" ","");
  1349. if (r_outtm.length != 12) {
  1350. sysf_messageBox("시술종료시간을 정확히 입력하시기 바랍니다.", "E");
  1351. return false;
  1352. }
  1353. }
  1354. if (sysf_getUserInfo("dutplceinstcd") == "999") {
  1355. var intime = r_intm.toDate("YYYYMMDDhhmm");
  1356. var outtime = r_outtm.toDate("YYYYMMDDhhmm");
  1357. var nDifferencesec = outtime.getTime() - intime.getTime(); // 초 간격
  1358. var nDifferencemin = Math.floor((nDifferencesec/1000/60) % 60); // 분 간격
  1359. if ( nDifferencemin < 0 ) {
  1360. sysf_messageBox("시술시작시간이 시술종료시간보다 큽니다\n\n 문의사항:의무기록팀","I");
  1361. return false;
  1362. }
  1363. if ( nDifferencemin < 10 ) {
  1364. sysf_messageBox("시술시작시간 ~ 시술종료시간 10분 미만입니다. \n\n 문의사항:의무기록팀","I");
  1365. return false;
  1366. }
  1367. }
  1368. if ( utlf_isNull(ComnFormObj.radio1.value)) {
  1369. sysf_messageBox("조직표본 검체 확인이 되지 않았습니다.!", "E");
  1370. return false;
  1371. }
  1372. if ( utlf_isNull(ComnFormObj.radio2.value)) {
  1373. sysf_messageBox("배액관 확인이 되지 않았습니다.!", "E");
  1374. return false;
  1375. }
  1376. if ( utlf_isNull(ComnFormObj.radio3.value)) {
  1377. sysf_messageBox("특이사항 여부가 확인 되지 않았습니다.!", "E");
  1378. return false;
  1379. }
  1380. //특이사항 여부 관련 체크
  1381. if (ComnFormObj.radio3.value == "0003762001" && !utlf_isNull(ComnFormObj.textarea10.value)) {
  1382. sysf_messageBox("특이사항 여부가 [N] 으로 체크되었지만 특이사항이 입력되었습니다","E");
  1383. return false;
  1384. }
  1385. if (ComnFormObj.radio3.value == "0003763001" && utlf_isNull(ComnFormObj.textarea10.value)) {
  1386. sysf_messageBox("특이사항 여부가 [Y] 으로 체크되었지만 특이사항이 없습니다","E");
  1387. return false;
  1388. }
  1389. if ( utlf_isNull(ComnFormObj.radio4.value)) {
  1390. sysf_messageBox("시술 전 피부상태 이상유무가 선택되지 않았습니다.!", "E");
  1391. return false;
  1392. }
  1393. if (ComnFormObj.radio4.value == "0001347001" && !utlf_isNull(ComnFormObj.textarea11.value)) {
  1394. sysf_messageBox("시술 전 피부상태 이상유무가 [N] 으로 체크되었지만 세부사항이 입력되었습니다","E");
  1395. return false;
  1396. }
  1397. if (ComnFormObj.radio4.value == "0001965001" && utlf_isNull(ComnFormObj.textarea11.value)) {
  1398. sysf_messageBox("시술 전 피부상태 이상유무가 [Y] 으로 체크되었지만 세부사항이 없습니다","E");
  1399. return false;
  1400. }
  1401. if ( utlf_isNull(ComnFormObj.radio5.value)) {
  1402. sysf_messageBox("시술 후 피부상태 이상유무가 선택되지 않았습니다.!", "E");
  1403. return false;
  1404. }
  1405. if (ComnFormObj.radio5.value == "0001347001" && !utlf_isNull(ComnFormObj.textarea12.value)) {
  1406. sysf_messageBox("시술 후 피부상태 이상유무가 [N] 으로 체크되었지만 세부사항이 입력되었습니다","E");
  1407. return false;
  1408. }
  1409. if (ComnFormObj.radio5.value == "0001965001" && utlf_isNull(ComnFormObj.textarea12.value)) {
  1410. sysf_messageBox("시술 후 피부상태 이상유무가 [Y] 으로 체크되었지만 세부사항이 없습니다","E");
  1411. return false;
  1412. }
  1413. }
  1414. function cf_TRMMR06002(sSvcId, nErrorCode, sErrorMsg) {
  1415. if(nErrorCode < 0) return;
  1416. }
  1417. /****************************************************************************************
  1418. * Function : fSetArrayDoctor
  1419. * Description : FreeText로 들어온 집도의, 보조의를 각 항목에 입력처리
  1420. * retrun type :
  1421. ****************************************************************************************/
  1422. function fSetArrayDoctor(){
  1423. var objItem;
  1424. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", grup_base.cmb_sdt1.degnitemlevlcd);
  1425. var sAssistantDoctorList = ds_data_recitem.getColumn(nFindRow, "rectermnm");
  1426. if(!utlf_isNull(sAssistantDoctorList)){
  1427. var arrAssistantDoctorList = sAssistantDoctorList.split(',');
  1428. // 보조의 1
  1429. for(var i = 0; i < ds_init_cmb_sdt1.getRowCount(); i++){
  1430. if( ds_init_cmb_sdt1.getColumn(i, "usernm") == arrAssistantDoctorList[0].getTrim() ){
  1431. //grup_base.cmb_sdt1.index = i;
  1432. var userid = ds_init_cmb_sdt1.getColumn(i, "userid");
  1433. var usernm = ds_init_cmb_sdt1.getColumn(i, "usernm");
  1434. grup_base.cmb_sdt1.value = userid;
  1435. var degnitemlevlcd = grup_base.cmb_sdt1.degnitemlevlcd;
  1436. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1437. ds_data_recitem.setColumn(nFindRow, "rectermcd" , userid);
  1438. ds_data_recitem.setColumn(nFindRow, "rectermnm" , usernm);
  1439. }
  1440. }
  1441. // 보조의 2 ~ 4
  1442. for(var i = 1; i < arrAssistantDoctorList.length; i++){
  1443. objItem = grup_base.components["ipt_sdt"+eval(i+1)];
  1444. if(!utlf_isNull(objItem)){
  1445. objItem.value = arrAssistantDoctorList[i].getTrim();
  1446. var degnitemlevlcd = objItem.degnitemlevlcd;
  1447. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1448. ds_data_recitem.setColumn(nFindRow, "reccnts", arrAssistantDoctorList[i].getTrim());
  1449. }
  1450. }
  1451. }
  1452. }
  1453. /****************************************************************************************
  1454. * Function : fGetMedr
  1455. * Description : 예방적 항생제 미투약 리스트 띄우기 20140124 이윤주
  1456. * retrun type :
  1457. ****************************************************************************************/
  1458. function fGetMedr(){
  1459. var mibimedrcnt = ds_hidden.getColumn(0, "mibimedrcnt");
  1460. if (mibimedrcnt == 0) {
  1461. sysf_messageBox("항생제 투약미비건수가 없습니다","I999");
  1462. return;
  1463. }
  1464. var tmp = sysf_getGlobalVariable("operation");
  1465. var operation = sysf_getGlobalVariable("operation").split("▩")[1];
  1466. if(!utlf_isNull(operation)){
  1467. opno = operation.split("▦")[0];
  1468. pid = operation.split("▦")[5];
  1469. todd = operation.split("▦")[8];
  1470. var fromdd = (todd.toDate()).getAddDate(-1, "D");
  1471. fromdd = fromdd.getDateFormat();
  1472. frmf_setParameter("SMMNR00600_gbn", "dr");
  1473. frmf_setParameter("SMMNR00600_pid", pid);
  1474. frmf_setParameter("SMMNR00600_opdate", todd);
  1475. frmf_setParameter("SMMNR00600_oprsrvno", opno);
  1476. frmf_open("SMMNR00600", "SMMNR00600", null, null, null, null, null, null, null, null, null, null, "M");
  1477. // SMMNR00600 화면에서 sysf_setGlobalVariable("operation") 변경되는지 확인필요.
  1478. sysf_setGlobalVariable("operation", tmp);
  1479. fGetMibiMedrCnt();
  1480. }
  1481. }
  1482. /****************************************************************************************
  1483. * Function : fGetMibiMedrCnt
  1484. * Description : 예방적 항생제 미투약 리스트 띄우기 20140124 이윤주
  1485. * retrun type :
  1486. ****************************************************************************************/
  1487. function fGetMibiMedrCnt(){
  1488. var tmp = sysf_getGlobalVariable("operation");
  1489. operation = sysf_getGlobalVariable("operation").split("▩")[1];
  1490. if(!utlf_isNull(operation)){
  1491. opno = operation.split("▦")[0];
  1492. todd = operation.split("▦")[8];
  1493. var fromdd = (todd.toDate()).getAddDate(-1, "D");
  1494. fromdd = fromdd.getDateFormat();
  1495. var sSendDs = dsf_createDsRow("ds_send_mibi", [{col:"pid", type:"string", size:256, val:ds_data_paminfo.getColumn(0, "pid")}
  1496. , {col:"orddd", type:"string", size:256, val:ds_data_paminfo.getColumn(0, "indd")}
  1497. , {col:"cretno", type:"string", size:256, val:ds_data_paminfo.getColumn(0, "cretno")}
  1498. , {col:"fromdd", type:"string", size:256, val:fromdd}
  1499. , {col:"todd", type:"string", size:256, val:todd}]);
  1500. // var objSendDs:Dataset = new Dataset;
  1501. // objSendDs = this.objects[sSendDs];
  1502. var sRtnDs = dsf_createDs("ds_hidden", [{col:"mibimedrcnt", type:"string", size:256}]);
  1503. var oParam = {};
  1504. oParam.id = "TRMMR06001";
  1505. oParam.service = "medirecapp.PrgmMediRec";
  1506. oParam.method = "reqGetMibiMedrCnt";
  1507. oParam.inds = "req="+sSendDs;
  1508. oParam.outds = sRtnDs+"=mibimedrcnt";
  1509. oParam.async = true;
  1510. oParam.progress = false;
  1511. oParam.callback = "cf_TRMMR06001";
  1512. tranf_submit(oParam);
  1513. sysf_setGlobalVariable("operation", tmp);
  1514. }
  1515. }
  1516. function cf_TRMMR06001(sSvcId, nErrorCode, sErrorMsg) {
  1517. if(nErrorCode < 0) return;
  1518. }
  1519. ]]></Script>