Код: Выделить всё
import pydicom
from pydicom.dataset import Dataset
from pydicom.uid import UID
from pynetdicom import AE, evt, debug_logger
from pynetdicom.sop_class import ModalityWorklistInformationFind
debug_logger()
def on_c_find(dataset, context=None, info=None):
"""Handle a C-FIND request event."""
# Check if ScheduledProcedureStepSequence exists
# Create the response dataset
identifier = Dataset()
identifier.PatientName = 'Hahah'
identifier.AccessionNumber = 'asa'
identifier.RequestedProcedureDescription = 'asa'
identifier.is_little_endian = True
identifier.is_implicit_VR = True
# Yield the response dataset
yield (0x0000, identifier) # Success
def main():
ae = AE()
# Add supported presentation contexts
ae.add_supported_context(ModalityWorklistInformationFind) # C FIND
ae.add_supported_context(UID('1.2.840.10008.1.1')) # ECHO
# Set callback functions
handlers = [(evt.EVT_C_FIND, on_c_find)]
print("Starting DICOM Worklist Server...")
# Start the DICOM server
ae.start_server(('localhost', 11112), evt_handlers=handlers)
if __name__ == "__main__":
main()
above code only send status Success but the dataset/patient dont appear from list on testing. Im using miele-wl-scu to simulate modality to query WL.
Источник: https://stackoverflow.com/questions/781 ... ot-working