The Semantic Standardization Module enables automated semantic enrichment of FHIR resources by standardizing CodeableConcept elements with preferred terminologies.
Enrichment is accomplished when fragmented data is standardized, structured, made computable data
Dependency on Persistence is to resolve FHIR version only. No data is persisted with just the Semantic Standardization Module
The Semantic Standardization Module processes FHIR resources to enhance semantic interoperability by:
CodeableConcept elements using FHIRPath expressions.
CodeableConcept elements will be evaluated for standardization.CodeableConcept coding provided is accurate.system, code and display given
CodeableConcept orCodeableConcept coding| Parameter | Type | Default | Description |
|---|---|---|---|
| Base URL | String | http://localhost:8080 | Terminology provider service endpoint |
| Confidence Level | String | 0.80 | Minimum confidence threshold for mappings |
| Configuration Text | JSON | Empty config | JSON mapping configuration (Advanced) |
| Configuration File | File Path | - | Path to JSON mapping file (Advanced) |
| FHIR Version | Enum | R4 | Supported FHIR version |
if you are running in node.propertysource=PROPERTIES mode, you would add the following line to your cdr-config-Master.properties file:
module.[MODULE_ID].config.base_url=http://localhost:8080
module.[MODULE_ID].config.min_confidence=0.85
module.[MODULE_ID].config.fhir_version=R4
The Semantic Standardization module uses a JSON configuration to define which FHIR resources and elements that should be processed.
| Field | Type | Description |
|---|---|---|
description | String | Human-readable configuration description |
version | String | Configuration version for source control management only |
fhirVersion | String | Fhir version supported by the configuration |
resourceMappings | Array | Array of resource mapping definitions (only setting that has impact at runtime) |
{
"description": "Configuration description",
"version": "1.0.0",
"fhirVersion": "4.0.1",
"resourceMappings": []
}
The description, version and fhirVersion are currently only provided of the file creator/maintainer.
The resourceMappings are used by the system to determine the FHIR Path to the elements of type CodeableConcept as well as which standardization features of Semantic Standardization will be executed.
The FHIR Path is important when element's name or location change between versions of the FHIR Standard.
| Field | Type | Description |
|---|---|---|
resourceType | String | FHIR resource type (e.g., "Condition") |
codeableConceptMapping | Array | Element-specific mapping configurations |
The resourceMapping is a JSON array that allows configuration specific to each FHIR Resource.
The resourceMapping has two main component the resourceType and the codeableConceptMapping
resourceType is a FHIR resource type. Condition as an examplecodeableConceptMapping is an Array for additional configuration discussed below{
"resourceType": "Condition",
"codeableConceptMapping": []
}
| Field | Type | Default | Description |
|---|---|---|---|
fhirPath | String | - | FHIRPath expression to locate the element |
targetOntologyUrl | String | - | Preferred terminology system URL |
correctCode | Boolean | false | Add corrected coding for same system |
correctDisplay | Boolean | false | Add corrected display text |
translate | Boolean | false | Add codings from target terminology |
textToCoding | Boolean | false | Generate codes from CodeableConcept.text |
The codeableConceptMapping is a JSON array that allows configuration specific to each FHIR Resource
fhirPath is a FHIRPath. code as an exampletargetOntologyUrl is the url of the standard ontology. http://snomed.info/sct as an examplecorrectCode is a boolean flag that will direct the system to correct code values is truecorrectDisplay is a boolean flag that will direct the system to correct display values if truetranslate is a boolean flag that will direct the system to add codings from the Code system referenced in the targetOntologyUrl if truetextToCoding is a boolean flag that will evaluate the text and display elements of the CodeableConcept to add codings if trueThe flags provide fine grain control over actions taken by Semantic Standardization module
{
"fhirPath": "code",
"targetOntologyUrl": "http://snomed.info/sct",
"correctCode": true,
"correctDisplay": true,
"translate": true,
"textToCoding": true
}
This example configuration can be used as a starting point for an implementation and referenced in the module configuration
{
"description": "Configuration for mapping FHIR resources to their respective CodeableConcepts using FHIRPath. Each potential path is explicitly paired with a target terminology URL and processing options",
"version": "1.0.0",
"fhirVersion": "4.0.1",
"resourceMappings": [
{
"resourceType": "AdverseEvent",
"codeableConceptMapping": [
{ "fhirPath": "substance.code", "targetOntologyUrl": "http://snomed.info/sct", "correctCode": false, "correctDisplay": false, "translate": false, "textToCoding": false }
]
},
{
"resourceType": "AllergyIntolerance",
"codeableConceptMapping": [
{ "fhirPath": "code", "targetOntologyUrl": "http://snomed.info/sct", "correctCode": true, "correctDisplay": true, "translate": true, "textToCoding": true }
]
},
{
"resourceType": "Condition",
"codeableConceptMapping": [
{ "fhirPath": "code", "targetOntologyUrl": "http://snomed.info/sct", "correctCode": true, "correctDisplay": true, "translate": true, "textToCoding": true }
]
},
{
"resourceType": "Device",
"codeableConceptMapping": [
{ "fhirPath": "type", "targetOntologyUrl": "http://snomed.info/sct", "correctCode": true, "correctDisplay": true, "translate": true, "textToCoding": true }
]
},
{
"resourceType": "Immunization",
"codeableConceptMapping": [
{ "fhirPath": "vaccineCode", "targetOntologyUrl": "http://hl7.org/fhir/sid/cvx", "correctCode": true, "correctDisplay": true, "translate": true, "textToCoding": true }
]
},
{
"resourceType": "MedicationAdministration",
"codeableConceptMapping": [
{ "fhirPath": "medication.as(CodeableConcept)", "targetOntologyUrl": "http://www.nlm.nih.gov/research/umls/rxnorm", "correctCode": true, "correctDisplay": true, "translate": true, "textToCoding": true }
]
},
{
"resourceType": "MedicationDispense",
"codeableConceptMapping": [
{ "fhirPath": "medication.as(CodeableConcept)", "targetOntologyUrl": "http://www.nlm.nih.gov/research/umls/rxnorm", "correctCode": true, "correctDisplay": true, "translate": true, "textToCoding": true }
]
},
{
"resourceType": "MedicationRequest",
"codeableConceptMapping": [
{ "fhirPath": "medication.as(CodeableConcept)", "targetOntologyUrl": "http://www.nlm.nih.gov/research/umls/rxnorm", "correctCode": true, "correctDisplay": true, "translate": true, "textToCoding": true }
]
},
{
"resourceType": "MedicationStatement",
"codeableConceptMapping": [
{ "fhirPath": "medication.as(CodeableConcept)", "targetOntologyUrl": "http://www.nlm.nih.gov/research/umls/rxnorm", "correctCode": true, "correctDisplay": true, "translate": true, "textToCoding": true }
]
},
{
"resourceType": "Observation",
"codeableConceptMapping": [
{ "fhirPath": "code", "targetOntologyUrl": "http://loinc.org", "correctCode": true, "correctDisplay": true, "translate": true, "textToCoding": true }
]
},
{
"resourceType": "Procedure",
"codeableConceptMapping": [
{ "fhirPath": "code", "targetOntologyUrl": "http://snomed.info/sct", "correctCode": true, "correctDisplay": true, "translate": true, "textToCoding": true }
]
},
{
"resourceType": "Substance",
"codeableConceptMapping": [
{ "fhirPath": "code", "targetOntologyUrl": "http://snomed.info/sct", "correctCode": true, "correctDisplay": true, "translate": true, "textToCoding": true }
]
}
]
}
The module provides a $semantic-uplift operation for on-demand semantic enhancement of FHIR resources.
POST [base]/[ResourceType]/$semantic-uplift
The operation processes the resource(s) according to the configured mapping rules and returns semantically enhanced versions.
The module provides a Camel processor for integration with data processing workflows:
<to uri="semantic-std-processor"/>
See Camel Overview documentation page.
The module supports semantic standardization for any FHIR resource containing CodeableConcept elements, including:
Module fails to start
Poor mapping quality
Performance issues