python?實現(xiàn)dcmtk關(guān)聯(lián)pacs功能推送下拉影像(推薦)
python 實現(xiàn)pacs功能 推送下拉影像
dcmtk關(guān)聯(lián)pacs技術(shù)筆記:
簡介
- 1、dcmtk關(guān)聯(lián)pacs的參數(shù)介紹
- 2、dcmtk命令介紹
- 3、演示工具的功能
- 4、說明使用的技術(shù)
- 5、遇到的問題
- 6、工具目前存在的缺點
dcmtk關(guān)聯(lián)pacs的參數(shù)介紹:遠程pacs說明參數(shù)如何添加
需關(guān)聯(lián)的PACS系統(tǒng)信息參數(shù)
[被呼叫主機ip] 192.168.10.19
[被呼叫主機pacs系統(tǒng)AE] ebm-pacs
[被呼叫主機pacs系統(tǒng)port] 105
[pacs系統(tǒng)電腦賬號] dn
[pacs系統(tǒng)電腦密碼] ZAQ12wsxCDE3
1、dcmtk命令介紹,ehoscu,findscu,movescu,storescu
命令參數(shù)說明參考實例文檔
[dcmtk命令參數(shù)文檔] https://support.dcmtk.org/docs/echoscu.html
[DICOM醫(yī)學(xué)圖像處理:DCMTK的wiki資料學(xué)習之PACS調(diào)試文檔] https://www.pianshen.com/article/97151392057
python 實現(xiàn)dcmtk關(guān)聯(lián)pacs功能 推送下拉影像 http://www.dbjr.com.cn/article/264742.htm
DCMTK 常用參數(shù)介紹
參數(shù) | 說明 |
---|---|
-v | 詳細模式,打印處理細節(jié) |
-d | 調(diào)試模式,打印調(diào)試信息 |
ip | 被呼叫主機ip,如(192.168.10.19) |
port | 被呼叫主機port,如(105) |
-aet | 設(shè)置我的呼叫(本機)AE標題,pacs給本機添加的AE title,如(zs-find-scu) |
-aec | 設(shè)置稱為對等方(被呼叫主機) 的AE標題,pacs系統(tǒng)的AE title,如(ebm-pacs) |
-P | 使用患者根信息模型(默認) |
-S | 使用研究根信息模型 |
-k | 指定檢索條件(key=value) |
-od | 指定輸出目錄 |
QueryRetrieveLevel | 指定檢索級別 |
-aem | 設(shè)置移動目的地AE標題(movescu時使用),如(zs-move-scu) |
+f | 輸入文件格式(默認單個dcm文件路徑),推送影像時使用 |
+sd | 支持目錄路徑下所有文件輸入,推送影像時使用 |
-su study | 指按studyinstanceuid命名目的文件夾,本機接收遠程服務(wù)器影像時使用 |
-fe .dcm | 是指收到的文件以.dcm為文件后綴,本機接收遠程服務(wù)器影像時使用 |
1.1:echoscu.exe 連接,接收答復(fù)回應(yīng)(相當于ping),測試本機與pacs是否關(guān)聯(lián)成功
- 參數(shù)介紹
- pacs系統(tǒng)ip,端口(192.168.10.19 105) # 所有的服務(wù)都需添加該參數(shù)
choscu.exe -v -d -aet zs-move-scu -aec ebm-pacs 192.168.10.19 105
1.2:findscu.exe 查詢
- 參數(shù)介紹
- 本機AE(-aet zs-find-scu)
- 被呼叫機AE(-aec ebm-pacs)
- 研究信息模型(-S)
- 查詢條件=(key=value)
- 檢索級別(-k QueryRetrieveLevel=STUDY)
- 查詢字段(-k PatientName)
- 打印處理詳情(-v)
- 打印debug日志(-d)
findscu.exe -v -d -S 192.168.10.19 105 -aet zs-find-scu -aec ebm-pacs -k QueryRetrieveLevel=STUDY -k StudyDate=20170918 -k PatientName -k PatientID -k StudyTime -k StudyID
1.3:movescu.exe 影像拉取
- 參數(shù)介紹
- 打印處理詳情(-v)
- 打印debug日志(-d)
- 本機AE(-aet zs-move-scu)
- 被呼叫機AE(-aec ebm-pacs)
- 設(shè)置移動目的地AE以及端口(-aem zs-move-scu --port 8090(此端口在pacs給本機設(shè)置AE時一起添加)
- 患者信息模型(-P(默認))
- 輸出目錄(-od)
- 檢索級別(-k QueryRetrieveLevel=PATIENT)
- 篩選條件(-k PatientID=0017063006)
movescu.exe -v -d -aet zs-move-scu -aec ebm-pacs -aem zs-move-scu --port 8090 -od D:\image_test\dcmtk_scp_storage\CHEN_XIA_DI 192.168.10.19 105 -k QueryRetrieveLevel=PATIENT -k PatientID=0017063006
1.4:storescu.exe 影像推送
參數(shù)介紹
打印處理詳情(-v)
打印debug日志(-d)
本機AE(-aet zs-move-scu)
被呼叫機AE(-aec ebm-pacs)
單個文件路徑輸入(D:\image_test\dcmtk_test\1.2.dcm)
目錄下所有文件輸入(D:\image_test\dcmtk_test\1.2.dcm +sd)
storescu.exe -d 192.168.10.19 105 D:\image_test\dcmtk_test\1.2.dcm -aet zs-move-scu -aec ebm-pacs
1.4.2、目錄下所有文件推送
storescu.exe -v -d 192.168.10.19 105 D:\image_test\dcmtk_input\138 -aet zs-move-scu -aec ebm-pacs +sd
1.5、storescp.exe 接收pacs系統(tǒng)發(fā)送的影像
- 參數(shù)介紹
- 打印處理詳情(-v)
- 打印debug日志(-d)
- 本機scp的AE,端口(-aet zs-store-scp 8090)
- 輸出目錄(-od)
- 保存格式(-su study)
- 文件后綴(-fe.dcm))
storescp.exe -d -v 8090 -aet zs-store-scp -od D:\image_test\dcmtk_scp_storage -su study -fe .dcm --fork
2、演示工具的功能:關(guān)聯(lián)測試,查詢,拉取,推送
2.1:影像上傳路徑:D:\image_test\dcmtk_input\test_0000915367 2.2:影像存儲路徑:D:\image_test\dcmtk_scp_storage 2.3:本機-AET:zs-movescu 2.4:PACS-AEC:ebm-pacs 2.5:PACS系統(tǒng)IP:192.168.10.19 2.6:PACS系統(tǒng)PORT:105 2.7:本機PORT:8090 2.8:注意事項: 1.路徑中不允許出現(xiàn)中文 2.PACS-AEC,PACS系統(tǒng)IP,PACS系統(tǒng)PORT,為關(guān)聯(lián)pacs系統(tǒng)固定參數(shù) 3.本機-AET,本機PORT,需要在遠程pacs腳本中添加本機ip,端口,設(shè)置AE 4.影像拉取功能需要添加本機端口參數(shù) 5.目前影像拉取不支持PatientName檢索條件,僅支持PatientID
3、說明使用的技術(shù):
- dcmtk命令拼接
- subprocess(執(zhí)行命令)
- tkinter(Gui工具設(shè)計)
- ctypes(隱藏控制臺)
- sys(訪問pyinstaller打包的臨時資源)
- pyinstaller(程序打包)
4、遇到的問題:
1.pyinstaller:如何打包本地資源
解決方法一:pyinstaller -F --add-data dcmtk-3.6.6-win64-dynamic;dcmtk-3.6.6-win64-dynamic dcmtk_gui.py 解決方法二:修改pyinstaller生成的spec文件,修改datas=[("本地資源路徑","打包后生成的臨時資源目錄")]
2.pyinstaller:-w 去除控制臺,無法執(zhí)行cmd命令:
解決方法一:設(shè)置subprocess.Popen(stdout, stderr, stdin) 解決方法二:隱藏控制臺, ctypes.windll.user32.ShowWindow(whnd, 0)
3.sys:如何訪問臨時資源:
解決方法:通過getattr(sys, 'frozen', False)判斷是否為打包環(huán)境,獲取資源的相對路徑:sys._MEIPASS
4.使用資源:
相對路徑(dcmtk../bin) + dcmtk服務(wù)的exe + dcmtk命令即可 使用subprocess.Popen(),使用subprocess.getoutput()
5.tkinter 組件切換電腦打開則組件布局位置不一致:
解決方法:添加容器對象,frame
6.tkinter Entry輸入框與選擇路徑按鈕同時支持:
如果選擇路徑按鈕,entry組件=選擇路徑
7.tkinter Text實時顯示 dcmtk命令產(chǎn)生的日志:
代碼介紹
5、工具目前存在的缺點:
- 不能根據(jù)患者的name進行影像拉取
- 運行時占用的內(nèi)存比較大
- 上傳,存儲,不支持選擇文件(僅支持目錄),手動輸入都支持
6、收獲:
- dcmtk的命令基本配置
- subprocess的常用方法
- tkinter的組件布局,日志打印
- pyinstaller本地資源打包
- 打包后的資源如何訪問
前存在的缺點:
- 不能根據(jù)患者的name進行影像拉取
- 運行時占用的內(nèi)存比較大添加鏈接描述
- 上傳,存儲,不支持選擇文件(僅支持目錄),手動輸入都支持
7、收獲:
- dcmtk的命令基本配置
- subprocess的常用方法
- tkinter的組件布局,日志打印
- pyinstaller本地資源打包
- 打包后的資源如何訪問
dcmtk應(yīng)用程序Windows 64位,免費下載,解壓即可使用
dcmtk下載地址:http://xiazai.jb51.net/202210/yuanma/dcmtkdynamic_jb51.rar
到此這篇關(guān)于python 實現(xiàn)dcmtk關(guān)聯(lián)pacs功能 推送下拉影像的文章就介紹到這了,更多相關(guān)python dcmtk關(guān)聯(lián)pacs內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何基于Python代碼實現(xiàn)高精度免費OCR工具
這篇文章主要介紹了如何基于Python代碼實現(xiàn)高精度免費OCR工具,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下2020-06-06Python?paddleocr快速使用及參數(shù)配置詳解
PaddleOCR是基于PaddlePaddle深度學(xué)習框架的開源OCR工具,但它提供了推理模型/訓(xùn)練模型/預(yù)訓(xùn)練模型,用戶可以直接使用推理模型進行識別,也可以對訓(xùn)練模型或預(yù)訓(xùn)練模型進行再訓(xùn)練,這篇文章主要介紹了Python?paddleocr快速使用及參數(shù)詳解,需要的朋友可以參考下2024-06-06Python?中如何使用requests模塊發(fā)布表單數(shù)據(jù)
requests 庫是 Python 的主要方面之一,用于創(chuàng)建對已定義 URL 的 HTTP 請求,本篇文章介紹了 Python requests 模塊,并說明了我們?nèi)绾问褂迷撃K在 Python 中發(fā)布表單數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧2023-06-06Pygame Surface創(chuàng)建圖像的實現(xiàn)
本文主要介紹了Pygame Surface創(chuàng)建圖像的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02