Docs: EHRBase Client
EHRBase Client
EHRBaseClient is an async Python client (built on httpx) for the EHRBase clinical data repository. It wraps the openEHR REST API: create and look up EHRs, create, read, update and delete compositions in FLAT or canonical format, upload templates and fetch Web Templates, and run AQL queries.
Basic Operations
from oehrpy.client import EHRBaseClient
async with EHRBaseClient(
base_url="http://localhost:8080/ehrbase",
username="admin",
password="admin"
) as client:
# Create an EHR
ehr = await client.create_ehr()
print(f"Created EHR: {ehr.ehr_id}")
# Create a composition
result = await client.create_composition(
ehr_id=ehr.ehr_id,
template_id="IDCR - Vital Signs Encounter.v1",
composition=flat_data,
format="FLAT"
)
# Retrieve a composition
composition = await client.get_composition(
ehr_id=ehr.ehr_id,
composition_uid=result.uid,
format="FLAT"
)Querying with AQL
# Execute AQL query
query_result = await client.query(
"""SELECT c/uid/value, c/context/start_time/value
FROM EHR e CONTAINS COMPOSITION c
WHERE e/ehr_id/value = :ehr_id""",
query_parameters={"ehr_id": ehr.ehr_id}
)
for row in query_result.rows:
print(f"Composition: {row[0]} at {row[1]}")