The mobile app is already using the existing Survey Engine that was used to build the COVID-19 Eligibility Survey. The app is using the component, CovidVaccinationSurvey.tsx to display the WebView that ultimately loads the Survey Tool’s remote content.
How it works
Backend
The API team has developed a backend with admin frontend tool that enables admins to login and design forms using a web based GUI through their browser. Forms are built and published in the web GUI and exposed via an API and custom domain.
Srini has created an example form for us already that uses all of the existing form inputs, as a demonstration to the business stakeholders and designers what all exists already. This is an effort to help the designers figure out how to re-use existing form inputs vs. building from scratch.
The mobile frontend is taking the URL that renders the form and displays it inside of a WebView component. You can see the implementation of this by going to the file: CovidVaccinationSurvey.tsx
To navigate to this component to debug it, you just need to go to the COVID-19 Scheduling flow for a visit to a clinic. Note that this won’t work for in-home vaccine scheduling for COVID-19 as that flow is using a different implementation that doesn’t involve the existing Survey Engine.
To start the flow, you need to first enable this feature-flag in configData.json :
"scheduling":{
...
"enableCovid19VaccineScheduling":true,
...
}
Once the feature-flag is enabled, refresh the app and login. Scroll down on the Dashboard until you see the now-visible “COVID-19 →” card:
Once on the COVID-19 Care Landing Page, you’ll want to select the “Schedule Vaccine” option:
A bottom sheet will appear with options. Pick the “Clinic Visit” here, since as mentioned earlier, the In-Home Vaccines option is not using the Survey Engine.
After tapping “Clinic Visit”, you will get the Proxy Picker screen. Pick any patient to continue.
After tapping a proxy, you will land on the “COVID-19 Vaccine Eligibility” page (ie., CovidVaccinationSurvey.tsx ), the screen responsible for rendering the WebView that loads the remote URL, which returns pre-styled HTML.
Each question that appears in this COVID-19 Eligibility form, including this initial informational page itself, are all built using the existing Survey Engine.
Scroll down to the bottom of the page, and tap the checkbox to agree and then tap the “Get Started” button.
The next page to load happens to be the first question of the COVID-19 Eligibility form.
After answering all the survey questions, the user will inevitably land on the confirmation screen with the results of the survey displayed.
Scroll down to accept the disclaimer, and then tap “Schedule appointment” button to start the COVID scheduling flow.
Known Limitations/Defects
1. Poor back button management
Back button management is not being handled well
Taps on back arrow leaves the entire survey flow
2. Poor button animations
Taps on buttons will get stuck in the depressed (darker) appearance as if it’s constantly depressed.
There is no indication of loading happening
User feels like nothing is happening, and is confused
Users can tap on Next and Previous at same time, and only 1 action will win
3. Zoom in/out issue
Users that double tap the screen will get a zoomed in experience causing slight disorientation as mobile apps are not expected to be zoomable