Skip to content

Global Health Status[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: Optional[PipelineProtocol]

name

The name of the component

TYPE: Optional[str] DEFAULT: global_health_status

patterns

The patterns to use for matching

TYPE: FullConfig DEFAULT: [{'source': 'altered', 'regex': ['astheni(?:e|q...

label

The label to use for the Span object and the extension

TYPE: str DEFAULT: global_health_status

span_setter

How to set matches on the doc

TYPE: SpanSetterArg DEFAULT: {'ents': True, 'global_health_status': True}