Design

Release Information

Project: EGADSS
Internal Release Number: $Revision: 1.5 $
Attached Worksheets:
Related Documents:

Introduction

This document presents the design artifacts for the EGADSS system.  The document includes structural design of the system, detailed description of components as well as component interfaces.


UML Structural Design

The system's conceptual architecture is described in the following UML model: EGADSS Component Model.


Component Descriptions

C-01: TransController

Description: This component controls transaction between EGADSS and an EMR and assures the validity of these transactions.  TransController also coordinates the flow of transaction-related operations within the EGADSS system itself.  It coordinates such components as the DocImpEx and InferenceEngine, as well as facilitates transaction logging.
Environmental Constraints:
Available Interfaces: ITrans, IConfig

C-02: DocImpEx

Description: DocumentImpEx handles incoming and outgoing CDA documents and has two primary features: document validation and document translation.

Document validation involves validation of the incoming and outgoing CDA documents against predefined template schemas associated with the document types.

Document translation feature facilitates transformation between the data representation model provided by the reasoning engine and the format of the outgoing documents (note that the  incoming documents are not translated but are directly queried by the InferenceEngine).This process  of the outgoing data translation is governed by the predefined transformation scripts and is specific to the document format and reasoning engine of choice. In our framework, we are leveraging the C Language Integrated Production System (CLIPS) as a reasoning engine; therefore, the bidirectional document conversion takes place between the native CLIPS format called COOL (CLIPS Object-Oriented Language) and CDA.
Environmental Constraints:
Available Interfaces: IDocumentImport, IDocumentExport, IConfig

C-03: InferenceEngine

Description: The Reasoning Engine is the core EGADSS component. It operates on decision algorithms, medical knowledge, and specific patient data in order to generate clinical recommendations.
Environmental Constraints:
Available Interfaces: IInference, IConfig

C-04: KnowledgeManager

Description: This component manages the clinical knowledge expressed as clinical practice guidelines.  It coordinates the knowledge-related operations of the ArdenCompiler, the DataStorage, and IE components.
Environmental Constraints:
Available Interfaces: IKnowledgeMgt, IConfig

C-05: ArdenCompiler

Description: The ArdenCompiler compiles clinical practice guidelines from their encoding language (Arden Syntax) to the native data format of the Reasoning Engine.  In our framework, the Preprocessor performs dynamic unidirectional transformations from Arden Syntax guidelines to the CLIPS data model.  Other types of Preprocessors can be added as the system evolves, without affecting its other components.
Environmental Constraints:
Available Interfaces: IKnowledgeImport, IConfig

C-06: CnfManager

Description: CnfManager component is responsible for the system's configuration and auditing of operations.
Environmental Constraints:
Available Interfaces: IAuditLog, IAudit, ISysConfig, IConfig

C-07: DataStorage

Description: This component facilitates persistent storage for clinical practice guidelines (both in Arden and CLIPS formats) and audit trails within the EGADSS system.  Please note: patient data is not persisted in the EGADSS system.
Environmental Constraints:
Available Interfaces: IDataAccess, IConfig


Interface Definitions


TransController



Interface:     ITrans

Method

Method Description

getRecommendations (in inputDocument: String, out resultsDocument: String)

This method accepts a string representation of an Xml CDA document that conforms to the “PatientSummary” schema.  The method returns a string representation of an Xml CDA document that conforms to the “Results” schema.  See Document Taxonomy for more details.


Preconditions:

system must be started; the knowledge base must contain clinical guidelines.

Post-conditions:

clinical recommendations are derived and returned based on the patient-specific information.


Exception Handling

if the exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error


 

Interface:     IConfig

 

Method

Method Description

initialize(in map: IdentityHashMap)

This method initializes the component.  The IdentityHashMap map contains references to other components that the given component may need.

 

Preconditions:

none

 

Post-conditions:

the component instance is correctly initialized

 

Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

 

terminate()

This method ensures the proper termination of the component instance at the system shut down.

 

Preconditions:

none

 

Post-conditions:

component instance is terminated


Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error


getInfo(out configInfo: String)

This method provides the information about the component’s configuration such as component version, last install date, etc.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

component configuration information is returned


Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error




DocImpEx


Interface:     IDocumentImport

 

Method

Method Description

importDocument (in inputDocument: String, out inputForIeFile: Document)

This method accepts a string representation of an Xml CDA document that should conform to the schema.  The method parses and validates the XML CDA document.  

 

Preconditions:

component instance must be instantiated

 

Post-conditions:

a string representation of an Xml CDA document is parsed and validated


Exception Handling

if the exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

 

 

Interface:     IDocumentExport

 

Method

Method Description

exportDocument (in outputFromIeFile: File, out resultsDocument: String)

This method produces a string representation of a CDA document that contains clinical the results from the inference engine (the recommendations and requests for additional patient information if applicable).

 

Preconditions:

component instance must be instantiated and correctly initialized; inference engine should have patient information and clinical guidelines processed.

 

Post-conditions:

a string representation of a valid CDA document is returned

 

Exception Handling

if the exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

 

Interface:     IConfig

 

Method

Method Description

initialize(in map: IdentityHashMap)

This method initializes the component.  The IdentityHashMap map contains references to other components that the given component may need.

 

Preconditions:

none

 

Post-conditions:

the component instance is correctly initialized

 

Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

 

terminate()

This method ensures the proper termination of the component instance at the system shut down.

 

Preconditions:

none

 

Post-conditions:

component instance is terminated


Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error


getInfo(out configInfo: String)

This method provides the information about the component’s configuration such as component version, last install date, etc.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

component configuration information is returned


Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error



IE


Interface:     IInference

 

Method

Method Description

assertKnowledgeModule (in knowledgeModuleCLIPS: File, in knowledgeModuleName: String)

This method accepts a CLIPS text file that contains clinical practice guidelines.  It asserts the guidelines into the knowledge base of the inference engine.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

the knowledge base of the inference engine is populated or amended


Exception Handling

if the exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error


assertKnowledgeModule (in knowledgeModuleMLMs: File, in knowledgeModuleCLIPS: File in knowledgeModuleName: String)

This method accepts an MLM text file with the clinical guidelines written in Arden; it also accepts a CLIPS file that contains clinical
guidelines translated into CLIPS.  It asserts the guidelines into the knowledge base of the inference engine.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

the knowledge base of the inference engine is populated or amended


Exception Handling

if the exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error
retractKnowledgeModule(in knowledgeModuleName: String) The method removes a knowledge module from the knowledge base of the inference engine.

Preconditions:

component instance must be initialized; knowledge module must exist in the knowledge base.

Post-conditions:

the knowledge base module is removed

getResults(in patientFactsDocument: Document, out results: File)

This method accepts an CDA XML Document that contains patient-specific information and loads it into the fact base of the inference engine.This method returns a file with the  results of the inference engine processing.

 

Preconditions:

component instance must be initialized; the “run()” method must be evoked prior to this method call

 

Post-conditions:

results of the inference process are retrieved


Exception Handling

if the exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error


clearKnowledgeBase()

This method retracts all the guidelines from the knowledge base of the inference engine.

 

Preconditions:

component instance must be initialized; knowledge base must have contents

 

Post-conditions:

knowledge base is cleared


Exception Handling

if the exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error


clearPatientFacts()
This method clears all the patient facts from the inference engine's fact base.

Preconditions:

component instance must be initialized;

 

Post-conditions:

patient facts are cleared

Exception Handling

if the exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

 

Interface:     IConfig

 

Method

Method Description

initialize(in map: IdentityHashMap)

This method initializes the component.

 

Preconditions:

none

 

Post-conditions:

the component instance is created and correctly initialized

 

Exception Handling

if the exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

terminate()

This method ensures the proper termination of the component instance at the system shut down.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

component instance is terminated


Exception Handling

if the exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error


getInfo(out configInfo: String)

This method provides the information about the component’s configuration such as component version, last install date, etc.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

component configuration information is returned


Exception Handling

if the exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error



KnowledgeManager


Interface:     IKnowledgeMgt

 

 

Method

Method Description

loadKnowledgeModule (in knowledgeModuleMLMs: File, in knowledgeModuleName: String)

This method accepts a name of the knowledge module and the text file that contains the module with guidelines encoded as Arden Syntax MLMs.  A module represents a collection of guidelines related by subject.  The module is added to the DataStorage and also loaded into the knowledge base of the inference engine.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

a new knowledge module is saved in the DataStorage and is also loaded in the knowledge base of the inference engine.


Exception Handling

if the exception occurs, the method return the java.lang.Exception object.  The exception object indicates the type of error as well as details on that error.

 

loadKnowledgeModule()

This method loads a knowledge module that is predefined to be the default module or one of the default modules (the list of default modules is stored in a configuration file of the Knowledge Manager.)  The module is retrieved from the DataStorage component.  Typically this method is called by the CnfManager at the system start-up.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

a default knowledge module loaded in the knowledge base of the inference engine.

 

Exception Handling

if the exception occurs, the method return the java.lang.Exception object.  The exception object indicates the type of error as well as details on that error.

loadKnowledgeModule( in knowledgeModuleName: String)

This method loads a knowledge module from the DataStorage.  The module is specified by name.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

a knowledge module that already exists in the DataStorage is loaded in the knowledge base of the inference engine.


Exception Handling

if the exception occurs, the method return the java.lang.Exception object.  The exception object indicates the type of error as well as details on that error.

 

addKnowledgeModule ((in knowledgeModuleMLMs: File, in knowledgeModuleName: String)

This method accepts a name of the knowledge module and the text file that contains the module with guidelines encoded as Arden Syntax MLMs.  A module represents a collection of guidelines related by subject.  The module is added to the DataStorage in the Arden format.  It is also compiled into CLIPS format and stored in the DataStore, but is not loaded into the knowledge base of the inference engine.

 

Preconditions:

component instance must be initialized;

 

Post-conditions:

the knowledge module is added to the  DataStorage in two formats: Arden and CLIPS.

 

Exception Handling

if the exception occurs, the method return the java.lang.Exception object.  The exception object indicates the type of error as well as details on that error.

removeKnowledgeModule (in knowledgeModuleName: String)

This method accepts a name of the knowledge module currently stored in the knowledge base.

 

Preconditions:

component instance must be initialized;

 

Post-conditions:

the knowledge module is removed from the  DataStorage

 

Exception Handling

if the exception occurs, the method return the java.lang.Exception object.  The exception object indicates the type of error as well as details on that error.

viewIEKnowledgeBase(out knowledgeModuleMLMs: File [0…*])

This method returns a text file with clinical guidelines that are loaded in the knowledge base of the inference engine at the time.  The guidelines are displayed as Arden MLMs.  The guidelines are also categorized by modules with unique module names.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

the knowledge base of the inference engine is exposed

 

Exception Handling

if the exception occurs, the method return the java.lang.Exception object.  The exception object indicates the type of error as well as details on that error.

viewAllKnowledgeBase(out knowledgeModuleMLMs: String)

This method returns a text file with all clinical guidelines that are stored in the DataStore of EGADSS.  The guidelines are marked as active or inactive depending if they are are currently loaded in the knowledge base of the inference engine or not.  The guidelines are displayed as Arden MLMs.  The guidelines are also categorized by modules with unique module names.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

the knowledge base of EGADSS is exposed

 

Exception Handling

if the exception occurs, the method return the java.lang.Exception object.  The exception object indicates the type of error as well as details on that error.

clearIEKnowledgeBase()

This method deletes the contents of the knowledge base within the inference engine.

 

Preconditions:

component instance must be initialized; knowledge base must have contents.

 

Post-conditions:

the knowledge base of the inference engine is cleared

 

Exception Handling

if the exception occurs, the method return the java.lang.Exception object.  The exception object indicates the type of error as well as details on that error.

 

Interface:     IConfig

 

Method

Method Description

initialize(in map: IdentityHashMap)

This method initializes the component.

 

Preconditions:

none

 

Post-conditions:

the component instance is created and correctly initialized.

 

Exception Handling

if the exception occurs, the method return the java.lang.Exception object.  The exception object indicates the type of error as well as details on that error.

terminate()

This method ensures the proper termination of the component instance at the system shut down.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

component instance is terminated


Exception Handling

if the exception occurs, the method return the java.lang.Exception object.  The exception object indicates the type of error as well as details on that error.


getInfo(out configInfo: String)

This method provides the information about the component’s configuration such as component version, last install date, etc.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

component configuration information is returned


Exception Handling

if the exception occurs, the method return the java.lang.Exception object.  The exception object indicates the type of error as well as details on that error.




GLCompiler


Interface:     IKnowledgeImport

 

Method

Method Description

compileKnowledgeModule (in knowledgeModuleMLMs: File, out knowledgeModuleCLIPS: File)

This method accepts a text file that contains guidelines encoded as Arden MLMs and outputs these guidelines in a CLIPS format.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

a valid CLIPS file is returned.


Exception Handling

if the exception occurs, the method return the java.lang.Exception object.  The exception object indicates the type of error as well as details on that error.


 

 

Interface:     IConfig

 

Method

Method Description

initialize(in map: IdentityHashMap)

This method initializes the component.

 

Preconditions:

none

 

Post-conditions:

the component instance is created and correctly initialized.


Exception Handling

if the exception occurs, the method return the java.lang.Exception object.  The exception object indicates the type of error as well as details on that error.

 

terminate()

This method ensures the proper termination of the component instance at the system shut down.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

component instance is terminated


Exception Handling

if the exception occurs, the method return the java.lang.Exception object.  The exception object indicates the type of error as well as details on that error.


getInfo(out configInfo: String)

This method provides the information about the component’s configuration such as component version, last install date, etc.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

component configuration information is returned


Exception Handling

if the exception occurs, the method return the java.lang.Exception object.  The exception object indicates the type of error as well as details on that error.




CnfManager


Interface:     IAuditLog

 

Method

Method Description

writeLogEntry (in logEntry: String)

This method writes an entry in the audit log stored in the DataStorage component. An appropriate timestamp is also logged.

 

Preconditions:

component instance must be instantiated

 

Post-conditions:

a log entry is written to the DataStorage component.


Exception Handling

if the exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error


 

Interface:     IAudit

 

Method

Method Description

generateAuditReport(out auditReport: String)

 

This method returns a string that contains the auditing information about the system’s transactions and workflows.

 

Preconditions:

component instance must be instantiated

 

Post-conditions:

a string with an audit report returned

 

Exception Handling

if the exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

setAuditingMode(in auditingMode: String)

This method allows setting and changing the auditing mode, for example from a “full audit mode” to “privacy mode”.

 

Preconditions:

component instance must be instantiated

 

Post-conditions:

an auditing mode is changed

 

Exception Handling

if the exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

getAuditingMode(out auditingMode: String)

This method shows what the auditing mode is set to, for example a “full audit mode” or “privacy mode”.

 

Preconditions:

component instance must be instantiated

 

Post-conditions:

an auditing mode is returned

 

Exception Handling

if the exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

 

Interface:     ISysConfig

 

Method

Method Description

shutSystemDown()

This method shuts down the system.

 

Preconditions:

component instance must be instantiated

 

Post-conditions:

the system is shut down and all component instances are correctly terminated

 

Exception Handling

if the exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

viewSystemConfig (out configStr: String)

This method returns a string that contains the information about the components configurations.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

a string with a configuration information is returned

 

Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

 

Interface:     IConfig

 

Method

Method Description

getInfo(out configInfo: String)

This method provides the information about the component’s configuration such as component version, last install date, etc.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

component configuration information is returned


Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error


initialize(in map: IdentityHashMap)

This method initializes the component.  The IdentityHashMap map contains references to other components that the given component may need.

 

Preconditions:

none

 

Post-conditions:

the component instance is correctly initialized

 

Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

terminate()

This method ensures the proper termination of the component instance at the system shut down.

 

Preconditions:

none

 

Post-conditions:

component instance is terminated


Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error


  

DataStorage


Interface:     IDataAccess

Method

Method Description

writeKnowledgeModule(in knowledgeModuleName: String, in knowledgeModuleFile: File)

This method writes a file that contains MLM knowledge module into the persitant storage. 

 

Preconditions:

component instance must be instantiated

Post-conditions:

the file with the specified knowledge module is  written to the persistent  storage

 

Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

readKnowledgeModule(in knowledgeModuleName: String, out: knowledgeModuleFile: File)

This method retrieves a  file that contains MLM knowledge module from the persistent data storage.

 

Preconditions:

component instance must be instantiated

 

Post-conditions:

the file with the specified knowledge module is returned

 

Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

readKnowledgeModules(out: knowledgeModules: HashMap)

This method retrieves a HashMap with all the  files that contain MLM knowledge modules from the persistent data storage.

 

Preconditions:

component instance must be instantiated

 

Post-conditions:

a HashMap with all the  files that contain MLM knowledge modules is returned

 

Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

removeKnowledgeModule(in knowledgeModuleName: String)

This method removes a file with the MLM knowledge module specified by the knowledge module name.

 

Preconditions:

component instance must be instantiated

 

Post-conditions:

a specific knowledge module is removed

 

Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

writeLogEntry(in logEntry: LogEntry)

This method writes an instance of the LogEntry object into persistent storage.

 

Preconditions:

component instance must be instantiated

 

Post-conditions:

LogEntry object is written to the persistent storage

 

Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

readLogEntries(out logEntries: HashMap)

This returns a HashMap with all LogEntry objects that are stored in the persistent storage.   *in the future versions,  log entries will be returned by certain criteria (date, component type, etc)

 

Preconditions:

component instance must be instantiated

 

Post-conditions:

All LogEntry object are read from the persistent storage

 

Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

 

Interface:     IConfig

 

Method

Method Description

initialize(in map: IdentityHashMap)

This method initializes the component.  The IdentityHashMap map contains references to other components that the given component may need.

 

Preconditions:

none

 

Post-conditions:

the component instance is correctly initialized

 

Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error

 

terminate()

This method ensures the proper termination of the component instance at the system shut down.

 

Preconditions:

none

 

Post-conditions:

component instance is terminated


Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error


getInfo(out configInfo: String)

This method provides the information about the component’s configuration such as component version, last install date, etc.

 

Preconditions:

component instance must be initialized

 

Post-conditions:

component configuration information is returned


Exception Handling

if an exception occurs, the method return the EgadssException object.  The exception object indicates the details on the error



Company Proprietary
All text is available under the terms of the GNU Free Documentation License.

SourceForge.net Logo