Closed kimberscott closed 5 years ago
May not reach while Kim on mat leave but if so: can start by implementing just collection/storage of info, rather than using it for eligibility.
@kimberscott Do you think you could post an initial list here? Once that's ready, I can get started on this pretty easily. I've also settled on what I think is a good approach for the analytics view (#134) so I'm happy to get started on that too!
Draft per-child list (running by researchers - feel free to comment here!)
We also already ask:
Draft per-family list:
So, three things: 1) I'm not sure where we'd want to put the per-family data. Should that be in the demographics section? Or should we make a new section called "family"?
2) I think we need to work first on distinguishing which of these proposed fields are binary (checkbox) vs. multiple choice (radio button/select) vs. quantifiable (number entry) fields. That will help me either select or create a new appropriate Field Type.
3) Do we have a clear rubric or set of decision criteria for how we are organizing child vs. family data? A child is part of a family, and yet we ask family questions that are replicated in the child update/create sections.
1/3. As discussed - we will hold off on family info (beyond what's already in the demographic form), and plan to eventually model that separately.
Some thoughts on researcher interface: Effectively we want to let researchers select, for each characteristic, an answer or range of answers that are "ok" (meet inclusion criteria), with a default of allowing all answers. This will cover the vast majority of use cases, and the rest would be covered by eventually allowing unions of such participant group definitions. Here's a quick mockup of what the interface could look like. (Not sure if tri-state checkboxes are actually a good idea, but could have "all/yes/no" instead and do something similar.)
This is sort of like how Facebook ad audiences work:
Alternately, we could let people add criteria one at a time, selecting the thing they want to condition on, IS/IS NOT/IS ONE OF/etc., and a value(s), like this (BBEdit):
Let's just avoid something like this where it's impossible to parse what the actual search will be (Cambridge public library search interface):
For deployment at this point: let's just stick to a few where likelihood of using in the near future is relatively high, and wait for input from researchers/families before updating to a list intended to be more complete. Proposal:
This looks beautiful! There's quite a bit of engineering here that's going to make future work easier, too. The view is very easy to find; I like the new distinction between "edit study" and "edit eligibility." A bunch of comments here most of which are just requests to add/change words rather than functionality :)
Questions/considerations:
To address, minor:
To address, possibly more involved:
1a: It's undefined behavior :) now I'm wondering if we should add some language somewhere to warn researchers about this?
1b: The idea is to use the slider to get to a general idea of what you want, and then tweak with the direct input fields. The slider should also serve as a sanity check (no negative ranges, gives a meaningful representation of years vs months, etc.). In any case if you didn't spend more than a couple of seconds struggling with it I'm inclined to keep it. One option would be to disable the handles, so that only the input fields can change the slider length.
Minor changes incoming
1a: Hmm, that might be helpful. E.g. near "submit proposed changes" say "If your study has already been approved, changes to the eligibility criteria do not require review. Changes take effect immediately."
1b: Hmm, I just think that since people will in fact have an exact age range already determined, this is simpler as one step (rather than first getting the "rough" idea and then tweaking - esp. in case someone runs into one of the edge cases like not being able to select exactly 1 year as a start point). Disabling the handles sounds good since then it's clear where to enter info but the helpful visual is still there.
As for 2E, Maddie actually asked for English to be put first, and the rest is organized by # of speakers worldwide. TBH I think using the browser to search for a language is fine, that's what ⌘F
is for.
Switching gears from that, I think we should revisit 2[B|G|F] and all of section 3 with a staged second phase of changes to the UX: I. Deprecate the min/max age etc. fields in the Study model, do a data migration over to relevant EligibleParticipantQueryModel fields, and drop all references to the old fields elsewhere in the code. II. Actually implement "soft" child validation (for studies) now; i.e. do the validation but merely provide a UI warning for ineligible children as we do now with min/max age on the Study model.
I am also investigating the feasibility of enabling filtering with Boolean Algebra, which would allow us to have complex criteria setting. TBD on that.
Just realized an empty criteria expression isn't allowed. That should be okay and should just be equivalent to 'true' - i.e. only use the age fields for eligibility, everyone 'passes' the empty criteria expression
Pain point: Many researchers are interested in working with specific populations, but families do not have a standardized way to indicate whether they fall into various groups in a way that would support use of this information for recruitment/eligibility.
Acceptance criteria:
Implementation notes/Suggestions: MIT OGC advises us that including medically-relevant options is fine from a legal standpoint (MIT is not a covered entity under HIPAA).