|
a |
|
b/GLOSSARY.md |
|
|
1 |
# Glossary |
|
|
2 |
|
|
|
3 |
**Backend.** |
|
|
4 |
A class that translates between the table structure we present to the user (the ehrQL Tables) and the table structure in an EHR provider's database (the Database Tables). |
|
|
5 |
|
|
|
6 |
Each Backend is specific to an EHR provider and a Query Engine. |
|
|
7 |
For example, the TPP backend is specific to TPP (an EHR provider) and the MSSQLQueryEngine. |
|
|
8 |
|
|
|
9 |
A Backend is not required in order to connect to an EHR provider's database. |
|
|
10 |
If the structure of the Database Tables exactly matches the structure of the ehrQL Tables, then no translation is required. |
|
|
11 |
In this case, we query the EHR provider's database by specifying the appropriate Query Engine. |
|
|
12 |
|
|
|
13 |
**Dataset Definition.** |
|
|
14 |
Describes, using ehrQL, the EHR data to extract from a Backend. |
|
|
15 |
|
|
|
16 |
**Domain-Specific Language (DSL).** |
|
|
17 |
A programming language designed for a specific application domain. |
|
|
18 |
For example, ehrQL is a DSL; |
|
|
19 |
it is a programming language designed for the specific application domain of EHR data. |
|
|
20 |
|
|
|
21 |
**Dummy Data.** |
|
|
22 |
Randomly-generated data used as a substitute for EHR data when generating a dataset from a Dataset Definition. |
|
|
23 |
|
|
|
24 |
**ehrQL.** |
|
|
25 |
The Electronic Health Records Query Language (rhymes with *circle*). |
|
|
26 |
A Domain-Specific Language (DSL) for EHR data. |
|
|
27 |
It consists of the classes, methods, and functions that are used in Dataset Definitions. |
|
|
28 |
|
|
|
29 |
**Electronic Health Records (EHR) data.** |
|
|
30 |
Data about the health of the patients in a population, stored electronically (i.e. digitally). |
|
|
31 |
|
|
|
32 |
**Measure.** |
|
|
33 |
A quotient (a numerator divided by a denominator) for a given time interval and period (e.g. each month for a year). |
|
|
34 |
|
|
|
35 |
**Query** |
|
|
36 |
A graph of connected Query Model objects. |
|
|
37 |
|
|
|
38 |
**Query Engine.** |
|
|
39 |
Takes a Query, connects to an EHR provider's database, and returns the corresponding data. |
|
|
40 |
Usually, the database will be relational and will speak SQL. |
|
|
41 |
|
|
|
42 |
**Query Language.** |
|
|
43 |
A programming language designed for querying a database. |
|
|
44 |
For example, ehrQL. |
|
|
45 |
|
|
|
46 |
**Query Model.** |
|
|
47 |
The core data structure by which ehrQL represents a Query. |
|
|
48 |
The Query Model is responsible for defining the semantics of the operations we support on the data, and for ensuring that only semantically valid queries can be constructed. |
|
|
49 |
|
|
|
50 |
When the user writes ehrQL, a Query is constructed and passed to a Query Engine for execution. |
|
|
51 |
Consequently, there is a clear boundary between ehrQL, where expressiveness and convenience are paramount, and the Query Model, where semantics are paramount. |
|
|
52 |
|
|
|
53 |
**ehrQL Table** |
|
|
54 |
The table structure we present to the user. |
|
|
55 |
Users can write queries against this table structure using ehrQL. |
|
|
56 |
|
|
|
57 |
**Database Table** |
|
|
58 |
The table structure in an EHR provider's database. |
|
|
59 |
We do not present this table structure to the user. |
|
|
60 |
Instead, the user interacts with ehrQL Tables; their queries are translated into queries against this table structure by a Backend. |