Docs: AQL Query Builder
AQL Query Builder
The Archetype Query Language (AQL) is how you query openEHR data across EHRs. Writing it as concatenated strings is error-prone, so oehrpy provides a fluent builder that assembles SELECT, FROM, CONTAINS, WHERE, ORDER BY and paging clauses for you. Run the result with the EHRBase client.
Basic Queries
from oehrpy.aql import AQLBuilder
# Simple query
query = (
AQLBuilder()
.select("c/uid/value", alias="composition_id")
.select("c/name/value", alias="name")
.from_ehr()
.contains_composition()
.where_ehr_id()
.build()
)
print(query.to_string())
# SELECT c/uid/value AS composition_id, c/name/value AS name
# FROM EHR e CONTAINS COMPOSITION c
# WHERE e/ehr_id/value = :ehr_idComplex Queries
# Query with observations and ordering
query = (
AQLBuilder()
.select("c/context/start_time/value", alias="time")
.select("o/data[at0001]/events[at0006]/data[at0003]/items[at0004]/value/magnitude",
alias="systolic")
.from_ehr()
.contains_composition()
.contains_observation(archetype_id="openEHR-EHR-OBSERVATION.blood_pressure.v1")
.where_ehr_id()
.order_by_time(descending=True)
.limit(100)
.build()
)