Appearance
Nodes
The nodes.yml file is a list of nodes that DICOM Capacitor will use to send and receive DICOM data.
Example Configuration
yaml
---
- AeTitle: STORE_SCP
Aliases:
- PACS
HostName: 127.0.0.1
Port: 104
TransferSyntax:
NodeRole: Storage
BatchSize: 0
MinimumLineSpeed: 0
ProcessSchedule:
- 00:00 - 23:59
ProcessNetworks:
- 192.168.100.4 / 255.255.255.0AeTitle
- Type:
string - Default:
DESTINATION
The AE Title that is used when initiating associations with this node. In the example above, clients that wish to send DICOM data to this node should use the Called AE Title STORE_SCP.
Capacitor will respond affirmatively to any C-ECHO and C-Store association intended for this AE Title, as well as this AE title prefixed with config.yml/aeTitlePrefix.
Aliases
- Type:
string[] - Default:
[] - Optional
A YAML array of aliases that DICOM Capacitor will use to identify the node. In the example above, associations intended for the PACS will be delivered to STORE_SCP instead.
Capacitor will respond affirmatively to any C-ECHO and C-Store association intended for these aliases.
BatchSize
- Type:
number - Default:
""(inherits from config.yml) - Optional
The number of DICOM images to process in a single batch. Any value other than blank overrides the value set in config.yml/batchSize for only this node.
HostName
- Type:
string - Default:
127.0.0.1
The IP address or hostname of the node.
Impersonate
- Type:
boolean - Default:
false - Optional
When enabled, DICOM Capacitor will assume the AE Title of the original calling client when making outbound requests to this node, instead of using the myAeTitle from config.yml.
This is useful when the destination node needs to know the original source of the data. For example:
- A PACS that uses the calling AE Title for routing or access control
- A worklist server that filters results based on the requesting modality
- Systems that log or track data by the originating AE Title
Example:
yaml
- AeTitle: PACS
HostName: 192.168.1.100
Port: 104
Impersonate: true # PACS will see the original modality's AE TitleWhen Impersonate is false (default), all outbound requests use the AE Title defined in config.yml/myAeTitle.
MinimumLineSpeed
- Type:
number - Default:
""(inherits from config.yml) - Optional
The minimum transmission speed, in KB/s, that DICOM Capacitor will use to determine if a storage operation has failed. This value overrides the config.yml/minimumLineSpeed setting for this node.
NodeRole
- Type:
string - Default:
Storage
The role of the node.
Accepted values:
Storage- The node is a Storage SCP, and Capacitor will relay data to itQueryRetrieve- The node is a Query/Retrieve SCP, and Capacitor will relay queries to itWorklist- The node is a Worklist SCP, and Capacitor will relay queries to it, and cache (and mutate) the resultsStorageCommitSCP- The node is a Storage Commitment SCP, and Capacitor will relay requests to itStorageCommitSCU- The node is a Storage Commitment SCU, and Capacitor will relay requests to it
Specific roles may require and allow additional configuration in config.yml, nodes.yml, and mutations.yml.
Port
- Type:
number - Default:
104
The port that the node is listening on.
Priority
- Type:
number - Default:
0 - Optional
The DICOM priority level for operations with this node. This affects the priority field in DICOM messages.
Accepted values:
0- Medium priority (default)1- High priority2- Low priority
SopClassPriorities
- Type:
string[] - Default:
[] - Optional
An ordered list of SOP Class UIDs used to prioritize the delivery queue for this storage destination. Earlier entries have higher queue priority. Items with the same resolved priority are still processed FIFO by creation time.
Use the special default entry to set where unlisted SOP classes should fall in the order. If default is omitted, unlisted SOP classes receive the lowest priority below every listed SOP class. If SopClassPriorities is omitted entirely, the node keeps normal FIFO delivery.
This setting applies only to NodeRole: Storage.
Use this when queue order matters clinically or operationally. A common example is sending small 2D acquisition images first so they are visible quickly at the destination, while lower-priority derived objects, documentation, or bulky secondary captures can wait behind them.
Behavior:
- Priority is evaluated per queued item for this destination.
- Higher-priority items can overtake older lower-priority backlog on the next send-batch refresh.
- Items with the same resolved priority remain FIFO.
- A batch already in flight is not interrupted.
This is different from other ordering controls:
Priorityon the node is the DICOM message priority field, not queue scheduling.SopClassPrioritieschanges backlog scheduling across queued files for one destination.sortings.ymland Lua sorting are still the tools for ordering files within the same priority class or within a study/batch.
Example:
yaml
- AeTitle: PACS
HostName: 192.168.1.100
Port: 104
NodeRole: Storage
SopClassPriorities:
- 1.2.840.10008.5.1.4.1.1.1 # Computed Radiography Image Storage
- 1.2.840.10008.5.1.4.1.1.1.1 # Digital X-Ray Image Storage - For Presentation
- defaultExample: urgent 2D before routine backlog
yaml
- AeTitle: REVIEW_PACS
HostName: 192.168.1.50
Port: 104
NodeRole: Storage
SopClassPriorities:
- 1.2.840.10008.5.1.4.1.1.1 # CR Image Storage
- 1.2.840.10008.5.1.4.1.1.2 # CT Image Storage
- default # normal queue position for everything else
- 1.2.840.10008.5.1.4.1.1.7 # Secondary Capture Image StorageExample: keep default FIFO, but push reports to the back
yaml
- AeTitle: ARCHIVE
HostName: 192.168.1.60
Port: 104
NodeRole: Storage
SopClassPriorities:
- default
- 1.2.840.10008.5.1.4.1.1.104.1 # Encapsulated PDF StorageProcessDelay
- Type:
number - Default:
""(inherits from config.yml) - Optional
The number of milliseconds to delay delivery of prepared studies for this specific node. This overrides the global config.yml/processDelay setting.
This is part of the "Adaptive Study Delivery Window" system. See config.yml/processDelay for more details.
Example:
yaml
- AeTitle: PACS
HostName: 192.168.1.100
Port: 104
ProcessDelay: 30000 # Wait 30 seconds before delivery to this nodeProcessNetworks
- Type:
string[] - Default:
[] - Optional
A YAML array of CIDR ranges DICOM Capacitor will compare against all local network adapters to determine when to process data for this node.
Example:
yaml
ProcessNetworks:
- 192.168.100.4 / 255.255.255.0 # requires specific subnet using mask
- 192.168.100.0 # requires specific subnet address
- 192.168.100.4 # requires specific ip address (no mask)ProcessSchedule
- Type:
string[] - Default:
[] - Optional
A YAML array of time ranges that DICOM Capacitor will use to determine when to process data for this node.
Example:
yaml
ProcessSchedule:
- 00:00 - 23:59
- 13:30 - 17:00TransferSyntax
- Type:
string - Default:
""(inherits from incoming image or config.yml) - Optional
The transfer syntax that Capacitor will use when sending data to this node. If this value is not provided, Capacitor will use the transfer syntax of the incoming image, or the value defined in config.yml/defaultTransferSyntax if set.
Accepted values are the same as those in config.yml/defaultTransferSyntax.