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))
Problem
omop-embandomop-grapheach 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 anyimprovements need to be made in multiple places.
omop-emb:EmbeddingConceptFilteromop-graph:SearchConstraintConceptProposed solution
Add a shared
ConceptFilterimplementation toomop_alchemy.cdm.query: