SSMRC03120.js 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184
  1. /*
  2. - =======================================================================================
  3. Image EMR Viewer Program (SSMRC03100.js)
  4. - Version :
  5. 1) : Ver.1.00.00
  6. - =======================================================================================
  7. */
  8. // 다중 페이지 지원을 위한 파일 패스와 페이지 정보
  9. var g_path;
  10. var g_page;
  11. var g_page_lut;
  12. var g_form_count;
  13. /**
  14. * @group :
  15. * @ver : 2007.05.21
  16. * @by : 김재홍
  17. * @---------------------------------------------------
  18. * @type : function
  19. * @access : public
  20. * @desc : 초기화 함수
  21. * @return :
  22. * @---------------------------------------------------
  23. */
  24. function fInitilize()
  25. {
  26. // 사용하는 개체를 초기화 한다.
  27. btnNextCharts.attribute("visibility") = "hidden";
  28. capNextChrts.attribute("visibility") = "hidden";
  29. if(opener.javascript.getScreenID() == "SMMRI00400")
  30. {
  31. btnNextCharts.attribute("visibility") = "visible";
  32. capNextChrts.attribute("visibility") = "visible";
  33. }
  34. fSet_OCX_PageViewer();
  35. fSet_OCX_ThumbViewer();
  36. fSet_OCX_ChartViewer();
  37. fSet_OCX_PreViewer();
  38. // 페이지 데이터 초기화
  39. g_path = new Array();
  40. g_page = new Array();
  41. g_page_lut = new Array();
  42. g_form_count = new Array();
  43. model.setValue("/root/main/chartinfo/pagetotal", "0");
  44. model.setValue("/root/main/chartinfo/pagecurrent", "0");
  45. model.refresh();
  46. // 모든 버튼 이미지를 설정한다.
  47. setupAllButtons();
  48. // 토글 버튼의 기본값 설정
  49. //processToggleButton("btnFitBest");
  50. processToggleButton("btnPageMouseNormal");
  51. processToggleButton("btnChartMouseNormal");
  52. // 페이지뷰의 페이지 이동 버튼 설정
  53. setupMoveButton();
  54. // 보기 방법의 기본값 설정
  55. setupChart("ChartView");
  56. // 데이터 초기화
  57. resetData();
  58. // 뷰어를 IMPORT 된 크기로 FIT 시킨다.
  59. // if(document.body.isChild("importIemr") == true)
  60. // if(window.type == "iviewer")
  61. // {
  62. // fitToImportArea();
  63. // }
  64. // 썸네일 뷰어의 레이아웃 설정
  65. objThumbView.SetThumbLayout(4, 3);
  66. }
  67. /**
  68. * @group :
  69. * @ver : 2007.05.21
  70. * @by : 김재홍
  71. * @---------------------------------------------------
  72. * @type : function
  73. * @access : public
  74. * @desc : 입력받은 YYYYMMDD를 YYYY-MM-DD 로 반환한다.
  75. * @return :
  76. * @---------------------------------------------------
  77. */
  78. function formatDate(value)
  79. {
  80. return value.substr(0, 4) + "-" +
  81. value.substr(4, 2) + "-" +
  82. value.substr(6, 2);
  83. }
  84. /**
  85. * @group :
  86. * @ver : 2007.05.21
  87. * @by : 김재홍
  88. * @---------------------------------------------------
  89. * @type : function
  90. * @access : public
  91. * @desc : PageViewer OCX 초기화
  92. * @return :
  93. * @---------------------------------------------------
  94. */
  95. function fSet_OCX_PageViewer()
  96. {
  97. objPageView.BorderStyle = 1;
  98. objPageView.BackColor = 0xffffff;//0xe0e0e0;
  99. objPageView.BestFit();
  100. objPageView.HorzAlignMode = 1;
  101. objPageView.VertAlignMode = 1;
  102. objPageView.MouseMode = 4;
  103. objPageView.MagnifyingGlassWidth = 700;
  104. objPageView.MagnifyingGlassHeight = 400;
  105. //objPageView.MagnifyingGlassHeight = 300;
  106. //objPageView.MagnifyingGlassWidth = objPageView.ImageWidth;
  107. objPageView.MagnifyingGlassRatio = 1.0;
  108. }
  109. /**
  110. * @group :
  111. * @ver : 2007.05.21
  112. * @by : 김재홍
  113. * @---------------------------------------------------
  114. * @type : function
  115. * @access : public
  116. * @desc : PreViewer OCX 초기화
  117. * @return :
  118. * @---------------------------------------------------
  119. */
  120. function fSet_OCX_PreViewer()
  121. {
  122. objPreview.BorderStyle = 1;
  123. objPreview.BackColor = 0xffffff;//0xe0e0e0;
  124. objPreview.BestFit();
  125. objPreview.HorzAlignMode = 1;
  126. objPreview.VertAlignMode = 1;
  127. }
  128. /**
  129. * @group :
  130. * @ver : 2007.05.21
  131. * @by : 김재홍
  132. * @---------------------------------------------------
  133. * @type : function
  134. * @access : public
  135. * @desc : ThumbViewer OCX 초기화
  136. * @return :
  137. * @---------------------------------------------------
  138. */
  139. function fSet_OCX_ThumbViewer()
  140. {
  141. objThumbView.BorderStyle = 1;
  142. objThumbView.BackColor = 0xffffff;
  143. objThumbView.BorderColor = 0xf4f4f4;
  144. objThumbView.SelectColor = 0xc8a8c0;
  145. objThumbView.TextColor = 0x000000;
  146. objThumbView.ShowFilename = true;
  147. // objThumbView.ShowFilename = false;
  148. objThumbView.ShowIndex = false;
  149. objThumbView.ShowPage = false;
  150. objThumbView.MultiSelect = true;
  151. }
  152. /**
  153. * @group :
  154. * @ver : 2007.05.21
  155. * @by : 김재홍
  156. * @---------------------------------------------------
  157. * @type : function
  158. * @access : public
  159. * @desc : ChartViewer OCX 초기화
  160. * @return :
  161. * @---------------------------------------------------
  162. */
  163. function fSet_OCX_ChartViewer()
  164. {
  165. objChartView.BackColor = 0xffffff;
  166. // objChartView.CaptionForeColor = 0xffffff;
  167. objChartView.CaptionBackColor = 0xb99a5c;
  168. objChartView.CaptionForeColor = 0xffffff;
  169. // objChartView.CaptionBackColor = 0xffffff;
  170. objChartView.CaptionFont = "돋움";
  171. objChartView.CaptionHeight = 20;
  172. objChartView.CaptionBold = true;
  173. objChartView.CaptionItalic = false;
  174. objChartView.CaptionStrikeOut = false;
  175. objChartView.CaptionUnderline = false;
  176. objChartView.MouseMode = 0;
  177. objChartView.MagnifyingGlassWidth = 700;
  178. objChartView.MagnifyingGlassHeight = 400;
  179. objChartView.MagnifyingGlassRatio = 2.3;
  180. objChartView.DefaultRegionAnalyzeMethod =
  181. "Method=2;" +
  182. "MarginX=20;" +
  183. "MarginY=20;" +
  184. "HyphenWidthMin=7;" +
  185. "HyphenWidthMax=15;" +
  186. "HyphenHeightMin=2;" +
  187. "HyphenHeightMax=8;" +
  188. "HyphenMaxDifY=4;" +
  189. "HyphenAgreeMin=8;" +
  190. "HyphenSpaceMin=20;" +
  191. "HyphenSpaceMax=30;" +
  192. "LineMergeHeight=40;" +
  193. "LineTopEraseMargin=12;" +
  194. "LineBottomEraseMargin=0;" +
  195. "LineTop=0;" +
  196. "LineBottom=0"
  197. }
  198. /**
  199. * @group :
  200. * @ver : 2007.05.21
  201. * @by : 김재홍
  202. * @---------------------------------------------------
  203. * @type : function
  204. * @access : public
  205. * @desc : XPath로 부터 Button image Load
  206. * @return :
  207. * @---------------------------------------------------
  208. */
  209. function getXPathButtonImage(button)
  210. {
  211. return button == null ? "/root/hidden/buttonImage" : "/root/hidden/buttonImage/" + button;
  212. }
  213. /**
  214. * @group :
  215. * @ver : 2007.05.21
  216. * @by : 김재홍
  217. * @---------------------------------------------------
  218. * @type : function
  219. * @access : public
  220. * @desc : XPath로 부터 ToggleButton image Load
  221. * @return :
  222. * @---------------------------------------------------
  223. */
  224. function getXPathToggleButton(button)
  225. {
  226. return button == null ? "/root/hidden/buttonToggle" : "/root/hidden/buttonToggle/" + button;
  227. }
  228. /**
  229. * @group :
  230. * @ver : 2007.05.21
  231. * @by : 김재홍
  232. * @---------------------------------------------------
  233. * @type : function
  234. * @access : public
  235. * @desc : 등록되어 있는 모든 버튼 이미지를 설정한다.
  236. * @return :
  237. * @---------------------------------------------------
  238. */
  239. function setupAllButtons()
  240. {
  241. var node = instance1.selectSingleNode( getXPathButtonImage() );
  242. var list = node.childNodes;
  243. var total = list.length;
  244. var i;
  245. for (i = 0; i < total; i++)
  246. {
  247. setupButton( list.item(i).nodeName );
  248. }
  249. }
  250. /**
  251. * @group :
  252. * @ver : 2007.05.21
  253. * @by : 김재홍
  254. * @---------------------------------------------------
  255. * @type : function
  256. * @access : public
  257. * @desc : 토글 버튼의 속성을 반환하거나 설정한다.
  258. * @return :
  259. * @---------------------------------------------------
  260. */
  261. function toggleButton(button, property, value)
  262. {
  263. if (button == null || property == null) return;
  264. var path = getXPathToggleButton(button) + "/" + property;
  265. if (value == null)
  266. {
  267. return model.getValue(path);
  268. }
  269. else
  270. {
  271. if (model.getValue(path) != value)
  272. {
  273. model.setValue(path, value);
  274. setupButton(button);
  275. }
  276. }
  277. }
  278. /**
  279. * @group :
  280. * @ver : 2007.05.21
  281. * @by : 김재홍
  282. * @---------------------------------------------------
  283. * @type : function
  284. * @access : public
  285. * @desc : 버튼의 현재 상황에 맞게 이미지를 설정한다.
  286. * @return :
  287. * @---------------------------------------------------
  288. */
  289. function setupButton(button)
  290. {
  291. var path = model.getValue("/root/hidden/buttonImageHome") + model.getValue(getXPathButtonImage(button));
  292. var ext = model.getValue("/root/hidden/buttonImageExt");
  293. var objButton = document.controls.item(button);
  294. // 버튼 상태에 따라 이미지 설정
  295. if(toggleButton(button, "value") == "1")
  296. {
  297. objButton.attribute("background-image") = path + "_c" + ext;
  298. objButton.attribute("down.background-image") = path + "_c" + ext;
  299. objButton.attribute("hover.background-image") = path + "_c" + ext;
  300. objButton.attribute("disable.background-image") = path + "_d" + ext;
  301. }
  302. else
  303. {
  304. objButton.attribute("background-image") = path + ext;
  305. objButton.attribute("down.background-image") = path + "_c" + ext;
  306. objButton.attribute("hover.background-image") = path + "_h" + ext;
  307. objButton.attribute("disable.background-image") = path + "_d" + ext;
  308. }
  309. // disable 처리
  310. var btnDis = toggleButton(button, "disable") == "1" ? true : false;
  311. objButton.disabled = btnDis;
  312. // 버튼을 화면에 갱신
  313. objButton.refresh();
  314. }
  315. /**
  316. * @group :
  317. * @ver : 2007.05.21
  318. * @by : 김재홍
  319. * @---------------------------------------------------
  320. * @type : function
  321. * @access : public
  322. * @desc : 토글 버튼을 처리한다.
  323. * @return :
  324. * @---------------------------------------------------
  325. */
  326. function processToggleButton(button)
  327. {
  328. var node = instance1.selectSingleNode(getXPathToggleButton());
  329. var list = node.childNodes;
  330. var total = list.length;
  331. var curName;
  332. var name;
  333. var i;
  334. if (objChartView.TotalChart == 0)
  335. {
  336. return;
  337. }
  338. // 이미 켜져 있다면 처리가 필요 없음
  339. if(toggleButton(button, "value") == "1") return;
  340. // 영역확대, 확대, 축소 버튼일 경우 실제크기보기, 최적크기보기, 가로크기보기 버튼 끔
  341. if(button == "btnPageMouseRegionZoom" || button == "btnZoomIn" || button == "btnZoomOut")
  342. {
  343. if(toggleButton("btnFitBest", "value") == "1")
  344. {
  345. toggleButton("btnFitBest", "value", "0");
  346. }
  347. if(toggleButton("btnFitActual", "value") == "1")
  348. {
  349. toggleButton("btnFitActual", "value", "0");
  350. }
  351. if(toggleButton("btnFitWidth", "value") == "1")
  352. {
  353. toggleButton("btnFitWidth", "value", "0");
  354. }
  355. }
  356. // 확대, 축소 버튼의 경우 의미없음
  357. if(button == "btnZoomIn" || button == "btnZoomOut") return;
  358. curName = toggleButton(button, "name");
  359. for (i = 0; i < total; i++)
  360. {
  361. name = list.item(i).nodeName;
  362. if(toggleButton(name, "name") == curName && toggleButton(name, "value") == "1")
  363. {
  364. toggleButton(name, "value", "0");
  365. // 핸들러 호출
  366. eval(name + "_Changed()");
  367. }
  368. }
  369. toggleButton(button, "value", "1");
  370. // 핸들러 호출
  371. eval(button + "_Changed()");
  372. }
  373. /**
  374. * @group :
  375. * @ver : 2007.05.21
  376. * @by : 김재홍
  377. * @---------------------------------------------------
  378. * @type : function
  379. * @access : public
  380. * @desc : 뷰어 정보를 초기화 한다.
  381. * @return :
  382. * @---------------------------------------------------
  383. */
  384. function resetData()
  385. {
  386. // objChartView.AutoRefresh = false;
  387. // objThumbView.ClearPage();
  388. // objChartView.ChartRemove(0, 0);
  389. // objPageView.CurrentPage = 0;
  390. // objChartView.AutoRefresh = true;
  391. // 개체에 이미지가 등록되어 있다면 해지한다.
  392. objChartView.AutoRefresh = false;
  393. objChartView.ChartRemove(0, 0);
  394. objChartView.ChartScroll(1);
  395. objPageView.CurrentPage = 0;
  396. objThumbView.ClearPage();
  397. objChartView.AutoRefresh = true;
  398. // 개체의 쓰레드가 종료될때 까지 기다린다.
  399. while(objThumbView.IsThreadDone() == false);
  400. model.removeNode("/root/hidden/tempcharts");
  401. model.removeNode("/root/main/charts");
  402. model.refresh();
  403. setupMoveButton();
  404. }
  405. /**
  406. * @group :
  407. * @ver : 2007.05.21
  408. * @by : 김재홍
  409. * @---------------------------------------------------
  410. * @type : function
  411. * @access : public
  412. * @desc : 차트뷰의 끌기 마우스 커서 버튼 핸들러
  413. * @return :
  414. * @---------------------------------------------------
  415. */
  416. function btnChartMousePanning_Changed()
  417. {
  418. if(getToggleValue("ModeChartMouse") == "btnChartMousePanning")
  419. {
  420. objChartView.MouseMode = 1;
  421. }
  422. }
  423. /**
  424. * @group :
  425. * @ver : 2007.05.21
  426. * @by : 김재홍
  427. * @---------------------------------------------------
  428. * @type : function
  429. * @access : public
  430. * @desc : 차트뷰의 돋보기 마우스 커서 버튼 핸들러
  431. * @return :
  432. * @---------------------------------------------------
  433. */
  434. function btnChartMouseMagnifyingGlass_Changed()
  435. {
  436. if(getToggleValue("ModeChartMouse") == "btnChartMouseMagnifyingGlass")
  437. {
  438. objChartView.MouseMode = 2;
  439. }
  440. }
  441. /**
  442. * @group :
  443. * @ver : 2007.05.21
  444. * @by : 김재홍
  445. * @---------------------------------------------------
  446. * @type : function
  447. * @access : public
  448. * @desc : 차트뷰의 디폴트 마우스 커서 버튼 핸들러
  449. * @return :
  450. * @---------------------------------------------------
  451. */
  452. function btnChartMouseNormal_Changed()
  453. {
  454. if(getToggleValue("ModeChartMouse") == "btnChartMouseNormal")
  455. {
  456. objChartView.MouseMode = 0;
  457. }
  458. }
  459. /**
  460. * @group :
  461. * @ver : 2007.05.21
  462. * @by : 김재홍
  463. * @---------------------------------------------------
  464. * @type : function
  465. * @access : public
  466. * @desc : 실제 크기 맞추기 버튼 핸들러
  467. * @return :
  468. * @---------------------------------------------------
  469. */
  470. function btnFitActual_Changed()
  471. {
  472. if(getToggleValue("ModeFit") == "btnFitActual")
  473. {
  474. objPageView.ActualSize();
  475. processToggleButton("btnPageMousePanning");
  476. }
  477. }
  478. /**
  479. * @group :
  480. * @ver : 2007.05.21
  481. * @by : 김재홍
  482. * @---------------------------------------------------
  483. * @type : function
  484. * @access : public
  485. * @desc : 최적 크기 맞추기 버튼 핸들러
  486. * @return :
  487. * @---------------------------------------------------
  488. */
  489. function btnFitBest_Changed()
  490. {
  491. if(getToggleValue("ModeFit") == "btnFitBest")
  492. {
  493. objPageView.BestFit();
  494. //processToggleButton("btnPageMouseMagnifyingGlass");
  495. }
  496. }
  497. /**
  498. * @group :
  499. * @ver : 2007.05.21
  500. * @by : 김재홍
  501. * @---------------------------------------------------
  502. * @type : function
  503. * @access : public
  504. * @desc : 가로 크기 맞추기 버튼 핸들러
  505. * @return :
  506. * @---------------------------------------------------
  507. */
  508. function btnFitWidth_Changed()
  509. {
  510. if(getToggleValue("ModeFit") == "btnFitWidth")
  511. {
  512. objPageView.FitToWidth();
  513. processToggleButton("btnPageMousePanning");
  514. }
  515. }
  516. /**
  517. * @group :
  518. * @ver : 2007.05.21
  519. * @by : 김재홍
  520. * @---------------------------------------------------
  521. * @type : function
  522. * @access : public
  523. * @desc : 일반 마우스 커서 버튼 핸들러
  524. * @return :
  525. * @---------------------------------------------------
  526. */
  527. function btnPageMouseNormal_Changed()
  528. {
  529. if(getToggleValue("ModePageMouse") == "btnPageMouseNormal")
  530. {
  531. objPageView.MouseMode = 0;
  532. }
  533. }
  534. /**
  535. * @group :
  536. * @ver : 2007.05.21
  537. * @by : 김재홍
  538. * @---------------------------------------------------
  539. * @type : function
  540. * @access : public
  541. * @desc : 영역 확대 마우스 커서 버튼 핸들러
  542. * @return :
  543. * @---------------------------------------------------
  544. */
  545. function btnPageMouseRegionZoom_Changed()
  546. {
  547. if(getToggleValue("ModePageMouse") == "btnPageMouseRegionZoom")
  548. {
  549. objPageView.MouseMode = 2;
  550. }
  551. }
  552. /**
  553. * @group :
  554. * @ver : 2007.05.21
  555. * @by : 김재홍
  556. * @---------------------------------------------------
  557. * @type : function
  558. * @access : public
  559. * @desc : 돋보기 마우스 커서 버튼 핸들러
  560. * @return :
  561. * @---------------------------------------------------
  562. */
  563. function btnPageMouseMagnifyingGlass_Changed()
  564. {
  565. if(getToggleValue("ModePageMouse") == "btnPageMouseMagnifyingGlass")
  566. {
  567. objPageView.MouseMode = 4;
  568. }
  569. }
  570. /**
  571. * @group :
  572. * @ver : 2007.05.21
  573. * @by : 김재홍
  574. * @---------------------------------------------------
  575. * @type : function
  576. * @access : public
  577. * @desc : 끌기 마우스 커서 버튼 핸들러
  578. * @return :
  579. * @---------------------------------------------------
  580. */
  581. function btnPageMousePanning_Changed()
  582. {
  583. if(getToggleValue("ModePageMouse") == "btnPageMousePanning")
  584. {
  585. objPageView.MouseMode = 1;
  586. }
  587. }
  588. /**
  589. * @group :
  590. * @ver : 2007.05.21
  591. * @by : 김재홍
  592. * @---------------------------------------------------
  593. * @type : function
  594. * @access : public
  595. * @desc : 차트 정보의 xpath를 반환한다.
  596. * @return :
  597. * @---------------------------------------------------
  598. */
  599. function getXPathChart(page, value)
  600. {
  601. return "/root/main/charts[" + page + "]" + ((value == null) ? "" : "/" + value);
  602. }
  603. /**
  604. * @group :
  605. * @ver : 2007.05.21
  606. * @by : 김재홍
  607. * @---------------------------------------------------
  608. * @type : function
  609. * @access : public
  610. * @desc : 보기 모드와 현재 페이지에 따라 적당한 차트가 보이도록 설정한다.
  611. * @return :
  612. * @---------------------------------------------------
  613. */
  614. function setupChart(ViewMode)
  615. {
  616. if(ViewMode == null)
  617. {
  618. // 보기 모드가 지정되지 않았다면 현재의 값을 사용한다.
  619. ViewMode = model.getValue("/root/hidden/currentViewMode");
  620. }
  621. else
  622. {
  623. // 보기 모드에 따라 스위치를 설정한다.
  624. switch(ViewMode)
  625. {
  626. case "PageView":
  627. model.toggle("swViewModeCase3");
  628. document.controls.item("btnPageView").selected = true;
  629. break;
  630. case "ThumbView":
  631. model.toggle("swtViewModeCase1");
  632. document.controls.item("btnThumbView").selected = true;
  633. break;
  634. case "ChartView":
  635. model.toggle("swViewModeCase2");
  636. document.controls.item("btnChartView").selected = true;
  637. break;
  638. }
  639. // 현재 보기 모드를 저장한다.
  640. model.setValue("/root/hidden/currentViewMode", ViewMode);
  641. }
  642. var pageTotal = parseInt(model.getValue("/root/main/chartinfo/pagetotal"));
  643. var pageCurrent = parseInt(model.getValue("/root/main/chartinfo/pagecurrent"));
  644. var nPrv;
  645. var nCur;
  646. var nPage;
  647. var i;
  648. var j;
  649. var count;
  650. var imgemrcount;
  651. var totalemrorddate;
  652. var totalemrformnm;
  653. var totalemrformcd;
  654. var totalemrdeptnm;
  655. var totalemrdeptcd;
  656. var totalemrpage;
  657. var totalemrhiddenmsg;
  658. var emrorddate;
  659. var emrformnm;
  660. var emrformcd;
  661. var emrdeptnm;
  662. var emrdeptcd;
  663. var emrpage;
  664. var emrhiddenmsg;
  665. var counttemp = 0;
  666. var countnull = 0;
  667. var txtemrcount = 0;
  668. var txtemrcounttemp = 0;
  669. var emrcounttemp = 0;
  670. var emrfilepath = "";
  671. var emrfilepathtemp = "";
  672. var emrgpath = 0;
  673. var emrchartindex;
  674. var emrpagecount = 0;
  675. var emrresult = 0;
  676. var emrtotalpagecount = 0;
  677. switch(ViewMode)
  678. {
  679. case "PageView":
  680. if (pageCurrent != 0)
  681. {
  682. objPageView.Load(g_path[pageCurrent], g_page[pageCurrent]);
  683. }
  684. else
  685. {
  686. model.setValue("/root/main/chartinfo/pagecurrent", "1");
  687. pageCurrent = parseInt(model.getValue("/root/main/chartinfo/pagecurrent"));
  688. model.refresh();
  689. objPageView.Load(g_path[pageCurrent], g_page[pageCurrent]);
  690. }
  691. processToggleButton("btnPageMouseNormal");
  692. break;
  693. case "ChartView":
  694. processToggleButton("btnChartMouseNormal");
  695. break;
  696. }
  697. }
  698. /**
  699. * @group :
  700. * @ver : 2007.05.21
  701. * @by : 김재홍
  702. * @---------------------------------------------------
  703. * @type : function
  704. * @access : public
  705. * @desc : 페이지뷰 툴바에 있는 페이지 이동 버튼의 활성화 여부를 처리한다.
  706. * @return :
  707. * @---------------------------------------------------
  708. */
  709. function setupMoveButton()
  710. {
  711. var pageTotal = parseInt(model.getValue("/root/main/chartinfo/pagetotal"));
  712. var pageCurrent = parseInt(model.getValue("/root/main/chartinfo/pagecurrent"));
  713. var prev = "1";
  714. var next = "1";
  715. if (pageCurrent > 1) prev = "0";
  716. if (pageCurrent < pageTotal) next = "0";
  717. toggleButton("btnMoveFirst", "disable", prev);
  718. toggleButton("btnMovePrev", "disable", prev);
  719. toggleButton("btnMoveLast", "disable", next);
  720. toggleButton("btnMoveNext", "disable", next);
  721. }
  722. /**
  723. * @group :
  724. * @ver : 2007.05.21
  725. * @by : 김재홍
  726. * @---------------------------------------------------
  727. * @type : function
  728. * @access : public
  729. * @desc : 프린터 설정
  730. * @return :
  731. * @---------------------------------------------------
  732. */
  733. function printSetup(hWND)
  734. {
  735. if (objBIP.PrinterSetup(hWND) == true)
  736. {
  737. return true;
  738. }
  739. else
  740. {
  741. return false;
  742. }
  743. }
  744. /**
  745. * @group :
  746. * @ver : 2007.05.21
  747. * @by : 김재홍
  748. * @---------------------------------------------------
  749. * @type : function
  750. * @access : public
  751. * @desc : 출력 로그 설정
  752. * @return :
  753. * @---------------------------------------------------
  754. */
  755. function printLog(page)
  756. {
  757. page = g_page_lut[page];
  758. return model.getValue(getXPathChart(page, "chrtpage")) + "|" +
  759. model.getValue(getXPathChart(page, "ordno")) + "|" +
  760. model.getValue(getXPathChart(page, "pageno")) + "|" +
  761. model.getValue(getXPathChart(page, "docucd")) + "|" +
  762. model.getValue(getXPathChart(page, "orddeptcd")) + "|" +
  763. model.getValue(getXPathChart(page, "ptdt")) + "|" +
  764. model.getValue(getXPathChart(page, "usercd")) + "|" +
  765. model.getValue(getXPathChart(page, "indd")) + "|" +
  766. model.getValue(getXPathChart(page, "outdd")) + "|" +
  767. model.getValue(getXPathChart(page, "remtip")) + "|" +
  768. model.getValue(getXPathChart(page, "remtport"));
  769. }
  770. /**
  771. * @group :
  772. * @ver : 2007.05.21
  773. * @by : 김재홍
  774. * @---------------------------------------------------
  775. * @type : function
  776. * @access : public
  777. * @desc : 현재 보이는 차트를 출력한다.
  778. * @return :
  779. * @---------------------------------------------------
  780. */
  781. function printChart(docName)
  782. {
  783. var strPage;
  784. var strPage;
  785. var strPrintLog;
  786. var bFirstPage;
  787. switch(model.getValue("/root/hidden/currentViewMode"))
  788. {
  789. case "PageView":
  790. var pageCurrent = parseInt(model.getValue("/root/main/chartinfo/pagecurrent"));
  791. if(pageCurrent > 0)
  792. {
  793. strPath = g_path[pageCurrent];
  794. strPage = g_page[pageCurrent];
  795. // objBIP.StartDoc(docName);
  796. if (objBIP.StartDoc(docName) == false)
  797. {
  798. return false;
  799. }
  800. // objBIP.PrintImage(g_path[pageCurrent], g_page[pageCurrent]);
  801. if (objBIP.PrintImage(g_path[pageCurrent], g_page[pageCurrent]) == false)
  802. {
  803. return false;
  804. }
  805. // objBIP.EndDoc();
  806. if (objBIP.EndDoc() == false)
  807. {
  808. return false;
  809. }
  810. // 출력 통보
  811. model.setAttribute("sCMR_Param", printLog(pageCurrent));
  812. }
  813. else
  814. {
  815. alert("출력할 페이지가 없습니다.");
  816. return false;
  817. }
  818. break;
  819. case "ThumbView":
  820. if(objThumbView.TotalSelectedThumbnail == 0)
  821. {
  822. // alert("선택된 차트가 없습니다.");
  823. // return;
  824. // objBIP.StartDoc(docName);
  825. if (objBIP.StartDoc(docName) == false)
  826. {
  827. return false;
  828. }
  829. bFirstPage = true;
  830. strPrintLog = "";
  831. for(i = 1; i <= objThumbView.TotalThumbnail; i++)
  832. {
  833. if(bFirstPage == false)
  834. {
  835. // objBIP.NewPage();
  836. if (objBIP.NewPage() == false)
  837. {
  838. return false;
  839. }
  840. strPrintLog += ",";
  841. }
  842. else
  843. {
  844. bFirstPage = false;
  845. }
  846. // objBIP.PrintImage(objThumbView.FileName(i), objThumbView.Page(i));
  847. if (objBIP.PrintImage(objThumbView.FileName(i), objThumbView.Page(i)) == false)
  848. {
  849. return false;
  850. }
  851. strPrintLog += printLog(i);
  852. }
  853. // objBIP.EndDoc();
  854. if (objBIP.EndDoc() == false)
  855. {
  856. return false;
  857. }
  858. model.setAttribute("sCMR_Param", strPrintLog);
  859. break;
  860. }
  861. else
  862. {
  863. // objBIP.StartDoc(docName);
  864. if (objBIP.StartDoc(docName) == false)
  865. {
  866. return false;
  867. }
  868. bFirstPage = true;
  869. strPrintLog = "";
  870. for(i = 1; i <= objThumbView.TotalThumbnail; i++)
  871. {
  872. if(objThumbView.Select(i) == true)
  873. {
  874. if(bFirstPage == false)
  875. {
  876. // objBIP.NewPage();
  877. if (objBIP.NewPage() == false)
  878. {
  879. return false;
  880. }
  881. strPrintLog += ",";
  882. }
  883. else
  884. {
  885. bFirstPage = false;
  886. }
  887. // objBIP.PrintImage(objThumbView.FileName(i), objThumbView.Page(i));
  888. if (objBIP.PrintImage(objThumbView.FileName(i), objThumbView.Page(i)) == false)
  889. {
  890. return false;
  891. }
  892. strPrintLog += printLog(i);
  893. }
  894. }
  895. // objBIP.EndDoc();
  896. if (objBIP.EndDoc() == false)
  897. {
  898. return false;
  899. }
  900. model.setAttribute("sCMR_Param", strPrintLog);
  901. break;
  902. }
  903. case "ChartView":
  904. alert("'연속보기' 에서는 출력할 수 없습니다.");
  905. return false;
  906. break;
  907. }
  908. return true;
  909. }
  910. /**
  911. * @group :
  912. * @ver : 2007.05.21
  913. * @by : 김재홍
  914. * @---------------------------------------------------
  915. * @type : function
  916. * @access : public
  917. * @desc : 검색 조건에 의해 검색을 하고 검색된 차트를 출력한다.
  918. * @return :
  919. * @---------------------------------------------------
  920. */
  921. function printChartBySearch(docName, param)
  922. {
  923. resetData();
  924. // 전송할 데이터를 만든다.
  925. var destNode = instance1.selectSingleNode("/root/_send/data1");
  926. model.copyNode(destNode, param);
  927. model.setValue("/root/main/chartinfo/filetotal", model.getValue("/root/_send/data1/pgto"));
  928. // 전송
  929. submit("TRMRC00105");
  930. // 만들었던 데이터 삭제
  931. model.resetInstanceNode("/root/_send");
  932. // 페이지 정보를 조정한다.
  933. model.setValue("/root/main/chartinfo/pagecurrent", model.getValue("/root/main/chartinfo/pagetotal") != "0" ? "1" : "0");
  934. model.refresh();
  935. // 차트 파일을 다운로드 받는다.
  936. downloadChart();
  937. // 차트를 출력한다.
  938. printChart(docName);
  939. }
  940. /**
  941. * @group :
  942. * @ver : 2007.05.21
  943. * @by : 김재홍
  944. * @---------------------------------------------------
  945. * @type : function
  946. * @access : public
  947. * @desc : 검색 조건에 의해 검색을 하고 검색된 차트를 보여준다.
  948. * @return :
  949. * @---------------------------------------------------
  950. */
  951. function searchChart(param)
  952. {
  953. var count;
  954. var r, re;
  955. r = ",";
  956. re = "','";
  957. resetData();
  958. // alert(instance1.selectSingleNode("/root/hidden/temp").xml);
  959. // 전송할 데이터를 만든다.
  960. var destNode = instance1.selectSingleNode("/root/_send/data1");
  961. model.copyNode(destNode, param);
  962. // if (destNode.cmc_spcid.nodeValue != null && destNode.cmc_spcid.nodeValue != "")
  963. // {
  964. // destNode.cmc_spcid.nodeValue = "'" + destNode.cmc_spcid.nodeValue.setReplaceWord(r, re) + "'";
  965. // }
  966. // if (destNode.cmc_orddate.nodeValue != null && destNode.cmc_orddate.nodeValue != "")
  967. // {
  968. // destNode.cmc_orddate.nodeValue = "'" + destNode.cmc_orddate.nodeValue.setReplaceWord(r, re) + "'";
  969. // }
  970. // 전송
  971. submit("TRMRC03101");
  972. count = 1;
  973. // alert(instance1.selectSingleNode("/root/hidden/temp").xml);
  974. /*
  975. if (model.getValue("/root/main/charts[" + count + "]/chrtpage") == null || model.getValue("/root/main/charts[" + count + "]/chrtpage") == "")
  976. {
  977. alert("해당 데이터가 없습니다.");
  978. }
  979. */
  980. // 보여줄 페이지 수를 센다.
  981. while(model.getValue("/root/main/charts[" + count + "]/chrtpage") != null && model.getValue("/root/main/charts[" + count + "]/chrtpage") != "")
  982. {
  983. count++;
  984. }
  985. model.makeNode("/root/_send/data1/pagetot");
  986. model.setValue("/root/_send/data1/pagetot", count - 1);
  987. model.setValue("/root/main/chartinfo/filetotal", model.getValue("/root/_send/data1/pagetot"));
  988. g_form_count[0] = model.getValue("/root/main/chartinfo/filetotal");
  989. // 만들었던 데이터 삭제
  990. model.resetInstanceNode("/root/_send");
  991. // 페이지 정보를 조정한다.
  992. model.setValue("/root/main/chartinfo/pagecurrent", model.getValue("/root/main/chartInfo/pagetotal") != "0" ? "1" : "0");
  993. model.refresh();
  994. }
  995. /**
  996. * @group :
  997. * @ver : 2007.05.21
  998. * @by : 김재홍
  999. * @---------------------------------------------------
  1000. * @type : function
  1001. * @access : public
  1002. * @desc : 검색 조건에 의해 검색을 하고 검색된 차트를 보여준다.
  1003. * @return :
  1004. * @---------------------------------------------------
  1005. */
  1006. function searchChart_EMR(param)
  1007. {
  1008. var count;
  1009. var r, re;
  1010. r = ",";
  1011. re = "','";
  1012. var treatno;
  1013. var docucd;
  1014. var temptreatno;
  1015. var tempdocucd;
  1016. var count;
  1017. var countmain;
  1018. var counthidden;
  1019. resetData();
  1020. // 전송할 데이터를 만든다.
  1021. var destNode = instance1.selectSingleNode("/root/_send/data1");
  1022. model.copyNode(destNode, param);
  1023. temptreatno = destNode.treatno.nodeValue;
  1024. tempdocucd = destNode.docucd.nodeValue;
  1025. treatno = temptreatno.split(",");
  1026. docucd = tempdocucd.split(",");
  1027. model.makeNode("/root/hidden/tempcharts");
  1028. counthidden = 1;
  1029. for (count = 1; count < treatno.length + 1; count++)
  1030. {
  1031. destNode.treatno.nodeValue = treatno[count - 1];
  1032. destNode.docucd.nodeValue = docucd[count - 1];
  1033. submit("TRMRC03101");
  1034. g_form_count[count - 1] = counthidden - 1;
  1035. countmain = 1;
  1036. while(model.getValue("/root/main/charts[" + countmain + "]/chrtpage") != null && model.getValue("/root/main/charts[" + countmain + "]/chrtpage") != "")
  1037. {
  1038. model.makeNode("/root/hidden/tempcharts[" + counthidden + "]");
  1039. model.copyNode("/root/hidden/tempcharts[" + counthidden + "]", "/root/main/charts[" + countmain + "]");
  1040. countmain++;
  1041. counthidden++;
  1042. }
  1043. g_form_count[count - 1] = counthidden - 1;
  1044. model.refresh();
  1045. }
  1046. model.removeNode("/root/main/charts");
  1047. model.makeNode("/root/main/charts");
  1048. for (count = 1; count <= counthidden; count++)
  1049. {
  1050. model.makeNode("root/main/charts[" + count + "]");
  1051. model.copyNode("root/main/charts[" + count + "]", "root/hidden/tempcharts[" + count + "]");
  1052. }
  1053. count = 1;
  1054. // 보여줄 페이지 수를 센다.
  1055. while(model.getValue("/root/main/charts[" + count + "]/chrtpage") != null && model.getValue("/root/main/charts[" + count + "]/chrtpage") != "")
  1056. {
  1057. count++;
  1058. }
  1059. model.makeNode("/root/_send/data1/pagetot");
  1060. model.setValue("/root/_send/data1/pagetot", count - 1);
  1061. model.setValue("/root/main/chartinfo/filetotal", model.getValue("/root/_send/data1/pagetot"));
  1062. // 만들었던 데이터 삭제
  1063. model.resetInstanceNode("/root/_send");
  1064. // 페이지 정보를 조정한다.
  1065. model.setValue("/root/main/chartinfo/pagecurrent", model.getValue("/root/main/chartInfo/pagetotal") != "0" ? "1" : "0");
  1066. model.refresh();
  1067. }
  1068. /**
  1069. * @group :
  1070. * @ver : 2007.05.21
  1071. * @by : 김재홍
  1072. * @---------------------------------------------------
  1073. * @type : function
  1074. * @access : public
  1075. * @desc : 토글 버튼 그룹에서 눌려져 있는 버튼 이름을 반환한다.
  1076. * @return :
  1077. * @---------------------------------------------------
  1078. */
  1079. function getToggleValue(group)
  1080. {
  1081. var node = instance1.selectSingleNode( getXPathToggleButton() );
  1082. var list = node.childNodes;
  1083. var total = list.length;
  1084. var name;
  1085. var i;
  1086. for(i = 0; i < total; i++)
  1087. {
  1088. name = list.item(i).nodeName;
  1089. if(toggleButton(name, "name") == group && toggleButton(name, "value") == "1")
  1090. {
  1091. return name;
  1092. }
  1093. }
  1094. return "";
  1095. }
  1096. /**
  1097. * @group :
  1098. * @ver : 2007.05.21
  1099. * @by : 김재홍
  1100. * @---------------------------------------------------
  1101. * @type : function
  1102. * @access : public
  1103. * @desc : 차트 파일을 받아올 폴더를 만들고 내용을 정리한다.
  1104. * @return :
  1105. * @---------------------------------------------------
  1106. */
  1107. function setupRecvPath(fso)
  1108. {
  1109. var pathRecv;
  1110. var curFolder;
  1111. var curFile;
  1112. // 개체에 이미지가 등록되어 있다면 해지한다.
  1113. objChartView.AutoRefresh = false;
  1114. objChartView.ChartRemove(0, 0);
  1115. objPageView.CurrentPage = 0;
  1116. objThumbView.ClearPage();
  1117. objChartView.AutoRefresh = true;
  1118. // 개체의 쓰레드가 종료될때 까지 기다린다.
  1119. while(objThumbView.IsThreadDone() == false);
  1120. pathRecv = fso.GetSpecialFolder(2) + "\\bitnixViewer\\";
  1121. // 차트를 다운받을 폴더가 없다면 만든다.
  1122. if( fso.FolderExists(pathRecv) == false)
  1123. {
  1124. fso.CreateFolder(pathRecv);
  1125. }
  1126. // 폴더안에 있는 모든 파일을 삭제한다.
  1127. curFolder = fso.GetFolder(pathRecv);
  1128. curFile = new Enumerator(curFolder.Files);
  1129. for(; !curFile.atEnd(); curFile.moveNext())
  1130. {
  1131. fso.DeleteFile(curFile.item().Path, true);
  1132. }
  1133. // 차트 폴더를 저장
  1134. model.setValue("/root/hidden/chartImageHome", pathRecv);
  1135. }
  1136. /**
  1137. * @group :
  1138. * @ver : 2007.05.21
  1139. * @by : 김재홍
  1140. * @---------------------------------------------------
  1141. * @type : function
  1142. * @access : public
  1143. * @desc : SFT서버에서 GetFiles()를 이용해서 파일을 받는다.
  1144. * @return :
  1145. * @---------------------------------------------------
  1146. */
  1147. function getFiles(host, port, user, pass, pathRemote, pathLocal)
  1148. {
  1149. var result;
  1150. objSFT.Host = host;
  1151. objSFT.Port = port;
  1152. objSFT.Account = user;
  1153. objSFT.Password = pass;
  1154. objSFT.Connect();
  1155. if(objSFT.IsOnline() == false) return false;
  1156. result = objSFT.GetFiles(pathRemote, pathLocal);
  1157. objSFT.Close();
  1158. return result;
  1159. }
  1160. /**
  1161. * @group :
  1162. * @ver : 2007.05.21
  1163. * @by : 김재홍
  1164. * @---------------------------------------------------
  1165. * @type : function
  1166. * @access : public
  1167. * @desc : 필요한 차트 파일을 SFT서버로 부터 다운로드 받는다.
  1168. * @return :
  1169. * @---------------------------------------------------
  1170. */
  1171. function downloadChart()
  1172. {
  1173. var fso;
  1174. var curAddr = "";
  1175. var curHost = "";
  1176. var curPort = "";
  1177. var xpathChart;
  1178. var pathRemote = "";
  1179. var pathLocal = "";
  1180. var pathSrc;
  1181. var pathDst;
  1182. var pageDemand;
  1183. var filename;
  1184. var pathname;
  1185. var rmad;
  1186. var rmpo;
  1187. var i;
  1188. var j;
  1189. fso = new ActiveXObject("Scripting.FileSystemObject");
  1190. // 차트 파일을 다운로드 받을 폴더를 준비한다.
  1191. var pathRecv;
  1192. pathRecv = fso.GetSpecialFolder(2) + "\\bitnixViewer\\";
  1193. // 차트를 다운받을 폴더가 없다면 만든다.
  1194. if( fso.FolderExists(pathRecv) == false)
  1195. {
  1196. fso.CreateFolder(pathRecv);
  1197. }
  1198. // 차트 폴더를 저장
  1199. model.setValue("/root/hidden/chartImageHome", pathRecv);
  1200. //setupRecvPath(fso);
  1201. var fileTotal = model.getValue("/root/main/chartinfo/filetotal");
  1202. var pathRecv = model.getValue("/root/hidden/chartImageHome");
  1203. if (fileTotal >= 1)
  1204. {
  1205. body.disabled = false;
  1206. //pageDemand = 0;
  1207. pageDemand = parseInt(objThumbView.TotalThumbnail);
  1208. for(i = 0; i < fileTotal; i++ )
  1209. {
  1210. // 작업할 차트 정보를 갖고 있는 xpath를 만든다.
  1211. xpathChart = getXPathChart(i + 1);
  1212. // 다운로드 받을 파일이 있는 서버 정보를 얻는다.
  1213. rmad = model.getValue(xpathChart + "/remtip");
  1214. rmpo = model.getValue(xpathChart + "/remtport");
  1215. // rmad가 비어 있다면 로컬 디스크 상에 파일이 있는걸로 간주한다.
  1216. if(rmad != "")
  1217. {
  1218. // 다운로드 받을 파일의 패스를 만든다.
  1219. filename = model.getValue(xpathChart + "/pageno");
  1220. pathname = "000" + filename;
  1221. pathSrc = model.getValue(xpathChart + "/remtpath") + "\\" + pathname.substr(pathname.length - 4, 4) + "\\" + filename + "." + model.getValue(xpathChart+ "/fileextn ");
  1222. pathDst = pathRecv + filename;
  1223. // 파일을 다운로드 받거나 패스 문자열을 만든다.
  1224. if(curAddr == rmad && curPort == rmpo)
  1225. {
  1226. // 이미 존재하는 내용이 있다면 연결 문자를 추가한다.
  1227. if( pathRemote.length != 0 )
  1228. {
  1229. pathRemote = pathRemote + "|";
  1230. pathLocal = pathLocal + "|";
  1231. }
  1232. // 받을 파일을 추가한다.
  1233. pathRemote = pathRemote + pathSrc;
  1234. pathLocal = pathLocal + pathDst;
  1235. }
  1236. else
  1237. {
  1238. // 필요하다면 파일을 다운로드 받는다.
  1239. if(pathRemote.length != 0 )
  1240. {
  1241. if(getFiles(curAddr, curPort, model.getValue(xpathChart+ "/remtuser"), model.getValue(xpathChart+ "/remtpwd"), pathRemote, pathLocal) == false) return false;
  1242. }
  1243. // 현재 상태를 초기화 한다.
  1244. pathRemote = pathSrc;
  1245. pathLocal = pathDst;
  1246. curAddr = rmad;
  1247. curPort = rmpo;
  1248. }
  1249. // 파일 패스와 페이지 번호 저장
  1250. g_path[pageDemand + 1] = pathDst;
  1251. g_page[pageDemand + 1] = 1;
  1252. g_page_lut[pageDemand + 1] = i + 1;
  1253. pageDemand++;
  1254. }
  1255. else
  1256. {
  1257. // 로컬 디스크에 파일이 있을경우 그 패스는 rmpt에 들어가 있게 된다.
  1258. // pageno에 보여질 이미지 파일의 파일 이름을 저장해 두게 된다.
  1259. // 원본과 복사본 파일 패스
  1260. filename = "local" + i + ".txt";
  1261. pathSrc = model.getValue(xpathChart + "/remtpath");
  1262. pathDst = pathRecv + filename;
  1263. // 파일 복사
  1264. fso.CopyFile(pathSrc, pathDst, true);
  1265. // 파일 이름을 pageno에 저장
  1266. model.setValue(xpathChart + "/pageno", filename);
  1267. // 파일 패스와 페이지 번호 저장
  1268. objPreview.Load(pathDst, 1);
  1269. for(j = 0; j < objPreview.TotalPage; j++)
  1270. {
  1271. g_path[pageDemand + 1] = pathDst;
  1272. g_page[pageDemand + 1] = j + 1;
  1273. g_page_lut[pageDemand + 1] = i + 1;
  1274. pageDemand++;
  1275. }
  1276. objPreview.ImageFilePath = "";
  1277. }
  1278. }
  1279. // 필요하다면 파일을 다운로드 받는다.
  1280. if( pathRemote.length != 0 )
  1281. {
  1282. if(getFiles(curAddr, curPort, model.getValue(xpathChart+ "/remtuser"), model.getValue(xpathChart+ "/remtpwd"), pathRemote, pathLocal) == false) return false;
  1283. }
  1284. setupMoveButton();
  1285. return true;
  1286. }
  1287. }
  1288. /**
  1289. * @group :
  1290. * @ver : 2007.05.21
  1291. * @by : 김재홍
  1292. * @---------------------------------------------------
  1293. * @type : function
  1294. * @access : public
  1295. * @desc : 필요한 차트 파일을 SFT서버로 부터 다운로드 받는다.
  1296. * @return :
  1297. * @---------------------------------------------------
  1298. */
  1299. function appendEMRChart()
  1300. {
  1301. var i, j;
  1302. var count = 0;
  1303. var emrTotalPath;
  1304. var emrPagePath;
  1305. var emrPageTotal;
  1306. var temp_path;
  1307. var temp_page;
  1308. var temp_page_lut;
  1309. var countform = 0;
  1310. var counttemp = 0;
  1311. temp_path = new Array();
  1312. temp_page = new Array();
  1313. temp_page_lut = new Array();
  1314. if (model.getValue("/root/main/emrpath") != null && model.getValue("/root/main/emrpath") != "")
  1315. {
  1316. emrTotalPath = model.getValue("/root/main/emrpath");
  1317. emrPagePath = emrTotalPath.split("|");
  1318. for (i = 1; i <= emrPagePath.length; i++)
  1319. {
  1320. if (emrPagePath[i - 1].substring(0, 1) == "*")
  1321. {
  1322. for (j = counttemp + 1; j <= g_form_count[countform]; j++)
  1323. {
  1324. temp_path[count + 1] = g_path[j];
  1325. temp_page[count + 1] = g_page[j];
  1326. temp_page_lut[count + 1] = g_page_lut[j];
  1327. count++;
  1328. }
  1329. countform++;
  1330. counttemp = g_form_count[countform - 1];
  1331. // for (j = 1; j < g_path.length; j++)
  1332. // {
  1333. // temp_path[count] = g_path[j];
  1334. // temp_page[count] = g_page[j];
  1335. // temp_page_lut[count] = g_page_lut[j];
  1336. // count = count + 1;
  1337. // }
  1338. }
  1339. else
  1340. {
  1341. temp_path[count + 1] = emrPagePath[i - 1];
  1342. temp_page[count + 1] = 1;
  1343. temp_page_lut[count + 1] = 1;
  1344. count++;
  1345. }
  1346. }
  1347. g_path = temp_path;
  1348. g_page = temp_page;
  1349. g_page_lut = temp_page_lut;
  1350. }
  1351. return count;
  1352. }
  1353. /**
  1354. * @group :
  1355. * @ver : 2007.05.21
  1356. * @by : 김재홍
  1357. * @---------------------------------------------------
  1358. * @type : function
  1359. * @access : public
  1360. * @desc : 다음 Chart를 가져온다.
  1361. * @return :
  1362. * @---------------------------------------------------
  1363. */
  1364. function fMoveNext()
  1365. {
  1366. var pageCurrent = parseInt(model.getValue("/root/main/chartinfo/pagecurrent"));
  1367. model.setValue("/root/main/chartinfo/pagecurrent", pageCurrent + 1);
  1368. setupMoveButton();
  1369. model.refresh();
  1370. setupChart();
  1371. }
  1372. /**
  1373. * @group :
  1374. * @ver : 2007.05.21
  1375. * @by : 김재홍
  1376. * @---------------------------------------------------
  1377. * @type : function
  1378. * @access : public
  1379. * @desc : 이전 Chart를 가져온다.
  1380. * @return :
  1381. * @---------------------------------------------------
  1382. */
  1383. function fMovePrev()
  1384. {
  1385. var pageCurrent = parseInt(model.getValue("/root/main/chartinfo/pagecurrent"));
  1386. model.setValue("/root/main/chartinfo/pagecurrent", pageCurrent - 1);
  1387. setupMoveButton();
  1388. model.refresh();
  1389. setupChart();
  1390. }
  1391. /**
  1392. * @group :
  1393. * @ver : 2007.05.21
  1394. * @by : 김재홍
  1395. * @---------------------------------------------------
  1396. * @type : function
  1397. * @access : public
  1398. * @desc : 마지막 Chart를 가져온다.
  1399. * @return :
  1400. * @---------------------------------------------------
  1401. */
  1402. function fMoveLast()
  1403. {
  1404. model.setValue("/root/main/chartinfo/pagecurrent", model.getValue("/root/main/chartinfo/pagetotal"));
  1405. setupMoveButton();
  1406. model.refresh();
  1407. setupChart();
  1408. }
  1409. /**
  1410. * @group :
  1411. * @ver : 2007.05.21
  1412. * @by : 김재홍
  1413. * @---------------------------------------------------
  1414. * @type : function
  1415. * @access : public
  1416. * @desc : 처음 Chart를 가져온다.
  1417. * @return :
  1418. * @---------------------------------------------------
  1419. */
  1420. function fMoveFirst()
  1421. {
  1422. model.setValue("/root/main/chartinfo/pagecurrent", "1");
  1423. setupMoveButton();
  1424. model.refresh();
  1425. setupChart();
  1426. }
  1427. /**
  1428. * @group :
  1429. * @ver : 2007.05.21
  1430. * @by : 김재홍
  1431. * @---------------------------------------------------
  1432. * @type : function
  1433. * @access : public
  1434. * @desc : 챠트 미리보기 시작
  1435. * @return :
  1436. * @---------------------------------------------------
  1437. */
  1438. function fShow_TruePreviewChart(Button, Shift, Index, Path, Page)
  1439. {
  1440. if(Button == 2)
  1441. {
  1442. objPreview.Load(Path, Page);
  1443. if(objPreview.CurrentPage != 0)
  1444. {
  1445. groupThumbView.attribute("visibility") = "hidden";
  1446. groupPreview.attribute("visibility") = "visible";
  1447. }
  1448. }
  1449. }
  1450. /**
  1451. * @group :
  1452. * @ver : 2007.05.21
  1453. * @by : 김재홍
  1454. * @---------------------------------------------------
  1455. * @type : function
  1456. * @access : public
  1457. * @desc : 챠트 미리보기를 종료
  1458. * @return :
  1459. * @---------------------------------------------------
  1460. */
  1461. function fShow_FalsePreviewChart(Button, Shift, x, y)
  1462. {
  1463. objPreview.CurrentPage = 0;
  1464. groupThumbView.attribute("visibility") = "visible";
  1465. groupPreview.attribute("visibility") = "hidden";
  1466. }
  1467. /**
  1468. * @group :
  1469. * @ver : 2007.05.21
  1470. * @by : 김재홍
  1471. * @---------------------------------------------------
  1472. * @type : function
  1473. * @access : public
  1474. * @desc : 뷰어의 크기를 설정
  1475. * @return :
  1476. * @---------------------------------------------------
  1477. */
  1478. function setChartViewerSize(newWidth, newHeight)
  1479. {
  1480. //var strChartToogleButton = new Array("btnChartMousePanning", "btnChartMouseMagnifyingGlass");
  1481. //var strPageToogleButton = new Array ("btnMoveFirst", "btnMoveLast", "btnMovePrev", "btnMoveNext", "btnFitActual", "btnFitBest", "btnFitWidth", "btnPageMouseNormal", "btnPageMouseRegionZoom", "btnPageMouseMagnifyingGlass", "btnPageMousePanning", "btnRotateLeft", "btnRotateRight", "btnZoomIn", "btnZoomOut");
  1482. var strSwitchButton = new Array("btnThumbView", "btnChartView", "btnPageView");
  1483. var strCase = new Array("swtViewModeCase1", "swViewModeCase2", "swViewModeCase3");
  1484. var strToolbar = new Array("recSwitchToolbar1", "recSwitchToolbar2", "recSwitchToolbar3");
  1485. var strActiveX = new Array("objPageView", "objChartView");
  1486. var obj;
  1487. var i;
  1488. var marginright = 2;
  1489. var marginbottom = 2;
  1490. var toolbarmargin = 3;
  1491. // 스위치 버튼 위치 조정
  1492. btnThumbView.attribute("left") = 0;
  1493. btnChartView.attribute("left") = parseInt(btnThumbView.attribute("left")) + parseInt(btnThumbView.attribute("width"));
  1494. btnPageView.attribute("left") = parseInt(btnChartView.attribute("left")) + parseInt(btnChartView.attribute("width"));
  1495. // 페이지 정보 위치 조정
  1496. captionPage.attribute("left") = newWidth - parseInt(captionPage.attribute("width")) - marginright;
  1497. optPageCurrent.attribute("left") = captionPage.attribute("left");
  1498. optPageTotal.attribute("left") = parseInt(captionPage.attribute("left")) + parseInt(captionPage.attribute("width")) - parseInt(optPageTotal.attribute("width"));
  1499. // SwitchView 크기, 위치 조정
  1500. switchView.attribute("left") = 0;
  1501. switchView.attribute("top") = parseInt(btnThumbView.attribute("top")) + parseInt(btnThumbView.attribute("height"));
  1502. switchView.attribute("width") = newWidth - marginright;
  1503. switchView.attribute("height") = newHeight - parseInt(switchView.attribute("top")) - marginbottom;
  1504. /*
  1505. // Case 크기, 위치 조정
  1506. for(i = 0; i < strCase.length; i++){
  1507. obj = document.controls.item(strCase[i]);
  1508. obj.attribute("left") = 0;
  1509. obj.attribute("top") = 0;
  1510. obj.attribute("width") = switchView.attribute("width");
  1511. obj.attribute("height") = switchView.attribute("height");
  1512. }
  1513. */
  1514. // 툴바 크기 조정
  1515. for(i = 0; i < strToolbar.length; i++){
  1516. obj = document.controls.item(strToolbar[i]);
  1517. obj.attribute("left") = 0;
  1518. obj.attribute("top") = toolbarmargin;
  1519. obj.attribute("width") = switchView.attribute("width") - marginright;
  1520. obj.attribute("height") = 36;
  1521. }
  1522. // 그룹 크기 조정
  1523. groupPreview.attribute("left") = 0;
  1524. groupPreview.attribute("top") = toolbarmargin + parseInt(recSwitchToolbar1.attribute("height")) + toolbarmargin;
  1525. groupPreview.attribute("width") = switchView.attribute("width") - marginright;
  1526. groupPreview.attribute("height") = parseInt(switchView.attribute("height")) - parseInt(groupPreview.attribute("top")) - marginbottom;
  1527. groupThumbView.attribute("left") = 0;
  1528. groupThumbView.attribute("top") = toolbarmargin + parseInt(recSwitchToolbar1.attribute("height")) + toolbarmargin;
  1529. groupThumbView.attribute("width") = switchView.attribute("width") - marginright;
  1530. groupThumbView.attribute("height") = parseInt(switchView.attribute("height")) - parseInt(groupThumbView.attribute("top")) - marginbottom;
  1531. // ActiveX 컨트롤 크기 조정
  1532. // ActiveX 컨트롤 중 "objPreview", "objThumbView" 는 각각의 그룹에 속함
  1533. obj = document.controls.item("objPreview");
  1534. obj.attribute("left") = 0;
  1535. obj.attribute("top") = 0;
  1536. obj.attribute("width") = groupPreview.attribute("width");
  1537. obj.attribute("height") = groupPreview.attribute("height");
  1538. obj = document.controls.item("objThumbView");
  1539. obj.attribute("left") = 0;
  1540. obj.attribute("top") = 0;
  1541. obj.attribute("width") = groupThumbView.attribute("width");
  1542. obj.attribute("height") = groupThumbView.attribute("height");
  1543. // "objPageView", "objChartView"
  1544. for(i = 0; i < strActiveX.length; i++){
  1545. obj = document.controls.item(strActiveX[i]);
  1546. obj.attribute("left") = 0;
  1547. obj.attribute("top") = toolbarmargin + parseInt(recSwitchToolbar1.attribute("height")) + toolbarmargin;
  1548. obj.attribute("width") = switchView.attribute("width") - marginright;
  1549. obj.attribute("height") = parseInt(switchView.attribute("height")) - parseInt(obj.attribute("top")) - marginbottom;
  1550. }
  1551. }
  1552. /**
  1553. * @group :
  1554. * @ver : 2007.05.21
  1555. * @by : 김재홍
  1556. * @---------------------------------------------------
  1557. * @type : function
  1558. * @access : public
  1559. * @desc : 뷰어를 임포트 영역에 FIT
  1560. * @return :
  1561. * @---------------------------------------------------
  1562. */
  1563. function fitToImportArea()
  1564. {
  1565. // 임포트 영역 크기 산출
  1566. // var strWidth = parseInt(window.parent.document.body.children("iviewerIemr").attribute("width"));
  1567. // var strHeight = parseInt(window.parent.document.body.children("iviewerIemr").attribute("height"));
  1568. var strWidth = parseInt(window.parent.document.controls("iviewerIemr").attribute("width"));
  1569. var strHeight = parseInt(window.parent.document.controls("iviewerIemr").attribute("height"));
  1570. setChartViewerSize(strWidth, strHeight);
  1571. body.attribute("pagewidth") = strWidth;
  1572. body.attribute("pageheight") = strHeight;
  1573. body.refresh();
  1574. }
  1575. /**
  1576. * @group :
  1577. * @ver : 2007.05.21
  1578. * @by : 김재홍
  1579. * @---------------------------------------------------
  1580. * @type : function
  1581. * @access : public
  1582. * @desc : 페이지 비교 화면을 호출한다.
  1583. * @return :
  1584. * @---------------------------------------------------
  1585. */
  1586. function comparePage(path)
  1587. {
  1588. model.setValue("/root/main/chartpath", path);
  1589. window.load("SPMRC03100.xrw", "modeless", "imgemrviewer", "", "/root/main/chartpath", "/root/main/chartpath");
  1590. }
  1591. /**
  1592. * @group :
  1593. * @ver : 2007.05.21
  1594. * @by : 김재홍
  1595. * @---------------------------------------------------
  1596. * @type : function
  1597. * @access : public
  1598. * @desc : 사본신청에 해당하는 값을 리턴한다.
  1599. * @return :
  1600. * @---------------------------------------------------
  1601. */
  1602. function setCopy(getValue)
  1603. {
  1604. var setValue = "";
  1605. var tempValue = "";
  1606. var count;
  1607. var valuecount = 0;
  1608. var tempcount = 1;
  1609. var emrcount = 0;
  1610. if (getValue == true)
  1611. {
  1612. switch(model.getValue("/root/hidden/currentViewMode"))
  1613. {
  1614. case "PageView":
  1615. alert("사본신청은 '여러페이지보기' 에서만 가능합니다.");
  1616. return setValue;
  1617. break;
  1618. case "ThumbView":
  1619. if(objThumbView.TotalSelectedThumbnail == 0)
  1620. {
  1621. alert("선택된 차트가 없습니다.");
  1622. return setValue;
  1623. }
  1624. else
  1625. {
  1626. for (count = 1; count <= objThumbView.TotalThumbnail; count++)
  1627. {
  1628. if (objThumbView.Select(count) == true)
  1629. {
  1630. if(objThumbView.ThumbUserText(count) == "" || objThumbView.ThumbUserText(count) == null)
  1631. {
  1632. //arrValue[valuecount] = "I" + "▦" + model.getValue("/root/main/charts[" + tempcount + "]/ordno") + "▦" + model.getValue("/root/main/charts[" + tempcount + "]/docucd");
  1633. //valuecount = valuecount + 1;
  1634. if (tempValue != "I" + "▦" + model.getValue("/root/main/charts[" + tempcount + "]/ordno") + "▦" + model.getValue("/root/main/charts[" + tempcount + "]/docucd") + "▦" + model.getValue("/root/main/charts[" + tempcount + "]/pagecnt"))
  1635. {
  1636. setValue = setValue + "I" + "▦" + model.getValue("/root/main/charts[" + tempcount + "]/ordno") + "▦" + model.getValue("/root/main/charts[" + tempcount + "]/docucd") + "▦" + model.getValue("/root/main/charts[" + tempcount + "]/pagecnt") + "|";
  1637. tempValue = "I" + "▦" + model.getValue("/root/main/charts[" + tempcount + "]/ordno") + "▦" + model.getValue("/root/main/charts[" + tempcount + "]/docucd") + "▦" + model.getValue("/root/main/charts[" + tempcount + "]/pagecnt");
  1638. }
  1639. }
  1640. else
  1641. {
  1642. //arrvalue[valuecount] = "e" + "▦" + objthumbview.thumbusertext(count);
  1643. //valuecount = valuecount + 1;
  1644. for (emrcount = count; emrcount <= objThumbView.TotalThumbnail; emrcount++)
  1645. {
  1646. if (g_path[count] != g_path[emrcount])
  1647. {
  1648. break;
  1649. }
  1650. }
  1651. setValue = setValue + "E" + "▦" + objThumbView.ThumbUserText(count) + "▦" + g_page[emrcount - 1] + "|";
  1652. }
  1653. }
  1654. if(objThumbView.ThumbUserText(count) == "" || objThumbView.ThumbUserText(count) == null)
  1655. {
  1656. tempcount = tempcount + 1;
  1657. }
  1658. }
  1659. setValue = setValue.substr(0, setValue.length - 1);
  1660. // alert(setValue);
  1661. return setValue;
  1662. break;
  1663. }
  1664. case "ChartView":
  1665. alert("사본신청은 '여러페이지보기' 에서만 가능합니다.");
  1666. return setValue;
  1667. break;
  1668. }
  1669. }
  1670. else
  1671. {
  1672. return setValue;
  1673. }
  1674. }
  1675. /**
  1676. * @group :
  1677. * @ver : 2007.05.21
  1678. * @by : 김재홍
  1679. * @---------------------------------------------------
  1680. * @type : function
  1681. * @access : public
  1682. * @desc : 사용중인 팝업 뷰어화면을 닫지 않고 새로운 차트를 리로드 한다.
  1683. * @return :
  1684. * @---------------------------------------------------
  1685. */
  1686. function reloadChart(param)
  1687. {
  1688. var ViewMode;
  1689. // var destNode = instance1.selectSingleNode("/root/hidden/temp");
  1690. // model.copyNode(destNode, param);
  1691. // searchChart("/root/hidden/temp");
  1692. searchChart(param);
  1693. if (downloadChart() == true)
  1694. {
  1695. ViewMode = model.getValue("/root/hidden/currentViewMode");
  1696. if (ViewMode == null || ViewMode == "")
  1697. {
  1698. setupChart("ChartView");
  1699. }
  1700. else
  1701. {
  1702. setupChart(ViewMode);
  1703. }
  1704. }
  1705. }
  1706. /**
  1707. * @group :
  1708. * @ver : 2007.05.21
  1709. * @by : 김재홍
  1710. * @---------------------------------------------------
  1711. * @type : function
  1712. * @access : public
  1713. * @desc : IVIEWER에서 인스턴스 값 리셋.
  1714. * @return :
  1715. * @---------------------------------------------------
  1716. */
  1717. function resetInstance_EMR()
  1718. {
  1719. model.resetInstanceNode("/root/main/emrpath");
  1720. model.resetInstanceNode("/root/main/emrorddate");
  1721. model.resetInstanceNode("/root/main/emrformnm");
  1722. model.resetInstanceNode("/root/main/emrformcd");
  1723. model.resetInstanceNode("/root/main/emrdeptnm");
  1724. model.resetInstanceNode("/root/main/emrdeptcd");
  1725. model.resetInstanceNode("/root/main/emrpage");
  1726. model.resetInstanceNode("/root/main/emrhiddenmsg");
  1727. }
  1728. /**
  1729. * @group :
  1730. * @ver : 2007.05.21
  1731. * @by : 김재홍
  1732. * @---------------------------------------------------
  1733. * @type : function
  1734. * @access : public
  1735. * @desc : IVEWER에서 초기화 함수
  1736. * @return :
  1737. * @---------------------------------------------------
  1738. */
  1739. function cleanViewer()
  1740. {
  1741. var fso;
  1742. fso = new ActiveXObject("Scripting.FileSystemObject");
  1743. setupRecvPath(fso);
  1744. // 사용하는 개체를 초기화 한다.
  1745. fSet_OCX_PageViewer();
  1746. fSet_OCX_ThumbViewer();
  1747. fSet_OCX_ChartViewer();
  1748. fSet_OCX_PreViewer();
  1749. model.setValue("/root/main/chartinfo/pagetotal", "0");
  1750. model.setValue("/root/main/chartinfo/pagecurrent", "0");
  1751. model.refresh();
  1752. // 모든 버튼 이미지를 설정한다.
  1753. setupAllButtons();
  1754. // 토글 버튼의 기본값 설정
  1755. processToggleButton("btnChartMouseNormal");
  1756. //processToggleButton("btnFitBest");
  1757. processToggleButton("btnPageMouseNormal");
  1758. // 페이지뷰의 페이지 이동 버튼 설정
  1759. setupMoveButton();
  1760. // 데이터 초기화
  1761. resetData();
  1762. // 뷰어를 IMPORT 된 크기로 FIT 시킨다.
  1763. // if(document.body.isChild("importIemr") == true)
  1764. // if(window.type == "iviewer")
  1765. // {
  1766. // fitToImportArea();
  1767. // }
  1768. // 썸네일 뷰어의 레이아웃 설정
  1769. objThumbView.SetThumbLayout(4, 3);
  1770. }
  1771. /**
  1772. * @group :
  1773. * @ver : 2007.05.21
  1774. * @by : 김재홍
  1775. * @---------------------------------------------------
  1776. * @type : function
  1777. * @access : public
  1778. * @desc :
  1779. * @return :
  1780. * @---------------------------------------------------
  1781. */
  1782. function appendChart(param, chartinfo, hiddenmsg)
  1783. {
  1784. var arrChartInfo;
  1785. var nPrvPageTotal;
  1786. var nCurPageTotal;
  1787. var nCurPageCount;
  1788. var nNexPageTotal;
  1789. var i;
  1790. var j;
  1791. var r, re;
  1792. r = ",";
  1793. re = "','";
  1794. var treatno;
  1795. var docucd;
  1796. var temptreatno;
  1797. var tempdocucd;
  1798. var count;
  1799. var countmain;
  1800. var counthidden;
  1801. //영상-EMR구분|파일경로|입원일|서식지코드|서식지이름|진료과코드|진료과이름
  1802. if (chartinfo == "")
  1803. {
  1804. return false;
  1805. }
  1806. nPrvPageTotal = parseInt(objThumbView.TotalThumbnail);
  1807. nCurPageTotal = parseInt(objThumbView.TotalThumbnail);
  1808. arrChartInfo = chartinfo.split("|");
  1809. //debugger;
  1810. if (arrChartInfo[0] == "I")
  1811. {
  1812. // 전송할 데이터를 만든다.
  1813. var destNode = instance1.selectSingleNode("/root/_send/data1");
  1814. model.copyNode(destNode, param);
  1815. // 전송
  1816. submit("TRMRC03101");
  1817. // 보여줄 페이지 수를 센다.
  1818. nCurPageCount = 0;
  1819. while(model.getValue("/root/main/charts[" + (nCurPageCount + 1) + "]/chrtpage") != null && model.getValue("/root/main/charts[" + (nCurPageCount + 1) + "]/chrtpage") != "")
  1820. {
  1821. nCurPageCount++;
  1822. nCurPageTotal++;
  1823. }
  1824. model.makeNode("/root/_send/data1/pagetot");
  1825. model.setValue("/root/_send/data1/pagetot", nCurPageCount);
  1826. model.setValue("/root/main/chartinfo/filetotal", model.getValue("/root/_send/data1/pagetot"));
  1827. model.setValue("/root/main/chartinfo/pagetotal", nCurPageTotal);
  1828. model.setValue("/root/main/chartinfo/pagecurrent", model.getValue("/root/main/chartinfo/pagetotal") != "0" ? "1" : "0");
  1829. model.refresh();
  1830. // 만들었던 데이터 삭제
  1831. model.resetInstanceNode("/root/_send");
  1832. // 페이지 정보를 조정한다.
  1833. model.setValue("/root/main/chartinfo/pagecurrent", model.getValue("/root/main/chartInfo/pagetotal") != "0" ? "1" : "0");
  1834. model.refresh();
  1835. // 파일다운로드
  1836. downloadChart();
  1837. // 차트 추가
  1838. for (i = nPrvPageTotal + 1; i <= nCurPageTotal; i++)
  1839. {
  1840. //objChartView.AutoRefresh = false;
  1841. //objThumbView.ThumbGen = false;
  1842. //objThumbView.Redraw = false;
  1843. objChartView.ChartAppend(g_path[i], 0, 0);
  1844. objChartView.OuterCaption(i) = formatDate(model.getValue("/root/main/charts[" + (i - nPrvPageTotal) + "]/indd")) + " " +
  1845. model.getValue("/root/main/charts[" + (i - nPrvPageTotal) + "]/orddeptnm") + " " +
  1846. model.getValue("/root/main/charts[" + (i - nPrvPageTotal) + "]/docunm") + " " +
  1847. model.getValue("/root/main/charts[" + (i - nPrvPageTotal) + "]/chrtpage");
  1848. objThumbView.AppendPage(g_path[i], 0, 0);
  1849. objThumbView.ThumbText(i) = "[" +
  1850. model.getValue("/root/main/charts[" + (i - nPrvPageTotal) + "]/chrtpage") +
  1851. "] " +
  1852. model.getValue("/root/main/charts[" + (i - nPrvPageTotal) + "]/indd") + " " +
  1853. model.getValue("/root/main/charts[" + (i - nPrvPageTotal) + "]/docunm");
  1854. objThumbView.ThumbUserText(i) = "I" + "▦" + model.getValue("/root/main/charts[" + (i - nPrvPageTotal) + "]/ordno") + "▦" + model.getValue("/root/main/charts[" + (i - nPrvPageTotal) + "]/docucd") + "▦" + model.getValue("/root/main/charts[" + (i - nPrvPageTotal) + "]/pagecnt") + "|";
  1855. //objChartView.AutoRefresh = true;
  1856. //objThumbView.Redraw = true;
  1857. //objThumbView.ThumbGen = true;
  1858. }
  1859. }
  1860. else
  1861. {
  1862. //영상-EMR구분|파일경로|입원일|서식지코드|서식지이름|진료과코드|진료과이름
  1863. // 차트 추가
  1864. i = nPrvPageTotal + 1;
  1865. //objChartView.AutoRefresh = false;
  1866. //objThumbView.ThumbGen = false;
  1867. //objThumbView.Redraw = false;
  1868. objChartView.ChartAppend(arrChartInfo[1], 0, 0);
  1869. objThumbView.AppendPage(arrChartInfo[1], 0, 0);
  1870. //objChartView.AutoRefresh = true;
  1871. //objThumbView.Redraw = true;
  1872. //objThumbView.ThumbGen = true;
  1873. model.refresh();
  1874. nNexPageTotal = parseInt(objThumbView.TotalThumbnail);
  1875. for (j = i; j <= nNexPageTotal; j++)
  1876. {
  1877. objChartView.OuterCaption(j) = formatDate(arrChartInfo[2]) + " " +
  1878. arrChartInfo[6] + " " +
  1879. arrChartInfo[4] + " " +
  1880. parseInt(j - i + 1);
  1881. objThumbView.ThumbText(j) = "[" +
  1882. parseInt(j - i + 1) +
  1883. "] " +
  1884. arrChartInfo[2] + " " +
  1885. arrChartInfo[4];
  1886. objThumbView.ThumbUserText(j) = hiddenmsg + "▦" + nNexPageTotal;
  1887. g_path[j] = objThumbView.FileName(j);
  1888. g_page[j] = j - i + 1;
  1889. g_page_lut[j] = j;
  1890. }
  1891. model.setValue("/root/main/chartinfo/pagetotal", nNexPageTotal);
  1892. model.setValue("/root/main/chartinfo/pagecurrent", model.getValue("/root/main/chartinfo/pagetotal") != "0" ? "1" : "0");
  1893. model.refresh();
  1894. }
  1895. }
  1896. function fn_view(getValue)
  1897. {
  1898. //커서값
  1899. var pageCurrent = parseInt(model.getValue("/root/main/chartinfo/pagecurrent"));
  1900. //getValue 키값을 문자열로 받아준다
  1901. if (objChartView.TotalChart == 0 )
  1902. {
  1903. return;
  1904. }
  1905. //debugger;
  1906. switch(getValue)
  1907. {
  1908. case "PageUp" :
  1909. objChartView.Action = 3
  1910. break;
  1911. case "PageDown" :
  1912. objChartView.Action = 4
  1913. break;
  1914. case "Home" :
  1915. objChartView.Action = 1
  1916. break;
  1917. case "End" :
  1918. objChartView.Action = 2
  1919. break;
  1920. }
  1921. model.refresh();
  1922. }
  1923. function refreshFalse()
  1924. {
  1925. objChartView.AutoRefresh = false;
  1926. objThumbView.ThumbGen = false;
  1927. objThumbView.Redraw = false;
  1928. }
  1929. function refreshTrue()
  1930. {
  1931. objChartView.AutoRefresh = true;
  1932. objThumbView.Redraw = true;
  1933. objThumbView.ThumbGen = true;
  1934. }