MMR00603.xjs 70 KB

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