Provides auto-routing of DICOM objects that are received by the DICOM Storage Service to remote DICOM applications.
This is done by queuing corresponding retrieve requests to the Move SCU service.

This Forward Service supports two additional Notifications PatientUpdated and SeriesUpdated from ContentEditService to allow forwarding DICOM objects to serve the purpose of update.
(Works only if the received objects are used for updating!)

]]>
org.dcm4chex.archive.dcm.movescu.ForwardService The default constructor ForwardService The comma separated list of AE titles after the (optional) condition defines the forwarding destination (the other Storage SCP) by its Called AE Title.

Each AE title can be suffixed by !<from>-<to> to defer forwarding to that destination outside a particular time interval , and by {<priority>} to overwrite the forwarding priority specified by attribute ForwardPriority for this destination .

Syntax:
<forwarding rules> := (<forwarding rule> <EOL>)+ | 'NONE'
<forwarding rule> := ['['<condition>[,<condition>..]']'] <aeTitleTo> ['!'<from>'-'<to>] ['{'<priority>'}']
<condition> := calling ['!'] '=' <aeTitleFrom> or extRetrieveAET ['!'] '=' <extRetrieveAET> or archived ['!'] '=' 'true' | 'false'
<priority> := 'MEDIUM' | 'HIGH' | 'LOW'
where
<aeTitleFrom> = calling AE titles separated by pipes ('|')
<extRetrieveAET> = external Retrieve AET (of all instances of SeriesStored) separated by pipes ('|') or '*'
<archived> = If all instances of SeriesStored are marked as archived
<aeTitleTo> = comma separated list of AE titles that objects are forwarded to
'!'<from>'-'<to> = start and end hour (0-23) when no forwarding should be performed to that destination

Example: [calling=SCU1|SCU2]SCP3 {HIGH} ,SCP4!8-16 {LOW} Forwards objects received from AE Title SCU1 or SCU2 to Storage SCPs, SCP3 with high priority and to SCP4 with low priority. Forwarding of objects received between 8am and 4pm to SCP4 is delayed until 4 pm. Example with central archive: [calling!=CENTRAL,extRetrieveAET!=*]CENTRAL Forwards all objects to CENTRAL with following exceptions:
1) If sourceAET of received object is CENTRAL
2) If a local object already exists with an extenal RetrieveAET]]> ForwardingRules java.lang.String ALL = Forward objects on Instance level received from any Storage SCUs.
NONE = Forward objects on Series level received from any Storage SCUs.
Exception: if only one object is received in the association, the object will be forwarded by an Instance level retrieve request, even if the AE title of the sending Storage SCU is not listed. ]]>
ForwardOnInstanceLevelFromAETitles java.lang.String
If enabled a PatientUpdated notification will forward all instances of the related patient to each AET listed in ForwardModifiedToAETs.

You should enable this feature only if you have to update a system that doesnt support HL7 ADT update messages]]> EnablePatientUpdated boolean SeriesUpdated notification support. If enabled a SeriesUpdated notification will forward all instances of the series to each AET listed in ForwardModifiedToAETs.

You should enable this feature only if you have to update a system that doesnt support StudyMgtScu service.]]> EnableSeriesUpdated boolean i.e.:SeriesStored notification with no RetrieveAET will be ignored by this service.
Such a SeriesStored notification is sent if instances are received with private TransferSyntax 'Dcm4che URI Referenced' (1.2.40.0.13.1.1.2.4.94) and a (external) RetrieveAET instead of RetrieveURI is given.
]]>
IgnoreNotLocalRetrievable boolean
NONE = do not forward modified objects.

see also EnablePatientUpdated and EnableSeriesUpdated.]]> ForwardModifiedToAETitles java.lang.String Forwarding priority. Enumerated Values: LOW, MEDIUM, HIGH. ForwardPriority java.lang.String Used internally. Do NOT modify. StoreScpServiceName javax.management.ObjectName Used internally. Do NOT modify. MoveScuServiceName javax.management.ObjectName Used internally. Do NOT modify. EditContentServiceName javax.management.ObjectName &defaultAttributes; &defaultOperations;