1. 程式人生 > 實用技巧 >[OHIF-Viewers]醫療數字閱片-醫學影像-數字膠片直接下載,不再彈窗進行設定

[OHIF-Viewers]醫療數字閱片-醫學影像-數字膠片直接下載,不再彈窗進行設定

[OHIF-Viewers]醫療數字閱片-醫學影像-數字膠片直接下載,不再彈窗進行設定

直接下載解決方案

\Viewers\extensions\cornerstone\src\commandsModule.js

     showDownloadViewportModal: ({  viewports }) => {
       // 改變尺寸
       function doResize(width, height,el) {
         if (width < 100)
           width = 100
         if (height < 100)
           height 
= 100 ​ el.style.width = width + 'px'; el.style.height = height + 'px'; cornerstone.resize(el); } const activeViewportIndex = viewports.activeViewportIndex; const activeViewport = getEnabledElement(activeViewportIndex); const enabledElement = cornerstone.getEnabledElement(activeViewport);
const viewport = Object.assign({}, enabledElement.viewport); delete viewport.scale; viewport.translation = { x: 0, y: 0, }; const viewportElement = document.querySelector(".cornerstone-canvas-nn"); cornerstone.enable(viewportElement); // 初始化 // 插入資料
cornerstone.loadAndCacheImage(enabledElement.image.imageId).then(function(image) { cornerstone.displayImage(viewportElement, image); //插入圖片 cornerstone.setViewport(viewportElement, viewport);//設定檢視,設定現在顯示的狀態,如旋轉等 cornerstone.resize(viewportElement, true);//先自適應調整一次,保證檢視完整 }); //插入資料後,再執行尺寸的改變 doResize(512,512,viewportElement) // 改變尺寸 console.log(viewportElement); //延時 setTimeout(function () { // alert('VIDEO HAS STOPPED'); console.log("延遲執行"); console.log(viewportElement.querySelector('canvas').toDataURL()); // 列印資料 // console.log(document.querySelector("#root > div.FlexboxLayout > div.main-content > div > div > div > div.cornerstone-canvas-nn > canvas").toDataURL()); //絕對地址定位 viewportElement.querySelector('canvas').toBlob(blob => { const URLObj = window.URL || window.webkitURL; const a = document.createElement('a'); a.href = URLObj.createObjectURL(blob); a.download = 'imgs.jpg'; document.body.appendChild(a); a.click(); document.body.removeChild(a); }); cornerstone.invalidate(viewportElement); // 刪除el,一定要刪除,不然連續下載,因為原始尺寸會產生插入資料不完整 }, 500); },

Viewers\extensions\cornerstone\src\OHIFCornerstoneViewport.js

此位置新增cornerstone-canvas-nn標籤

測試過動態建立標籤,但無法渲染出資料。document.createElement('div');

<div className={"cornerstone-canvas-nn"} style={{position: 'absolute',left: '9999px'}}>
</div>