原創(chuàng)|使用教程|編輯:龔雪|2014-01-13 09:16:48.000|閱讀 3195 次
概述:本文主要介紹LEADTOOLS 醫(yī)療程序開(kāi)發(fā)包的基本功能,以及如何使用該開(kāi)發(fā)工具創(chuàng)建HTML5 DICOM/PACS查看器。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
相關(guān)鏈接:
零足跡(Zero-footprint)應(yīng)用程序的需求日益增長(zhǎng),而在醫(yī)療行業(yè)中的需求增長(zhǎng)尤為突出。LEADTOOLS是唯一一款功能全面的,提供了12/16位灰度級(jí)客戶端調(diào)窗(window-leveling)的醫(yī)療程序開(kāi)發(fā)包。
LEADTOOLS HTML5和JavaScript 查看器控件為創(chuàng)建跨平臺(tái)的、無(wú)痕HTML5 DICOM查看器提供了無(wú)與倫比的速度和全面的功能。
LEADTOOLS HTML5 DICOM Viewer功能介紹:
使用RESTful Web Service查詢和檢索DICOM圖像
服務(wù)器組件使用RESTful Web Service 連接本地文檔或任何可訪問(wèn)的遠(yuǎn)程PACS系統(tǒng)。此服務(wù)可處理所有的PACS通信(即C-FIND,C-MOVE,C-STORE等),并通過(guò)JSON鏈接查看器控件。
搜索文檔,選擇一個(gè)病人,study 和series后,圖像就開(kāi)始流向查看器。首先,服務(wù)器會(huì)發(fā)送一張需要被即刻顯示的JPEG壓縮圖像,在后臺(tái),服務(wù)器注入調(diào)窗數(shù)據(jù),并保留圖像幀。
在下面的代碼片段中,輸入的數(shù)據(jù)被收集,然后通過(guò)JSON發(fā)送到服務(wù)器。接下來(lái),該應(yīng)該程序可以處理接收到的服務(wù)器響應(yīng),解析數(shù)據(jù)并填充studies 和series列表。
function DoSearch() { queryOptions.PatientsOptions = {}; queryOptions.StudiesOptions = {}; queryOptions.PatientsOptions.PatientID = pid; queryOptions.PatientsOptions.PatientName = pName; queryOptions.StudiesOptions.AccessionNumber = accession; queryOptions.StudiesOptions.ReferDoctorName = RefDrName; queryOptions.StudiesOptions.ModalitiesInStudy = modalitiesInStudy; if (document.getElementById("QueryLocal").checked) { SetQueryMode(QueryMode.Local); } else { SetQueryMode(QueryMode.PACS); } searchPage.SearchStudies(queryOptions); } function OnSearchStudiesSuccess ( studies ) { if (null == studiesGrid) { InitializeStudiesGrid(); } studiesGrid.resetActiveCell(); studiesGrid.getOptions().autoHeight = true; studiesGrid.setData(studies); studiesGrid.updateRowCount(); studiesGrid.render(); $(studiesGridName).show(); $('html, body').animate({ scrollTop: $(studiesGridName).offset().top }, 1000); }
客戶端DICOM圖像調(diào)窗
由于大多數(shù)DICOM數(shù)據(jù)集包含12/16位灰度圖像數(shù)據(jù)和只顯示8位的監(jiān)測(cè)儀,因此圖像調(diào)窗與初始化圖像同等重要。為何客戶端調(diào)窗如此重要?沒(méi)有圖像調(diào)窗,參數(shù)必須被發(fā)送到處理調(diào)窗的服務(wù)器,將其轉(zhuǎn)換為8位圖像,并將其返回給客戶端。隨著圖像的增大,加上醫(yī)務(wù)人員手機(jī)和平板電腦等設(shè)備查看圖像時(shí),大量的數(shù)據(jù)往返于客戶端和服務(wù)器之間會(huì)嚴(yán)重影響查看器性能。
LEADTOOLS利用無(wú)損壓縮并將原始DICOM圖像數(shù)據(jù)存儲(chǔ)在緩存,正好解決了大量數(shù)據(jù)往返于客戶端和服務(wù)器時(shí)造成的性能受損的問(wèn)題。
正如下列代碼和截圖所示,首次顯示圖像或滾動(dòng)至窗口視圖時(shí),調(diào)窗按鈕被禁用。一旦顯示,會(huì)發(fā)生請(qǐng)求只服務(wù)器,并且原始DICOM圖像數(shù)據(jù)開(kāi)始流向客戶端。一兩秒后,調(diào)窗按鈕被激活,并展示出一個(gè)帶有當(dāng)前調(diào)窗值的標(biāo)簽。
function LoadImages(instances, xmlData) { Clear(); _images = []; for (var instanceIndex = 0; instanceIndex < framesLength; instanceIndex++) { var loadImageElement = document.createElement('img'); var frame = new ImageFrame(); frame.FrameIndex = instanceIndex; if (multiFrame) { frame.FrameNumber = instanceIndex + 1; frame.Instance = instances[0]; frame.DicomData = xmlData; frame.ImageInformation = (instanceIndex == 0) ? DicomHelper.GetDicomImageInformation(xmlData) : _images[0].ImageInformation; } else { frame.FrameNumber = 1; frame.Instance = instances[instanceIndex]; frame.DicomData = (instanceIndex == 0) ? xmlData : null; frame.ImageInformation = (instanceIndex == 0) ? DicomHelper.GetDicomImageInformation(xmlData) : null; } frame.ImageElement = loadImageElement; loadImageElement.src = objectRetrieveProxy.GetImageUrl(frame); } } function OnDrawImage() { var currentIndex = _stackInteractiveMode.get_frameIndex(); _dicomLoader.DrawImage(currentIndex); if (!_dicomLoader.IsImageDataAvailable(currentIndex)) { DisableWindowLevel(); } else { EnableWindowLevel(); } }
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)