Draft Concept Determination Method Proposal - 2/28/2014 (Updated 3/14/2014)
Overview
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.
...
The below example knowledgeModules.xml entry shows three way to specify the CDMs of interest for the knowledge module for illustrative purposes only. Only concepts with codes belonging to these CDMs would be put on the Concept List / Fact List.
(1) org.nyc.cir.ICE.1.0.0
<kmMetadata>
<identifier scopingEntityId="org.nyc.cir" businessId="ICE" version="1.0.10"/>
<purpose language="en">New York City Immunization Calculation Engine (ICE)</purpose>
<explanation language="en">String</explanation>
<executionEngine>gov.nyc.health.ice.service.ICEDecisionEngineDSS55EvaluationAdapter</executionEngine>
<dataModel>org.opencds.vmr^VMR^1.0</dataModel>
<knowledgeModulePrimaryProcessName>PrimaryProcess</knowledgeModulePrimaryProcessName>
</kmMetadata>
(2) org.nyc.cir.ICE.1.0.1
<kmMetadata>
<identifier scopingEntityId="org.nyc.cir" businessId="ICE" version="1.0.1"/>
<purpose language="en">New York City Immunization Calculation Engine (ICE)</purpose>
<explanation language="en">String</explanation>
<executionEngine>gov.nyc.health.ice.service.ICEDecisionEngineDSS55EvaluationAdapter</executionEngine>
<dataModel>org.opencds.vmr^VMR^1.0</dataModel>
<knowledgeModulePrimaryProcessName>PrimaryProcess</knowledgeModulePrimaryProcessName>
<conceptDeterminationMethods>
...
</conceptDeterminationMethods>
</kmMetadata>
(3) org.nyc.cir.ICE.1.0.
<kmMetadata>
<identifier scopingEntityId="org.nyc.cir" businessId="ICE" version="1.0.12"/>
<purpose language="en">New York City Immunization Calculation Engine (ICE)</purpose>
<explanation language="en">String</explanation>
<executionEngine>gov.nyc.health.ice.service.ICEDecisionEngineDSS55EvaluationAdapter</executionEngine>
<dataModel>org.opencds.vmr^VMR^1.0</dataModel>
<knowledgeModulePrimaryProcessName>PrimaryProcess</knowledgeModulePrimaryProcessName>
<conceptDeterminationMethods>
...
</conceptDeterminationMethods>
</kmMetadata>
Examples of multiple CDMs in a knowledge modules
Below are 4 mapping files. The first one mapping files uses the primary CDM "NYCICESchedule-Primary". The next 3 mapping files use a different CDM, "NYCICESchedule-FIX", denoted as a "replacing" CDM above.
For the above:
- ICE 1.0.0 will instantiate concepts for any codes for all CDMs within the OpenCDS mapping files.
- ICE 1.0.1 will only map codes->concepts specified by the "NYCICESchedule-Primary" CDM only
- ICE 1.0.2 will map codes->concepts specified by the NYCICESchedule-Primary, additional code->concepts for those mappings specified by "NYCICEShedule-Schools" and "NYCICESchedule-NewFeature". Additionally, any codes that have mappings in both "NYCICESchedule-FIX" AND "NYCICESchedule-Primary" will only be mapped to concepts as specified by the "NYCICESchedule-FIX" mappings; the "NYCICESchedule-Primary" code->concepts for those overlapping/same codes will not be applied.
For example, below are 4 mapping files.
- ICE 1.0.0 will apply all the concept mappings. The Drools Concept list will contain MMR, Measles, Mumps and Rubella.
- ICE 1.0.1 will only apply the first mapping, and therefore the Drools Concept List will only contain MMR.
- ICE 1.0.2 will only apply the last 3 mappings, and therefore the Drools Concept List will contain Measles, Mumps and Rubella, but not MMR.
<?xml version="1.0" encoding="UTF-8"?>
<OpenCdsConceptMappingSpecificationFile>
<specificationNotes>Created manually.</specificationNotes>
<openCdsConcept code="MMR" displayName="MMR"></openCdsConcept>
<conceptDeterminationMethod code="NYCICESchedule-Primary" displayName="Best available OpenCDS concept determination method"></conceptDeterminationMethod>
<membersForCodeSystem codeSystem="2.16.840.1.113883.12.292" codeSystemName="Vaccines administered (CVX)">
<CD code="03" displayName="MMR" />
</membersForCodeSystem>
</OpenCdsConceptMappingSpecificationFile>
...