# HG changeset patch # User Sebastien Jodogne # Date 1645601930 -3600 # Node ID b14dbbb8eda9529a328ac0e1518f6d9e826850a8 # Parent 9615fde79f543c017dbd8780345e1e1f894ebf49 fix sample of ReceivedInstanceCallback for Python diff -r 9615fde79f54 -r b14dbbb8eda9 Sphinx/source/plugins/python/received-instance-callback.py --- a/Sphinx/source/plugins/python/received-instance-callback.py Wed Feb 16 18:07:15 2022 +0100 +++ b/Sphinx/source/plugins/python/received-instance-callback.py Wed Feb 23 08:38:50 2022 +0100 @@ -3,6 +3,7 @@ from pydicom import dcmread, dcmwrite from pydicom.filebase import DicomFileLike +import orthanc # from https://pydicom.github.io/pydicom/stable/auto_examples/memory_dataset.html def write_dataset_to_bytes(dataset): @@ -10,24 +11,24 @@ memory_dataset = DicomFileLike(buffer) dcmwrite(memory_dataset, dataset) memory_dataset.seek(0) - return memory_dataset.read() - def ReceivedInstanceCallback(receivedDicom): - dataset = dcmread(BytesIO(receivedDicom)) if dataset.PatientID.startswith('001-'): + orthanc.LogWarning('Discard instance') return orthanc.ReceivedInstanceCallbackResult.DISCARD, None - if dataset.PatientID.startswith('002-'): + elif dataset.PatientID.startswith('002-'): + orthanc.LogWarning('Store source instance as it is') return orthanc.ReceivedInstanceCallbackResult.KEEP_AS_IS, None - dataset.PatientName = str(dataset.PatientName).upper() - dataset.PatientID = '002-' + dataset.PatientID - dataset.InstitutionName = "MY INSTITUTION" - - return orthanc.ReceivedInstanceCallbackResult.MODIFIED, write_dataset_to_bytes(dataset) + else: + orthanc.LogWarning('Modify the source instance') + dataset.PatientName = str(dataset.PatientName).upper() + dataset.PatientID = '002-' + dataset.PatientID + dataset.InstitutionName = "MY INSTITUTION" + return orthanc.ReceivedInstanceCallbackResult.MODIFIED, write_dataset_to_bytes(dataset) orthanc.RegisterReceivedInstanceCallback(ReceivedInstanceCallback)