--- a +++ b/GLOSSARY.md @@ -0,0 +1,60 @@ +# Glossary + +**Backend.** +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). + +Each Backend is specific to an EHR provider and a Query Engine. +For example, the TPP backend is specific to TPP (an EHR provider) and the MSSQLQueryEngine. + +A Backend is not required in order to connect to an EHR provider's database. +If the structure of the Database Tables exactly matches the structure of the ehrQL Tables, then no translation is required. +In this case, we query the EHR provider's database by specifying the appropriate Query Engine. + +**Dataset Definition.** +Describes, using ehrQL, the EHR data to extract from a Backend. + +**Domain-Specific Language (DSL).** +A programming language designed for a specific application domain. +For example, ehrQL is a DSL; +it is a programming language designed for the specific application domain of EHR data. + +**Dummy Data.** +Randomly-generated data used as a substitute for EHR data when generating a dataset from a Dataset Definition. + +**ehrQL.** +The Electronic Health Records Query Language (rhymes with *circle*). +A Domain-Specific Language (DSL) for EHR data. +It consists of the classes, methods, and functions that are used in Dataset Definitions. + +**Electronic Health Records (EHR) data.** +Data about the health of the patients in a population, stored electronically (i.e. digitally). + +**Measure.** +A quotient (a numerator divided by a denominator) for a given time interval and period (e.g. each month for a year). + +**Query** +A graph of connected Query Model objects. + +**Query Engine.** +Takes a Query, connects to an EHR provider's database, and returns the corresponding data. +Usually, the database will be relational and will speak SQL. + +**Query Language.** +A programming language designed for querying a database. +For example, ehrQL. + +**Query Model.** +The core data structure by which ehrQL represents a Query. +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. + +When the user writes ehrQL, a Query is constructed and passed to a Query Engine for execution. +Consequently, there is a clear boundary between ehrQL, where expressiveness and convenience are paramount, and the Query Model, where semantics are paramount. + +**ehrQL Table** +The table structure we present to the user. +Users can write queries against this table structure using ehrQL. + +**Database Table** +The table structure in an EHR provider's database. +We do not present this table structure to the user. +Instead, the user interacts with ehrQL Tables; their queries are translated into queries against this table structure by a Backend.