Release notes for NLP API 2.29
Contents
Brief Summary
Release versions
- NLP API version 2 Release 29.
- Python SDK and client v5.24.0.
- Java SDK and client v5.9.0.
- Python SDK CCD reader plugin v1.9.0.
- NLP API specification v2.16.0: added support for new processing features
snomedicd10cm-ontologyontology andreportedevent-relations. - JSON result output schema v2.21.0 for emtellipro-json-2: added new output for
snomed_icd10_cmconcepts andreportedeventsrelations and the NLP APIengine-versionused to process the submitted documents. - visualclient version
vc-v2022.07.04-ef5da396added support for new processing featuressnomed_icd10_cmontology andReported Eventrelations.
Highlights
- Added ICD-10-CM ontology.
- Added new Reported Event relation with category Critical Results Communication for Radiology reports (beta).
- Improved accuracy and coverage of measurement relations.
- Improved coverage for historical events in temporality relations.
- SNOMED CT database updated to version
2022-04-11US Edition. - UMLS updated to version
2021AB.
New Features
ICD-10-CM Ontology Support
The ICD-10 Clinical Modification, ICD-10-CM, is a modification of the ICD-10, and is primarily used as a source for diagnostic codes in the United States of America.
In this release, the NLP API now supports ICD-10-CM as a new ontology, snomedicd10cm-ontology, which will output ICD-10-CM codes derived from SNOMED-based named entity recognition. Please note that in many cases, this will output different ICD-10 codes from the NLP API’s currently supported snomedicd10-ontology feature.
In the output json result format v2.21.0 or later the NLP API adds a new ontology snomed_icd10_cm.
For the following input processed as a Clinical/generic by the NLP API, and using the snomedicd10cm-ontology feature:
A link to the concept will appear for each found entity that has an ICD-10-CM code. The link will appear in the list of concept_links for each found entity (in the list found in the entities object).
The example output below is truncated to the relevant parts (the ... indicate the removal of unnecessary details). Note that NLP API’s snomedicd10-ontology for breast cancer is C50.9 (Malignant neoplasm of breast of unspecified site) while for the snomedicd10cm-ontology, two codes are produced, C50.919 and C50.929 (“Malignant neoplasm of unspecified site of unspecified female breast” and “Malignant neoplasm of unspecified site of unspecified male breast”). The two codes come with a description that contains information to help decide which code to choose based on the gender of the patient.
Reported Event relation (beta)
Beta version of a new reportedevent relation indicating whether the subject entity is the topic of communication from one group of entities to another. Currently the only supported category of reportedevent is critical_results.
This relation indicates that the subject (e.g. the “findings” of the report) has been communicated by a group of entities (could be a singleton) in the list argument from_entities to another group of entities (also could be a singleton) in the list argument to_entities. The mode of communication is provided in the argument methods while the time_expression argument captures when the communication took place.
Currently the only category produced by the NLP API is the category of critical_results which indicates that the communication was sent to a healthcare profession and that the sentence occurs in the following sections: FINDINGS, IMPRESSION, CALLED REPORT, CRITICAL RESULTS COMMUNICATION, COMMENTS and only from reports submitted with an NLP API category of Radiology with any subcategory.
This new feature is available in the result output by asking for the reportedevent-relations processing feature when submitting to the NLP API.
For the following input processed as a Radiology/generic by the NLP API:
The NLP API adds a new relation reportedevents to the list of relations in output JSON result format v2.21.0 or later. The output JSON for the above sentence is shown below. The focus in the example below is on one relation, namely reportedevents. The example output below is truncated to the relevant parts (the ... indicate the removal of unnecessary details).
Changes
Ontology updates
- UMLS updated to version
2021AB. - SNOMED CT database updated to version
2022-04-11US Edition. - ICD-10-CM ontology added.
- Removed mapping advice for ICD-10 ontology and replaced it with UMLS Preferred Term and sementic group, e.g.
Malignant neoplasm of breast of unspecified site (Neoplastic Process).
Accuracy Improvements
Entities
- Numerous additions and updates to entity linking for multiple ontologies.
- Addition of less common units of measurement for matching of entire measurement value.
- Updates to latest version of SNOMED and UMLS.
- Identification of new measurements with the measurement units
mL/hr,pack year,fL(femtoliter),centimeters per second,x10^3/uL,10E6/uLand variants,L/min/m2,mg/24 hr,mg/dL,cc/hrand{M/uL}. - Include
<,<=,>=and>in measurement values. - Add support for ranges of measurement values, e.g.
120-159. - Fixed false positive of
HR(heart rate) as part of measurement value. It is now correctly identified as measurement subject. - Fixed false positive with
Mg(magnesium) incorrectly identified as milligrams. - Fix for time expressions that sometimes blocked reported event relations.
- Give priority to entities with a definitionStatusId of
900000000000073002 (Sufficiently defined by necessary conditions definition status).
Relations
- Remove
man,womanand similar ambiguous terms as experiencers in experiencer relations. - Recognize proper names that start with
Dr.,Mr.,Ms.,Mx.andMrs.and other honorifics for experiencer and reported event relations.. - New temporal relation model with improved consistency and accuracy.
- New measurement relation model with significantly increased accuracy.
- Add
,as a possible scope breaker in measurement relations. - Reported event relation is enabled in Radiology reports (only) in the sections:
FINDINGS,IMPRESSION,CALLED REPORT,CRITICAL RESULTS COMMUNICATION,COMMENTS. - Fix overlapping span bug between arguments in measurement relations.
- Fix false positive for measurement values where you have two separated numbers followed by a unit, e.g.
32 96%. - Qualifier relations updated to include
stage 0etc. as qualifiers. - Enable matching of qualifier values in qualifier relations to
assessment scaleandobservable entityentities.
Polarity
- Fix negation detection failure with
there is no X to suggest Ypattern. - Fix negation issue with negated temporality triggers.
- Fixed scope of
question ofto be rightwards in negation detection. - Fix negation error in
no acute distress. - Assert some entities which properly contain negation terms.
Misc
- Fix lemmatization bug that was causing incorrect concept ID assignment for mentions like
fainting. - Support for
CALLED REPORTradiology heading. - Several accuracy improvements for the uncertainty attribute on found entities.
- More robust handling of dirty input data with OCR output that appears as Turkish text.
- Improve uncertainty accuracy for
is concerning fortriggers.
NLP API Improvements
- Added
engine-versionto the JSON result output and the engine version is also stored in theprocessingdetailstable in the NLP API output database. - For on-premises deployments, the admin UI has a new look with improved search and paging support for log views.
- Added support for more workers in the API server which has improved the throughput of the NLP API engine.
Python SDK updates
The latest NLP API Python SDK is version 5.24.0. The last NLP API release v2.28 was released with Python SDK version 5.22.0. Refer to the changelog for the Python SDK for a full explanation of the updates made for 5.23.0 and 5.24.0. You will need to use at least version 5.7.0 of the Python SDK or later to send requests to the NLP API v2.29 but if you want to use the new features explained above you will need to use at least version 5.23.0. We recommend using the latest version of the Python SDK 5.24.0 with the NLP API v2.29.
To use existing NLP API databases with the new Python SDK you must do a data migration using the Python database client migrate subcommand:
ICD-10-CM Support in Output Database
When using the emtellipro-db-client Python database client the foundentity table contains the found entities and the id column can be used to find the concept mapping in the foundentityconcept table:
You can look up the description of the concept_id from the above table in the concept table:
Reported Event relation in Output Database
When using the emtellipro-db-client Python database client the new reported event relation appears in the reportedeventrelation table and associated reportedeventrelationtoentity, reportedeventrelationfromentity, reportedeventrelationmethod and reportedeventrelationtimeexpression tables which correspond to the various arguments of the reported event relation.
The attributes of polarity and category and the identifier of the found entity that is the subject of the relation is provided in subject_id which is the link to the foundentity table which lets you obtain all the information about the subject:
Relation tables
The ER diagram for the Reported Event relation is shown below:

ER Diagram for the Reported Event relation.
The reportedeventrelation table looks like this:
The reportedeventrelationtoentity table below has the reported_event_id which links back to the reportedeventrelation table and entity_id which is the link to the foundentity table:
The reportedeventrelationfromentity table below has the reported_event_id which links back to the reportedeventrelation table and entity_id which is the link to the foundentity table:
The reportedeventrelationmethod table below has the reported_event_id which links back to the reportedeventrelation table and entity_id which is the link to the foundentity table:
The reportedeventrelationtimeexpression table below has the reported_event_id which links back to the reportedeventrelation table and entity_id which is the link to the foundentity table:
SQL query
A sample SQL query that provides a list of the reported event relations in a database produced by the database client is provided below:
Which produces a table of results with the following columns.
Java SDK updates
The latest NLP API Java SDK is version 5.9.0. Refer to the changelog for the Java SDK for a full explanation of the updates made since the last public release. You will need to use version 5.9.0 or later to take advantage of the new features described above.
