MMR00100.js 85 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670
  1. /**
  2. * @desc : 초기 화면 설정
  3. * @id :
  4. * @event : xforms-ready
  5. * @return : void
  6. * @authur : 박종훈
  7. */
  8. function fReadyForm_old()
  9. {
  10. ivw_loader.attribute("top") = 30;
  11. ivw_loader.attribute("height") = 740;
  12. ivw_loader.src = "../../../emr/medirecweb/xrw/SSMMR01100_서식로더.xrw";
  13. ivw_patsmm.src = "../../../emr/medirecweb/xrw/SSMMR04800_진료요약기록.xrw";
  14. ivw_loader.window.javascript.gMediRecMain = true;
  15. ivw_loader.window.javascript.gIsCashedFormDegn = true;
  16. //ivw_patsmm.window.javascript.fResizeGrup("1", parseInt(ivw_patsmm.attribute("height")), parseInt(ivw_patsmm.attribute("width")));
  17. ivw_loader.window.javascript.fInitPage(true, true, parseInt(ivw_loader.attribute("height")));
  18. ivw_loader.window.javascript.afterSaveExeFuncNm = "fRefMediRecList";
  19. grd_medireclist.mergecol(grd_medireclist.colref("formrecdd")) = true;
  20. fReadyFormInitData();
  21. model.setValue("/root/init/reqmedireclist/diffdt", 12); //검색 디폴트 12개월
  22. fAddDateReq("today");
  23. model.setValue("/root/send/reqmedireclist/formrecdeptcd", getUserInfo("dutplcecd"));
  24. model.setValue("/root/send/reqmedireclist/chosflag", "A");
  25. model.setValue("/root/hidden/openform/degnid", getUserInfo("usernm"));
  26. model.refresh();
  27. // if (window.document.location == "C:/CMCProject/application/webapps/emr/medirecweb/xrw/" || window.document.location == "D:/CMCProject/application/webapps/emr/medirecweb/xrw/")
  28. // {// TFViewer로 생성시에 환자세팅을 위하여...
  29. // fTmpInitPamInfo("O");
  30. // //fOpenNewForm("0000000532");
  31. // }
  32. // else
  33. // {
  34. // fInitRecPamInfo();
  35. // }
  36. fInitRecPamInfo();
  37. var nodeList = model.instances(0).selectNodes("/root/main/mainlist/medireclist");
  38. if (nodeList.length > 0)
  39. {
  40. fShowMediRecCnt(grd_medireclist.valueMatrix(1, grd_medireclist.colref("formrecseq")));
  41. }
  42. }
  43. /**
  44. * @desc : 환자요약 화면 설정
  45. * @id :
  46. * @event :
  47. * @return : void
  48. * @authur : 박종훈
  49. */
  50. gIsSmmFst = "Y";
  51. function fSetPatSmm(visible)
  52. {
  53. if (visible)
  54. {
  55. ivw_patsmm.window.javascript.fInitalize();
  56. if (! ivw_patsmm.visible)
  57. {
  58. ivw_loader.attribute("top") = 215;
  59. ivw_loader.attribute("height") = 553;
  60. }
  61. }
  62. else
  63. {
  64. //ivw_patsmm.visible = false;
  65. ivw_loader.attribute("top") = 30;
  66. ivw_loader.attribute("height") = 740;
  67. }
  68. if (ivw_patsmm.visible != visible)
  69. {
  70. ivw_patsmm.visible = visible;
  71. ivw_loader.window.javascript.fInitPage(true, true, parseInt(ivw_loader.attribute("height")));
  72. if (gIsSmmFst == "Y") //처음 오픈시에만 사이즈 조절
  73. {
  74. ivw_patsmm.window.javascript.fResizeGrup("1", parseInt(ivw_patsmm.attribute("height")), parseInt(ivw_patsmm.attribute("width")));
  75. gIsSmmFst = "N";
  76. }
  77. }
  78. }
  79. function fSetRecItemValueBydegnitemlevlcd(reciteminfo)
  80. {
  81. return ivw_loader.window.javascript.fSetRecItemValue_MMR01100(reciteminfo);
  82. }
  83. /**
  84. * @desc : 진료기록 리스트 조회조건의 진료과 조회 및 서식즐겨찾기 조회
  85. * 2010.04.13 dhkim 기간옵션 조회 추가
  86. * @id :
  87. * @event :
  88. * @return : void
  89. * @authur : 박종훈
  90. */
  91. function fReadyFormInitData()
  92. {
  93. mmbfGetDeptCodeComboList("/root/send/reqdeptlist", "/root/init/deptlist", "A");
  94. sortNodeList("/root/init/deptlist/dept", "depthngnm", "asc"); // 가나다 순으로 정리되도록 수정.
  95. addComboItem("cbo_deptlist", "- 전체 -", "ALL", "above" );
  96. fFavorRefresh("refresh"); //즐겨찾기 조회
  97. //2010.04.12 dhkim 기간옵션 조회
  98. fGetUserEnvOcsOrdAnsw("/root/send/reqdata", "/root/envinit/srchday", "024");
  99. var srchday = model.getValue("/root/envinit/srchday/answcnt");
  100. switch(srchday)
  101. {
  102. case "001" :
  103. model.setValue("/root/init/reqmedireclist/diffdt", "1");
  104. break;
  105. case "002" :
  106. model.setValue("/root/init/reqmedireclist/diffdt", "3");
  107. break;
  108. case "003" :
  109. model.setValue("/root/init/reqmedireclist/diffdt", "6");
  110. break;
  111. case "004" :
  112. model.setValue("/root/init/reqmedireclist/diffdt", "9");
  113. break;
  114. case "005" :
  115. model.setValue("/root/init/reqmedireclist/diffdt", "12");
  116. break;
  117. case "006" :
  118. model.setValue("/root/init/reqmedireclist/diffdt", "24");
  119. break;
  120. case "007" :
  121. model.setValue("/root/init/reqmedireclist/diffdt", "36");
  122. break;
  123. case "008" :
  124. model.setValue("/root/init/reqmedireclist/diffdt", "48");
  125. break;
  126. case "009" :
  127. model.setValue("/root/init/reqmedireclist/diffdt", "60");
  128. break;
  129. default :
  130. model.setValue("/root/init/reqmedireclist/diffdt", "12");
  131. break;
  132. }
  133. combo4.refresh();
  134. // 2013.08.28 CYW
  135. fGetUserEnvOcsOrdAnsw("/root/send/reqdata", "/root/envinit/btnviewflag" , "041"); // 진료기록메인의 기록조회 디폴트 설정(버튼View)
  136. fGetUserEnvOcsOrdAnsw("/root/send/reqdata", "/root/envinit/mainyn" , "042"); // 진료기록메인의 기록조회 디폴트 설정(공통기록만보기)
  137. fGetUserEnvOcsOrdAnsw("/root/send/reqdata", "/root/envinit/rechfview" , "043"); // 진료기록메인의 기록조회 디폴트 설정(기록Header/Footer보기)
  138. // 2013.10.28 CYW
  139. fGetUserEnvOcsOrdAnsw("/root/send/reqdata", "/root/envinit/painhide" , "048"); // 진료기록메인의 기록조회 디폴트 설정(통증숨김여부)
  140. // 2014.05.19 엄영만
  141. fGetUserEnvOcsOrdAnsw("/root/send/reqdata", "/root/envinit/deptmemopopyn", "054"); // 진료기록메인의 타과메모 팝업 여부
  142. // 통증숨김여부
  143. if( model.getValue("/root/envinit/painhide/answcnt") == "002" ){
  144. model.setValue("/root/temp/painhideflag", "true");
  145. }else{
  146. model.setValue("/root/temp/painhideflag", "false");
  147. }
  148. // 버튼보기여부
  149. if( model.getValue("/root/envinit/btnviewflag/answcnt") == "002" ){
  150. model.setValue("/root/temp/btnviewflag", "true");
  151. grp_btnbox.visible = false;
  152. group3.attribute("top") = "55";
  153. swt_left.attribute("top") = "80";
  154. swt_left.attribute("height") = "695";
  155. grd_medireclist.attribute("height") = "690";
  156. ivw_reccnts.attribute("height") = "690";
  157. ivw_reccnts.grd_medirec.attribute("style") = "left:0px; top:0px; width:583px; height:688px; background-position:center; border-style:none;";
  158. ivw_reccnts.grd_medirec.refresh();
  159. }else{
  160. model.setValue("/root/temp/btnviewflag", "false");
  161. }
  162. // 공통 기록지만 보기여부
  163. if( model.getValue("/root/envinit/mainyn/answcnt") == "002" ){
  164. model.setValue("/root/temp/btnmainyn", "true");
  165. }else{
  166. model.setValue("/root/temp/btnmainyn", "false");
  167. }
  168. // 기록내용 Header/Footer 보기여부
  169. if( model.getValue("/root/envinit/rechfview/answcnt") == "002" ){
  170. model.setValue("/root/temp/rechfview", "true");
  171. }else{
  172. model.setValue("/root/temp/rechfview", "false");
  173. }
  174. bool_btnmainyn.refresh();
  175. bool_btnviewflag.refresh();
  176. bool_rechfview.refresh();
  177. // 2013.08.28 CYW
  178. //2010.04.26 dhkim - 간호정보조사지 서울성모만 버튼 visible처리
  179. //기관코드(간호공통기준자료테이블에서 가져옴)
  180. var pCode = "'077'"; // 조회할 CdGrupID 코드정보(077:각기관코드정보)
  181. var pDate = getCurrentDate(); //조회기준일자
  182. fGetNursHardCdInfo_MMR00100(pCode, pDate);
  183. if(getUserInfo("dutplceinstcd") == model.getValue("/root/code_mmr00100/codeinfo/codelist[supcdid='01']/cdid")){
  184. btn_nursinfo.visible = true;
  185. }else{
  186. btn_nursinfo.visible = false;
  187. }
  188. }
  189. /**
  190. * @desc : 진료기록 메인의 왼쪽 스위치에 따른 함수 호출
  191. * @id :
  192. * @event :
  193. * @return : void
  194. * @authur : 박종훈
  195. */
  196. function fRefMain()
  197. {
  198. switch (swt_left.selectedIndex)
  199. {
  200. case 0:
  201. fRefMediRecList();
  202. break;
  203. case 1:
  204. //2014/03/17 이정택 추가
  205. fRefMediRecList();
  206. //2014/03/17 이정택 추가
  207. fShowMediRecCnt("");
  208. break;
  209. case 2:
  210. fShowOrdCnt(); //처방내역 조회
  211. break;
  212. default:
  213. // ivew 조건 설정 (치과 외래진료일 경우 치과기록 사용 : 최원돈 20101222 경북대)
  214. if ( btn_tab_denti.visible
  215. && ivw_denti.src != ""
  216. && btn_tab_denti.selected)
  217. {
  218. ivw_denti.window.javascript.fGetrecinfo();
  219. }
  220. break;
  221. }
  222. //2013.11.28 김영기 수진일자와 기록일자가 다를경우 색상변화
  223. fSetColorByNotSameOrdddandRecdd(grd_medireclist);
  224. //이윤주 추가(20150703)
  225. var rsrvflag = model.getValue("/root/main/paminfo/rsrvflag");
  226. var orddd = model.getValue("/root/main/paminfo/orddd");
  227. btn_hieview.attribute("visibility") = "hidden";
  228. if (rsrvflag == "V" ) {
  229. btn_hieview.attribute("visibility") = "visible"; //진료교류
  230. if (orddd == getCurrentDate()) {
  231. btn_hieview.dispatch("onclick");
  232. }
  233. }
  234. }
  235. /**
  236. * @desc : 미리보기 조회
  237. * @id :
  238. * @event :
  239. * @return : void
  240. * @authur : 박종훈
  241. * @parameter : formrecseq - 검색하고자 하는 seq번호
  242. findrowInfo - 원하는 그룹 search(같은서식 검색으로 seq가 구분자로 멀티로 구성되어 넘어옴.)
  243. * 2010/01/04 hkjoo 수정
  244. */
  245. function fShowMediRecCnt(formrecseq, arrFormrecseq)
  246. {
  247. model.addlog("fShowMediRecCnt_start");
  248. if (model.getValue("/root/main/paminfo/pid") == "")
  249. {
  250. return;
  251. }
  252. //cyw
  253. fGrdSortFlag();
  254. var cond = new COMN_CONT_RECCNTS();
  255. var instance = document.models(0).instances(0);
  256. var nodeReclist = instance.selectNodes("/root/main/mainlist/medireclist");
  257. var nodeReclistlength = nodeReclist.length;
  258. cond.pid = model.getValue("/root/main/paminfo/pid");
  259. cond.formrecdeptcd = model.getValue("/root/send/reqmedireclist/formrecdeptcd");
  260. cond.chosflag = model.getValue("/root/send/reqmedireclist/chosflag");
  261. cond.rechfview = model.getValue("/root/temp/rechfview");
  262. cond.mainyn = model.getValue("/root/temp/btnmainyn"); // 2013.09.25 CYW
  263. cond.recformsort = model.getValue("/root/temp/recformsort"); // 2013.10.22 CYW
  264. cond.painhideflag = model.getValue("/root/temp/painhideflag"); // 2013.10.28 CYW
  265. cond.notprogress = model.getValue("/root/temp/notprogress"); // 2014.05.30 이윤주
  266. cond.reclistlength = nodeReclistlength;
  267. //2014/02/20 이정택 추가
  268. // 페이징 여부를 넘겨줌
  269. if(formrecseq!="" && formrecseq!=null){
  270. cond.pagingyn = "N";
  271. ivw_reccnts.window.javascript.btn_paging.visible=false;
  272. }else{
  273. cond.formrecseq="";
  274. cond.pagingyn = "Y";
  275. cond.pagecnt = "1";
  276. }
  277. //2014/02/20 이정택 추가
  278. if (formrecseq == ""){
  279. cond.recfromdt = model.getValue("/root/init/reqmedireclist/recfromdt");
  280. cond.rectodt = model.getValue("/root/init/reqmedireclist/rectodt");
  281. }else{
  282. cond.recfromdt = "";
  283. cond.rectodt = "";
  284. }
  285. //2010/01/04 hkjoo 추가
  286. if ( arrFormrecseq != null )
  287. cond.arrFormrecseq = arrFormrecseq;
  288. ////////////////////////
  289. cond.formrecseq = formrecseq;
  290. ivw_reccnts.window.javascript.fRefMediRecCnts(cond);
  291. swt_left.selectedIndex = 1;
  292. button15.selected = true;
  293. fSetIviewVisible(false); // ivew 화면 설정 (치과 외래진료일 경우 치과기록 사용 : 최원돈 20101223 경북대)
  294. model.addlog("fShowMediRecCnt_end");
  295. }
  296. /**
  297. * @desc : 미리보기 조회(XSLT)
  298. * @id :
  299. * @event :
  300. * @return : void
  301. * @authur : 박종훈
  302. */
  303. function fShowMediRecCntByXslt(signno, formcd)
  304. {
  305. model.resetInstanceNode("/root/send/xslsend");
  306. model.removeNodeset("/root/tmpinicert");
  307. model.makeValue("/root/send/xslsend/signno", signno);
  308. if(submit("TRMRI02401"))
  309. {
  310. var certnodeList = instance1.selectNodes("/root/tmpinicert/iniinfo");
  311. var foldernm = "C:/CertrecPrnt";
  312. if (certnodeList.length <= 0)
  313. return;
  314. fExistFolder(foldernm);
  315. var emrpath = "";
  316. var emrorddate = "";
  317. var emrformnm = "";
  318. var emrformcd = "";
  319. var emrdeptnm = "";
  320. var emrdeptcd = "";
  321. var emrpage = "";
  322. var emrhiddenmsg = "";
  323. var k = "";
  324. var pid = "";
  325. var ptnm = "";
  326. var deptengabbr = "";
  327. var rgstno = "";
  328. var sa = "";
  329. var disporddd = "";
  330. var orddd = "";
  331. var drid = "";
  332. var roomcd = "";
  333. var ordtype = "";
  334. var chosflag = "";
  335. var orddeptcd = "";
  336. var signflag = "";
  337. var signno = 0;
  338. var formcd = "";
  339. var formnm = "";
  340. var recdt = "";
  341. for(var i = 1; i <= certnodeList.length; i++)
  342. {
  343. signno = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/signno");
  344. formcd = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/formcd");
  345. formnm = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/formnm");
  346. recdt = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/recdt");
  347. trans = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/trans");
  348. pid = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/pid");
  349. ptnm = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/ptnm");
  350. deptengabbr = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/deptengabbr");
  351. rgstno = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/rgstno");
  352. sa = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/sa");
  353. disporddd = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/disporddd");
  354. orddd = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/orddd");
  355. drid = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/drid");
  356. roomcd = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/roomcd");
  357. ordtype = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/ordtype");
  358. chosflag = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/chosflag");
  359. orddeptcd = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/orddeptcd");
  360. signflag = model.getValue("/root/tmpinicert/iniinfo[" + i + "]/signflag");
  361. model.makeValue("/root/prthist[" + i + "]/pid", pid);
  362. model.makeValue("/root/prthist[" + i + "]/signno", signno);
  363. model.makeValue("/root/prthist[" + i + "]/reckind", "01");
  364. model.makeValue("/root/prthist[" + i + "]/readprtflag", "P");
  365. model.makeValue("/root/prthist[" + i + "]/formcd", formcd);
  366. model.makeValue("/root/prthist[" + i + "]/signflag", signflag);
  367. model.makeValue("/root/prthist[" + i + "]/orddd", orddd);
  368. model.makeValue("/root/prthist[" + i + "]/chosflag", chosflag);
  369. model.makeValue("/root/prthist[" + i + "]/refusge", "");
  370. model.makeValue("/root/prthist[" + i + "]/refremark", "");
  371. if(trans == "")
  372. {
  373. trans = "<!--% \n %BASE " + getDomain() + "/himed/webapps/emr/ \n %INCLUDE recmngtweb/xrw/cmc.ini \n VAR_PAT_NUM = " + pid + " \n VAR_PAT_NAME = " + ptnm + " \n %-->\n" + "<html><head><title>출력화면 구현중입니다.</title></head><body>출력화면 구현중입니다.</body></html>"
  374. //alert("출력용 서식 디자인이 존재하지 않습니다.");
  375. //return;
  376. }
  377. else
  378. {
  379. trans = "<!--% \n %BASE " + getDomain() + "/himed/webapps/emr/ \n %INCLUDE recmngtweb/xrw/cmc.ini \n VAR_PAT_NUM = " + pid + " \n VAR_PAT_NAME = " + ptnm + " \n %-->\n" + trans
  380. }
  381. obj_cvrt.InputPath = "wide://" + trans;
  382. obj_cvrt.SaveFile(foldernm + "/" + signno + "_" + "####.jpg");
  383. pageno = obj_cvrt.TotalPage;
  384. for(var j = 1; j <= pageno; j++)
  385. {
  386. k = ("" + j + "").getLeftPad(4, "0");
  387. emrpath += foldernm + "/" + signno + "_" + k + ".jpg|";
  388. emrorddate += orddd + "|";
  389. emrformnm += formnm + "|";
  390. emrformcd += formcd + "|";
  391. emrdeptnm += deptengabbr + "|";
  392. emrdeptcd += orddeptcd + "|";
  393. emrpage += j+"|";
  394. emrhiddenmsg += formcd + "▦" + signno + "▦" + formnm + "▦" + chosflag + "▦" +pid + "▦" + ptnm + "▦" + deptengabbr
  395. + "▦" + sa + "▦" + rgstno + "▦" + disporddd + "▦" + drid + "▦" + roomcd + "▦" + disporddd + "▦" + ordtype + "▦" + "E" +"|";
  396. }
  397. }
  398. model.removeNodeset("/root/temp/inisend");
  399. model.resetInstanceNode("/root/imgrec/iemr");
  400. //iviewerIemr.window.javascript.resetInstance_EMR();
  401. //이미지경로
  402. model.makeValue("/root/temp/inisend/emrpath", emrpath.substring(0, emrpath.length - 1));
  403. iviewerIemr.model.setValue("/root/main/emrpath", model.getValue("/root/temp/inisend/emrpath"));
  404. //진료일
  405. model.makeValue("/root/temp/inisend/emrorddate", emrorddate.substring(0, emrorddate.length - 1));
  406. iviewerIemr.model.setValue("/root/main/emrorddate", model.getValue("/root/temp/inisend/emrorddate"));
  407. //서식명
  408. model.makeValue("/root/temp/inisend/emrformnm", emrformnm.substring(0, emrformnm.length - 1));
  409. iviewerIemr.model.setValue("/root/main/emrformnm", model.getValue("/root/temp/inisend/emrformnm"));
  410. //서식코드
  411. model.makeValue("/root/temp/inisend/emrformcd", emrformcd.substring(0, emrformcd.length - 1));
  412. iviewerIemr.model.setValue("/root/main/emrformcd", model.getValue("/root/temp/inisend/emrformcd"));
  413. //진료과
  414. model.makeValue("/root/temp/inisend/emrdeptnm", emrdeptnm.substring(0, emrdeptnm.length - 1));
  415. iviewerIemr.model.setValue("/root/main/emrdeptnm", model.getValue("/root/temp/inisend/emrdeptnm"));
  416. //진료과코드
  417. model.makeValue("/root/temp/inisend/emrdeptcd", emrdeptcd.substring(0, emrdeptcd.length - 1));
  418. iviewerIemr.model.setValue("/root/main/emrdeptcd", model.getValue("/root/temp/inisend/emrdeptcd"));
  419. //페이지
  420. model.makeValue("/root/temp/inisend/emrpage", emrpage.substring(0, emrpage.length - 1));
  421. iviewerIemr.model.setValue("/root/main/emrpage", model.getValue("/root/temp/inisend/emrpage"));
  422. model.makeValue("/root/temp/inisend/emrhiddenmsg", emrhiddenmsg.substring(0, emrhiddenmsg.length - 1));
  423. iviewerIemr.model.setValue("/root/main/emrhiddenmsg", model.getValue("/root/temp/inisend/emrhiddenmsg"));
  424. var iemrNode = instance1.selectSingleNode("/root/imgrec/iemr");
  425. iviewerIemr.window.javascript.searchChart(iemrNode);
  426. if (iviewerIemr.window.javascript.downloadChart() == true)
  427. {
  428. iviewerIemr.window.javascript.setupChart("ChartView");
  429. }
  430. }
  431. model.toggle("case5");
  432. button16.selected = true;
  433. }
  434. /**
  435. * @desc : 진료기록 리스트 조회조건 시작일, 종료일 셋팅
  436. * @id :
  437. * @event :
  438. * @return : void
  439. * @authur : 박종훈
  440. */
  441. function fAddDateReq(diffFlag)
  442. {
  443. var frdd = model.getValue("/root/init/reqmedireclist/recfromdt");
  444. var todd = model.getValue("/root/init/reqmedireclist/rectodt");
  445. var srcdd = new Date();
  446. var destdd = new Date();
  447. var diffdt;
  448. if (diffFlag == "next")
  449. {
  450. srcdd = todd.toDate();
  451. srcdd = srcdd.getAddDate(1, "D");
  452. frdd = srcdd.getDateFormat();
  453. diffdt = parseInt(model.getValue("/root/init/reqmedireclist/diffdt")) * 1;
  454. destdd = srcdd.getAddDate(diffdt, "M");
  455. todd = destdd.getDateFormat();
  456. }
  457. else if (diffFlag == "back")
  458. {
  459. srcdd = frdd.toDate();
  460. srcdd = srcdd.getAddDate(-1, "D");
  461. todd = srcdd.getDateFormat();
  462. diffdt = parseInt(model.getValue("/root/init/reqmedireclist/diffdt")) * -1;
  463. destdd = srcdd.getAddDate(diffdt, "M");
  464. frdd = destdd.getDateFormat();
  465. }
  466. else if (diffFlag == "today")
  467. {
  468. todd = getCurrentDate();
  469. var today = new Date();
  470. var frday = new Date();
  471. var diffdt = parseInt(model.getValue("/root/init/reqmedireclist/diffdt")) * -1;
  472. frday = today.getAddDate(diffdt , "M");
  473. frdd = frday.getDateFormat();
  474. }
  475. else
  476. {
  477. var today = todd.toDate();
  478. var frday = new Date();
  479. var diffdt = parseInt(model.getValue("/root/init/reqmedireclist/diffdt")) * -1;
  480. frday = today.getAddDate(diffdt , "M");
  481. frdd = frday.getDateFormat();
  482. }
  483. model.setValue("/root/init/reqmedireclist/recfromdt", frdd);
  484. model.setValue("/root/init/reqmedireclist/rectodt", todd);
  485. ipt_formrecdtfr.refresh();
  486. ipt_formrecdtto.refresh();
  487. }
  488. function fGetUserComnFormCd(srcformcd)
  489. {
  490. selnode = instance1.selectSingleNode("/root/main/tmpformlist/endformlist[srcformcd='"+srcformcd+"' and formuseflag='D' and formdeptcd='"+ getUserInfo("dutplcecd") +"']/formcd");
  491. if (selnode.text == "")
  492. {
  493. selnode = instance1.selectSingleNode("/root/main/tmpformlist/endformlist[srcformcd='"+srcformcd+"' and formuseflag='C']/formcd");
  494. }
  495. return selnode.text;
  496. }
  497. /**
  498. * @desc : 환자 원무 정보 셋팅(개발 환경이 로컬일 경우)
  499. * @id :
  500. * @event :
  501. * @return : void
  502. * @authur : 박종훈
  503. */
  504. //function fTmpInitPamInfo(chosflag)
  505. //{
  506. // // TF viewer로 로딩시에 환자정보 세팅
  507. // if (window.document.location != "C:/CMCProject/application/webapps/emr/medirecweb/xrw/" && window.document.location != "D:/CMCProject/application/webapps/emr/medirecweb/xrw/") return;
  508. // if (chosflag == "O")
  509. // {
  510. // model.makeValue("/root/main/paminfo/pid", "17419028");
  511. // model.makeValue("/root/main/paminfo/orddd", "20080303");
  512. // model.makeValue("/root/main/paminfo/cretno", "360043723");
  513. // model.makeValue("/root/main/paminfo/ioflag", "O");
  514. // model.makeValue("/root/main/paminfo/fsexamflag", "R");
  515. // model.makeValue("/root/main/paminfo/orddeptcd", "2060000000");
  516. // model.makeValue("/root/main/paminfo/orddrid", "93015133");
  517. // }
  518. // else if (chosflag == "I")
  519. // {
  520. // model.makeValue("/root/main/paminfo/pid", "16377040");
  521. // model.makeValue("/root/main/paminfo/indd", "20071007");
  522. // model.makeValue("/root/main/paminfo/cretno", "22532");
  523. // model.makeValue("/root/main/paminfo/ioflag", "I");
  524. // model.makeValue("/root/main/paminfo/orddeptcd", "2010000000");
  525. // model.makeValue("/root/main/paminfo/medispclid", "EMR");
  526. // model.makeValue("/root/main/paminfo/atdoctid", "EMR");
  527. // }
  528. // else if (chosflag == "E")
  529. // {
  530. // model.makeValue("/root/main/paminfo/pid", "19862");
  531. // model.makeValue("/root/main/paminfo/indd", "20070808");
  532. // model.makeValue("/root/main/paminfo/cretno", "1");
  533. // /*model.makeValue("/root/main/paminfo/pid", "20143");
  534. // model.makeValue("/root/main/paminfo/indd", "20070816");
  535. // model.makeValue("/root/main/paminfo/cretno", "1");*/
  536. //
  537. // model.makeValue("/root/main/paminfo/ioflag", "E");
  538. // model.makeValue("/root/main/paminfo/orddeptcd", "2280000000");
  539. // model.makeValue("/root/main/paminfo/medispclid", "10301864");
  540. // model.makeValue("/root/main/paminfo/atdoctid", "-");
  541. // }
  542. //
  543. // model.makeValue("/root/temp/initpatinfo/localyn", "Y");
  544. //
  545. // fInitRecPamInfo();
  546. //}
  547. /**
  548. * @desc : 환자 원무 정보 셋팅전 기록 저장여부 체크
  549. * @id :
  550. * @event :
  551. * @return : void
  552. * @authur : 박종훈
  553. */
  554. function fPrevInitRecPamInfo()
  555. {
  556. if (ivw_loader.src != "" && ivw_loader.ivw_base.src != "")
  557. {
  558. var rtn = "N";
  559. rtn = ivw_loader.window.javascript.fCheckChangeDataForCosign();
  560. if (rtn != "N") //수정데이터가 있는 경우
  561. {
  562. var sPid = model.getValue("/root/main/paminfo/pid");
  563. var sPnm = model.getValue("/root/main/paminfo/hngnm");
  564. var rtnmsg = messageBox("기록내용 중 저장되지 않은 내용이 있습니다. " + sPid + " " + sPnm + " 환자의 기록을", "Q002");
  565. setParameter("SSMMR01100_recsavechk", "Y");
  566. if (rtnmsg == 6)
  567. {
  568. var saveRtn = ivw_loader.window.javascript.fClickSave("Y");
  569. if (!saveRtn)
  570. {
  571. return false;
  572. }
  573. else
  574. {
  575. //2010.03.24 안치원 - 환자선택시 저장후에 저장완료 메세지창 뜨지 않게 수정
  576. //messageBox(sPid + " " + sPnm +" 환자의 기록으로 저장되었습니다.", "I", "");
  577. }
  578. }
  579. }
  580. }
  581. //2010.04.26 dhkim - 진료대상자 선택시 기존에 열려있던 간호정보조사지 팝업을 모두 닫음.
  582. fCloseNursrecPop();
  583. return true;
  584. }
  585. /**
  586. * @desc : 환자 원무 정보 셋팅
  587. * @id :
  588. * @event :
  589. * @return : void
  590. * @authur : 박종훈
  591. */
  592. function fInitRecPamInfo()
  593. {
  594. //환자정보 새로 바뀔시 기록 수정을 위해 셋팅되어있던 파리미터 clear
  595. clearParameter("SSMMR01200_Param_formcd");
  596. clearParameter("SSMMR01200_Param_recseq");
  597. isFstListSrch = "Y";
  598. try
  599. {
  600. // if (model.getValue("/root/temp/initpatinfo/localyn") != "Y")
  601. // {
  602. // var node = getGlobalVariable("paminfo");
  603. //
  604. // model.removeNodeset("/root/main/paminfo");
  605. // setCSVToNode("/root/main", node, "paminfo");
  606. // }
  607. // model.makeValue("/root/temp/initpatinfo/localyn", "N");
  608. var node = getGlobalVariable("paminfo");
  609. model.removeNodeset("/root/main/paminfo");
  610. setCSVToNode("/root/main", node, "paminfo");
  611. model.setValue("/root/send/reqinitinfo/pid", model.getValue("/root/main/paminfo/pid"));
  612. model.setValue("/root/send/reqinitinfo/cretno", model.getValue("/root/main/paminfo/cretno"));
  613. model.setValue("/root/send/reqinitinfo/chosflag", model.getValue("/root/main/paminfo/ioflag"));
  614. if (model.getValue("/root/send/reqinitinfo/chosflag") == "O" || model.getValue("/root/send/reqinitinfo/chosflag") == "S")
  615. {
  616. button24.disabled = true;
  617. model.setValue("/root/send/reqinitinfo/orddd", model.getValue("/root/main/paminfo/orddd"));
  618. }
  619. else
  620. {
  621. button24.disabled = false;
  622. model.setValue("/root/send/reqinitinfo/orddd", model.getValue("/root/main/paminfo/indd"));
  623. }
  624. fFavorRefresh("chosflag");
  625. /*
  626. * 진료대상자리스트의 외래out,입원in,응급er,수술op,의뢰cnst 구분값 세팅
  627. */
  628. var tabflag = "";
  629. var oprsrvno = "";
  630. var wndobj = getOpenWindow("SMMMO04100");
  631. if (wndobj != null)
  632. {
  633. tabflag = wndobj.javascript.getParameter("SMMMO04100_medirec_caseid");
  634. }
  635. if (tabflag == "op")
  636. {
  637. var operation = getGlobalVariable("operation").split("▩")[1];
  638. if(operation != null && operation != ""){
  639. oprsrvno = operation.split("▦")[0];
  640. }
  641. }
  642. model.makeValue("/root/send/reqinitinfo/tabflag", tabflag);
  643. model.makeValue("/root/send/reqinitinfo/patflag", model.getValue("/root/main/paminfo/autoformcd"));
  644. model.makeValue("/root/send/reqinitinfo/formrecdeptcd", model.getValue("/root/send/reqmedireclist/formrecdeptcd"));
  645. model.makeValue("/root/send/reqinitinfo/oprsrvno", oprsrvno);
  646. ivw_reccnts.window.javascript.fClear();
  647. model.removeNodeset("/root/main/mainlist/medireclist");
  648. /*
  649. * 의사별미비리스트, CP 인터페이스 formcd및, formrecseq 세팅, formrecdd 세팅
  650. */
  651. var unprepformcd = getGlobalVariable("linked_formcd", "emr");
  652. var unprepformrecseq = getGlobalVariable("linked_formrecseq", "emr");
  653. var unprepformrecdd = getGlobalVariable("linked_formrecdd", "emr");
  654. // 글로벌 파라미터 초기화
  655. setGlobalVariable("linked_formcd", "", "emr") ;
  656. setGlobalVariable("linked_formrecseq", "", "emr") ;
  657. setGlobalVariable("linked_formrecdd", "", "emr") ; // 추후 수정 : 해당 위치에 셋팅 후 초기화
  658. var cpformcd = getGlobalVariable("linked_cpformcd", "emr");
  659. var cpformrecseq = getGlobalVariable("linked_cpformrecseq", "emr");
  660. var cpformrecdd = getGlobalVariable("linked_cpformrecdd", "emr");
  661. // 글로벌 파라미터 초기화
  662. setGlobalVariable("linked_cpformcd", "", "emr") ;
  663. setGlobalVariable("linked_cpformrecseq", "", "emr") ;
  664. setGlobalVariable("linked_cpformrecdd", "", "emr") ; // 추후 수정 : 해당 위치에 셋팅 후 초기화
  665. if(unprepformcd != "") //미비
  666. {
  667. setParameter("SSMMR01100_cert_Cnfm", "Y"); //미비기록의 경우 인증서를 한번만 띄워주기 위한 param(2008-12-29 : 박종훈 추가)
  668. if(unprepformrecseq != "")
  669. {
  670. fOpenRecForm(unprepformcd, unprepformrecseq);
  671. fShowMediRecCnt(unprepformrecseq);
  672. }
  673. else
  674. {
  675. ivw_loader.window.javascript.setParameter("SSMMR01100_formrecdd", unprepformrecdd);
  676. fOpenNewForm(unprepformcd);
  677. }
  678. unprepformcd = "";
  679. unprepformrecseq = "";
  680. unprepformrecdd = "";
  681. }
  682. else if(cpformcd != "") //CP
  683. {
  684. if(cpformrecseq != "")
  685. {
  686. fOpenRecForm(cpformcd, cpformrecseq);
  687. }
  688. else
  689. {
  690. ivw_loader.window.javascript.setParameter("SSMMR01100_formrecdd", cpformrecdd);
  691. fOpenNewForm(cpformcd);
  692. }
  693. cpformcd = "";
  694. cpformrecseq = "";
  695. cpformrecdd = "";
  696. }
  697. else
  698. {
  699. /*
  700. * 기본서식 조회
  701. */
  702. if (submit("TRMMR00102",false))
  703. {
  704. setParameter("srchmemo","Y");
  705. var isOpenNewForm = false;
  706. if (model.getValue("/root/main/initinfo/lastformrecseq") != "")
  707. {
  708. //KNUH_20110208, 주희경, 로그인 시 미리 데이터를 조회해 놓고 copy해서 쓰는 방식으로 변경
  709. //환경설정에서 진료기록메인의 왼쪽화면 디폴트 탭 설정 값을 읽어와 탭설정
  710. var viewerObj = getViewer("sysMessage");
  711. var answvalnm = viewerObj.window.model.getValue(gvOrderBasicInfoPath +"/interface[qestcd='032']/answcnt");
  712. if ( answvalnm == "001" )
  713. {
  714. swt_left.selectedIndex = 0;
  715. button66.selected = true;
  716. fRefMain();
  717. }
  718. else if ( ( model.getValue("/root/main/initinfo/lastformrecseq") > 0 ) )
  719. {
  720. fShowMediRecCnt(model.getValue("/root/main/initinfo/lastformrecseq"));
  721. }
  722. else
  723. {
  724. swt_left.selectedIndex = 0;
  725. button66.selected = true;
  726. fSetIviewVisible(false); // ivew 화면 설정 (치과 외래진료일 경우 치과기록 사용 : 최원돈 20101223 경북대)
  727. }
  728. }
  729. if (model.getValue("/root/main/initinfo/formrecseq") != "")
  730. {
  731. fOpenRecForm(model.getValue("/root/main/initinfo/formcd"), model.getValue("/root/main/initinfo/formrecseq"));
  732. }
  733. else
  734. {
  735. isOpenNewForm = true;
  736. }
  737. if (isOpenNewForm)
  738. {
  739. if (model.getValue("/root/main/initinfo/formcd") == "")
  740. {
  741. ivw_loader.src = "";
  742. ivw_loader.src = "../../../emr/medirecweb/xrw/SSMMR01100_서식로더.xrw";
  743. ivw_loader.window.javascript.fInitPage(true, true, parseInt(ivw_loader.attribute("height")));
  744. //messageBox("기본서식을 알아 오는데 실패했습니다.\n\n서식목록이나 즐겨찾기에서 서식을 선택하시기 바랍니다.", "C", "")
  745. }
  746. else if (model.getValue("/root/main/initinfo/formcd") == "outfstmediform")
  747. {
  748. //messageBox("기존의 초진기록지에 수기작성해 주십시오.", "E", "");
  749. }
  750. else
  751. {
  752. fOpenNewForm(model.getValue("/root/main/initinfo/formcd"));
  753. }
  754. }
  755. }
  756. }
  757. //2009.10.26 안치원 TASK-32482
  758. //서식목록에서 응급환자의 경우 입퇴원요약기록이 안보이게 한다.
  759. //환자의 내원구분이 바뀌면 서식목록을 리로드한다.
  760. var curObj = window.javascript.getOpenWindow("SPMMR01000");
  761. var selectedChosFlag = model.getValue("/root/hidden/selectedChosFlag");
  762. var chosFlag = model.getValue("/root/send/reqinitinfo/chosflag");
  763. if (curObj != null && selectedChosFlag != chosFlag) {
  764. model.makeValue("/root/hidden/selectedChosFlag", chosFlag);
  765. //환자의 내원구분이 바뀌면 서식목록을 닫는다.
  766. //curObj.window.javascript.reloadByRecMain();
  767. curObj.window.close();
  768. }
  769. }
  770. catch (e)
  771. {
  772. //alert("fInitRecPamInfo");
  773. throw e;
  774. }
  775. //2009.11.18 안치원 - 진료대상자리스트의 환자 수진키와 비교한다.
  776. validPamInfo(model.getValue("/root/main/paminfo/pid")
  777. ,model.getValue("/root/main/paminfo/orddd")
  778. ,model.getValue("/root/main/paminfo/cretno"), 1);
  779. //시점 문제로 loader의 oncomnformloadcomplete으로 호출시점 변경
  780. //fOpenPrcpMainWnd();
  781. // 치과기록 버튼 및 초기화 설정 : 최원돈 20101222 경북대
  782. ivw_denti.src="";
  783. ivw_dentifmla.src="";
  784. btn_tab_denti.visible = ( model.getValue("/root/main/paminfo/ioflag") == "O"
  785. && model.getValue("/root/init/dentdept/hardcd[hardcd='" + getUserInfo("dutplcecd") + "']/hardcd") != "");
  786. fSetIviewVisible(false);
  787. }
  788. /**
  789. * @desc : 처방 메인 새로고침
  790. * @id :
  791. * @event :
  792. * @return : void
  793. * @authur : 박종훈
  794. */
  795. function fOpenPrcpMainWnd()
  796. {
  797. var ordpatlistObj = getOpenWindow("SMMMO04100");
  798. if(ordpatlistObj != null)
  799. {
  800. ordpatlistObj.javascript.fOpenPrcpMainWnd();
  801. }
  802. fReadyFormInitData();//2010.04.13 dhkim 기록조회 환경설정내용 새로고침
  803. }
  804. /**
  805. * @desc : CP창에서 기록지 호출
  806. * @id :
  807. * @event :
  808. * @return : void
  809. * @authur : 박종훈
  810. */
  811. function fOpenFormByOther(formcd, formrecseq, calledflag, recdd)
  812. {
  813. if (formrecseq != null && formrecseq != "")
  814. {
  815. fOpenRecForm(formcd, formrecseq, calledflag);
  816. }
  817. else
  818. {
  819. ivw_loader.window.javascript.setParameter("SSMMR01100_formrecdd", recdd);
  820. fOpenNewForm(formcd, calledflag);
  821. }
  822. }
  823. function fCheckSaveRec()
  824. {
  825. return false;
  826. }
  827. /**
  828. * @desc : 기록 목록 조회
  829. * @id :
  830. * @event :
  831. * @return : void
  832. * @authur : 박종훈
  833. */
  834. var isFstListSrch = "Y";
  835. function fRefMediRecList()
  836. {
  837. if (model.getValue("/root/main/paminfo/pid") == "")
  838. {
  839. messageBox("환자정보가 존재하지 않아 진행 ", "E001");
  840. return;
  841. }
  842. model.setValue("/root/send/reqmedireclist/pid", model.getValue("/root/main/paminfo/pid"));
  843. if (model.getValue("/root/main/paminfo/ioflag") == "O")
  844. model.setValue("/root/send/reqmedireclist/orddd", model.getValue("/root/main/paminfo/orddd"));
  845. else
  846. model.setValue("/root/send/reqmedireclist/orddd", model.getValue("/root/main/paminfo/indd"));
  847. model.setValue("/root/send/reqmedireclist/cretno", model.getValue("/root/main/paminfo/cretno"));
  848. model.setValue("/root/send/reqmedireclist/orddeptcd", model.getValue("/root/main/paminfo/orddeptcd"));
  849. model.setValue("/root/send/reqmedireclist/recfromdt", model.getValue("/root/init/reqmedireclist/recfromdt"));
  850. model.setValue("/root/send/reqmedireclist/rectodt", model.getValue("/root/init/reqmedireclist/rectodt"));
  851. model.makeValue("/root/send/reqmedireclist/formcd", "-");
  852. model.makeValue("/root/send/reqmedireclist/mainyn" , model.getValue("/root/temp/btnmainyn") );
  853. model.makeValue("/root/send/reqmedireclist/recformsort" , model.getValue("/root/temp/recformsort") );
  854. model.makeValue("/root/send/reqmedireclist/notprogress" , model.getValue("/root/temp/notprogress") );
  855. submit("TRMMR00101");
  856. var cnt = getNodesetCnt(model, "/root/main/mainlist/visitdept");
  857. if (cnt > 0)
  858. {
  859. var orddd = model.getValue("/root/send/reqmedireclist/orddd");
  860. var cretno = model.getValue("/root/send/reqmedireclist/cretno");
  861. var cnt2 = getNodesetCnt(model, "/root/main/mainlist/medireclist");
  862. if (cnt2 == 0)
  863. {
  864. for (var i = 1; i <= cnt; i++)
  865. {
  866. model.makeValue("/root/main/mainlist/medireclist["+i+"]/formrecdeptcd", model.getValue("/root/main/mainlist/visitdept["+i+"]/orddeptcd"));
  867. model.makeValue("/root/main/mainlist/medireclist["+i+"]/formrecdeptnm", model.getValue("/root/main/mainlist/visitdept["+i+"]/orddeptnm"));
  868. model.makeValue("/root/main/mainlist/medireclist["+i+"]/formnminfo", "호출과 미작성");
  869. model.makeValue("/root/main/mainlist/medireclist["+i+"]/orddd", orddd);
  870. model.makeValue("/root/main/mainlist/medireclist["+i+"]/cretno", cretno);
  871. }
  872. }
  873. else
  874. {
  875. var cond = "/root/main/mainlist/medireclist[orddd='#orddd#' and cretno='#cretno#' and formrecdeptcd='#deptcd#']";
  876. cond = cond.replace("#orddd#", orddd);
  877. cond = cond.replace("#cretno#", cretno);
  878. var stmt;
  879. for (var i = 1; i <= cnt; i++)
  880. {
  881. stmt = cond.replace("#deptcd#", model.getValue("/root/main/mainlist/visitdept["+i+"]/orddeptcd"));
  882. nodelist = instance1.selectNodes(stmt);
  883. cnt2 = getNodesetCnt(model, stmt);
  884. if (cnt2 == 0)
  885. {
  886. grd_medireclist.insertRow(1, "above");
  887. model.setValue("/root/main/mainlist/medireclist[1]/formrecdeptcd", model.getValue("/root/main/mainlist/visitdept["+i+"]/orddeptcd"));
  888. model.setValue("/root/main/mainlist/medireclist[1]/formrecdeptnm", model.getValue("/root/main/mainlist/visitdept["+i+"]/orddeptnm"));
  889. model.setValue("/root/main/mainlist/medireclist[1]/formnminfo", "호출과 미작성");
  890. model.setValue("/root/main/mainlist/medireclist[1]/orddd", orddd);
  891. model.setValue("/root/main/mainlist/medireclist[1]/cretno", cretno);
  892. }
  893. }
  894. }
  895. model.refresh();
  896. for (var i = 1; i <= grd_medireclist.rows; i++)
  897. {
  898. if (grd_medireclist.valueMatrix(i, grd_medireclist.colref("orddd")) == orddd &&
  899. grd_medireclist.valueMatrix(i, grd_medireclist.colref("cretno")) == cretno)
  900. grd_medireclist.rowStyle(i, "data", "color") = "blue";
  901. }
  902. }
  903. //2014/03/17 이정택 주석처리
  904. // swt_left.selectedIndex = 0;
  905. //2014/03/17 이정택 주석처리
  906. button66.selected = true;
  907. fSetIviewVisible(false); // ivew 화면 설정 (치과 외래진료일 경우 치과기록 사용 : 최원돈 20101223 경북대)
  908. grd_medireclist.mergeCol(grd_medireclist.colref("formrecdd")) = true;
  909. grd_medireclist.merge();
  910. if (grd_medireclist.rows > 1)
  911. {
  912. grd_medireclist.row = 1;
  913. }
  914. }
  915. /**
  916. * @desc : 기록 삭제
  917. * @id :
  918. * @event :
  919. * @return : void
  920. * @authur : 박종훈
  921. */
  922. function fDelete()
  923. {
  924. var formcd = ivw_loader.window.javascript.fGetFormMast("formcd");
  925. if (formcd == "") return;
  926. var ret = ivw_loader.window.javascript.fDelFormRec();
  927. if (ret == null) return;
  928. fOpenNewForm(formcd);
  929. fRefMediRecList();
  930. }
  931. /**
  932. * @desc : 서식 오픈
  933. * @id :
  934. * @event :
  935. * @return : void
  936. * @authur : 박종훈
  937. */
  938. function fOpenNewForm(formcd, calledflag)
  939. {
  940. ivw_loader.window.javascript.fLoadNewForm(formcd, null, calledflag);
  941. fDefaultBtnClick();// 치과기록 닫기 ivew 조건 설정 (치과 외래진료일 경우 치과기록 사용 : 최원돈 20101222 경북대)
  942. }
  943. /**
  944. * @desc : 즐겨찾기 콤보에서의 서식 오픈
  945. * @id :
  946. * @event : xforms-select
  947. * @return : void
  948. * @authur : 박종훈
  949. */
  950. function fOpenNewFormByList()
  951. {
  952. var sFormcd = model.getValue("/root/hidden/choinewform");
  953. if(sFormcd == "-"){
  954. fFavorRefresh(); //즐겨찾기 refresh
  955. } else {
  956. fOpenNewForm(sFormcd);
  957. model.setValue("/root/hidden/choinewform", "-");
  958. model.refresh();
  959. }
  960. }
  961. /**
  962. * @desc : 기록된 서식 오픈
  963. * @id :
  964. * @event : xforms-select
  965. * @return : void
  966. * @authur : 박종훈
  967. */
  968. function fOpenRecForm(formcd, formrecseq, calledflag) {
  969. ivw_loader.window.javascript.setParameter("userdeptcd", getUserInfo("dutplcecd"));
  970. ivw_loader.window.javascript.fLoadRecForm(formrecseq, null, calledflag);
  971. }
  972. /**
  973. * @desc : 기록 미리보기
  974. * @id :
  975. * @event : xforms-select
  976. * @return : void
  977. * @authur : 박종훈
  978. */
  979. function fPreview(node)
  980. {
  981. swt_left.selectedIndex = 1;
  982. button4.selected = true;
  983. ivw_reccnts.window.javascript.fPreviewData(node);
  984. }
  985. /**
  986. * @desc : 입원환자 간호기록 보기
  987. * @id :
  988. * @event : xforms-select
  989. * @return : void
  990. * @authur : 박종훈
  991. */
  992. function fShowNursingCnt()
  993. {
  994. if (model.getValue("/root/main/paminfo/pid") == "")
  995. {
  996. return;
  997. }
  998. var cond = new COMN_CONT_RECCNTS();
  999. var ioflag = model.getValue("/root/main/paminfo/ioflag");
  1000. cond.pid = model.getValue("/root/main/paminfo/pid");
  1001. if(ioflag == "I" || ioflag == "E"){
  1002. cond.indd = model.getValue("/root/main/paminfo/indd");
  1003. } else {
  1004. cond.orddd = model.getValue("/root/main/paminfo/orddd");
  1005. }
  1006. cond.cretno = model.getValue("/root/main/paminfo/cretno");
  1007. cond.ioflag = ioflag;
  1008. cond.fromdd = model.getValue("/root/send/reqmedireclist/recfromdt");
  1009. cond.todd = model.getValue("/root/send/reqmedireclist/rectodt");
  1010. ivw_ganho.window.javascript.fRefNursingCnts(cond);
  1011. }
  1012. /**
  1013. * @desc : 처방내역 보기
  1014. * @id :
  1015. * @event : xforms-select
  1016. * @return : void
  1017. * @authur : 박종훈
  1018. */
  1019. function fShowOrdCnt()
  1020. {
  1021. if (model.getValue("/root/main/paminfo/pid") == "")
  1022. {
  1023. return;
  1024. }
  1025. //자식창(처방내역)
  1026. var spid = ivw_ord.model.getValue("/root/send/prcp/pid");
  1027. var sorddeptcd = ivw_ord.model.getValue("/root/send/prcp/orddeptcd");
  1028. var sfromdd = ivw_ord.model.getValue("/root/send/prcp/fromdd");
  1029. var stodd = ivw_ord.model.getValue("/root/send/prcp/todd");
  1030. //부모창(진료기록메인)
  1031. var ppid = model.getValue("/root/main/paminfo/pid");
  1032. var pformrecdeptcd = model.getValue("/root/send/reqmedireclist/formrecdeptcd")
  1033. var pfromdd = model.getValue("/root/send/reqmedireclist/recfromdt").substring(0, 8);
  1034. var ptodd = model.getValue("/root/send/reqmedireclist/rectodt").substring(0, 8);
  1035. if(spid != ppid || sorddeptcd != pformrecdeptcd || sfromdd != pfromdd || stodd != ptodd)
  1036. {
  1037. var cond = new COMN_CONT_RECCNTS();
  1038. cond.pid = ppid;
  1039. cond.formrecdeptcd = pformrecdeptcd;
  1040. cond.fromdd = pfromdd;
  1041. cond.todd = ptodd;
  1042. ivw_ord.window.javascript.fRefOrdCnts(cond);
  1043. }
  1044. // var ioflag = model.getValue("/root/main/paminfo/ioflag");
  1045. // if(ioflag == "I" || ioflag == "E"){
  1046. // cond.indd = model.getValue("/root/main/paminfo/indd");
  1047. // } else {
  1048. // cond.orddd = model.getValue("/root/main/paminfo/orddd");
  1049. // }
  1050. //
  1051. // cond.cretno = model.getValue("/root/main/paminfo/cretno");
  1052. // cond.ioflag = ioflag;
  1053. }
  1054. /**
  1055. * @desc : 즐겨찾기 새로고침
  1056. * @id :
  1057. * @event : xforms-select
  1058. * @return : void
  1059. * @authur : 박종훈
  1060. */
  1061. function fFavorRefresh(flag)
  1062. {
  1063. if (flag == "refresh")
  1064. {
  1065. var rsltref = "/root/main/formbasesetlist";
  1066. var srcref = gvOrderBasicInfoPath + "/formbaseset";
  1067. model.removeNodeset(rsltref);
  1068. model.makeNode(rsltref);
  1069. var viewerObj = getViewer("sysMessage");
  1070. var targetNodes = instance1.selectSingleNode(rsltref);
  1071. var srcNodes = viewerObj.window.instance1.selectNodes(srcref);
  1072. for(i=0; i<srcNodes.length; i++)
  1073. {
  1074. targetNodes.appendChild(srcNodes.item(i));
  1075. }
  1076. // submit("TRMMR00103");
  1077. }
  1078. /*
  1079. * 내원구분별 즐겨찾기 세팅
  1080. */
  1081. if (flag == "refresh" || flag == "chosflag")
  1082. {
  1083. var chosflag = model.getValue("/root/send/reqinitinfo/chosflag");
  1084. var copycond = "";
  1085. if (chosflag == "E")
  1086. {
  1087. copycond = "formchosflag= 'I' or formchosflag= 'E'";
  1088. }
  1089. else if (chosflag == "D")
  1090. {
  1091. copycond = "formchosflag= 'I' or formchosflag= 'D'";
  1092. }
  1093. else if (chosflag == "S")
  1094. {
  1095. copycond = "formchosflag= 'I' or formchosflag= 'S'";
  1096. }
  1097. else
  1098. {
  1099. copycond = "formchosflag='"+chosflag+"'";
  1100. }
  1101. //copyNodeset("/root/main/formbasesetcbo/formbaseset", "/root/main/formbasesetlist/formbaseset[formchosflag='"+chosflag+"' or formchosflag='C']", "replace", model, model);
  1102. copyNodeset("/root/main/formbasesetcbo/formbaseset", "/root/main/formbasesetlist/formbaseset[" + copycond + " or formchosflag='C']", "replace", model, model);
  1103. }
  1104. if (flag == "refresh")
  1105. {
  1106. model.setValue("/root/hidden/choinewform", "-");
  1107. model.refresh();
  1108. }
  1109. }
  1110. /**
  1111. * @desc : 서식조회 팝업 호출
  1112. * @id :
  1113. * @event : DOMActivate
  1114. * @return : void
  1115. * @authur : 박종훈
  1116. */
  1117. function fOpenFormcdPopup()
  1118. {
  1119. var sCode = model.getValue("/root/hidden/formcd");
  1120. var sTmp = "";
  1121. var iTmp = 0;
  1122. // form코드 입력시 자릿수 채워준다
  1123. if(sCode.indexOf("/")!= "-1"){
  1124. sCode = sCode.substr(1,sCode.length);
  1125. var iCodeLength = sCode.length;
  1126. if(iCodeLength ==0){
  1127. return false;
  1128. }
  1129. var temp = 10 - iCodeLength
  1130. for(var i = 1; i <= temp; i++){
  1131. sTmp += "0";
  1132. }
  1133. sTmp = sTmp + sCode;
  1134. setParameter("codeflag","Y");
  1135. setParameter("formcd",sTmp);
  1136. }else{
  1137. // form코드 아닐때
  1138. setParameter("formcd",sCode);
  1139. }
  1140. //서식선택 팝업
  1141. modal("SPMRF03600", 1,10, 10, "SPMRF03600", "/root/send", "/root/temp/condition/getdata");
  1142. model.setValue("/root/hidden/formcd",getParameter("formcd"));
  1143. }
  1144. /**
  1145. * @desc : 서식선택팝업창 활성화
  1146. * @id :
  1147. * @event : DOMActivate
  1148. * @return : void
  1149. * @authur : 박종훈
  1150. */
  1151. function fFormcdPopupActivate()
  1152. {
  1153. var mdiWindows = window.children;
  1154. for(var i=0;i<mdiWindows.length;i++)
  1155. {
  1156. mdiWindows(i).restore();
  1157. }
  1158. // 서식선택팝업창 활성화 시킨다
  1159. var mainObj = getMainViewer();
  1160. var oldPrcpObj;
  1161. var curObj = window.javascript.getOpenWindow("SMMMR02500");
  1162. if(curObj == null){
  1163. }else{
  1164. window.children.item("SMMMR02500").activate();
  1165. }
  1166. }
  1167. /**
  1168. * @desc : 서식목록팝업창 활성화
  1169. * @id :
  1170. * @event : DOMActivate
  1171. * @return : void
  1172. * @authur : 박종훈
  1173. */
  1174. function fFormSetPopupActivate()
  1175. {
  1176. /*var mainObj = getMainViewer();
  1177. var oldPrcpObj;
  1178. var curObj = window.javascript.getOpenWindow("SMMMR02500");
  1179. // 서식목록팝업창 활성화 시킨다
  1180. if(curObj == null){
  1181. window.javascript.open("SMMMR02500", 1, 0, 0);
  1182. // window.javascript.open("../../../emr/medirecweb/xrw/SMMMR02500_서식리스트.xrw", 1, 0, 0, "", "", "");
  1183. oldPrcpObj = mainObj.javascript.getOpenWindow("SMMMR02500");
  1184. }
  1185. window.children.item("SMMMR02500").activate();
  1186. var mdiWindows = window.children;
  1187. for(var i=0;i<mdiWindows.length;i++)
  1188. {
  1189. mdiWindows(i).restore();
  1190. }*/
  1191. var mainObj = getMainViewer();
  1192. var oldPrcpObj;
  1193. var curObj = window.javascript.getOpenWindow("SPMMR01000");
  1194. // 서식목록팝업창 활성화 시킨다
  1195. if(curObj == null){
  1196. window.javascript.open("SPMMR01000", 1, 0, 0);
  1197. oldPrcpObj = mainObj.javascript.getOpenWindow("SPMMR01000");
  1198. }
  1199. window.children.item("SPMMR01000").activate();
  1200. var mdiWindows = window.children;
  1201. for(var i=0;i<mdiWindows.length;i++)
  1202. {
  1203. mdiWindows(i).restore();
  1204. }
  1205. }
  1206. /**
  1207. * @desc : 환자요약 팝업
  1208. * @id :
  1209. * @event : DOMActivate
  1210. * @return : void
  1211. * @authur : 박종훈
  1212. */
  1213. function fClickPatSmmBtn()
  1214. {
  1215. setParameter("SSMMP04800_pid", model.getValue("/root/main/paminfo/pid")); //환자요약 조회를 위한 파라미터 셋팅
  1216. open("SSMMR04800", 1, 0, 0, "", "", "");
  1217. setParameter("SSMMP04800_pid", "");
  1218. var refreshflag = getParameter("SSMMP04800_rtn");
  1219. if(refreshflag == "Y" && (ivw_patsmm.visible))
  1220. {
  1221. ivw_patsmm.window.javascript.fSelect_sub();
  1222. }
  1223. }
  1224. /**
  1225. * @desc : V/S 팝업 호출
  1226. * @id :
  1227. * @event : DOMActivate
  1228. * @return : void
  1229. * @authur : 박종훈
  1230. */
  1231. function fClickTPR()
  1232. {
  1233. var ioflag = model.getValue("/root/main/paminfo/ioflag");
  1234. if (ioflag == "I")
  1235. {
  1236. var pid = model.getValue("/root/main/paminfo/pid");
  1237. var indd = model.getValue("/root/main/paminfo/indd");
  1238. var cretno = model.getValue("/root/main/paminfo/cretno");
  1239. var instcd = model.getValue("/root/main/paminfo/instcd");
  1240. var jobkindcd = getUserInfo("jobkindcd");
  1241. setParameter("SMMNR00900_Param", pid + "▦" + indd + "▦" + cretno + "▦" + instcd + "▦" + jobkindcd + "▩");
  1242. open("SMMNR00900");
  1243. }
  1244. }
  1245. /**
  1246. * @desc : 보험메모 여부확인
  1247. * @id :
  1248. * @return : String
  1249. * @authur : 한재상
  1250. */
  1251. function fGetPamMemoYN()
  1252. {
  1253. model.removeNodeset("/root/send/patmemo");
  1254. model.makeValue("/root/send/patmemo/pid", model.getValue("/root/main/paminfo/pid"));
  1255. model.makeValue("/root/send/patmemo/memo", "pmemosel");
  1256. model.makeValue("/root/send/patmemo/ioflag", model.getValue("/root/main/paminfo/ioflag") );
  1257. model.makeValue("/root/send/patmemo/deptcd", getUserInfo("dutplcecd") );
  1258. submit("TRMMR05601");
  1259. var nodeList = instance1.selectNodes("/root/main/imemo/imemolist/memolistinfo");
  1260. if ( nodeList.length > 0 ) {
  1261. return "Y";
  1262. } else {
  1263. return "N";
  1264. }
  1265. }
  1266. /**
  1267. * @desc : 환자메모 팝업 호출
  1268. * @id :
  1269. * @event : DOMActivate
  1270. * @return : void
  1271. * @authur : 박종훈
  1272. */
  1273. function fGetPatMemo()
  1274. {
  1275. var sPid = getPatientInfo("pid");
  1276. //knuh 20120104 최원돈 OCS 진료대상자 OCS 조회 시 환자메모를 자동으로 사라지게 설정-필요없어서 삭제. SMMMO04100.js, SPMMR05600.js, MMR00100.js
  1277. ////상단정보의 pid와 instance의 pid가 다르면 띄우지 않는다-lyj(20111107)
  1278. //if ( model.getValue("/root/main/paminfo/pid") != sPid )
  1279. //{
  1280. // alert("상단정보와 일치하지 않습니다");
  1281. // return;
  1282. //}
  1283. if (model.getValue("/root/main/paminfo/pid") == model.getValue("/root/send/patmemo/pid")) {
  1284. return;
  1285. } else {
  1286. model.removeNodeset("/root/send/patmemo");
  1287. model.makeValue("/root/send/patmemo/pid", model.getValue("/root/main/paminfo/pid"));
  1288. model.makeValue("/root/send/patmemo/memo", "pmemosel");
  1289. model.makeValue("/root/send/patmemo/ioflag", model.getValue("/root/main/paminfo/ioflag") ); //KNUH_20110208, 주희경 속도 개선을 위해 TXMMR00101에서 TRMMR05601 같이 조회하도록 추가
  1290. model.makeValue("/root/send/patmemo/deptcd", getUserInfo("dutplcecd") );
  1291. //model.makeValue("/root/send/patmemo/delflag", "N");
  1292. //20090724 한재상 추가. 보험메모 popup 조건체크. (보험메모가 있으면 무조건 띄운다.)
  1293. // var pammemoyn = fGetPamMemoYN();
  1294. if(submit("TXMMR00101")) {
  1295. var pammemoyn = model.getValue("/root/send/pmemo/pammemoyn"); //KNUH_20110208, 주희경, 속도개선을 위해 TXMMR00101에서 TRMMR05601도 함께 조회
  1296. if(model.getValue("/root/send/pmemo/memo") != "" || model.getValue("/root/send/pmemo/nmemo") != "" || pammemoyn == "Y") {
  1297. if(model.getValue("/root/send/pmemo/deptmemo") != "") {
  1298. btn_memo.value = "메모■◆";
  1299. } else {
  1300. btn_memo.value = "메모■◇";
  1301. }
  1302. //btn_memo.value = "메모■";
  1303. if ( model.getValue("/root/send/pmemo/popupyn") == "Y" // 자동팝업 여부
  1304. || pammemoyn == "Y" // 보험 메모 여부
  1305. || ( model.getValue("/root/send/pmemo/deptmemo") != "" && model.getValue("/root/envinit/deptmemopopyn/answcnt") == "002") // 타과메모가 존재하고 타과 메모 자동팝업일경우
  1306. ) {
  1307. //btn_memo.dispatch("DOMActivate");
  1308. setParameter("SPMMR05600_pammemoyn", pammemoyn);
  1309. fPopMemo();
  1310. } else {
  1311. var wndobj = getOpenWindow("SPMMR05600");
  1312. if(wndobj != null) {
  1313. //창닫기
  1314. wndobj.javascript.window.close();
  1315. }
  1316. }
  1317. } else {
  1318. if(model.getValue("/root/send/pmemo/deptmemo") != "") {
  1319. btn_memo.value = "메모□◆";
  1320. } else {
  1321. btn_memo.value = "메모□◇";
  1322. }
  1323. //btn_memo.value = "메모□";
  1324. model.makeValue("/root/send/pmemo/memo", "");
  1325. if(model.getValue("/root/send/pmemo/deptmemo") != "" && model.getValue("/root/envinit/deptmemopopyn/answcnt") == "002" ){ // 타과 메모 자동 팝업 여부 002 자동팝업
  1326. setParameter("SPMMR05600_pammemoyn", pammemoyn);
  1327. fPopMemo();
  1328. } else {
  1329. if (model.getValue("/root/send/pmemo/popupyn") != "Y") {
  1330. var wndobj = getOpenWindow("SPMMR05600");
  1331. if(wndobj != null) {
  1332. //창닫기
  1333. wndobj.javascript.window.close();
  1334. }
  1335. }
  1336. }
  1337. }
  1338. }else{
  1339. //2010.05.28 이지운 추가 - 메모 팝업정보 조회 실패시 Timer 를 이용하여 10ms 후에 재시도 하도록 수정함.
  1340. model.setValue("/root/send/patmemo/pid", "");
  1341. htmlwindow.setTimeout(function(){
  1342. fGetPatMemo();
  1343. },10);
  1344. }
  1345. }
  1346. }
  1347. /**
  1348. * @desc : 환자메모 저장
  1349. * @id :
  1350. * @event : DOMActivate
  1351. * @return : void
  1352. * @authur : 박종훈
  1353. */
  1354. function fSaveMemo()
  1355. {
  1356. var memo = model.getValue("/root/send/pmemo/memo");
  1357. var nmemo = model.getValue("/root/send/pmemo/nmemo");
  1358. model.removeNodeset("/root/send/patmemo");
  1359. model.makeValue("/root/send/patmemo/pid", model.getValue("/root/main/paminfo/pid"));
  1360. model.makeValue("/root/send/patmemo/memo", memo);
  1361. model.makeValue("/root/send/patmemo/nmemo", nmemo);
  1362. model.makeValue("/root/send/patmemo/deptcd", getUserInfo("dutplcecd") );
  1363. if(submit("TXMMR00101")) {
  1364. if(model.getValue("/root/send/pmemo/memo") != "" || model.getValue("/root/main/pmemo/nmemo") != "") {
  1365. if(model.getValue("/root/send/pmemo/deptmemo") != "") {
  1366. btn_memo.value = "메모■◆";
  1367. } else {
  1368. btn_memo.value = "메모■◇";
  1369. }
  1370. }
  1371. grup_smm.visible = false;
  1372. }
  1373. }
  1374. /**
  1375. * @desc : 환자메모 오픈
  1376. * @id :
  1377. * @event : DOMActivate
  1378. * @return : void
  1379. * @authur : 박종훈
  1380. */
  1381. var curMemoObj = null;
  1382. function fPopMemo()
  1383. {
  1384. curMemoObj = getOpenWindow("SPMMR05600");
  1385. if(curMemoObj != null)
  1386. {
  1387. curMemoObj.javascript.fGetPatMemo();
  1388. activateChild("SPMMR05600");
  1389. } else{
  1390. setParameter("SPMMR05600_ioflag", model.getValue("/root/main/paminfo/ioflag"));
  1391. setParameter("SPMMR05600_pid", model.getValue("/root/main/paminfo/pid"));
  1392. setParameter("SPMMR05600_deptcd", getUserInfo("dutplcecd")); // 로그인한 과로 조회
  1393. setParameter("SPMMR05600_deptnm", getUserInfo("dutplcenm")); // 로그인한 과명로 조회
  1394. setParameter("SPMMR05600_hngnm", model.getValue("/root/main/paminfo/hngnm"));
  1395. var offsetX = event.screenX - event.clientX;
  1396. offsetX = parseInt(btn_memo.attribute("left")) + offsetX;
  1397. var offsetY = event.screenY - event.clientY;
  1398. offsetY = parseInt(btn_memo.attribute("top")) + offsetY + 120;
  1399. open("SPMMR05600", 1, offsetX, offsetY, "", "", "");
  1400. }
  1401. }
  1402. /**
  1403. * @desc : 코사인 관리화면 팝업 호출
  1404. * @id :
  1405. * @event : onclick
  1406. * @return : void
  1407. * @authur : 박종훈
  1408. */
  1409. function fSetCoSign()
  1410. {
  1411. var coFormrecseq = grd_medireclist.valueMatrix(grd_medireclist.row, grd_medireclist.colref("formrecseq"));
  1412. var coRecDd = grd_medireclist.valueMatrix(grd_medireclist.row, grd_medireclist.colref("formrecdd"));
  1413. var coRecHm = grd_medireclist.valueMatrix(grd_medireclist.row, grd_medireclist.colref("formrechm"));
  1414. var coUserDeptCd = getUserInfo("dutplcecd");
  1415. setParameter("SPMRI02200_formrecseq", coFormrecseq);
  1416. setParameter("SPMRI02200_recdt", coRecDd + coRecHm);
  1417. setParameter("SPMRI02200_recdeptcd", coUserDeptCd);
  1418. modal("SPMRI02200");
  1419. }
  1420. /*******************************************************************************************************
  1421. 튜닝 작업
  1422. *******************************************************************************************************/
  1423. function fSelectNewForm()
  1424. {
  1425. var sCode = model.getValue("/root/hidden/formcd");
  1426. var sTmp = "";
  1427. var iTmp = 0;
  1428. // form코드 입력시 자릿수 채워준다
  1429. if(sCode.indexOf("/")!= "-1"){
  1430. sCode = sCode.substr(1,sCode.length);
  1431. var iCodeLength = sCode.length;
  1432. if(iCodeLength ==0){
  1433. return false;
  1434. }
  1435. var temp = 10 - iCodeLength
  1436. for(var i = 1; i <= temp; i++){
  1437. sTmp += "0";
  1438. }
  1439. sTmp = sTmp + sCode;
  1440. setParameter("codeflag","Y");
  1441. setParameter("formcd",sTmp);
  1442. }else{
  1443. // form코드 아닐때
  1444. setParameter("formcd",sCode);
  1445. }
  1446. //서식선택 팝업
  1447. modal("SPMRF03600", 1,10, 10, "SPMRF03600", "/root/send", "/root/temp/condition/getdata");
  1448. model.setValue("/root/hidden/formcd", "");
  1449. ipt_tmp.refresh();
  1450. ivw_loader.window.javascript.fLoadNewForm(getParameter("formcd"));
  1451. fDefaultBtnClick();// 치과기록 닫기 ivew 조건 설정 (치과 외래진료일 경우 치과기록 사용 : 최원돈 20101222 경북대)
  1452. }
  1453. /**
  1454. * @desc : 기록블라인드 처리에 따른
  1455. * @id :
  1456. * @event : onclick
  1457. * @return : void
  1458. * @authur : 박종훈
  1459. */
  1460. function fRecMainReady()
  1461. {
  1462. try {
  1463. var ordPatObj = getOpenWindow("SMMMO04100");
  1464. if (ordPatObj != null)
  1465. {
  1466. var answcnt = ordPatObj.javascript.getParameter("SMMMO04100_ANSWCNT");
  1467. if (answcnt =="002" || answcnt =="003")
  1468. {
  1469. fBtnInitReady();
  1470. }
  1471. else
  1472. {
  1473. var fstload = model.getValue("/root/init/fstload");
  1474. if (fstload == "Y")
  1475. {
  1476. model.setValue("/root/init/fstload", "N");
  1477. fReadyForm();
  1478. }
  1479. else
  1480. {
  1481. fInitRecPamInfo();
  1482. }
  1483. grp_tle.attribute("visibility") = "visible";
  1484. grp_base.attribute("visibility") = "visible";
  1485. btn_blind.attribute("visibility") = "hidden";
  1486. }
  1487. }
  1488. else
  1489. {
  1490. grp_tle.attribute("visibility") = "visible";
  1491. grp_base.attribute("visibility") = "visible";
  1492. btn_blind.attribute("visibility") = "hidden";
  1493. fReadyForm();
  1494. }
  1495. // 진료기록 고도화 버튼 사용 일자 HARDCODE 등록해서 관리 2013.09.27 CYW
  1496. /*
  1497. debugger;
  1498. mmbfGetHardCodeInfo ("/root/send/reqdata", "/root/temp/emrrecbtn", 5592 );
  1499. if(model.getValue( "/root/temp/emrrecbtn/hardcd/hardcdnm") <= getCurrentDate() ){
  1500. grp_btnsetting.attribute("visibility") = "visible";
  1501. }else{
  1502. grp_btnsetting.attribute("visibility") = "hidden";
  1503. }
  1504. */
  1505. /*
  1506. 2009.10.12 안치원 TASK-36554
  1507. 통증관리 버튼추가
  1508. */
  1509. //KNUH_20110209, 주희경, 진료속도 개선 위해 로그인 시 조회 해놓은 데이터 카피
  1510. fGetHardCDList("N", "132", 0, "/root/main/hardcdlist");
  1511. //KNUH, 응급실에서 소아청소년과 의사가 처방 저장 시 인증서가 최초 1회만 뜨도록 (2011.03.21 JJE)
  1512. fGetHardCDList("N", "282", 0, "/root/main/hardcdlist_282");
  1513. var cnt = getNodesetCnt(model, "/root/main/hardcdlist/hardcd[hardcd='"+getUserInfo("dutplcecd")+"']");
  1514. //alert("132 new cnt:"+cnt+ ": getUserInfo(dutplcecd):"+getUserInfo("dutplcecd"));
  1515. if (cnt > 0) {
  1516. var tmp_left = btn_tong.attribute("left");
  1517. btn_tong.attribute("left") = btn_nurrec.attribute("left");
  1518. btn_nurrec.attribute("left") = tmp_left;
  1519. btn_tong.attribute("visibility") = "visible";
  1520. }
  1521. ////////////////
  1522. /* KNUH_20110208, 주희경 주석처리
  1523. model.makeValue("/root/send/reqhardcd/hardcdno", "132");
  1524. model.makeValue("/root/send/reqhardcd/dutplcecd", getUserInfo("dutplcecd"));
  1525. if (submit("TRMRF03104")) {
  1526. var cnt = getNodesetCnt(model, "/root/main/hardcdlist[trgtcd='"+getUserInfo("dutplcecd")+"']");
  1527. // alert("/root/main/hardcdlist[trgtcd='"+getUserInfo("dutplcecd")+"'] " + cnt);
  1528. if (cnt > 0) {
  1529. var tmp_left = btn_tong.attribute("left");
  1530. btn_tong.attribute("left") = btn_nurrec.attribute("left");
  1531. btn_nurrec.attribute("left") = tmp_left;
  1532. btn_tong.attribute("visibility") = "visible";
  1533. }
  1534. }*///////////////////
  1535. //2010.04.13 dhkim - 조회기간 설정 초기화
  1536. fReadyFormInitData();
  1537. // KNUH_20110104_최원돈_치과일 경우 치과기록이 Default Setting
  1538. if (btn_tab_denti.visible)
  1539. {
  1540. btn_tab_denti.selected = true;
  1541. btn_tab_denti.dispatch("onclick");
  1542. }
  1543. } catch (e) {
  1544. //2009.11.18 안치원 - 에러발생시 기록메인을 disable 한다.
  1545. // sendSystemMail_MMR071(gMMR_INVALID_PATINFO_MMR071, null);
  1546. // disabledRecMain_MMR001(true, fGetErrMsg(1,""), null);
  1547. }
  1548. //20111031 대장암관련
  1549. /*
  1550. model.makeNode("/root/main/colorectal/count");
  1551. model.makeValue("/root/send/colorectal/pid", model.getValue("/root/main/paminfo/pid"));
  1552. model.makeValue("/root/send/colorectal/recflag", "4");
  1553. submit("TRMMR08102");
  1554. if(model.getValue("/root/main/colorectal/count")>=1){
  1555. btn_colorectal.disabled="true";
  1556. }else{
  1557. btn_colorectal.disabled="false";
  1558. }
  1559. model.removeNode("/root/main/colorectal/count");
  1560. model.removeNode("/root/send/colorectal");
  1561. */
  1562. //20111031
  1563. //20111115 간암관련
  1564. model.makeNode("/root/main/liver/count");
  1565. model.makeValue("/root/send/liver/pid", model.getValue("/root/main/paminfo/pid"));
  1566. model.makeValue("/root/send/liver/recflag", "3");
  1567. submit("TRMMR08102");
  1568. if(model.getValue("/root/main/liver/count")>=1){
  1569. btn_liver.disabled="true";
  1570. }else{
  1571. btn_liver.disabled="false";
  1572. }
  1573. model.removeNode("/root/main/liver/count");
  1574. model.removeNode("/root/send/liver");
  1575. //20111115
  1576. //20150401 이윤주 개발
  1577. fNSTMan();
  1578. }
  1579. function fNSTMan() {
  1580. var pid = model.getValue("/root/main/paminfo/pid");
  1581. var orddd = model.getValue("/root/main/paminfo/indd");
  1582. var cretno = model.getValue("/root/main/paminfo/cretno");
  1583. fChkPatNSTConsult(pid, orddd, cretno); // NST 영양의뢰 요청 환자 의뢰서 팝업 2015.04.01 이윤주
  1584. var sNstConsult = model.getValue("/root/recv/selcheck/nstconsult");
  1585. if (sNstConsult =="Y") {
  1586. if( "6" == messageBox("NRS 2002에 의한 영양평가 결과 영양불량 고위험군 환자\n\n또는 영양검색 결과 Nutrtion Risk가 높은 환자 입니다.\n\nNST Consult 하시겠습니까? 문의(본원:5206, 칠곡:2594)\n\n\n※ NST의뢰대상 - 아래 항목의 1개 이상에 해당하는 경우\n\n1.혈중 알부민 ≤ 3.0 g/dl 인 경우\n\n2.경장영양을 받고 있는 경우\n\n3.정맥영양을 받고 있는 경우\n\n4.중환자실에서 집중치료 중인 경우\n\n5.진료담당의사의 의학적 소견에 따라 집중영양치료가 필요하여 의뢰된 경우\n\n6.성장곡선 체중 기준 5percentile미만의 경우(소아만 해당)", "Q999")) {
  1587. var formcd = "0000000770";
  1588. var deptcd = "3250100000";
  1589. var deptnm = "영양파트";
  1590. var cnstflag = "3";
  1591. var orddd = getCurrentDate();
  1592. setParameter("SMMMR05000_nonstopyn", "Y");
  1593. setParameter("SMMMR05000_formcd", formcd);
  1594. setParameter("SMMMR05000_deptcd", deptcd);
  1595. setParameter("SMMMR05000_deptnm", deptnm);
  1596. setParameter("SMMMR05000_cnstflag", cnstflag);
  1597. setParameter("SMMMR05000_orddd", orddd);
  1598. setParameter("SMMMR05000_cnstioflag", "I");
  1599. modal("SMMMR05000");
  1600. return;
  1601. }
  1602. }
  1603. }
  1604. function fChkPatNSTConsult(pid, orddd, cretno){
  1605. model.removeNodeset("root/send/reqdata");
  1606. model.makeValue("/root/send/reqdata/pid" , pid);
  1607. model.makeValue("/root/send/reqdata/orddd" , orddd);
  1608. model.makeValue("/root/send/reqdata/cretno" , cretno);
  1609. submit("TRMMO04310",false);
  1610. }
  1611. /**
  1612. * @desc : 기록메인 로드
  1613. * @id :
  1614. * @event : DOMActivate
  1615. * @return : void
  1616. * @authur : 박종훈
  1617. */
  1618. function fLoadRecMain()
  1619. {
  1620. var fstload = model.getValue("/root/init/fstload");
  1621. if (fstload == "Y")
  1622. {
  1623. model.setValue("/root/init/fstload", "N");
  1624. fReadyForm();
  1625. }
  1626. else
  1627. {
  1628. fInitRecPamInfo();
  1629. }
  1630. grp_tle.attribute("visibility") = "visible";
  1631. grp_base.attribute("visibility") = "visible";
  1632. btn_blind.attribute("visibility") = "hidden";
  1633. }
  1634. /**
  1635. * @desc : 버튼 활성화의 경우 처리
  1636. * @id :
  1637. * @event : DOMActivate
  1638. * @return : void
  1639. * @authur : 박종훈
  1640. */
  1641. function fBtnInitReady()
  1642. {
  1643. btn_blind.attribute("visibility") = "visible";
  1644. grp_tle.attribute("visibility") = "hidden";
  1645. grp_base.attribute("visibility") = "hidden";
  1646. }
  1647. /**
  1648. * @desc : 메인화면 로딩
  1649. * @id :
  1650. * @event : onclick
  1651. * @return : void
  1652. * @authur : 박종훈
  1653. */
  1654. function fReadyForm()
  1655. {
  1656. ivw_loader.attribute("top") = 30;
  1657. ivw_loader.attribute("height") = 740;
  1658. ivw_loader.src = "../../../emr/medirecweb/xrw/SSMMR01100_서식로더.xrw";
  1659. //외래 재진인경우만 Load
  1660. //ivw_patsmm.src = "../../../emr/medirecweb/xrw/SSMMR04800_진료요약기록.xrw";
  1661. ivw_loader.window.javascript.gMediRecMain = true;
  1662. ivw_loader.window.javascript.gIsCashedFormDegn = true;
  1663. //ivw_patsmm.window.javascript.fResizeGrup("1", parseInt(ivw_patsmm.attribute("height")), parseInt(ivw_patsmm.attribute("width")));
  1664. //ivw_loader.window.javascript.fInitPage(true, true, parseInt(ivw_loader.attribute("height")), null, true); //출력버튼
  1665. ivw_loader.window.javascript.fInitPage(true, true, parseInt(ivw_loader.attribute("height")));
  1666. ivw_loader.window.javascript.afterSaveExeFuncNm = "fRefMediRecList";
  1667. // ivew 설정을 위해서 치과 하드코드를 가져온다. (치과 외래진료일 경우 치과기록 사용 : 최원돈 20101222 경북대)
  1668. fGethardcdArrayList(new Array(
  1669. "dentdept|242"
  1670. ),
  1671. new Array(
  1672. "/root/init"
  1673. )
  1674. );
  1675. grd_medireclist.mergecol(grd_medireclist.colref("formrecdd")) = true;
  1676. fReadyFormInitData();
  1677. //2010.04.12 dhkim 조회기간 디폴트 환경설정값으로 변경(fReadyFormInitData안)
  1678. //model.setValue("/root/init/reqmedireclist/diffdt", 12); //검색 디폴트 12개월
  1679. fAddDateReq("today");
  1680. var defltdeptcd = getUserInfo("dutplcecd");
  1681. if (defltdeptcd == "2280000000")
  1682. {
  1683. defltdeptcd = "ALL";
  1684. }
  1685. model.setValue("/root/send/reqmedireclist/formrecdeptcd", defltdeptcd);
  1686. model.setValue("/root/send/reqmedireclist/chosflag", "A");
  1687. model.setValue("/root/hidden/openform/degnid", getUserInfo("usernm"));
  1688. model.refresh();
  1689. fInitRecPamInfo();
  1690. /*20090309 사용하지 않는 화면(jonghun)
  1691. //진료기록메인 호출하는 Popup Close (snoweye, 2008.08.13)
  1692. var scrnwnd = getOpenWindow("SPMMB08500");
  1693. if(scrnwnd != null){
  1694. scrnwnd.javascript.fEMRClose();
  1695. }
  1696. */
  1697. /*var nodeList = model.instances(0).selectNodes("/root/main/mainlist/medireclist");
  1698. if (nodeList.length > 0)
  1699. {
  1700. fShowMediRecCnt(grd_medireclist.valueMatrix(1, grd_medireclist.colref("formrecseq")));
  1701. }*/
  1702. }
  1703. /**
  1704. * @desc : 기록수정
  1705. * @id :
  1706. * @event : onclick
  1707. * @return : void
  1708. * @authur : 박종훈
  1709. */
  1710. function fModifyForm() {
  1711. if (swt_left.selectedIndex == 0){
  1712. var cnfmyn = grd_medireclist.valueMatrix(grd_medireclist.row, grd_medireclist.colRef("cnfmyn"));
  1713. var formcd = grd_medireclist.valueMatrix(grd_medireclist.row, grd_medireclist.colRef("formcd"));
  1714. var formrecseq = grd_medireclist.valueMatrix(grd_medireclist.row, grd_medireclist.colRef("formrecseq"));
  1715. var type = grd_medireclist.valueMatrix(grd_medireclist.row, grd_medireclist.colRef("type"));
  1716. if (grd_medireclist.row > 0) {
  1717. if (type == "A") {
  1718. messageBox("진료기록 화면에서 수정할 수 없는 서식입니다", "I999");
  1719. return;
  1720. }
  1721. if (cnfmyn == "Y") {
  1722. fOpenRecForm(formcd, formrecseq);
  1723. } else {
  1724. messageBox("OCS에서 작성한 기록은 수정할 수 없습니다.", "I008");
  1725. return;
  1726. }
  1727. }
  1728. } else if (swt_left.selectedIndex == 1) {
  1729. var formcd = getParameter("SSMMR01200_Param_formcd");
  1730. var formrecseq = getParameter("SSMMR01200_Param_recseq");
  1731. var cnfmyn = getParameter("SSMMR01200_Param_cnfmyn");
  1732. clearParameter("SSMMR01200_Param_formcd");
  1733. clearParameter("SSMMR01200_Param_recseq");
  1734. clearParameter("SSMMR01200_Param_cnfmyn");
  1735. if(formrecseq != "") {
  1736. if (cnfmyn == "Y") {
  1737. fOpenRecForm(formcd, formrecseq);
  1738. } else {
  1739. messageBox("OCS에서 작성한 기록은 수정할 수 없습니다.", "I008");
  1740. return;
  1741. }
  1742. }
  1743. }
  1744. }
  1745. /**
  1746. * @desc : 인증데이터 생성
  1747. * @id :
  1748. * @event : onclick
  1749. * @return : void
  1750. * @authur : 박종훈
  1751. */
  1752. function fMakeSignData(signrecinfo, chosflag, sUserID)
  1753. {
  1754. var certcnfmyn = getParameter("SSMMR01100_cert_Cnfm"); //미비기록의 경우 인증서를 한번만 띄워주기 위한 param(2008-12-29 : 박종훈 추가)
  1755. clearParameter("SSMMR01100_cert_Cnfm");
  1756. //KNUH, 응급실에서 소아청소년과 의사가 처방 저장 시 인증서가 최초 1회만 뜨도록 (2011.03.21 JJE)
  1757. var userDeptCd = getUserInfo("dutplcecd");
  1758. if( chosflag == "E" && instance1.selectSingleNode("/root/main/hardcdlist_282/hardcd[hardcd='"+ userDeptCd +"']") != null ){
  1759. certcnfmyn = "Y";
  1760. }
  1761. // 입원 또는 응급일 경우 // 20111201 knuh 최원돈
  1762. // 기록/처방 직전 인증저장이 정해진 시간(분 단위, 하드코드 401) 이내이면 인증서를 띄우지 않음(1/1)
  1763. // SMMMO00100.js, MMR01300.js, MMR00100.js, SPMRF05200.js
  1764. // 띄우지 않는 로직
  1765. var ls_emrinptsavetime = fGetHardCDList("Y", 401, 3);
  1766. var ll_emrinptsavetime = ls_emrinptsavetime == "" ? 0 : parseInt(ls_emrinptsavetime) * -1;
  1767. if ( ( chosflag == "I"
  1768. || chosflag == "E")
  1769. && ll_emrinptsavetime < 0
  1770. && getGlobalVariable("emrinptsavetime") >= getCurrentDateTime().toDate("YYYYMMDD hhmmss").getAddDate(ll_emrinptsavetime, "m").getDateFormat("YYYYMMDD hhmmss"))
  1771. {
  1772. certcnfmyn = "Y";
  1773. }
  1774. if (chosflag == "O" || certcnfmyn == "Y")
  1775. {
  1776. // KNUH_20100820_박성호_start 인증서 안나오게 수정
  1777. var signedrecinfo = zesfSignData(signrecinfo, sUserID, false); //외래환자일경우 한번만 인증서 띄움
  1778. //var signedrecinfo = "-"; //외래환자일경우 한번만 인증서 띄움
  1779. // KNUH_20100820_박성호_end
  1780. }
  1781. else
  1782. {
  1783. // KNUH_20100820_박성호_start 인증서 안나오게 수정
  1784. var signedrecinfo = zesfSignData(signrecinfo, sUserID, true);
  1785. //var signedrecinfo = "-"; //외래환자일경우 한번만 인증서 띄움
  1786. // KNUH_20100820_박성호_end
  1787. }
  1788. return signedrecinfo
  1789. }
  1790. /* @group : 폴더 존재여부 파악
  1791. * @ver : 2007.01.06
  1792. * @by : 박종훈
  1793. * @-----------------------------------
  1794. * @type : function
  1795. * @access : public
  1796. * @desc :
  1797. */
  1798. function fExistFolder(foldernm)
  1799. {
  1800. var fso, folder, s;
  1801. fso = new ActiveXObject("Scripting.FileSystemObject");
  1802. try
  1803. {
  1804. folder = fso.GetFolder(foldernm);
  1805. s = folder.DateCreated;
  1806. if (s != "")
  1807. {
  1808. fDelFolder(foldernm);
  1809. fMakeFolder(foldernm);
  1810. }
  1811. }
  1812. catch (e)
  1813. {
  1814. fMakeFolder(foldernm);
  1815. }
  1816. }
  1817. /* @group : 폴더 생성
  1818. * @ver : 2007.01.06
  1819. * @by : 박종훈
  1820. * @-----------------------------------
  1821. * @type : function
  1822. * @access : public
  1823. * @desc :
  1824. */
  1825. function fMakeFolder(foldernm)
  1826. {
  1827. var fso = new ActiveXObject("Scripting.FileSystemObject");
  1828. var a = fso.CreateFolder(foldernm);
  1829. }
  1830. /* @group : 폴더 삭제
  1831. * @ver : 2007.01.06
  1832. * @by : 박종훈
  1833. * @-----------------------------------
  1834. * @type : function
  1835. * @access : public
  1836. * @desc :
  1837. */
  1838. function fDelFolder(foldernm)
  1839. {
  1840. var fso;
  1841. fso = new ActiveXObject("Scripting.FileSystemObject");
  1842. fso.DeleteFolder(foldernm);
  1843. }
  1844. /* @group : 디자인보기버튼 클릭
  1845. * @ver : 2007.01.06
  1846. * @by : 박종훈
  1847. * @-----------------------------------
  1848. * @type : function
  1849. * @access : public
  1850. * @desc :
  1851. */
  1852. function fBtnViewDegn()
  1853. {
  1854. model.toggle("case5");
  1855. }
  1856. /*
  1857. * 기록메인을 disable 한다.
  1858. */
  1859. function disabledRecMain_MMR001(disable, errMsg, lockMode) {
  1860. /*btn_err.visible = disable;
  1861. ivw_patsmm.visible = !disable;
  1862. ivw_loader.visible = !disable;
  1863. if (lockMode == 2) {
  1864. errMsg += "\n\n☞ 클릭하면 해제됩니다."
  1865. }
  1866. if (disable) {
  1867. model.toggle("case2");
  1868. btn_err.text = isNull(errMsg) ? "ERROR - 기록창이 제한됩니다." : errMsg;
  1869. } else {
  1870. btn_err.text = "ERROR - 기록창이 제한됩니다.";
  1871. }
  1872. if (lockMode == null || lockMode > 2) {
  1873. lockMode = 1;
  1874. }
  1875. if (lockMode == 1) {
  1876. btn_err.disabled = true;
  1877. } else {
  1878. btn_err.disabled = false;
  1879. }
  1880. // alert("visible::"+btn_err.visible);
  1881. btn_err.refresh();
  1882. */
  1883. }
  1884. /*
  1885. * 진료대상자리스트의 환자 수진키와 비교한다.
  1886. */
  1887. function validPamInfo(pPid, pOrddd, pCretno, lockMode)
  1888. {
  1889. return true;
  1890. /*var flag = false;
  1891. var patListViewer = getOpenWindow("SMMMO04100");
  1892. if (patListViewer == null) {
  1893. flag = fCheckPamInfo_MMR001(getPatientInfo("pid"), null, null, model.getValue("/root/main/paminfo/pid"), null, null, lockMode);
  1894. } else {
  1895. flag = fCheckPamInfo_MMR001(patListViewer.window.javascript.getParameter("SMMMR00100_PATINFO_PID")
  1896. ,patListViewer.window.javascript.getParameter("SMMMR00100_PATINFO_ORDDD")
  1897. ,patListViewer.window.javascript.getParameter("SMMMR00100_PATINFO_CRETNO")
  1898. ,pPid
  1899. ,pOrddd
  1900. ,pCretno, lockMode);
  1901. }
  1902. return flag;
  1903. */
  1904. }
  1905. function fGetErrMsg(flag, addMsg)
  1906. {
  1907. if (flag == null) {
  1908. flag = 0;
  1909. }
  1910. if (addMsg == null) {
  1911. addMsg = "";
  1912. }
  1913. var errMsg = "";
  1914. if (flag == 0) {
  1915. errMsg = "ERROR - 기록창이 제한됩니다.";
  1916. } else if (flag == 1) {
  1917. errMsg = "["+gMMR_INVALID_PATINFO_MMR071+"]\n\n";
  1918. errMsg += "진료대상자 정보를 설정하던 중 예기치 못한 에러가 발생했습니다.\n";
  1919. errMsg += "진료대상자를 다시 선택 해 주시기 바랍니다.\n\n";
  1920. errMsg += "같은 현상이 반복된다면 정보지원팀으로 문의 해 주시기 바랍니다.\n";
  1921. }
  1922. errMsg += addMsg;
  1923. return errMsg;
  1924. }
  1925. /*
  1926. * 2009.11.18 안치원 - 상단환자정보와 Global정보가 틀리면 기록메인을 disable 한다.
  1927. * 일단, pid 로만 검사한다.
  1928. */
  1929. function fCheckPamInfo_MMR001(pPid, pOrddd, pCretno, gPid, gOrddd, gCretno, lockMode)
  1930. {
  1931. return true;
  1932. /* var params = pPid +",";
  1933. params += pOrddd +",";
  1934. params += pCretno +".\n";
  1935. params += gPid +",";
  1936. params += gOrddd +",";
  1937. params += gCretno +".";
  1938. if (isNull(pPid) || isNull(pPid)) {
  1939. disabledRecMain_MMR001(true, fGetErrMsg(1, params), lockMode);
  1940. return false;
  1941. }
  1942. var flag = true;
  1943. if (pPid != gPid) {
  1944. flag = false;
  1945. } //else if (pOrddd != gOrddd) {
  1946. // flag = false;
  1947. // } else if (pCretno != gCretno) {
  1948. // flag = false;
  1949. // }
  1950. // alert("falg::"+flag);
  1951. if (flag) {
  1952. disabledRecMain_MMR001(false, null, lockMode);
  1953. } else {
  1954. disabledRecMain_MMR001(true, fGetErrMsg(1, params), lockMode);
  1955. sendSystemMail_MMR071(gMMR_INVALID_PATINFO_MMR071, null);
  1956. }
  1957. return flag;
  1958. */
  1959. }
  1960. function fSetUnLockScreen()
  1961. {
  1962. disabledRecMain_MMR001(false, null, null);
  1963. btn_err.visible = false;
  1964. }
  1965. /* @group : 기록목록에서 우클릭 메뉴에서 [같은 서식모아보기] 클릭 시
  1966. * @ver : 2010.01.04
  1967. * @by : 주희경
  1968. * @-----------------------------------
  1969. * @type : function
  1970. * @access : public
  1971. * @desc : 기록목록에서 우클릭 후 같은 서식모아보기 클릭 시 같은 서식만 모아 기록내용 조회 하도록 함수 추가
  1972. */
  1973. function fGetMediRecCnt()
  1974. {
  1975. var srcformcd = grd_medireclist.valueMatrix(grd_medireclist.row, grd_medireclist.colref("srcformcd"));
  1976. var type = grd_medireclist.valueMatrix(grd_medireclist.row, grd_medireclist.colref("type"));
  1977. if ( type == "A") {
  1978. messageBox("같은서식 모아보기 기능은 제공되지 않습니다","I999");
  1979. return;
  1980. }
  1981. //formcd가 동일한 서식 그룹의 formrecseq 추출
  1982. var seqlist = instance1.selectNodes("/root/main/mainlist/medireclist[srcformcd='"+srcformcd+"']/formrecseq");
  1983. var arrFormrecseq = new Array();
  1984. for (i=0; i<seqlist.length; i++)
  1985. {
  1986. arrFormrecseq[i] = seqlist.item(i).value;
  1987. }
  1988. fShowMediRecCnt(arrFormrecseq[0], arrFormrecseq);
  1989. /*
  1990. var formnminfo = grd_medireclist.valueMatrix(grd_medireclist.row, grd_medireclist.colref("formnminfo"));
  1991. formnminfo = formnminfo.split("-"); //서식명 추출 (예, 입퇴원요약기록-공통) => 입퇴원요약기록
  1992. var findtext = formnminfo[0];
  1993. var findrowInfo = "";
  1994. //리스트에서 서식명이 같은 서식 추출 (그리드리스트의 서식명 검색)
  1995. for(i=1; i<grd_medireclist.rows; i++)
  1996. {
  1997. var row = grd_medireclist.findRow( findtext, i, 2, false, false); //서식명이 동일한 서식 찾기
  1998. if ( row > i )
  1999. i = row;
  2000. if ( row != -1 )
  2001. {
  2002. var formrecseq = grd_medireclist.valueMatrix(row, grd_medireclist.colref("formrecseq"));
  2003. findrowInfo = findrowInfo + formrecseq + "||";
  2004. }
  2005. }
  2006. //////////////
  2007. var arrFormrecseq = findrowInfo.split("||");
  2008. */
  2009. }
  2010. /* @group : 기록목록에서 우클릭 메뉴에서 [선택목록조회] 클릭 시
  2011. * @ver : 2014.05.30
  2012. * @by : 이윤주
  2013. * @-----------------------------------
  2014. * @type : function
  2015. * @access : public
  2016. * @desc : 기록목록에서 우클릭 후 같은 선택목록조회 클릭 시 기록내용 조회 하도록 함수 추가
  2017. */
  2018. function fGetSelectedRecCnt()
  2019. {
  2020. var rows = grd_medireclist.rows;
  2021. var arrFormrecseq = new Array();
  2022. var j = 0;
  2023. for (i=1; i <= rows; i++)
  2024. {
  2025. if (grd_medireclist.isSelected(i)) {
  2026. arrFormrecseq[j] = model.getValue("/root/main/mainlist/medireclist['"+i+"']/formrecseq");
  2027. j++;
  2028. }
  2029. }
  2030. fShowMediRecCnt(arrFormrecseq);
  2031. }
  2032. /* @group : 간호정보조사지 링크
  2033. * @ver : 2010.04.19
  2034. * @by : dhkim
  2035. * @-----------------------------------
  2036. * @type : function
  2037. * @access : public
  2038. * @desc : 간호정보조사지 링크
  2039. */
  2040. function fOpenNursCareRecInfo(){
  2041. var path = "/root/main/enrcarecomrecinfo";
  2042. var param = "pid▦orddd▦cretno▦ordtype▩";
  2043. var pid = model.getValue("/root/main/paminfo/pid");
  2044. var orddd = model.getValue("/root/main/paminfo/orddd");
  2045. var indd = model.getValue("/root/main/paminfo/indd");
  2046. var cretno = model.getValue("/root/main/paminfo/cretno");
  2047. var ordtype = model.getValue("/root/main/paminfo/ioflag");
  2048. if(ordtype == "I" || ordtype == "E" || ordtype == "D"){
  2049. orddd = indd;
  2050. }
  2051. //param setting
  2052. param += pid + "▦" + orddd + "▦" + cretno + "▦" + ordtype + "▩";
  2053. //instance node생성
  2054. model.removenode(path);
  2055. model.makeNode(path);
  2056. model.refresh();
  2057. //CareCom.js 호출
  2058. fEnrCareComRecInfo_SPMNZ002(param, path);
  2059. }
  2060. /**
  2061. * @desc : 열려있는 화면을 닫아준다.
  2062. * @ver : 2010.04.26 dhkim
  2063. *
  2064. */
  2065. function fCloseNursrecPop(){
  2066. //2010.04.26 dhkim - 간호정보조사 팝업을 열기 전에 기존에 열려있던 창을 모두 닫는다.
  2067. /*
  2068. * 예)
  2069. * <root>
  2070. * <hidden>
  2071. * <opennurscarereclist>화면AID;화면BID;....</opennurscarereclist>
  2072. * </hidden>
  2073. * </root>
  2074. */
  2075. var opennurscarereclist = model.getValue("/root/hidden/opennurscarereclist");
  2076. if(opennurscarereclist.length > 0){
  2077. var opennurscarerecArr = opennurscarereclist.split(";");
  2078. var wndobj;
  2079. for(var i = 0 ; i < opennurscarerecArr.length-1 ; i++){
  2080. wndobj = getOpenWindow(opennurscarerecArr[i]);
  2081. if(wndobj != null){
  2082. wndobj.javascript.window.close();//기존에 열려있던 창닫기
  2083. }
  2084. }
  2085. //인스턴스 초기화
  2086. model.removenode("/root/hidden/opennurscarereclist");
  2087. }
  2088. }
  2089. /**
  2090. * @desc : 기관코드조회(간호공통테이블에서조회)
  2091. * @ver : 2010.04.26 dhkim 추가
  2092. */
  2093. function fGetNursHardCdInfo_MMR00100(pCode, pDate){
  2094. if ( pCode = "'077'" ) //KNUH_20110211, 주희경, 진료속도개선, '077'일 경우에만 로그인 시 조회해놓은 데이터를 copy
  2095. {
  2096. var targetNode = "/root/code_mmr00100/codeinfo";
  2097. model.removeNodeset("/root/code_mmr00100");
  2098. model.makeNode(targetNode);
  2099. var viewerObj = getViewer("sysMessage");
  2100. var srcNodes = viewerObj.window.instance1.selectNodes(gvOrderBasicInfoPath + "/codelist");
  2101. var targetNodes = instance1.selectSingleNode(targetNode);
  2102. if ( srcNodes.length > 0 )
  2103. {
  2104. for(i=0; i<srcNodes.length; i++)
  2105. {
  2106. targetNodes.appendChild(srcNodes.item(i));
  2107. }
  2108. }
  2109. }
  2110. else
  2111. {
  2112. model.removeNodeset("/root/send_mmr00100");
  2113. model.removeNodeset("/root/code_mmr00100");
  2114. model.makeNode("/root/code_mmr00100");
  2115. model.makeValue("/root/send_mmr00100/cdgrupid", pCode); // 조회할 CdGrupID 코드정보
  2116. model.makeValue("/root/send_mmr00100/srchdd" , pDate); // 조회기준일자
  2117. submit("TRMMR00902",false);
  2118. }
  2119. }
  2120. /**
  2121. * @desc : 서울성모 의료정보팀용 메뉴 (JCI인증대비 인증저장정보조회)
  2122. * @ver : 2010.07.08 dhkim 추가
  2123. * @param: formrecseq 기록순번
  2124. rechistseq 이력순번
  2125. signno 인증번호
  2126. formrecdd 기록일자
  2127. formrechm 기록시간
  2128. formnminfo 서식명
  2129. formrecdeptnm 작성과
  2130. formrecusernm 작성자
  2131. fstrgstdt 최초작성일시
  2132. */
  2133. function fGetJCICertInfo(){
  2134. var curRow = grd_medireclist.row;
  2135. var medirecGrdPath = grd_medireclist.attribute("nodeset");
  2136. var scrnid ="SPMRJ08000";
  2137. var formrecseq = model.getValue(medirecGrdPath + "[" + curRow + "]/formrecseq");
  2138. var rechistseq = model.getValue(medirecGrdPath + "[" + curRow + "]/lastrechistseq");
  2139. var signno = model.getValue(medirecGrdPath + "[" + curRow + "]/espiseq");
  2140. var formrecdd = model.getValue(medirecGrdPath + "[" + curRow + "]/formrecdd");
  2141. var formrechm = model.getValue(medirecGrdPath + "[" + curRow + "]/formrechm");
  2142. var formnminfo = model.getValue(medirecGrdPath + "[" + curRow + "]/formnminfo");
  2143. var formrecdeptnm = model.getValue(medirecGrdPath + "[" + curRow + "]/formrecdeptnm");
  2144. var formrecusernm = model.getValue(medirecGrdPath + "[" + curRow + "]/formrecusernm");
  2145. var fstrgstdt = model.getValue(medirecGrdPath + "[" + curRow + "]/fstrgstdt");
  2146. setParameter(scrnid+"_formrecseq", formrecseq); //기록순번
  2147. setParameter(scrnid+"_rechistseq", rechistseq); //이력순번
  2148. setParameter(scrnid+"_signno", signno); //인증번호
  2149. setParameter(scrnid+"_formrecdd", formrecdd); //기록일자
  2150. setParameter(scrnid+"_formrechm", formrechm); //기록시간
  2151. setParameter(scrnid+"_formnminfo", formnminfo); //서식명
  2152. setParameter(scrnid+"_formrecdeptnm", formrecdeptnm);//작성과
  2153. setParameter(scrnid+"_formrecusernm", formrecusernm);//작성자
  2154. setParameter(scrnid+"_fstrgstdt", fstrgstdt); //최초작성일시
  2155. modal(scrnid, 1, 10, 10, scrnid);
  2156. //alert(formrecseq + ',' +rechistseq + ',' + signno + ',' + formrecdd + ',' + formrechm + ',' + formnminfo + ',' + formrecdeptnm + ',' + formrecusernm + ',' + fstrgstdt);
  2157. }
  2158. /**
  2159. * @---------------------------------------------------
  2160. * @creat : 20101222
  2161. * @author : 최원돈
  2162. * @desc : ivew Visible 설정 (치과 외래진료일 경우 치과기록 사용 : 경북대)
  2163. * @---------------------------------------------------
  2164. */
  2165. function fSetIviewVisible(pb_value)
  2166. {
  2167. model.addlog("fSetIviewVisible_start");
  2168. if ( btn_tab_denti.visible
  2169. && pb_value)
  2170. {
  2171. ivw_denti.visible = true;
  2172. ivw_dentifmla.visible = true;
  2173. ivw_loader.visible = false;
  2174. swt_left.visible = false;
  2175. btn_formrecupdt.visible = false;
  2176. model.toggle("case7");
  2177. if (ivw_denti.src == "")
  2178. {
  2179. ivw_denti.src="../../../emr/dentirecweb/xrw/SMMRE00100_치과기록.xrw";
  2180. ivw_dentifmla.src="../../../emr/dentirecweb/xrw/SMMRE00700_치과기록치식.xrw";
  2181. ivw_dentifmla.window.javascript.fRecMainReady();
  2182. }
  2183. }
  2184. else
  2185. {
  2186. ivw_denti.visible = false;
  2187. ivw_dentifmla.visible = false;
  2188. ivw_loader.visible = true;
  2189. swt_left.visible = true;
  2190. btn_formrecupdt.visible = true;
  2191. }
  2192. model.addlog("fSetIviewVisible_end");
  2193. }
  2194. /**
  2195. * @---------------------------------------------------
  2196. * @creat : 20101222
  2197. * @authur : 최원돈
  2198. * @desc : ivew 화면 Default 설정(치과기록 닫기) : 경북대
  2199. * @---------------------------------------------------
  2200. */
  2201. function fDefaultBtnClick()
  2202. {
  2203. if ( btn_tab_denti.visible
  2204. && ivw_denti.src != ""
  2205. && btn_tab_denti.selected)
  2206. {
  2207. button66.dispatch("onclick");
  2208. }
  2209. }
  2210. /**
  2211. *
  2212. * 대장암 또는 간암 등록
  2213. *
  2214. *
  2215. */
  2216. function fSaveColorectalOrLiver(btn_nm){
  2217. if(btn_nm=="btn_liver"){ //간암
  2218. model.makeValue("/root/send/liver/pid",model.getValue("/root/main/paminfo/pid"));
  2219. model.makeValue("/root/send/liver/orddd",model.getValue("/root/main/paminfo/orddd"));
  2220. model.makeValue("/root/send/liver/cretno",model.getValue("/root/main/paminfo/cretno"));
  2221. model.makeValue("/root/send/liver/chosflag",model.getValue("/root/main/paminfo/ioflag"));
  2222. if (model.getValue ("/root/main/paminfo/ioflag") == "O" || model.getValue ("/root/main/paminfo/ioflag") == "S")
  2223. {
  2224. model.makeValue("/root/send/liver/orddd", model.getValue ("/root/main/paminfo/orddd")); //수진일자
  2225. } else {
  2226. model.makeValue("/root/send/liver/orddd", model.getValue ("/root/main/paminfo/indd")); //수진일자
  2227. }
  2228. model.makeValue("/root/send/liver/recflag", 3); //간암 관리는 3번
  2229. model.makeValue("/root/send/liver/fstrgstrid",getUserInfo("userid"));
  2230. model.makeValue("/root/send/liver/lastupdtrid",getUserInfo("userid"));
  2231. if(model.getValue("/root/send/liver/pid")!=""){
  2232. submit("TXMMO08101");
  2233. alert("등록 되었습니다!");
  2234. btn_liver.disabled="true";
  2235. }else{
  2236. alert("환자를 먼저 선택해주세요!");
  2237. };
  2238. }
  2239. }
  2240. function fGrdSortFlag(){
  2241. var cnt = getNodesetCount("/root/main/mainlist/medireclist");
  2242. var fromdt = model.getValue("/root/main/mainlist/medireclist[1]/formrecdt");
  2243. var todt = model.getValue("/root/main/mainlist/medireclist[" + cnt + "]/formrecdt");
  2244. if( fromdt < todt ){
  2245. sortflag = "asc";
  2246. }else{
  2247. sortflag = "desc";
  2248. }
  2249. model.makeValue("/root/temp/recformsort", sortflag );
  2250. model.refresh();
  2251. }
  2252. //2013.11.28 김영기 수진일자와 기록일자가 다를경우 색상변화
  2253. function fSetColorByNotSameOrdddandRecdd(datagrid){
  2254. var cnt = getNodesetCount("/root/main/mainlist/medireclist");
  2255. var orddd = "";
  2256. var recdd = "";
  2257. var srcformcd = "";
  2258. for(var i=1; i<=cnt; i++){
  2259. orddd = model.getValue("/root/main/mainlist/medireclist["+i+"]/orddd");
  2260. recdd = model.getValue("/root/main/mainlist/medireclist["+i+"]/formrecdd");
  2261. srcformcd = model.getValue("/root/main/mainlist/medireclist["+i+"]/srcformcd");
  2262. datagrid.rowstyle( i , "data" , "background-color" ) = "#FFFFFF";
  2263. // 수진일자 와 기록일자가 다를경우 그리고 외래초진서식(0000000001) 및 외래재진서식(0000000002) 일경우
  2264. if(orddd != recdd && (srcformcd == "0000000002" || srcformcd == "0000000001")){
  2265. datagrid.rowstyle( i , "data" , "background-color" ) = "#99CCFF";
  2266. }
  2267. }
  2268. }
  2269. function fOpenSpecialCharacterViewer(){
  2270. open("SPMMR09100");
  2271. }
  2272. //통합기록조회 간단모듈 호출(20140422 이윤주)
  2273. function fViewespi() {
  2274. var oldflag = "E";
  2275. var signno = model.getValue("/root/main/mainlist/medireclist["+grd_medireclist.row+"]/espiseq");
  2276. var formcd = model.getValue("/root/main/mainlist/medireclist["+grd_medireclist.row+"]/formcd");
  2277. setParameter("SPMRI02400_prtrecinfo", oldflag + "▦" + signno + "▦" + formcd + "▩");
  2278. setParameter("SPMRI02400_prtyn", "N");
  2279. modal("SPMRI02400");
  2280. }