59 lines
1.5 KiB
Python
Executable file
59 lines
1.5 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
import os
|
|
import sys
|
|
|
|
from pydicom import dcmread
|
|
|
|
from pynetdicom import AE, debug_logger
|
|
from pynetdicom.sop_class import CTImageStorage, RTStructureSetStorage
|
|
|
|
debug_logger()
|
|
|
|
def SendDCM(fp):
|
|
|
|
# Initialise the Application Entity
|
|
ae = AE()
|
|
ae.ae_title = 'OUR_STORE_SCP'
|
|
|
|
# Add a requested presentation context
|
|
# ae.add_requested_context(CTImageStorage)
|
|
ae.add_requested_context(RTStructureSetStorage)
|
|
|
|
# Read in our DICOM CT dataset
|
|
ds = dcmread(fp)
|
|
|
|
# Associate with peer AE at IP 127.0.0.1 and port 11112
|
|
assoc = ae.associate("127.0.0.1", 11112)
|
|
assoc = ae.associate("172.16.40.36", 104,
|
|
ae_title = 'N1000_STORAGE',
|
|
)
|
|
if assoc.is_established:
|
|
# Use the C-STORE service to send the dataset
|
|
# returns the response status as a pydicom Dataset
|
|
status = assoc.send_c_store(ds)
|
|
|
|
# Check the status of the storage request
|
|
if status:
|
|
# If the storage request succeeded this will be 0x0000
|
|
print('C-STORE request status: 0x{0:04x}'.format(status.Status))
|
|
else:
|
|
print('Connection timed out, was aborted or received invalid response')
|
|
|
|
# Release the association
|
|
assoc.release()
|
|
else:
|
|
print('Association rejected, aborted or never connected')
|
|
|
|
|
|
def main():
|
|
if len(sys.argv) < 2:
|
|
print('Usage:', sys.argv[0], 'RTSS')
|
|
sys.exit()
|
|
print('hello')
|
|
print(sys.argv[0])
|
|
print(sys.argv[1])
|
|
SendDCM(sys.argv[1])
|
|
|
|
if __name__ == '__main__':
|
|
main()
|