Presentation on theme: "1 DirectView Configuration Assistant Eastman Kodak Health Imaging Doug Smith."— Presentation transcript:
1 DirectView Configuration Assistant Eastman Kodak Health Imaging Doug Smith
2 Topics Significant Design Goals and Paradigms Data Sources and Flow Diagrams Rules for Mapping Data to a Provider User Interface Look and Feel Interaction Patterns between client and server Overview of Client Implementation Classes Overview of Server Implementation Classes
3 Design Principles Services are implemented as reusable software components wherever possible. DirectView dependencies have been avoided to allow the design to serve future products in a loose-coupled design. Components are not visible to end-users and are created silently by either DirectView or the Configuration Tool when information as needed through mapping rules. The Configuration server provides the ability to change the nature and location of the data storage without impacting client coding. The Class Factory, Model-View Controller, and Delegator design patterns are used.
4 Design Constraints A separate tool will be used to configure the DirectView workstation Backup/Restore the configuration files and registry entries to/from floppy disc. Remote Access will be possible using a remote host product such as PCAnywhere or Timbucktu. All the facilities currently offered by the RIS configuration tool must be ported to the new application. Any existing customer settings in a 4.2 format file must be seamlessly migrated to the new format.
6 Operational Overview The tool will determine if DirectView running and exit if this is so. The Client then starts up the Configuration COM server automatically. The server portion runs only when a client is running. The Configuration COM Server will create additional COM servers as required to access the configuration data sources. Updates remain in the server cache until the server shuts down, or a flush ( checkpoint ) is issued by the client.
7 Traditional Three-tier Presentation Layer Business Logic Layer Data Access Layer Data Source Thin client layer coordinates transactions and display logic. Business Logic manages disparate ( non SQL/non ODBC ) data sources. Data Access layer understands data range and relationships.
8 Client-Top Tier Visual C++/ MFC Dialog-Only Application Manages COM Services Does not know where data is located. Does not know underlying data storage mechanics Does understand data relationship rules.
9 Distributed Three-Tier Presentation Layer Business Logic Layer Data Access Layer Data Source Workflow Layer Presentation layer remote invocation at tier 3 support point. Workflow layer manages IP/VPN connection to customer site using DCOM. Data Access layer runs on the customer site and does not know the difference between local and distributed access.
10 Property Sheets Configuration data is naturally grouped in four categories and this is reflected as four property sheets. The Application creates the MFC Property Sheet Class CAutoRadCfgSheet CCProcessInfo browses the process table.
11 Property Pages The Property Page is always associated with one or more Property Sheets, four in this application. Property Sheets understand the data validation and relationship rules. Pages exist as long as the application is running.
12 Server Overview Server communicates through Property Sets that correspond to the four Property Pages in the UI design. ( Left side ) Server launches data source helper objects specific to the AutoRad Application (right side )
13 Server Classes CCAutoRadConfigServer – Manufactures four Property Sets on demand from client. This is a transient COM server and only runs as long as one client requires it – all client interaction takes place over its interface. CARHisRisProps – A Property Page containing a set of data attributes used to configure the describing the Ris PACS connection. CARGeneralProps – A Property Page containing a set of general attributes and workstation capabilities. CARDisplayProps - A Property Page containing a set of data attributes used to configure the 3D processing. CARVoiceProps - A Property Page containing a set of data attributes used to configure the Voice Dictation.
14 Server Classes CCfgRegistryHelper – Helper class encapsulates all knowledge of the registry cluster organization where the server’s configuration is kept. CRisRegistryHelper – The existing code in the RIS PACS config program was all reused. Encapsulates all knowledge of the registry cluster organization for RIS 2010 if installed. CIDXRadRegistryHelper – Encapsulates all knowledge of the registry cluster organization if the IDX Rad is installed. CConfigServerDataStore ( Not Shown ) – Abstract base class identifies the common methods all Data Sources must implement. CEventLog ( Not Shown ) – All components in the configuration system write various messages to the event log.
15 Server Classes: INI File Handler CIniFileManager – A COM server that provides load, save, backup, restore, and serialized access control for up to 10 file. CManagedFile - Provides a generalized interface over most types of unstructured and sequentially structured flat files, including INI files. Encapsulates cache management. One per file is used and caching is used for enhanced performance. CSecurityUtils – This class represents a range of helper functions that allows clients a simplified view of the Win 2000 security model. The two public functions are AddAccessRights and RemoveAccessRights which can set or unset access rights by file/user.
16 Tagged Data Types Within the server, each of the four Parameter Sets is composed of individual data items. The data items can come from either the registry or an ini file. Every data item that is stored in an ini file has been defined with a unique tag in a server-controlled enumeration. Changes to the INI files do not affect the client at all and server changes only the mapping enumeration. Changes to the data storage do not affect the client at all and server changes only the mapping enumeration.
17 Tagged Data Types Tag ranges in this server supports INI files. Additional Tag ranges for Database and Distributed (potentially via SOAP or ASAC) locations in the future. If only one ini file is used all tags point to that single data source as shown below. The initial release will be in this configuration.
18 Sequence Diagram Initialization The sequence diagrams start with the tool client initializing and creating the COM server. The client will search for a running DirectView using CProcessInfo And proceed to the login if required if the workstation is not running. The login is disabled for this release.
19 Sequence Diagram Data Initialization The Sheet class starts the server and then creates its four page classes. Page classes never interact with the server, only the sheet call does that Sheets class gets the Property Set for each of the four Page classes. The page classes uses the Property Set to initialize its controls.