Skip to content

Allow semantic linking of schema elements (e.g., Inferred Phenotypic Features from Measurements) #439

Description

@monicacecilia

Background

Currently, a Measurement with an abnormal value may imply a PhenotypicFeature, but the schema lacks a built-in mechanism to formally link the two. For instance, a Measurement for LOINC:26515-7 (Platelets [#/volume] in blood), if abnormally low, directly implies a PhenotypicFeature for Thrombocytopenia (HP:0001873). In many clinical integrations, it is better to store both the quantitative measurement and the qualitative ontology term while preserving their relationship.

This is a specific instance of a broader architectural issue: we frequently need to link various building blocks to ensure AI-ready provenance and a clear clinical narrative. Other examples include:

  • Linking a MedicalAction to a PhenotypicFeature or Disease (e.g., administering lithium to treat Mania, or performing an MRI to discover an abnormality of the corpus callosum).
  • Linking a PhenotypicFeature to a Disease to explicitly document which features were key to establishing the diagnosis.
  • Modeling the treatment of a recurrent phenotypic feature, which is currently difficult because treatments are linked to particular occurrences rather than to an ontology term.

Proposed solutions for discussion

  • Option 1 (Targeted): Add an ontology class called inferred_phenotypic_feature (OntologyClass) directly to Measurement. (e.g., if blood sugar = 10, inferred feature = Hypoglycemia HP:0001943). Note: We must specify the intended semantics here. A PhenotypicFeature implies a characteristic abnormality, whereas a measurement might simply capture a transient state (e.g., High Blood Sugar 30 minutes after eating).
  • Option 2 (Generalized): Introduce a unique ID system to PhenotypicFeature, Measurement, and MedicalAction elements, allowing them to cross-reference one another within a single Phenopacket payload.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions