Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel8
minLevel2

 

Using OpenCDS Concepts

 

Introduction

OpenCDS is a Clinical Decision Support system that is built around the notion of “clinical concepts.”  There are many medical terminology systems and medical information exchange systems that refer to “concepts,” “concept descriptors (CDs),” or “concept unique identifiers (CUIs).” 

When we refer to an OpenCDS Concept we are referring to specific implementation techniques within OpenCDS which have a strong dependence on most of these ideas, but in a concrete implementation.

The purpose of this document is to explain how we use all of these terms in OpenCDS, and how they relate to the general clinical understanding of “concepts.”

 

What is an “OpenCDS Concept?”

An OpenCDS Concept is an implementation technique in OpenCDS.  As a big picture idea, OpenCDS has a structure and methods that are designed to allow the clinical user to develop decision support rules that are written using clinical concepts.  We call those particular concepts “OpenCDS Concepts”, and they provide an interface to the detailed data that represents an instance of the clinical concept.

This means that the clinical rule writer can work using clinical terminology that clinicians understand.  OpenCDS is designed to support rules written for the open-source Drools inferencing engine, using a domain specific language (DSL).  The DSL makes it possible to write the rules so that they read just like the way a clinician would describe them, using terms (OpenCDS Concepts) that the clinician uses every day.

A medical informaticist, terminologist, or vocabulary expert then produces mappings of those concepts to values in a code system which is used in the actual clinical data.  In many cases this will involve the use of terminology management systems with large databases, such as Apelon, First DataBank, and UMLS which support potentially large and internationally supported terminologies.  However, it is possible to also create simple XML files that map proprietary or special-case codes to OpenCDS Concepts.

The clinical rules use OpenCDS Concepts in preference to references to the raw data, and the terminology mappings provide implementations of those concepts as lists of codes from one or more code systems.  This separates the logic of the rules from the details of the data which the rules work on.

Therefore, an OpenCDS Concept is the interface between the clinical ideas and the data details that represent instantiations of the clinical concepts. 

This section of this document will explain the following items, and discuss how they are used in OpenCDS:

  • Concept Types
  • OpenCDS Concepts
  • Concept Instances
  • Concept Mappings and Enumerations

The diagram below may make this relationship easier to visualize:

 

Following sections will discuss the techniques used to relate the patient data to the clinical concepts or ideas in the following software:

  • JBoss Drools Guvnor (our supported authoring environment      for KnowledgeModules, aka “rules” or generically as “knowledge”)
  • OpenCDS Decision Support Service (our software service to      do clinical decision support)

 

Concept Types

Definition:

Concept Types in OpenCDS is the term we use to refer to Java classes in OpenCDS that have been created for every “concept descriptor” (aka CD) and “template” found in the input data structured as a virtual medical record (vMR).  

 

A Concept Type represents an entire category of information that can be found at several places in a clinical statement.  Clinical statements are the basic building blocks of the vMR.  The vMR is more fully discussed in a separate document named “Notes on OpenCDS internal Data Structure.”  In addition, there are also a few additional Concept Types that deal with “templates” and some structural elements of the vMR.

In this document, I will always capitalize Concept Type when I am referring to those Java classes, and use lower-case when I am referring to the more common or generic notions of “concept.”

In some cases, we have also post-coordinated more than one CD in the input data (such as “body site” and “laterality”), because there may be a need to make decisions based on the combination of the two, or common coding systems for a procedure or problem may not provide adequate specificity without being associated with both values as a set.  For example, we need to be able to say that a rash was present both on the right arm and the left leg.

Examples of Concept Types are a “ProcedureConcept,” an “AdverseEventAgentConcept,” a “ProblemConcept”, or a “MedicationClassConcept.” 

Because they are based on specific data elements in the vMR, OpenCDS supports a fixed list of these Concept Types, including a few that are broad enough to fill most needs for an “other” category.  While we can add more Concept Types if the need arises, we feel that the current list is useable.  Supporting additional Concept Types is non-trivial, so it will not be done casually.

The authoritative list of supported Concept Types can always be found in the source code as separate files in the module opencds-vmr-1_0-internal as separate Java classes in the package org.opencds.vmr.v1_0.internal.concepts.  These files have the name of the Concept Types as you would see them in a Drools Rule.  They are also listed for a different purpose (building enumerations) in a Java class named “org.opencds.common.terminology.OpenCDSConceptTypes.java”. 

The current list of Concept Types as of the time this document was written is shown on the next page:

 

 

Section
Column

AdverseEventAffectedBodySiteConcept

AdverseEventAffectedBodySiteLateralityConcept

AdverseEventAgentConcept

AdverseEventConcept

AdverseEventCriticalityConcept

AdverseEventSeverityConcept

AdverseEventStatusConcept

BrandedMedicationConcept

CDSInputTemplateConcept

CDSOutputTemplateConcept

ClinicalStatementEntityInRoleRelationshipConcept

ClinicalStatementRelationshipConcept

ClinicalStatementTemplateConcept

DataSourceTypeConcept

DoseTypeConcept

DosingSigConcept

EncounterCriticalityConcept

EncounterTypeConcept

EntityRelationshipConcept

EntityTemplateConcept

EntityTypeConcept

EthnicityConcept

EvaluatedPersonRelationshipConcept

GenderConcept

GenericMediccationConcept

GoalCodedValueConcept

GoalCriticalityConcept

GoalFocusConcept

GoalStatusConcept

GoalTargetBodySiteConcept

GoalTargetBodySiteLateralityConcept

ImmunizationConcept

InformationAttestationTypeConcept

InformationRecipientPreferredLanguageConcept

InformationRecipientTypeConcept

ManufacturerConcept

MedicationClassConcept

MedicationConcept

ObservationCodedValueConcept

ObservationCriticalityConcept

ObservationFocusConcept

ObservationInterpretationConcept

ObservationMethodConcept

ObservationTargetBodySiteConcept

ObservationTargetBodySiteLateralityConcept

ObservationUnconductedReasonConcept

Column

PreferredLangugageConcept

ProblemAffectedBodySiteConcept

ProblemAffectedBodySiteLatgeralityConcept

ProblemConcept

ProblemImportanceConcept

ProblemSeverityConcept

ProblemStatusConcept

ProcedureApproachBodySiteConcept

ProcedureApproachBodySiteLateralityConcept

ProcedureConcept

ProcedureCriticalityConcept

ProcedureMethodConcept

ProcedureTargetBodySiteConcept

ProcedureTargetBodySiteLateralityConcept

RaceConcept

ResourceTypeConcept

RoleConcept

SubstanceAdministrationApproachBodySiteConcept

SubstanceAdministrationApproachBodySiteLateralityConcept

SubstanceAdministrationCriticalityConcept

SubstanceAdministrationGeneralPurposeConcept

SubstanceAdministrationTargetBodySiteConcept

SubstanceAdministrationTargetBodySiteLateralityConcept

SubstanceDeliveryMethodConcept

SubstanceDeliveryRouteConcept

SubstanceFormConcept

SubstanceManufacturerConcept

SupplyConcept

SupplyCriticalityConcept

SupplyTargetBodySiteConcept

SupplyTargetBodySiteLateralityConcept

SystemUserPreferredLanguageConcept

SystemUserTaskConctextConcept

SystemUserTypeConcept

UndeliveredProcedureReasonConcept

UndeliveredSubstanceAdministrationReasonConcept

VmrOpenCdsConcept

VMRTemplateConcept

 

...

  • Go to Apelon.opencds.org
  • Login with the      following parameters (password is “welcome2opencds”).

...

Image Added

 

The master set of concepts can be generated for local use within the OpenCDS service from this central Apelon repository using a utility in the opencds-decision-support-service module named org.opencds.terminology.OpenCDSConceptsFileCreator.  

...

The same Java classes that define Concept Types in OpenCDS are imported into Guvnor using the jar file from the OpenCDS module named “opencds-vmr-v1_0-internal.”  This then gives you exactly the same definitions of Concept Types that are used in the web service.  You will also need the OpenCDS Common jar from the OpenCDS module named “opencds-common.”:

Image Added

 

If you select the “Edit” tab instead of the “Assets” tab, you will be able to view (and edit) the contents of the model:

Image Added

 

If you click the “Advanced View” button, you will be able to edit the model as text, and you may need to do this:

Image Added

 

When you first create a new model in Guvnor by importing the two jars from OpenCDS, this list will be in a random order, and it will include some elements from the common jar that you don’t need.  We provide a sorted list of the import statements, which you can paste into this window after deleting the generated content.  This sorted list is maintained in the OpenCDS source code as a resource named “ImportStatementsForOpenCDSGuvnor.txt” within the opencds-vmr-1_0-internal module

...

A typical package in Guvnor (aka a KnowledgeModule in OpenCDS) should have the following Enumerations:

Image Added

 

If you click the “Open” button from one of the enumerations listed, you will see something that looks like this:

Image Added

 

Every enumeration listed will have a “determinationMethodCode” entry, which is generated by the tool.  Those which have an associated “openCdsConceptCode” will list those enumerations as well. 

...

OpenCDS concept mapping specifications and mappings can be maintained in Apelon DTS.  Here is a screen shot showing maintenance of the OpenCDS Concept for Asthma in Apelon DTS:

Image Added

 

OpenCDS provides a tool to download them from Apelon DTS, named “OpenCDSConceptsFileCreator.”  Instructions for the use of this tool are described earlier in the document, in Section A.2.

...