Query and search patient records
Overview
The Data Manager and some applications offer advanced data queries to find patient records. This document describes how these queries should be written.A search query is a piece of technical text, that tells the software what to look for in data records. It is possible to search records on names, parts of names, numbers, dates, etc.
For example:
Date of Birth > 01/01/2014 will show all records that have a date-type item Date of Birth that has a date greater than the 1st of January 2014.
Date of Birth >= 2015 AND Last Name *= A will show all records with a date of birth in 2015 or later, and where the last names start with an A.
Details
The search query language is a combination of Boolean logic (AND, OR, and XOR) and inequations (>, <, etc.).The logic algebra is explained in detail here: "Logical algebra parser".
Inequalities are explained in detail here: "Inequality math"
In addition to the logic words and inequality signs, two more logic signs can be used in stead of mentioning a specific item in the records:
*E meaning 'There is at least one', and
*A meaning 'For all items there is'.
The logic signs are written at the start of the query text. Using those signs it is possible to find values in one or more items per record. Here are some examples:
*E = 21, meaning: find all records that have at least one item that has the value 21.
*A = 21, meaning: find all records that have all items having value 21.
If no logic words or inequality signs are used, then the search query [text typed] is automatically translated to:
*E ~*~ [text typed], meaning: find all records that have at least one item that contains text similar to [text typed].