Skip to content

Data & Filtering Architecture  #32

@itlackey

Description

@itlackey

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:

  • Patients
  • filtered_patients (after applying global filters)
  • chart_filtered_patients (after applying global+chart filters)

Each region should keep track of:

  • patient_ids within the region
  • filtered_patient_ids within the region (after applying global filters)
  • chart_filtered_patient_ids within the region (after applying global+chart filters)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions