QUESTION:
"Is there some architectural design-pattern where many independent applications are controlled by a parent (master, host) application, containing common information?"
BACKGROUND:
We are designing a medical application with the following architecture:
- There will be a host application where patient data will be centralized in a single database;
- There will be many (two to eight, more or less) applications, which are responsible for different types of diagnostic examinations for a given patient;
- Typically, workflow involves:
- Opening the master application;
- Navigating to a patient's record;
- Opening a new task for that patient in some sub-application;
- From here forwards, working exclusively "inside" this sub-application, which "takes control" untill the user finishes it (returning to the parent application), while state of master application is available for context.
- There should be a single Parent-Child interface for common tasks, so that Child Applications would be polymorphic regarding these common tasks. Then, the Parent would be unaware of encapsulated specifics of each child application.
- It would be desireable that each sub-application could be deployed as standalone, with a minimal, dedicated front-end.
CONSIDERATIONS/CANDIDATES:
- The Mediator pattern would "provide a unified interface to a set of interfaces in a subsystem", but it seems more oriented towards mediating communication between Colleagues, while in my use-case I need to mediate between Parent and Child applications, where children are unaware of each other;
- The template method pattern "defines the program skeleton of an algorithm in a method, called template method, which defers some steps to subclasses". This could induce the formulation of a "common clinical diagnostic workflow", composed by, say, data capture, processing, display, interpretation and reporting.
Thanks for reading, any insight will be much appreciated!