Skip to content

feat: centralised concept query filtering API #11

@gkennos

Description

@gkennos

Problem

omop-emb and omop-graph each independently implement near-identical filtering classes for Concept table queries (filtering by domain, vocabulary, concept ID, and standardisation status). This duplication creates a maintenance burden and means any
improvements need to be made in multiple places.

  • omop-emb: EmbeddingConceptFilter
  • omop-graph: SearchConstraintConcept

Proposed solution

Add a shared ConceptFilter implementation to omop_alchemy.cdm.query:

from omop_alchemy.cdm.query import ConceptFilter

f = ConceptFilter(
    domains=("Condition", "Drug"),
    require_standard=True,
)
filtered_query = f.apply(select(Concept))

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions