After thinking about it, I think we should classify filters into "global filters" and "chart filters" and then separately we can have "regions".
Global filters
Currently time, cohort, and cases.
They remove patients from the patient overlays (dot-density, 2d-density, contours) and most charts
Some charts shouldn't be affected by the filters. For example, some time series charts should probably show the full time scale and have a vertical line to indicate the current date (or date range).
Chart filters
Any filter found in the charts (age, race, symptoms, etc).
They remove patients from the 2d-density and contour overlays, but will change the appearance of the dots in the dot-density (no fill, just a border). This way we'll highlight the patients that pass the chart filters, but still leave some way to compare against the patients that were filtered out.
Chart filters might also change the appearance of the charts rather than completely remove them.. not sure yet.
Regions
Gives in a black border to the dots in the dot-density overlay. Has no effect on 2d-density or contours.
Each region will keep track of which patients are in the region.
Some charts will use the patients after global filters, but some (like some time series charts) will use the full time scale.
So I'm thinking from a data structure standpoint, App should keep track of:
After thinking about it, I think we should classify filters into "global filters" and "chart filters" and then separately we can have "regions".
Global filters
Chart filters
Regions
So I'm thinking from a data structure standpoint, App should keep track of:
Each region should keep track of: