大家好
最近用到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資料息息相關
必須確認後在設定中新增
才可以上傳成功喔![]()

留言板
歡迎留下建議與分享!希望一起交流!感恩!