Project: | EGADSS |
---|---|
Internal Release Number: | $Revision:
1.5 $ |
Attached Worksheets: |
Design > Security
Worksheet
|
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.
The system's conceptual architecture is described in the following UML model: EGADSS Component Model.
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 |
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 |
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 |
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 |
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 |
Description: | CnfManager component is
responsible for the system's
configuration and auditing of operations. |
---|---|
Environmental Constraints: | |
Available Interfaces: | IAuditLog, IAudit,
ISysConfig, IConfig |
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 |
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
|
|
|
|
|
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
|
|
|
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 |
|
|
|
|
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 |
|
|
|
|
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
|
|
|
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 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: Exception Handling if the exception occurs, the method return the EgadssException object. The exception object indicates the details on the error |
|
|
|
|
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
|
|
|
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. |
|
|
|
|
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.
|
|
|
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.
|
|
|
|
|
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.
|
|
|
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
|
|
|
|
|
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 |
|
|
|
|
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 |
|
|
|
|
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
|
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 |
|
|
|
|
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
|