Query Modeller UI
caTIES needed a query functionality that would be simple enough for use by non-technical medical staff, but also expressive enough to support nested boolean queries and temporal queries.
My solution was to design two ways to build a query. Both the query modelers are kept in sync with each other so that the users could toggle between the modelers and compare. This would help the users learn the more expressive query modeler faster..
While about 95% of all queries can be done in the more simpler 'Dashboard' UI, the more expressive 'Diagram' UI can be used to model arbitrarily complex queries.
Temporal Queries
Temporal queries allow users to specify query constraints based on temporal characteristics of a patient's treatment timeline.
For e.g. they let the user specify a query such as "
Get me all patients who had a breast biopsy with intra-hepithelial hyperplasia, followed by a mastectomy within 3 years of the inital breast biopsy".
The more expressive query modeler UI is based on a filter-flow paradigm. Query constraints are specified as boxes in the graph. These boxes are linked by lines or edges, to form paths between the start box and the end box.
Constraints on the same path indicate a boolean AND relationship, and constraints on different paths indicate a boolean OR relationship. Temporal constraints were visualized by grouping sub queries and linking the groups with a "temporal constraint edge"