Can you limit the SOP classes accepted as Store SCP

I am trying to limit the SOP classes accepted the STORE SCP. Is there a list I can provide of the supported SOP classes? I see the supported transfer syntax I can configure but not the SOP classes. Thanks.

no

You might however achieve this with a lua script to filter instances based on their SOPClassUID tag.

Hello,

I’d like to emphasize the need for SOP Class negociation within Orthanc…

As far as I understand filtering based on a LUA script, this solution would not achieve same objective since filtering would occur after the instances are transmitted while SOP Class negociation would prevent sending non-supported/useless instances for the application using Orthanc.

A real-life example is the adoption of Enhanced CT and Enhanced MR IODs.
Some CT/MR scanners are able to automatically adapt the DICOM format of their images based on what the target system supports:

  • if both Standard and Enhanced are supported (i.e. negociated), then Enhanced is chosen to ensure richer IOD and more efficient data transfer (thanks to multiframe image vs single-frame in Standard CT/MR)
  • if only standard is supported, then obviously Standard format is used.

With such CT/MR scanners, if it’s not possible to restrict the supported SOP Class to Standard CT/MR in Orthanc, then a specific configuration is required on the CT/MR scanner to force the SOP class used which makes system integration more complex and time-consuming (dependance on the vendor tech services) and potentially unstable (typically, configuration lost upon scanner software update/upgrade).

Regards,
Hervé.

Hi Hervé,

Indeed, I get your point !

I have added it in our TODO and will look into it next time I work on the DICOM protocol part of Orthanc and let you know of any progress.

Best regards,

Alain.

Great, thanks.
As far as I was told, DCMTK storescp already supports this capability, so hopefully this will help.

Hi @herve.garfagni

I have actually implemented this feature while working on C-Get SCU. Here is the documentation of new entries in the configuration file:

// The list of accepted Storage SOP classes.
// If empty or not defined, this list defaults
// to all storage classes defined in DCMTK in case of 
// C-STORE SCP and to a reduced list of 120 common storage
// classes in case of C-GET SCU.
// Each entry can contain wildcards ("?" or "*") to add
// subsets of SOP classes that are defined in DCMTK.
// If you want to add a a SOP class that is not defined in
// DCMTK, you must add it explicitely.
// (new in Orthanc 1.12.6)
// "AcceptedSopClasses" : [
//   "1.2.840.10008.5.1.4.1.1.2",
//   "1.2.840.10008.5.1.4.1.1.4"
// ]

// The list of rejected Storage SOP classes.
// This configuration is only meaningful if
// "AcceptedSopClasses" is using regular expressions
// or if it is not defined.
// Each entry can contain wildcards ("?" or "*").
// (new in Orthanc 1.12.6)
// "RejectedSopClasses" : [
//   "1.2.840.10008.5.1.4.1.1.2",
//   "1.2.840.10008.5.1.4.1.1.4"
// ]

So, in your case, you should probably just add a few entries in RejectedSopClasses to prevent the CT/MR to use the Enhanced format.

That would be great if you could give it a try and validate the correct behavior before we release the feature.
Docker images are being built right now so a pre-release will soon be available in orthancteam/orthanc-pre-release:get-scu-unstable

Best regards,

Alain.

1 Like