Exporting a Knowledge Module to OpenCDS - File-Based
(Needs validation)Â
Â
Â
Exporting a Knowledge Module to OpenCDS is currently a manual process.
The configuration location for OpenCDS is in a folder specified within the OpenCDS base properties file:
- $HOME/.opencds/opencds.properties
- %HOME%\.opencds\opencds.properties on Windows (deployed as a user)
- C:\.opencds\opencds.properties (deployed as a Windows service)
- As specified as a server flag (see example configuration for details–TBD)
Configuration Overview
The current configuration requires understanding of the following folder hierarchy:
- conceptDeterminationMethods
- cdm.xml
- file containing concept mappings from local or standard terminologies to OpenCDS concepts (or concepts expected by the rules that have been developed).
- See ConceptDeterminationMethods
- cdm.xml
- executionEngines.xml
- file specifying the execution engines available to OpenCDS. Â The default execution engine is Drools 5.5.
- See ExecutionEngines
- knowledgeModules.xml
- .file containing knowledge module metadata.
- See KnowledgeModules.
- knowledgePackages
- Location of source (DRL) or binary package (PKG) exported from Guvnor.
- plugins
- Location of plugin configuration files.
- See PluginPackages or PluginPackage
- packages
- Location of plugin packages (jar files)
- semanticSignifiers.xml
- Used to define which semantic models (vMR, FHIR, etc.) are supported by the system.
- This file should not need to be modified except in certain cases.
- See SemanticSignifiers
- supportingData
- Location for supporting data metadata (configuration) files.
- See SupportingData
- packages
- Location of supporting data packages.
Export/Import Process
Add a New Knowledge Module
The steps for importing a Knowledge Module into OpenCDS are as follows:
- Add or update the concept mappings in the cdm.xml file (see Concept Mappings).
- Export the knowledge module from Guvnor and place the downloaded binary package (or the DRL file, if using a single DRL) into the knowledgePackages folder (see Configuration Overview).  After building the package as is described here, download the binary (or DRL) and place it inside of
knowledgeModules
folder. - Add an entry for the new knowledge module to the knowledgeModules.xml file (see Knowledge Modules).
- Add any Supporting Data configuration and files (see Supporting Data).
- Restart OpenCDS or call the reload URL.
Update an Existing Knowledge Module
- Export the knowledge module from Guvnor and replace the existing module, ensuring the file name is consistent with the previous instance (see Configuration Overview).  Place it into the
knowledgeModules
folder. - If necessary, update the entry for the knowledge module in the knowledgeModules.xml file (see Knowledge Modules).
- If necessary, add or update any Supporting Data configuration and files (see Supporting Data).
- Restart OpenCDS or call the reload URL.
Concept Mappings
Concept mappings are specified in the cdm.xml
file (other names may be used, as OpenCDS scans the conceptDeterminationMethods folder for concept mappings.
A description of the XML format is as follows:
- The
conceptDeterminationMethod
is used to groupconceptMapping
s into logical sets that can be combined with otherconceptDeterminationMethod
s within the knowledge module configuration. - The
toConcept
is the target concept that will be used by the knowledge module. - The
fromConcepts
contains the list of local or standard concepts used in the data being sent to OpenCDS.
The following is a snippet from an example cdm.xml file:
<conceptDeterminationMethod code="C2511" displayName="HEDIS 2014" codeSystem="2.16.840.1.113883.3.795.12.1.1" version="1.0"> <conceptMapping> <toConcept codeSystem="2.16.840.1.113883.3.795.12.1.1" codeSystemName="OPENCDS_CONCEPTS" code="C2787" displayName="HEDIS-Other Emphysema"/> <fromConcepts codeSystem="2.16.840.1.113883.6.103" codeSystemName="ICD9CM" displayName="Interstitial emphysema"> <concept code="518.1" displayName="Interstitial emphysema"/> <concept code="518.2" displayName="Compensatory emphysema"/> </fromConcepts> </conceptMapping> …
Knowledge Modules
OpenCDS uses the knowledgeModules.xml
file to read to configure the knowledge module. Â Required and optional components are as follows:
identifier
- REQUIRED - the identifier will be used to load the knowledge module during the evaluation request, and is specified in the DSS message.executionEngine
- REQUIRED - the execution engine is the module that loads the knowledgeModule and processes the incoming data. Â This element references the execution engine specified in theexecutionEngines.xml
file.conceptDeterminationMethods
- REQUIRED - specifies which concept determination methods will be used to transform the incoming concepts to those that are used by the knowledge module (e.g., a local concept to an OpenCDS concept).primaryCDM
- REQUIRED - a knowledge module requires a primary concept determination methodsecondaryCDM
- OPTIONAL - any number of secondary concept determination methods may be specified; themethod
attribute specifies the relationship of the secondary concepts to the primary concepts (ADDITIVE or REPLACEMENT).
package
 - REQUIRED - specifies the package to load for KM processingpackageType
- REQUIRED - the type of package to load; the default execution engine allows either DRL or PKG files.packageId
- REQUIRED - this is the name of the package file.preload
- REQUIREDÂtrue
- indicates the package will be loaded when the configuration is loaded (or reloaded)false
- indicates the package will be loaded when data are first sent to OpenCDS
preProcessPlugins
- OPTIONAL - specifies the plugins that will be used before the data are evaluated by the execution engine.postProcessPlugins
- OPTIONAL - specified the plugins that will be used after the data are evaluated by the execution engine.timestamp
- REQUIRED - used to indicate when the KM was added to the system (or modified)userId
- REQUIRED - the user who added or modified the KM
An example KM configuration is shown below:
<knowledgeModule> <identifier scopingEntityId="edu.utah" businessId="HEDIS_W34" version="2015.0.0" /> <status>APPROVED</status> <executionEngine>Drools 5.5 Adapter</executionEngine> <semanticSignifierId scopingEntityId="org.opencds.vmr" businessId="VMR" version="1.0" /> <conceptDeterminationMethods> <primaryCDM code="C3391" codeSystem="2.16.840.1.113883.3.795.12.1.1" displayName="HEDIS 2015" version="1.0" /> <secondaryCDM code="C36" codeSystem="2.16.840.1.113883.3.795.12.1.1" displayName="OpenCDS" version="1.0" method="ADDITIVE" /> <secondaryCDM code="C3414" codeSystem="2.16.840.1.113883.3.795.12.1.1" displayName="HEDIS UUHC" version="1.0" method="ADDITIVE"/> <secondaryCDM code="C3419" codeSystem="2.16.840.1.113883.3.795.12.1.1" displayName="HEDIS 2015 Medications" version="1.0" method="ADDITIVE"/> </conceptDeterminationMethods> <package> <packageType>PKG</packageType> <packageId>edu.utah.HEDIS.v2015_0.W34.pkg</packageId> <preload>true</preload> </package> <primaryProcess>PrimaryProcess</primaryProcess> <preProcessPlugins> <preProcessPlugin version="0.1" businessId="EncountersFromProblemAndProcedureConcepts" scopingEntityId="org.opencds.plugin" /> </preProcessPlugins> <postProcessPlugins> <postProcessPlugin version="0.1" businessId="PrintObjects" scopingEntityId="org.opencds.plugin" /> </postProcessPlugins> <timestamp>2014-10-16T07:42:09.815-06:00</timestamp> <userId>phillip</userId> </knowledgeModule> … </ns2:knowledgeModules>
The knowledge module metadata is used by OpenCDS to determine which knowledge module will be used for processing the vMR input.
Supporting Data
The following example of concepts-supportingData.xml file point out to a concepts.txt file where the supported concepts are listed.Â
<rest:supportingData xmlns:config="org.opencds.dss.config.v1_0" xmlns:rest="org.opencds.dss.config_rest.v1_0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="org.opencds.dss.config_rest.v1_0 ../schema/OpenCDSConfigRest.xsd "> <identifier>concepts</identifier> <package> <packageType>properties</packageType> <packageId>concepts.txt</packageId> </package> <loadedBy version="0.1" businessId="Assertions" scopingEntityId="org.opencds.plugin"/> <timestamp>2015-02-12T15:44:00</timestamp> <userId>Phillip</userId> </rest:supportingData>
C2361=Injection C238=Inpatient Encounter C239=Emergency Department Encounter C2504=something something something C2556=Provider Eye Care Professional C2557=Performer C2559=Blood Pressure, Diastolic C2560=Blood Pressure, Systolic C257=Influenza Species C258=Chlamydia Species C259=Strep Pneumo Species C260=Salmonella Species C261=Influenza Test ForOrganism C262=Influenza Test PosNeg C2680=Comprehensive Well-Care …
Â
Â
Â
Â
Â
Â
Â