Release notes for NLP API 2.28
Contents
Summary
New Features
Question Status attribute
The new question_status attribute equals is_question in cases where the concept has been raised as a question to resolve. For example, rule out appendicitis where appendicitis will be is_question. In other cases, the attribute will have the value not_question.
The question_status attribute is only applied to documents with the Radiology category and only in the Indication section.
This new feature is available in the result output by asking for the entity-question-status processing feature when submitting to the NLP API.
For the following input processed as a Radiology/generic by the NLP API:
in output json result format v2.19.0 or later the NLP API adds a new attribute question_status to the list of attributes. See the output for the entity appendicitis below. The focus in the example below is on one entity and the new question_status attribute. The example output below is truncated to the relevant parts (the ... indicate the ellipsis of unnecessary details).
Temporality relation (beta)
Beta version of a new temporality relation indicating whether the subject entity is in scope of a temporal_entity. Currently the only supported category of temporality is historical.
This relation indicates that the subject of this relation (e.g. an entity like heart disease) is within the scope of a historical temporal_entity (e.g. like history of) in a sentence history of heart disease.
In some cases, the historical temporal_entity is not a FoundEntity but rather an AssumedEntity by virtue of occurring within a section that is categorized as historical e.g. Family History:.
There is also a modifier argument which is currently always empty in this beta version of the relation. It will contain useful modifiers in future releases of the NLP API.
The polarity attribute for this relation indicates whether the temporality status itself is negated or asserted.
This new feature is available in the result output by asking for the temporality-relations processing feature when submitting to the NLP API.
For the following input processed as a Clinical/generic by the NLP API:
in output json result format v2.19.0 or later the NLP API adds a new relation temporalities to the list of relations. See the output for the above sentence below. The focus in the example below is on one relation, namely temporalities. The example output below is truncated to the relevant parts (the ... indicate the ellipsis of unnecessary details).
Ontology updates
- RadLex ontology updated to 4.1.
- RxNorm update RxNorm Full Monthly Release January 3, 2022. Added
Indicator, Reagent, or Diagnostic Aidas a valid type of drug for medication relations. - More flexible lemmatization options for each supported ontology.
- Updated MEDCIN ontology database to new version with section-based disambiguation.
- Added section based disambiguation for MEDCIN concepts.
- Produce longer matches of mentions to MEDCIN concepts than previously.
Changes
- Disable
remoteas qualifier relation trigger since it will be a trigger for historical temporality relations. - Changed all measurement entities in SNOMED ontology to concept
246445000 Measure (attribute).
Bug Fixes
- Bug fix for some non-determinism issues leading to some missing output.
- Bug fix to avoid crashes when there are no sections or no sentences (both of which occur when the input is empty or all whitespace).
- Bug fix for sentence detection model which was creating spurious boundaries in very long documents.
- Bug fix for rare cases where some plurals were being assigned the concept ID for the singular form.
Accuracy
Relations
- Enable medication relations for
Calcium. - Improved accuracy of medication relations.
- Improvements to assumed family experiencers in experiencer relations.
- Improved qualifier relations, including new triggers for
duration/timequalifier,normalas value forstatusqualifiers. - Fix false positive qualifier relation with
old. - Detect a larger set of SNOMED person concepts and add them as valid experiencer subjects.
- Added new date, time and temporal expressions like
54 year old,1AM,5:33PM,21 days,4 to 6 hours, etc. - Fix false positive for
2C/3C/4C(number of chambers) in ejection fraction measurement relations when they are in parentheses. Also matchCmeasurement units fortemperatureandtempmeasurement subjects. - Eliminate relation triggers that appear inside an entity span, e.g.
injection of technetium 99m tilmanoceptwas previously creating a measurement relation betweeninjectionand99meven though there is an entitytechnetium 99m tilmanoceptfound in this input. - Improved measurement relations, including identification of pairs of measurement values for
FEV1andFVC, addedFEV1/FVCratios, potassiumK,mg/kg/minas measurement unit,packs per day,g / dlandpercentas measurement units,80'sand80?sas measurement values. - Added LVEF unitless measurements, e.g.
LVEF for 2C/4C was 75. - Fix false positive trigger
2c/4cfor ejection fraction measurements. - Do not identify dates as measurement values.
- Add ambiguous term
inas measurement unit only forheightin measurement relations. - Add
at stressas a post-modifier of a measurement trigger for cases like42% at rest and 48% at stress.
Section parsing
- Change back section label from
immunizationstoimmunization. - Improvements to section parsing with new headings added for all document types.
- New additions and updates for CCD headings including: fixed level of CCD
Immunizationsheading, ignore CCD headingsIndicationandAuthor,Problem Listmapped toProblems - Improvements to cardiology/echocardiogram headings.
- Added new
Radiologylevel 1 section headings. - New CRITICAL RESULTS COMMUNICATION heading.
- New
wet readandpfiradiology headings. - Add new
REFERENCE EXAMINATIONandREFERENCE STUDYvariant headings. - New
Socialheading for clinical.
Polarity
- Polarity (negation) improvements, including
negatives include,no evidence by,no ... to indicate ...,free of. - Ensure
never smokedis an asserted entity.
Misc
- Annotation updates for SNOMED, MEDCIN, RxNorm including new biomarker concepts.
- Fix
after fallbeing picked up as temporal entity. - Allow British spellings when normalizing medical terms.
- Improved uncertainty accuracy, including
with possible. - Improve date finding to avoid false positives with dosages like
10-20-300. - Improved speed and accuracy of sentence boundary detection, including the handling of ICD code,
f.uas abbreviation, decimals and hyphens in CCDs, fix forsmoking-cessationfalse positive, long sequences of hyphens and underscores from flat ascii tables, handle “fill in the blanks” cases with underscores.
Infrastructure
- We improved the stability and throughput of our API server to handle the case where a single user wants to run hundreds of simultaneous clients connecting to the NLP API service.
- Improvements in the NLP API Admin UI including the ability to download and sort the logs.
- Documentation web site is completely auto-built with versions for each sub-component like the NLP API description, the JSON result description, etc.
- IAM command-line client has added as a new download in our Downloads page.
- IAM support for custom JWT endpoints like the Visual Client.
- For on-premises installations of the NLP API the audit logs have been available on the NLP API admin UI since v2.27. The audit logs can be now downloaded using the shell script provided below:
- Extensive customized memory and time profiling of the NLP API was conducted.
- Memory and time usage and time complexity improvements optimized to handle larger documents. Fix for potential memory leak in some rare cases.
- Enabled support for longer documents without timing out.
Python SDK updates
The new NLP API Python SDK is version 5.22.0. Refer to the changelog for the Python SDK for a full explanation of the updates made since the last public release which was version 5.17.1 released with the NLP API v2.27. 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.28.
To use existing NLP API databases with the new Python SDK you must do a data migration using the Python database client migrate subcommand:
Question Status in Output Database
When using the emtellipro-db-client Python database client the table for foundentity contains the question_status attribute value.
The updated foundentity table looks like this with an additional column for question_status:
Temporality relation in Output Database
The new temporality relation appears in the temporalityrelation table and associated temporalityrelationmodifier table when using the emtellipro-db-client Python database client.
The temporalityrelation table looks like this:
The temporalityrelationmodifier table looks like this:
Java SDK updates
The latest NLP API Java SDK is version 5.8.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.8.0 or later to take advantage of the new features described above.

