As a data analyst I frequently need to get different kinds of data out of the system.
The Reporting Compatibility module (in the legacy UI) has a tool for selecting sets of patients (the Cohort Builder) and a tool for exporting their data (Data Export). We need a tool in the new UI that provides similar functionality.
This tool should be built on top of the Reporting module and should allow you to set up a row-per-xyz data set definition. (We need to support at least row-per-patient, -visit, -encounter, and presumably also EMR-specific things like -diagnosis, -registration, etc.)
Doing a row-per-(patient) DSD should allow you to choose: (a) queries to limit the (patient)s included, and (b) columns of data to include per-(patient).
See attached images.
(1) The first screen should allow you to choose which type of export you want to do.
(2) The next step is to choose which queries/filters you want to apply to that item, thus defining the rows for the export. (E.g. if you choose row-per-patient you'd use CohortDefinitions as the row filters.) The default behavior should be to AND together all the queries you choose, but ultimately you should be able to choose a more advanced combination. Adding queries should show how many results the individual query returns, as well as how many results the whole combination returns.
(3) Then you should choose the columns to include. Choose columns or queries should provide (a) an autocomplete that lets you search the available options, and (b) a display of all available options, grouped by category in some way (not yet mocked up).
(4) Queries and column definitions that the user chooses may have parameters. Parameters that have the same name as a global parameter (typically Start Date, End Date, and Location) should be automatically mapped. Other parameters need to have their value provided by the user.