Closed rbeckman-nextgen closed 4 years ago
[http://www.mirthcorp.com/community/forums/showthread.php?p=44862#post44862]
Imported Comment. Original Details: Author: narupley Created: 2015-01-13T07:43:59.000-0800
Tru dat, dis nids dun!
Imported Comment. Original Details: Author: stickybandit Created: 2015-01-29T09:13:31.000-0800
Revision 7949: Added the ability for channels to be dependent on other channels for deploy/start tasks.
Dependencies are stored as simply pairs of channel IDs (dependent ID and dependency ID). To calculate dependencies, a directed acyclic graph data structure is constructed from the set of channel ID pairs. From there the sink nodes (that no other node is dependent on) are kept track of, and the graph can be traversed in any direction.
Dependencies are edited in the same Set Dependencies dialog that code template libraries and resources are set. Users can add direct dependencies or dependents to any channel, and can see dependency trees in either direction.
When a deploy/undeploy/start/stop/pause/resume task is performed, any other required channels are calculated, and the user is prompted to ask whether the other channels should be included or not. The user is shown an ordered list of channels and what order they will be handled in.
For the time being dependencies are of a single type (handles both deploy tasks and start/stop tasks) and operate only at the channel level.
Imported Comment. Original Details: Author: narupley Created: 2016-03-21T12:00:04.000-0700
Testing with mirthconnect-3.4.0.7982.b1941
Observation:
Additional Info:
Imported Comment. Original Details: Author: minht Created: 2016-04-07T16:46:11.000-0700
Revision 7983: Made a tweak to the warning dialog to make it more clear what the bolded channels mean in the list.
Imported Comment. Original Details: Author: narupley Created: 2016-04-08T11:06:19.000-0700
Verified the new dialog in mirthconnect-3.4.0.7985.b1944-windows-x64 !Bolded.png!
Imported Comment. Original Details: Author: minht Created: 2016-04-08T14:59:30.000-0700
successfully verified the new Channel Dependencies setting
Imported Comment. Original Details: Author: minht Created: 2016-04-08T15:00:19.000-0700
Certain channels should have the ability to be "dependent" on other channels in order to be deployed/started. This doesn't just include the "Channel Writer sending to not-yet-deployed channel" scenario, but also encompasses a great many complex architecture scenarios, like an inbound ORM order receiver that should wait until an outbound lab result channel has finished starting (and flushed out its queue, etc.). Or maybe it's an outbound database writer that should be dependent on another channel that sets up global map database connections, or refreshes local code value caches, etc.
Basically I see it being not just "dependent" or "not dependent", but also dependent at different levels. For example, one channel could be dependent on another channel being deployed (because perhaps it sets something up in a deploy script), whereas it might also be dependent on another channel being started. You might also have dependencies in which a channel can only be started if another channel is -stopped- (which might introduce interesting possibilities for appliance load balancing, etc.).
The idea could be taken further by allowing dependencies at the group level (MIRTH-1243). So for example you could have all the channels in the group "Inbound ORM Interfaces" dependent on all channels in the group "Outbound ORU/MDM Interfaces", so that upon server start or redeploy all, you can be sure that no messages error out needlessly.
Imported Issue. Original Details: Jira Issue Key: MIRTH-2349 Reporter: narupley Created: 2013-02-05T09:49:12.000-0800