MMR00602.xjs 68 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794
  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", "JCI");
  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 (intm.length != 12) {
  1355. sysf_messageBox("입실시각을 정확히 입력하시기 바랍니다.", "E");
  1356. return false;
  1357. }
  1358. if (outtm.length != 12) {
  1359. sysf_messageBox("퇴실시각을 정확히 입력하시기 바랍니다.", "E");
  1360. return false;
  1361. }
  1362. if ( utlf_isNull(ComnFormObj.radio1.value)) {
  1363. sysf_messageBox("조직표본 검체 확인이 되지 않았습니다.!", "E");
  1364. return false;
  1365. }
  1366. if ( utlf_isNull(ComnFormObj.radio2.value)) {
  1367. sysf_messageBox("배액관 확인이 되지 않았습니다.!", "E");
  1368. return false;
  1369. }
  1370. if ( utlf_isNull(ComnFormObj.radio3.value)) {
  1371. sysf_messageBox("특이사항 여부가 확인 되지 않았습니다.!", "E");
  1372. return false;
  1373. }
  1374. //특이사항 여부 관련 체크
  1375. if (ComnFormObj.radio3.value == "0003762001" && !utlf_isNull(ComnFormObj.textarea10.value)) {
  1376. sysf_messageBox("특이사항 여부가 [N] 으로 체크되었지만 특이사항이 입력되었습니다","E");
  1377. return false;
  1378. }
  1379. if (ComnFormObj.radio3.value == "0003763001" && utlf_isNull(ComnFormObj.textarea10.value)) {
  1380. sysf_messageBox("특이사항 여부가 [Y] 으로 체크되었지만 특이사항이 없습니다","E");
  1381. return false;
  1382. }
  1383. if ( utlf_isNull(ComnFormObj.radio4.value)) {
  1384. sysf_messageBox("시술 전 피부상태 확인이 되지 않았습니다.!", "E");
  1385. return false;
  1386. }
  1387. if ( utlf_isNull(ComnFormObj.radio5.value)) {
  1388. sysf_messageBox("시술 후 피부상태 확인이 되지 않았습니다.!", "E");
  1389. return false;
  1390. }
  1391. //인증저장시에만 체크
  1392. /* 20150529 막음(김경아 선생님 요청)
  1393. if (parent.fGetFormRec("signsaveyn") == "Y") {
  1394. var espiseq = parent.fGetFormRec("espiseq");
  1395. var sSendDsNm = dsf_createDsRow("ds_cond_TRMMR06002", [{col:"fromdt", type:"string", size:256, val:outtm}
  1396. , {col:"espiseq", type:"string", size:256, val:espiseq}]);
  1397. var objSendDS:Dataset = new Dataset;
  1398. objSendDS = this.objects[sSendDsNm];
  1399. var sRtnDsNm = dsf_createDs("ds_data_TRMMR06002", [{col:"gap", type:"string", size:256}]);
  1400. var objRtnDS:Dataset = new Dataset;
  1401. objRtnDS = this.objects[sRtnDsNm];
  1402. var oParam = {};
  1403. oParam.id = "TRMMR06002";
  1404. oParam.service = "medirecapp.PrgmMediRec";
  1405. oParam.method = "reqGetOuttmGap";
  1406. oParam.inds = "req="+sSendDsNm;
  1407. oParam.outds = sRtnDsNm+"=gap";
  1408. oParam.async = false;
  1409. oParam.progress = false;
  1410. oParam.callback = "cf_TRMMR06002";
  1411. tranf_submit(oParam);
  1412. var timegap = objRtnDS.getColumn(0, "gap");
  1413. dsf_deleteDs(sSendDsNm);
  1414. dsf_deleteDs(sRtnDsNm);
  1415. if ( timegap > 0 && timegap <= 10 ) {
  1416. sysf_messageBox("인증평가기준5.1.3 \n\n 작성 시간이 퇴실 시간보다 "+timegap+"분 초과하였으니 퇴실시간을 수정 바랍니다\n\n 문의사항:의무기록팀(5235)","I");
  1417. return false;
  1418. }
  1419. }
  1420. */
  1421. }
  1422. function cf_TRMMR06002(sSvcId, nErrorCode, sErrorMsg) {
  1423. if(nErrorCode < 0) return;
  1424. }
  1425. /****************************************************************************************
  1426. * Function : fSetArrayDoctor
  1427. * Description : FreeText로 들어온 집도의, 보조의를 각 항목에 입력처리
  1428. * retrun type :
  1429. ****************************************************************************************/
  1430. function fSetArrayDoctor(){
  1431. var objItem;
  1432. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", grup_base.cmb_sdt1.degnitemlevlcd);
  1433. var sAssistantDoctorList = ds_data_recitem.getColumn(nFindRow, "rectermnm");
  1434. if(!utlf_isNull(sAssistantDoctorList)){
  1435. var arrAssistantDoctorList = sAssistantDoctorList.split(',');
  1436. // 보조의 1
  1437. for(var i = 0; i < ds_init_cmb_sdt1.getRowCount(); i++){
  1438. if( ds_init_cmb_sdt1.getColumn(i, "usernm") == arrAssistantDoctorList[0].getTrim() ){
  1439. //grup_base.cmb_sdt1.index = i;
  1440. var userid = ds_init_cmb_sdt1.getColumn(i, "userid");
  1441. var usernm = ds_init_cmb_sdt1.getColumn(i, "usernm");
  1442. grup_base.cmb_sdt1.value = userid;
  1443. var degnitemlevlcd = grup_base.cmb_sdt1.degnitemlevlcd;
  1444. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1445. ds_data_recitem.setColumn(nFindRow, "rectermcd" , userid);
  1446. ds_data_recitem.setColumn(nFindRow, "rectermnm" , usernm);
  1447. }
  1448. }
  1449. // 보조의 2 ~ 4
  1450. for(var i = 1; i < arrAssistantDoctorList.length; i++){
  1451. objItem = grup_base.components["ipt_sdt"+eval(i+1)];
  1452. if(!utlf_isNull(objItem)){
  1453. objItem.value = arrAssistantDoctorList[i].getTrim();
  1454. var degnitemlevlcd = objItem.degnitemlevlcd;
  1455. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  1456. ds_data_recitem.setColumn(nFindRow, "reccnts", arrAssistantDoctorList[i].getTrim());
  1457. }
  1458. }
  1459. }
  1460. }
  1461. /****************************************************************************************
  1462. * Function : fGetMedr
  1463. * Description : 예방적 항생제 미투약 리스트 띄우기 20140124 이윤주
  1464. * retrun type :
  1465. ****************************************************************************************/
  1466. function fGetMedr(){
  1467. var mibimedrcnt = ds_hidden.getColumn(0, "mibimedrcnt");
  1468. if (mibimedrcnt == 0) {
  1469. sysf_messageBox("항생제 투약미비건수가 없습니다","I999");
  1470. return;
  1471. }
  1472. var tmp = sysf_getGlobalVariable("operation");
  1473. var operation = sysf_getGlobalVariable("operation").split("▩")[1];
  1474. if(!utlf_isNull(operation)){
  1475. opno = operation.split("▦")[0];
  1476. pid = operation.split("▦")[5];
  1477. todd = operation.split("▦")[8];
  1478. var fromdd = (todd.toDate()).getAddDate(-1, "D");
  1479. fromdd = fromdd.getDateFormat();
  1480. frmf_setParameter("SMMNR00600_gbn", "dr");
  1481. frmf_setParameter("SMMNR00600_pid", pid);
  1482. frmf_setParameter("SMMNR00600_opdate", todd);
  1483. frmf_setParameter("SMMNR00600_oprsrvno", opno);
  1484. frmf_open("SMMNR00600", "SMMNR00600", null, null, null, null, null, null, null, null, null, null, "M");
  1485. // SMMNR00600 화면에서 sysf_setGlobalVariable("operation") 변경되는지 확인필요.
  1486. sysf_setGlobalVariable("operation", tmp);
  1487. fGetMibiMedrCnt();
  1488. }
  1489. }
  1490. /****************************************************************************************
  1491. * Function : fGetMibiMedrCnt
  1492. * Description : 예방적 항생제 미투약 리스트 띄우기 20140124 이윤주
  1493. * retrun type :
  1494. ****************************************************************************************/
  1495. function fGetMibiMedrCnt(){
  1496. var tmp = sysf_getGlobalVariable("operation");
  1497. operation = sysf_getGlobalVariable("operation").split("▩")[1];
  1498. if(!utlf_isNull(operation)){
  1499. opno = operation.split("▦")[0];
  1500. todd = operation.split("▦")[8];
  1501. var fromdd = (todd.toDate()).getAddDate(-1, "D");
  1502. fromdd = fromdd.getDateFormat();
  1503. var sSendDs = dsf_createDsRow("ds_send_mibi", [{col:"pid", type:"string", size:256, val:ds_data_paminfo.getColumn(0, "pid")}
  1504. , {col:"orddd", type:"string", size:256, val:ds_data_paminfo.getColumn(0, "indd")}
  1505. , {col:"cretno", type:"string", size:256, val:ds_data_paminfo.getColumn(0, "cretno")}
  1506. , {col:"fromdd", type:"string", size:256, val:fromdd}
  1507. , {col:"todd", type:"string", size:256, val:todd}]);
  1508. // var objSendDs:Dataset = new Dataset;
  1509. // objSendDs = this.objects[sSendDs];
  1510. var sRtnDs = dsf_createDs("ds_hidden", [{col:"mibimedrcnt", type:"string", size:256}]);
  1511. var oParam = {};
  1512. oParam.id = "TRMMR06001";
  1513. oParam.service = "medirecapp.PrgmMediRec";
  1514. oParam.method = "reqGetMibiMedrCnt";
  1515. oParam.inds = "req="+sSendDs;
  1516. oParam.outds = sRtnDs+"=mibimedrcnt";
  1517. oParam.async = true;
  1518. oParam.progress = false;
  1519. oParam.callback = "cf_TRMMR06001";
  1520. tranf_submit(oParam);
  1521. sysf_setGlobalVariable("operation", tmp);
  1522. }
  1523. }
  1524. function cf_TRMMR06001(sSvcId, nErrorCode, sErrorMsg) {
  1525. if(nErrorCode < 0) return;
  1526. }
  1527. ]]></Script>