Under Construction
Overview
Concept Determination Methods
One of the features of interest for a future version of OpenCDS is the ability to "hot deploy" new knowledge bases (e.g. - codes, concepts, drools rules, and supporting data) as needed without having to restart OpenCDS for the changes to take place. ICE, an application based on OpenCDS, envisions the following automated knowledge deployment capabilities within OpenCDS to support the operation of ICE. However, we also believe that the proposed functionality is generic and would benefit any OpenCDS-based services. For purposes of this discussion document, we will talk about the scenarios with respect to ICE for complete understanding of the requirements, and then abstract the requirements afterwards.
...
CAT manages the following artifacts, all of which are directly can be represented in OpenCDS XML files and we would like the ability to deploy in OpenCDS:
- OpenCDS concepts
- Code system codes Code mappings to OpenCDS concepts mappings
- Concept Determination Methods
- Knowledge Modules
...
- Scoping Entity ID, Business ID, Version
- Code System Code List
CAT also manages the following non-XML deployable artifacts to OpenCDS (they are represented in OpenCDS by some other means or indirectly):
- Supporting dataData
- Drools rules Artifacts (DSLs, DRL and DSLR)DSLs
- Concept Determination Methods Method (not directly deployable to OpenCDS but contained in code->concept mapping files)
Supporting data is any kind of data that is cached in instances of Java classes for the knowledge module at runtime operation. For ICE, most of the cached data is stored in various Maps and Map classes that are accessed by the rules. Examples include series table table of static data related to vaccine, etc., and static values such as recommended ages and intervals. The cached data is static not modified during execution and remains in memory for as long as the knowledge module is in memory by OpenCDS.
CAT also supports Value Sets (under construction), but value sets are not currently supported by OpenCDS in a specific way.
Scenarios
We would like to support the following "hot" deployment scenarios from CAT to OpenCDS:
...
Deployment Use Case Scenarios
To start, I propose supporting the following "hot" deployment scenarios to OpenCDS. All proposed functionality is at the level of a knowledge module (i.e. - associated <scoping-entity>/<businessId>/<version>)
- Replace entire OpenCDSCodeSystems.xml file. (Q: Is this still used somehow? We are using code systems not specified in this file and all still seems to work ok. If not, nevermind.)
- Concepts and Codes
- supportedConceptsConfigFile.xml:
- Replace the entire supportedConceptsConfigFile.xml file
- Add/Update/Delete individual entries in the supportedConceptsConfig.xml file
- Concept Mapping Files
- Add/Replace all mapping files in the conceptMappingSpecifications/manualMappings directory.
- supportedConceptsConfigFile.xml:
- DSLs/DRLs/DSLRs
- Replace all DSLs/DRLs/DSLRs associated with a knowledgeModule at once
- Supporting Data
- Ability to add/replace all above artifacts listed above replacing all knowledge associated with a specified <scoping-entity>/<businessId>/<version>.
Initial functionality will not support the automated modifications to the knowledgeModule.xml or openCdsExeuctionEngines.xml files; these files can continue to be modified manually as they will rarely change.
Revisions to OpenCDS Concept Determination Method