opensrp / opensrp-client

Android app for Frontline Health Workers (FHWs).
Other
15 stars 32 forks source link

Vaccination update interaction overhaul #279

Open rowo opened 7 years ago

rowo commented 7 years ago

Show profile + complete vaccine schedule, integrating new vaccine button (done as https://github.com/OpenSRP/opensrp-client/issues/278)

rowo commented 7 years ago

20161006-vaccination-popup

rowo commented 7 years ago

@cagulas @maina do you think it'd be okay to show the vaccine button like the above? The patient data can be seen in the back. Pro is it's less info so less to process. Con is it might be harder to see if you went straight to something like this from the main register screen.

cafootitt commented 7 years ago

Is there a final confirmation step after this that would contain the vaccine name, date and maybe patient name (and maybe id)? If so, I think that would be fine

maina commented 7 years ago

It's not ideal to have two consecutive confirmations. In the above dialog only patient name is missing, is it possible to get some space for the name could be just above the vaccination(s)? Also does the user have an option to select multiple vaccines and thereafter show a single confirmation dialog for all?

rowo commented 7 years ago

@cagulas @maina I do not like multiple confirmations. We can add basic patient info to that first screen as suggested. Normally what you would do to not slow the interaction down is make it easy to undo the action.

  1. @maina If we build it this way (native) then can we do an "undo" type action? Perhaps if you click on a vaccine (within a certain time period or not) it will open up the popover again and ask you to undo.
  2. We could do multiple vaccines via a subtle button (i.e an "add other vaccinations" button). You might have to build logic into it though so certain ones can't be done at the same time i.e. some options get deactivated if a mutually exclusive option is chosen. I wouldn't change the interaction to add a confirmation after "submitting" but we could do a confirmation after selecting the specific vaccinations, and then return to the same standard interaction flow as seen above.

Here are some wires for how we could handle:

where date is editable on click

where choosing second option lets you specify a date. This encourages reporting same-day vaccinations. Writing out today's date is unnecessary noise.

maina commented 7 years ago

yeah, undo is possible with EC data model.

cafootitt commented 7 years ago

Ok cool. I like the idea that they can undo it within a period of time, because I think it is likely they'll select the wrong vaccine and then when they see the updated vaccination record after submit, they'll realize their mistake and be able to change it quickly.

I don't know if adding additional vaccines to a single window will be that useful or worth the effort (at least initially), considering the number of taps would probably be the same as them just going back to the vaccination record after submitting one vaccine and selecting another, also considering what Roger said above about having to build in the vaccination validation logic again, but we could see what the user feedback is and see if it's worth the added effort. But I think starting with the simplest version for now (each vaccine done separately) would be best. Plus there could be confusion for the health workers by being able to mark a vaccine two different ways, e.g., is adding bcg after tapping opv the same thing as just tapping bcg on its own?

I like the simplicity of the second mockup (where it just says vaccination done today), as I think this is most often the case (and what we want to encourage anyway, i.e., data recording at the time of service provision).

rowo commented 7 years ago

@cagulas @maina ok here's the sequence. Let me know your thoughts.

Scenario is OPV 0 is being done.

1.

OPV 0 is red/overdue.

20161006-vaccination-popup-01

2.

OPV 0 tapped, opens popover. Tapping "Vaccination done earlier" can open a date selector that defaults to today's date with "Vaccination done" and "Cancel" buttons. I probably need to create this "done earlier" screen.

20161006-vaccination-popup-02

3.

Back on the profile screen (if starting interaction from profile screen), you see an "Undo" button. I imagine a calendar day would be a good time limit (or less). If you hit the button from the main register screen, I guess you would land there and not see this "Undo" button unless you opened up the profile. If it's not a big deal to build a new "Undo" button state for the green button on the register view, I'm all for it since it would be very helpful in many other places.

20161006-vaccination-popup-03

4.

Undo confirmation. If you undo, it returns to state 1.

20161006-vaccination-popup-04

cafootitt commented 7 years ago

Everything looks great, and I like the flow of the interaction as well.

Only minor comment is it would be easier to not allow the user to snap a profile picture from the vaccine submission modal. I think it would be fine to just allow the user to update the avatar/profile pic from the main profile page.

I assume the "Done today" would change to the date of vaccination to coincide with the expiration of the undo action?

rowo commented 7 years ago