dcm.ftl 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=1.0">
  6. <title>DCM预览</title>
  7. <#include "*/commonHeader.ftl">
  8. <script src="js/base64.min.js" type="text/javascript"></script>
  9. </head>
  10. <style>
  11. .container{
  12. width: 100%;
  13. height: 98%;
  14. max-width: 98%;
  15. margin: auto;
  16. position: absolute;
  17. top: 0;
  18. left: 0;
  19. bottom: 0;
  20. right: 0;
  21. background-color: green;
  22. }
  23. </style>
  24. <body>
  25. <#if currentUrl?contains("http://") || currentUrl?contains("https://")>
  26. <#assign finalUrl="${currentUrl}">
  27. <#else>
  28. <#assign finalUrl="${baseUrl}${currentUrl}">
  29. </#if>
  30. <div class="container" id="cornerstoneViewport">
  31. </div>
  32. <script src="dcm/cornerstone.js"></script>
  33. <script src="dcm/cornerstoneMath.js"></script>
  34. <script src="dcm/cornerstoneTools.js"></script>
  35. <script src="dcm/dicomParser.js"></script>
  36. <script src="dcm/cornerstoneWADOImageLoader.bundle.min.js"></script>
  37. <script src="dcm/hammer.min.js"></script>
  38. <script src="dcm/initCornerstone.js"></script>
  39. <script src="dcm/react.development.js" ></script>
  40. <script src="dcm/react-dom.development.js"></script>
  41. <script>
  42. "use strict";
  43. var process = {
  44. env: {
  45. NODE_ENV: "production"
  46. }
  47. };
  48. window.process = process;
  49. </script>
  50. <script src="dcm/index.umd.js"></script>
  51. <script>
  52. var url = '${finalUrl}';
  53. var baseUrl = '${baseUrl}'.endsWith('/') ? '${baseUrl}' : '${baseUrl}' + '/';
  54. if (!url.startsWith(baseUrl)) {
  55. url = baseUrl + 'getCorsFile?urlPath=' + encodeURIComponent(Base64.encode(url));
  56. }
  57. "use strict";
  58. var imageNames = [];
  59. for (var i = 1; i < 546; i++) {
  60. imageNames.push(url);
  61. }
  62. // console.log(url);
  63. var imageIds = imageNames.map(name => {
  64. return 'dicomweb:'+url+'';
  65. });
  66. var imagePromises = imageIds.map(imageId => {
  67. return cornerstone.loadAndCacheImage(imageId);
  68. });
  69. var exampleData = {
  70. stack: {
  71. currentImageIdIndex: 0,
  72. imageIds: imageIds
  73. }
  74. };
  75. var CornerstoneViewport = window["react-cornerstone-viewport"];
  76. var props = {
  77. viewportData: exampleData,
  78. cornerstone,
  79. cornerstoneTools,
  80. activeTool: "Brush"
  81. };
  82. var app = React.createElement(CornerstoneViewport, props, null);
  83. ReactDOM.render(
  84. app,
  85. document.getElementById("cornerstoneViewport")
  86. );
  87. /*初始化水印*/
  88. window.onload = function () {
  89. initWaterMark();
  90. }
  91. </script>
  92. </body>
  93. </html>