大家好
最近用到python 的pydicom來上傳dicom影像
在這邊做一個紀錄
順便給大家參考
import os from pydicom.dataset import Dataset, DataElement import pydicom from pydicom.uid import generate_uid from pydicom import dcmread from pynetdicom import AE, VerificationPresentationContexts from pynetdicom.sop_class import CTImageStorage, MRImageStorage, SecondaryCaptureImageStorage # 新增一個連線 ae = AE() # 設定連線內容 ae.requested_contexts = VerificationPresentationContexts # 設定傳輸內容 需要依據dicom 本身的tag做設定 ae.add_requested_context(SecondaryCaptureImageStorage, transfer_syntax='1.2.840.10008.1.2.4.91') PACS_MY_AE_TITLE # 自己的 AE_TITLE PACS_UP_AE_PORT # 要上傳的PACS PORT PACS_UP_AE_IP # 要上傳的PACS IP # 設定 AE_TITLE ae.ae_title = PACS_MY_AE_TITLE # 開啟連線 assoc = ae.associate(PACS_UP_AE_IP, PACS_UP_AE_PORT) # 成功建立 if assoc.is_established: # 讀取dicom 檔案 dataset = dcmread(report_dicom) # 上傳 status = assoc.send_c_store(dataset) # 釋放連線 assoc.release() if not status.Status in (0xff00, 0xff01): # 如果有錯誤 pass
重點在於
add_requested_context 中的傳輸影像類型可參考
https://pydicom.github.io/pynetdicom/dev/reference/sop_classes.html
然後影像封裝類型UID 也必須正確
https://pydicom.github.io/pydicom/stable/reference/uid.html
總之
要上傳成功跟要上傳的dicom tag資料息息相關
必須確認後在設定中新增
才可以上傳成功喔
留言板
歡迎留下建議與分享!希望一起交流!感恩!