亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Delphi的“虛擬膠片打印系統(tǒng)”的技術實現(xiàn)

        2014-09-26 20:12:57張穎
        軟件工程 2014年9期

        張穎

        摘 要:利用Delphi和VS這兩種開發(fā)平臺,結合Oracle數(shù)據(jù)庫,實現(xiàn)膠片排版、膠片調整、虛擬打印,自助打印、系統(tǒng)管理等功能。重點介紹了系統(tǒng)開發(fā)過程中針對特殊問題采用的幾種技術。目的是完成膠片的集中打印管理,膠片存儲備份,減少開支。

        關鍵詞:Delphi;PACS;C/S;膠片虛擬打印

        中圖分類號:TP31 文獻標識碼:A

        1 引言(Introduction)

        在美國,擁有許多醫(yī)療影像診斷與Internet相結合的PACS系統(tǒng)(Picture Archiving and Communication Systems),隨著網(wǎng)絡IT技術的發(fā)展,實現(xiàn)了真正意義的遠程會診,并將實現(xiàn)無膠片化。在歐洲,PACS與醫(yī)院信息系統(tǒng)融合,形成日趨爆炸的醫(yī)學信息網(wǎng),并產生了越來越多的應用方向。在亞洲一些發(fā)達國家,如日本、韓國、我國臺灣地區(qū),經(jīng)過十幾年的發(fā)展,特別是一些國家的政府大力扶持之下,PACS系統(tǒng)已經(jīng)實用化。由于我國開發(fā)和引進PACS系統(tǒng)較晚,目前已經(jīng)建立并有效運行的PACS系統(tǒng)并不多見。究其原因主要是標準化程度低、兼容性差、一般為封閉式的專用系統(tǒng),既不經(jīng)濟、價格也昂貴,配置的硬件合理,對工作量大的醫(yī)院缺乏強大的存儲子系統(tǒng),無法支持數(shù)量巨大的常規(guī)放射影像,因此不能真正實現(xiàn)無片化管理?,F(xiàn)有的PACS系統(tǒng)設計大多數(shù)沒有考慮技術發(fā)展和擴展需要的可能,難以與現(xiàn)有的HIS/RIS整合為一個系統(tǒng)[1]。

        2 虛擬膠片打印系統(tǒng)功能(The capability of virtual

        film printing system)

        系統(tǒng)主要實現(xiàn)膠片排版、膠片調整、虛擬打印、自助打印、系統(tǒng)管理等功能。目的是完成膠片的集中打印管理,膠片存儲備份,減少開支。普通PC機上達到或者接近設備工作站的處理速度;采用大數(shù)據(jù)量壓縮算法盡量減少存儲空間需求;解決膠片打印的虛擬化技術。

        3 關鍵技術(The key technologies)

        實現(xiàn)以上功能要解決的關鍵技術有數(shù)據(jù)壓縮技術,數(shù)據(jù)傳輸技術,共享內存技術,大數(shù)據(jù)量下的數(shù)據(jù)處理技術,與三方RIS系統(tǒng)接口技術等等。

        3.1 數(shù)據(jù)庫技術介紹(The database technology)

        不一樣的數(shù)據(jù)庫有不一樣的特征,有自己的適用場合,Access用于小型系統(tǒng);My SQL用于中小型系統(tǒng);SQL server用于中型系統(tǒng);Oracle用于大型系統(tǒng);Db2用于大中小型系統(tǒng)。本系統(tǒng)采用Oracle數(shù)據(jù)庫。

        Oracle數(shù)據(jù)庫產品是當前數(shù)據(jù)庫技術的典型代表,Oracle的產品除了數(shù)據(jù)庫系統(tǒng)外,還有應用系統(tǒng)和開發(fā)工具等。目前的Oracle 9是一個面向對象的數(shù)據(jù)庫系統(tǒng),它既非純的面向對象的數(shù)據(jù)庫也非純的關系數(shù)據(jù)庫,而是兩者的結合,因此叫做“對象關系數(shù)據(jù)庫”[2]。

        3.2 共享內存技術介紹(The shared memory technology)

        內存映射文件的原理是,先保留一段虛擬內存空間,再將磁盤文件提交給這段內存空間,并且返回一個指向這段內存空間的指針,就可以訪問文件的內容了。

        使用內存映射文件的好處:可以實現(xiàn)不同進程間共享文件或共享內存區(qū)域中的數(shù)據(jù);可訪問映射文件的數(shù)據(jù),并簡化對文件訪問的操作。內存映射文件的使用步驟:

        Step1:創(chuàng)建或打開一個磁盤文件,調用FileCreate()或FileOpen()函數(shù)。

        Step2:創(chuàng)建或打開內存映射文件對象,調用CreateFileMapping()或OpenFileMapping()函數(shù)。

        Step3:將磁盤文件的視圖映射到進程的地址空間中,調用MapViewOfFile()函數(shù)。

        Step4:取消文件視圖的映射,調用UnmapView

        OfFile()。

        Step5:關閉文件映射和文件,調用CloseHandle()和CloseFile()分別關閉文件映射和文件。

        3.3 使用TIdFtp控件實現(xiàn)膠片的上傳和下載(Use the

        IIdFtp control to achieve film upload and download)

        系統(tǒng)在上傳和下載膠片時,采用FTP傳輸。Delphi中使用TIdFtp控件實現(xiàn)文件的下載:指定Put的AAppend:=True。TIdFtp的網(wǎng)絡操作大部分是阻塞模式的。這樣在上述操作運行的時候用戶界面被暫時凍結,必須要等待調用返回才能繼續(xù)用戶操作界面響應。所以在實際編程中,需要使用多線程的方式來保證用戶界面的響應。Windows系統(tǒng)可以使用CreateThread系統(tǒng)調用來創(chuàng)建線程,但是在使用的時候需要開發(fā)人員做很多額外的工作來保證線程的同步等問題。Indy中包含了實現(xiàn)多線程的控件TIdThreadComponent,該控件實現(xiàn)多線程時更加方便,也更容易控制。

        3.4 通過VS編譯DCMTK(Compiled DCMTK by VS)

        DCMTK(Digital Imaging and Communications in Medicine醫(yī)學數(shù)字成像和通信)是一個開放程序代碼的DICOMToolkit,是目前最廣為應用的處理DICOM影像的工具包[3]。要使用該工具包則需要對其進行編譯,得到我們需要的庫文件.lib,然后再和頭文件一起加入到我們的工程中進行使用。在程序中使用編譯的函數(shù)庫,主要是要把.h和.lib文件加入到工程中。對于源碼來說.h文件都相同,而.lib文件一般來說會有debug版本和release版本,不同的版本只是在對源碼進行編譯時,選擇的編譯模式不同。

        第一,準備工作。下載編譯的源文件和工具及支持工具包,下載編譯工具Cmake。在任意盤,新建文件夾DCMTK,將下載文件均放到該文件夾并解壓到當前文件夾;然后新建三個文件夾分別叫bin、lib和support。把支持庫的文件夾都移到support中,而bin和lib用來放編譯結果。endprint

        第二,向VS2005安裝目錄中添加支持庫文件。在support文件夾中搜索include,將搜索到的所有文件全部復制到vs2005的VC目錄中;將xinclude.移到D:/ProgramFiles/MicrosoftVisualStudio8/VC/include中。同樣搜索*_d.lib文件,將其添加到D:/ProgramFiles/MicrosoftVisualStudio8/VC/lib文件夾中,文件名中去掉_d(若編譯release版本,則搜索*_o.lib文件,復制到D:/ProgramFiles/MicrosoftVisualStudio8/VC/lib文件夾,再去除_o)。接著搜索bin,將搜索結果放到D:/ProgramFiles/MicrosoftVisualStudio8/VC/bin。

        第三,CMAKE工具的使用。首先,更改編譯標志。打開C:/DCMTK/cmake-2.6.0-win32-x86/bin中的cmake-gui.exe程序,設定編譯的源代碼路徑和輸出路徑,在此選擇C:/DCMTK/dcmtk-3.5;勾選“showadvanceentries”,然后將編譯的開關設置為MT,默認的為MD,注:MT、MD是決定庫文件的引用方法,在VS2005的MFC程序中,項目->屬性—>配置屬性->常規(guī)中,“MFC的使用”項中選擇“共享的DLL中使用MFC”時才選擇MD,其他兩種情況選擇MT。在使用Cmake是一定要保證:C:/DCMTK/dcmtk-3.5.4文件夾中的CMakeLists.txt中,CMAKE程序的編譯開關,VS2005中項目程序中的MT、MD標志一致。然后,勾選全部支持庫,并且找到EXECUTABLE_OUTPUT_PATH和LIBRARY_OUTPUT_PATH分別設為C:/DCMTK/bin和C:/DCMTK/lib,這樣最后編譯出來的lib文件和exe文件就在這兩個文件夾中,勾選支持庫和設置輸出目。最后,點擊Configure,選擇當前編譯器。然后點擊Genarate,生成DCMTK的項目文件。此時會出現(xiàn)紅色警告。讓你在某個目錄下的Cmakelist.txt文件中的ADD_EXECUTABLE(${PROGRAM}${PROGRAM})行前添加:

        if(COMMANDcmake_policy)

        cmake_policy(SETCMP0003NEW)

        endif(COMMANDcmake_policy)

        這是由于DCMTK3.5.4是對Cmake2.4版本的使用,使用高于2.6.0的Cmake進行編譯金輝出現(xiàn)此警告,在其彈出的指定文件夾中的cmakelist文件中相應的位置,添加要求添加的語句即可。

        第四,在VS2005中進行編譯。首先,編譯ALL_BUILD。進入C:/DCMTK/dcmtk-3.5.4目錄,雙擊dcmtk.sln文件,在打開的項目中,從主選單中選“生成”-“批生成”,在彈出的對話盒中勾選“ALL_BUILD”的DEBUG方案,并按下“生成”。然后,編譯INSTALL。主選單中選“生成”-“批生成”,在彈出的對話盒中勾選“INSTALL”的DEBUG方案,并按下“生成”。

        第五,VS2005中使用DCMTK。這里主要介紹DEBUG版本的DCMTK庫在VS2005中的應用。DCMTK的支持庫已經(jīng)加入VS2005的內置庫中,現(xiàn)在只需要添加DCMTK的庫即可。(1)頭文件的安放:如同支持庫文件的添加方法一樣,在C:/DCMTK/dcmtk-3.5.4中搜索Include然后將搜索結果放入到VS2005中VC目錄下Include中。(2)庫文件的安放:新建一個MFC工程,再將C:/DCMTK/lib文件夾中.lib文件放入工程文件夾中,然后在stdafx.h中添加如下代碼:

        #pragmacomment(lib,"netapi32.lib")

        #pragmacomment(lib,"wsock32.lib")

        #pragmacomment(lib,"ofstd.lib")

        #pragmacomment(lib,"dcmdata.lib")

        #pragmacomment(lib,"dcmimgle.lib")

        #pragmacomment(lib,"dcmimage.lib")

        #pragmacomment(lib,"ijg8.lib")

        #pragmacomment(lib,"ijg12.lib")

        #pragmacomment(lib,"ijg16.lib")

        #pragmacomment(lib,"dcmjpeg.lib")

        #pragmacomment(lib,"dcmnet.lib")

        #pragmacomment(lib,"dcmdsig.lib")

        #pragmacomment(lib,"dcmsr.lib")

        #pragmacomment(lib,"dcmtls.lib")

        #pragmacomment(lib,"dcmpstat.lib")

        #pragmacomment(lib,"dcmwlm.lib")

        #pragmacomment(lib,"dcmqrdb.lib")

        #pragmacomment(lib,"dcmtkeay.lib")

        #pragmacomment(lib,"dcmtkssl.lib")

        #pragmacomment(lib,"iconv.lib")

        #pragmacomment(lib,"libtiff.lib")

        #pragmacomment(lib,"libpng.lib")

        #pragmacomment(lib,"libxml2.lib")

        #pragmacomment(lib,"zlib.lib")

        這樣就可以在工程中使用DCMTK了。如果要改為release版本,則需要將DCMTK的支持庫、庫文件的.lib文件更換掉。

        第六,涉及的外部接口。硬件接口:(1)條碼掃描槍掃描一維條形碼將識別的號碼錄入系統(tǒng)。(2)讀卡器通過刷IC卡將病人卡號等基本信息錄入系統(tǒng)。軟件接口:(1)膠片打印通過共享內存的方式調用FilmSend.exe程序進行膠片打印。(2)報告打印通過socket套接字的方式調用AutoPrintReport.exe程序進行報告打印。

        4 結論(Conclusion)

        在經(jīng)過模塊的測試后,膠片排版可按指定布局進行排列,已經(jīng)能夠證實該軟件排版功能已基本達到要求,調試功能能夠實現(xiàn),但是穩(wěn)定性還有待加強;系統(tǒng)設置功能也得以實現(xiàn)。需進一步加強該系統(tǒng)的傳輸速度及穩(wěn)定性。

        參考文獻(References)

        [1] 李國強.PACS系統(tǒng)及構建醫(yī)院PACS中存在的問題[J].實用醫(yī)

        技雜志,2006,13(16):2853-2854.

        [2] 張曉林,吳斌,晁陽.Oracle數(shù)據(jù)庫開發(fā)基礎教程[M].北京:清華

        大學出版社,2009.

        [3] 王偉蔚,等.基于DICOM文本與內容的醫(yī)學圖像檢索系統(tǒng)研

        究[J].計算機工程與設計.2011,32(3):1014-1018.

        作者簡介:

        張 穎(1981-),女,碩士,助理實驗師.研究領域:計算機應

        用,軟件工程.endprint

        99久久精品日本一区二区免费 | 欧美老熟妇乱子| 久久久精品456亚洲影院| 国产午夜福利精品| 91麻豆精品一区二区三区| 9久久婷婷国产综合精品性色| 国产成+人+综合+亚洲欧美丁香花| 成年男女免费视频网站| 成人国产在线播放自拍| 国产一区二区三区视频在线观看| 又色又爽又高潮免费视频国产| 人妻无码人妻有码中文字幕| 美女视频永久黄网站免费观看国产 | 曰韩精品无码一区二区三区 | 青青草手机在线观看视频在线观看 | 人妻丰满熟妇AV无码区HD| 久久成人黄色免费网站| 偷拍视频网址一区二区| 亚洲精品久久久久久久久久吃药| 国内精品一区视频在线播放 | 久久久精品久久波多野结衣av| 亚洲av网站首页在线观看| 最新国产熟女资源自拍| 亚洲av无码精品色午夜在线观看| 最新精品国偷自产在线婷婷| 国产熟女露脸大叫高潮| 亚洲色图片区| 欧美午夜一区二区福利视频| 素人系列免费在线观看| 亚洲一区二区三区蜜桃| 中文日韩亚洲欧美制服| 国产精品27页| 久久综合亚洲鲁鲁五月天| 正在播放老肥熟妇露脸| 日韩毛片在线看| 亚洲麻豆av一区二区| 欧美牲交a欧美牲交aⅴ免费下载 | 亚洲中文字幕在线观看| 国产成人精品日本亚洲语音1| 日韩女优一区二区在线观看| 含紧一点h边做边走动免费视频|