Listeners are services that monitor a network port for DICOM storage requests. They have the following required fields
DICOM allows a listener to specify which of the storage SOP classes it supports and to accept or reject requests based on this. Look up DICOM presentation contexts for the gory details.
The normal structure here is
<sopClassSets>
<sopClassSet name="all">
<sopClass uid="*" />
</sopClassSet>
<sopClassSet name="AllWildCard">
<sopClass uid="1.2.840.10008.5.1.4.1.1.*" />
</sopClassSet>
</sopClassSets>
Note the use of the wildcard character . It can only appear as a suffix to a uid. This means to match all uids that start with the characters to the left of the . Using just * matches all uids.
Listeners have a subelement that allows you to configure how they handle storage.
<storage
root="c:\temp\AnotherAE"
strategy="patientCentric"
modalityRuleSet="decompress"
maxDiskUsage="99%"/>
The root attribute points to a directory into which a store will occur. Note that using UNC paths is just fine.
The maxDiskUsage attribute specifies the amount of disk that can be used before requests will be rejected.
The strategy attribute specifies a storage strategy. This is a means of constructing a path from DICOM tags when a file is to be stored.
The modalityRuleSet attribute specifies the actions to be taken on storage. Compress and Decompress are two typical actions.
Storage strategies specify how files are written to disk. They contain a directory child element which allows the path to be constructed using the DICOM tags in the received images (or default tags if they don't exist). There is also a file element specifying how files get their names and if a file that is already in existence can be overwritten.
<storageStrategies>
<storageStrategy name="patientCentric" useDateSubDirectories="true">
<!--
the hierachy of tags to use to define the file system path.
If the tag cannot be found the defaultVal is used instead.
-->
<directories>
<directory name="PatientID" tag="0x00100010" defaultVal="unknown"/>
<directory name="StudyDate" tag="528432" defaultVal="unknown" />
<directory name="SeriesDescription" tag="528446" defaultVal="unknown" />
</directories>
<!-- If tag is not specified (or not present) a guid is used -->
<files tag="0x00080018" overwrite="false" extension=".dcm" />
</storageStrategy>