日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于fo-dicom 的 Worklist CStore 我的学习实现路线

發布時間:2023/12/9 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于fo-dicom 的 Worklist CStore 我的学习实现路线 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習了三個周的DICOM協議,主要進行了Worklist、CStore應用測試,下面總結一下過程中收獲的心得

剛開始接觸DICOM這個東西領導提出兩個需求測試實現Worklist和DICOM文件下載,后面又加了壓縮DCM文件,而且他說網上有代碼,讓我下下來馬上在機器上測試,我當時還是一頭霧水,不知從何下手,先沒管代碼的事,最直接的入手材料就是DICOM協議

[DICOM標準網站](https://www.dicomstandard.org/ - https://www.dicomstandard.org/current/),在CSDN下了中文版的協議,三個文件講到第十章,應該不全,不過了解基本內容是夠了,陸續看了兩天協議,醫學影像領域算是入門了,知道醫學影像按照DICOM協議規定的數據格式、含義、條目存儲為二進制文件,收集各種概念HIS、RIS、PACS,對協議的基本元素、組成、含義有了大致的了解,但對于自己接下來的任務還不明確,要怎么做。

之前無醫療行業開發經驗,表示連HIS都不知道,了解正常的就醫流程是把我開發方向的重要支持。

病人在HIS上注冊,經hl7消息傳至RIS,RIS上便有了病人的登記信息。做檢查時,成像設備通過DICOM?Worklist來從RIS上取得需做檢查的病人列表,選擇后做檢查。檢查完成后,圖像便可以傳到PACS中進行存儲。在這個過程中,病人信息僅在HIS端輸入一遍,但它流經RIS,Modality以及PACS。可以節省時間,減少錯誤,規范流程,互聯互通,形成數據共享。理想的情況下,讓醫生專注于檢查及診斷,而縮短的時間,也會提高病人的滿意度。

第一個任務是實現worklist,我在各個地方找關于worklist的信息,協議里其實講的很清楚

A worklist is the structure to present information related to a particular set of tasks. It specifies particular details for each task. The information supports the selection of the task to be performed first, and supports the perfomance of that task.

簡單理解就是把數據庫中的客戶信息上傳至設備界面,免去手動輸入客戶信息可能錄入錯誤的問題。?

如何實現呢?

有了點基礎只是就可以看代碼了,一開始搜到關于Worklist的都提到了DCMTK,這是什么東東,也不管三七二十一,

跟著教程就開始愉快的操作啦,就是參考下面這兩個博客

[dcmtk在PACS開發中的應用(基礎篇) 第三章 工作列表(Work List)(一)](https://blog.csdn.net/pachleng/article/details/5800513)

[dcmtk在PACS開發中的應用(基礎篇) 第四章 工作列表(Work List)(二)](https://blog.csdn.net/pachleng/article/details/5827232)

經過DCMTK的編譯和配置(也沒管這個是DICOM的C++支持庫,就跟著做,在一抹黑的時候盡量不去管是什么,先弄出來再說)、準備dump文件,執行指令,整個過程還比較順利,命令窗口展示如下

親眼看到了協議中提到信息,比如病人姓名PN,這應該是設備機需要的數據吧,一下和DICOM拉近了距離,這些和worklist有什么關系?看到指令中有wlistqry 應該是worklist query

wlmscpfs指令指定了wlistdb和端口信息,應該是提供數據的服務端,findscu指令執行完就看到了查詢的數據,明白了大概的過程,但是怎么測試設備機呢,需要說明的是在沒接觸設備前我一直沒搞清楚服務端和客戶端的問題。。

繼續搜索,終于遇到了DICOM大神的博客(https://blog.csdn.net/zssureqh),他的博客應該是我們學習DICOM最佳參考,我后面的很多疑問都是看了他的博客才清楚了,收獲很大。

然后就看到了這篇[DICOM:fo-dicom、dcm4che14、dcm4chee等開源庫持續自我維護](https://blog.csdn.net/zssureqh/article/details/51926908),原來有基于.net的DICOM庫,喜極而泣,終于要跑上正軌了

基于.net 4.5 [fo-dicom](https://github.com/fo-dicom/fo-dicom)

和示例程序[fo-dicom-samples](https://github.com/fo-dicom/fo-dicom-samples)

然而。。示例程序下下來卻不知道如何上手,這么多項目,運行也直接看不到結果,令我感到驚喜的是確實有worklist相關的項目,一個是SCP 一個是SCU,再看協議,知道是服務端和客戶端,又不能兩個項目一起啟動,那怎么辦,,后來知道debugge下有可執行程序,于是先啟動SCP 再啟動SCU,程序運行起來我就踏實多了,結合源碼又看了很多相關的文章,基本程序都理解通了,下一步可以上機測試了,只是后又遇到客戶機竟然是XP系統不支持.net4.5 哭了,于是找到下面的庫版本:

基于.net 4.0 [fo-dicom](https://github.com/zssure-thu/fo-dicom)

基于兩個版本的實現方式差別很大,根據4.5的示例程序,在4.0上進行編碼,也是由于對worklist理解不透徹,一直沒跑通,折騰了兩三天,不過CStore一下就通了,后來得知并不一定要在那臺XP系統電腦上部署,就沒怎么再看4.0的程序了

在見到設備電腦之前,我一直沒怎么想通我的程序要怎么運行,看到儀器設備的操作界面,我一下懂了,設備就是所謂的客戶端,我只需要提供服務端就可以了,又經過一個周的測試,幾個儀器都測試通了worklist和CStore。

后面的學習我都是參考zssureqh的博客指導,特別是下面這篇

[DICOM:DICOM標準學習路線圖](https://blog.csdn.net/weixin_42665418/article/details/82112865)

CStore沒有問題,但是花了很多時間折騰下載直接壓縮dcm,后來通過完全下載再在本地壓縮然后上傳云端的方式解決

DICOM的學習研究告一段落

?

總結

以上是生活随笔為你收集整理的基于fo-dicom 的 Worklist CStore 我的学习实现路线的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。