This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.

For information on migrating to InterSystems IRIS, see Why Migrate to InterSystems IRIS?

Demo.DICOM.Process.AsyncRouterDispatcher

persistent class Demo.DICOM.Process.AsyncRouterDispatcher extends EnsLib.DICOM.Process

SQL Table Name: Demo_DICOM_Process.AsyncRouterDispatcher

Demo.DICOM.Process.AsyncRouterDispatcher acts as the target AET for other AET's sending DICOM images using a DICOM C-STORE-Req. All images sent within an DICOM association context are stored. Once the association is released by the sending AET, a signal message containing the session id is sent to all configured DICOM Router/filers asynchronously (outside the DICOM protocol). The files will then forward the stored images to the configured targets. This allows for routing of DICOM images to multiple targets where the transfer to each individual target happens within a single association. This approach avoids performance issues when studies/series with lots of images are routed to multiple targets.

Property Inventory

Method Inventory

Parameters

parameter DOMAIN = ENSDEMO;
Inherited description: Domain for Text localization
parameter SETTINGS = FilerConfigNames:Basic:selector?multiSelect=1&context={Ens.ContextSearch/ProductionItems?productionName=@productionId&className=Demo.DICOM.Process.AsyncRouterFiler},RuleClass:Basic:selector?context={Ens.ContextSearch/SubclassOf?class=Demo.DICOM.Util.AbstractRoutingRule&abstract=0},StoreIgnoredEntries:Basic;
Inherited description: List of properties can be set as settings in the configuration file format is a comma separated list of property names

Properties

property FilerConfigNames;
This is the (comma separated) list of configuration names of the router filer process(es)
Property methods: FilerConfigNamesDisplayToLogical(), FilerConfigNamesGet(), FilerConfigNamesGetStored(), FilerConfigNamesIsValid(), FilerConfigNamesLogicalToDisplay(), FilerConfigNamesLogicalToOdbc(), FilerConfigNamesNormalize(), FilerConfigNamesSet()
property RuleClass as %String (MAXLEN = 2000);
DICOM Routing Class to be used for evaluation if individual images are to be sent to the specified filer(s).
Property methods: RuleClassDisplayToLogical(), RuleClassGet(), RuleClassGetStored(), RuleClassIsValid(), RuleClassLogicalToDisplay(), RuleClassLogicalToOdbc(), RuleClassNormalize(), RuleClassSet()
property StoreIgnoredEntries as %Boolean [ InitialExpression = 1 ];
If set to TRUE, status entries of DICOM documents not being sent to the target filer will be stored with a Document Status of 'Ignored'
Property methods: StoreIgnoredEntriesDisplayToLogical(), StoreIgnoredEntriesGet(), StoreIgnoredEntriesGetStored(), StoreIgnoredEntriesIsValid(), StoreIgnoredEntriesLogicalToDisplay(), StoreIgnoredEntriesNormalize(), StoreIgnoredEntriesSet()

Methods

method CreateStorageResponse(pDocIn As EnsLib.DICOM.Document, Output pDocOut As EnsLib.DICOM.Document) as %Status
Create a storage response DICOM message
method OnAssociationAborted(pSourceConfigName As %String, pInput As EnsLib.DICOM.Notify.Aborted) as %Status
This callback is called by the framework when an association is aborted
method OnAssociationErrored(pSourceConfigName As %String, pInput As EnsLib.DICOM.Notify.Errored) as %Status
This callback is called by the framework when an assocation encounters an error
method OnAssociationReleased(pSourceConfigName As %String, pInput As EnsLib.DICOM.Notify.Released) as %Status
This callback is called by the framework when an Association is released
method OnError(request As %Library.Persistent, ByRef response As %Library.Persistent, callrequest As %Library.Persistent, pErrorStatus As %Status, pCompletionKey As %String) as %Status
This method is called when any error occurs. Returning the same error will cause the BusinessProcess to set its status to error and close down
classmethod OnGetConnections(Output pArray As %String, pItem As Ens.Config.Item)
Return an array of connections for drawing lines on the config diagram
method OnMessage(pSourceConfigName As %String, pInput As %Library.Persistent) as %Status
Messages received here are instances of EnsLib.DICOM.Document sent to this process by the service.
method SendToFilers() as %Status
Send a signal message containing the session id to all configured DICOM filers asynchronously

Inherited Members

Inherited Properties

Inherited Methods

Storage

Gray indicates storage defined by superclasses.

Storage Model: CacheStorage (Ens.BusinessProcess)

^Ens.BusinessProcessD(ID,"pending",n)
=
%MasterPendingResponses(n)

Storage Model: CacheStorage (Ens.BusinessProcess)

^Ens.BusinessProcessD(ID,"received",n)
=
%MessagesReceived(n)

Storage Model: CacheStorage (Ens.BusinessProcess)

^Ens.BusinessProcessD(ID,"sent",n)
=
%MessagesSent(n)

Storage Model: CacheStorage (Ens.BusinessProcess)

^Ens.BusinessProcessD(ID)
=
%%CLASSNAME
%ConfigQueueName
%IsCompleted
%MasterPendingResponsesOld
%PrimaryRequestHeader
%PrimaryResponseHeader
%RepliedStatus
%responseId
Adapter
%SessionId
%TimeCompleted
%TimeCreated
%ConfigName
%QuitTask
AlertOnError
%responseClassName
%IsTimerInterrupted
%IsTerminated
%StatusCode
%MessagesReceivedOld
%MessagesSentOld
ReplyCodeActions
RetryInterval
AlertRetryGracePeriod
FailureTimeout
Retry
SuspendMessage
QueueCountAlert
QueueWaitAlert
InactivityTimeout
BusinessPartner
AlertGroups
%SuperSession

Storage Model: CacheStorage (EnsLib.PrivateSession.Process)

^Ens.BusinessProcessD(ID,"Process")
=
ServiceDuplexName
%IsInPrivateSession

Storage Model: CacheStorage (Demo.DICOM.Process.AsyncRouterDispatcher)

^Ens.BusinessProcessD(ID,"AsyncRouterDispatcher")
=
FilerConfigNames
RuleClass
StoreIgnoredEntries
Feedback