edsnlp.pipes.ner.frailty.global_health_status.factory
create_component = registry.factory.register('eds.global_health_status', assigns=['doc.ents', 'doc.spans'])(GlobalHealthStatusMatcher) module-attribute [source]
The eds.global_health_status pipeline component extracts mentions of the global health status.
Details of the used patterns
# fmt: off
from ..utils import (
HEALTHY_STATUS_COMPLEMENTS,
make_assign_regex,
make_status_assign,
normalize_space_characters,
)
severe = dict(
source="severe",
regex=[
r"(?:extremement|trop) fragile",
"tres asthenique",
r"agoni(?:e|que)",
r"\baeg\b",
r"prise en charge de confort",
],
regex_attr="NORM",
)
altered = dict(
source="altered",
regex=[
r"astheni(?:e|que)",
r"fatiguee?",
"fatigu?abilite",
"plus la force de se lever",
"l'etat du patient se degrade",
],
regex_attr="NORM",
)
other = dict(
source="other",
regex=[
"etat general",
r"amelioration de l'etat general",
"karnofsky",
],
regex_attr="NORM",
assign=make_status_assign(),
)
general_status = dict(
source="other",
regex=[
"etat general",
],
regex_attr="NORM",
assign=[
dict(
name="severe_status",
regex=make_assign_regex(
["alteration", "alteree?", "degradation", "degradee?"]
),
window=(-3, 3),
),
dict(
name="healthy_status",
regex=make_assign_regex(HEALTHY_STATUS_COMPLEMENTS),
window=(-3, 3),
),
dict(
name="altered_status",
regex=make_assign_regex(["anormale?", "troubles?"]),
window=(-3, 3),
),
],
)
default_patterns = normalize_space_characters([altered, severe, other])
# fmt: on
Extensions
On each span span that match, the following attribute is available:
span._.global_health_status: set to None.
It will specify the severity of the mention regarding the general status of the patient.
Possible values are:
healthy: this span suggests the patient is well regarding that domain.altered_nondescript: this span suggests the patient is not well, but it is not yet possible to ascertain the degree of alteration.altered_mild: this span suggests a light alteration regarding this domain.altered_severe: this span suggests a severe alteration regarding this domain.other: this span is not indicative of the level of alteration regarding this domain. Still, it hints that this domain has been evaluated.
Examples
import edsnlp, edsnlp.pipes as eds
nlp = edsnlp.blank("eds")
nlp.add_pipe(eds.sentences())
nlp.add_pipe(eds.normalizer())
nlp.add_pipe(f"eds.global_health_status")
Below are a few examples:
Parameters
| PARAMETER | DESCRIPTION |
|---|---|
nlp | The pipeline TYPE: |
name | The name of the component TYPE: |
patterns | The patterns to use for matching TYPE: |
label | The label to use for the TYPE: |
span_setter | How to set matches on the doc TYPE: |