UX questions - complex search/filtering/sorting

I am new to AppSheet and started developing my app and researching.

I'd like our app to work well both on desktop/laptop and mobile. Q: It is my understanding that you have to embed in an iframe for desktop/laptop, and I wonder if there are downsides to that?

Definition: The app will be a directory/listing of medical providers, and the data is from a single Sheet.

Requirements: We want a lot of filtering/sorting/search capabilities, and possibly also a map feature.

Q: We'd like users, when they first enter the app, to be able to perform an advanced/custom search like you would on an advanced database, by simultaneously selecting from many possible Y/N and pre-defined pulldown menu options for various fields, then getting the detailed results back. Is this possible? The search could include name, location (we could just provide a full address, but could we then search by just state or country?), type of doctor (MD, ND...), accepts insurance Y/N, etc, etc.

(So far I've only been able to set up an action that pulls from a single slice like "Accepts Insurance is Yes". So, one "button" for a single type of filter, which is very simplistic.)

Q: We'd also like someone to be able to see the full list of medical providers, in table form, then sort table headers, or pick from pre-defined pulldown menus for filtering options ("I'd like to see all MDs, but not see ND's, PA's, or other providers... and they should all be in California"). But this would be secondary to the main 'advanced search' option, and could just be linked to from the bottom area of the app, as "full directory".

Not sure of the level of complexity and user friendliness that can be reached.

0 5 1,618
  • UX
5 REPLIES 5

Thanks @Tee

I come from a web development background with SQL and databases, so I'm trying to translate the style/methods of AppSheet to how I think an application normally works. 

I tried a dashboard but what I really want is filters that return details.

When I first enter the app and click the search icon in upper right, I see filters and can choose from them as I please, then get results back - I basically want to extract that functionality (and customize it) so it is in the opening pane - the user shouldn't have to hunt for it at all. Is that possible?

Long side note: I was also trying to follow https://www.appsheet.com/templates/This-app-shows-how-to-filter-your-data-using-a-form?appGuidString...

This example uses a form to have you first pick a color, then a size that exists for that color. Works nicely, data shows up!

My data is more complex -  a sheet with various details of medical doctors, and a secondary tab of Search Form fields. I want the user to first see *all* possible filters (name, type of doctor, state, accepts insurance, etc) and to be able to select ANY of the filters, in any combination, then return the appropriate data.  More like a SELECT * from CLINICIANS WHERE FIELD1 = 'value' AND FIELD2 = 'value';

So, search for just "Medical Doctor" to see details for all of those. Or "Accepts Insurance" to see all of those. Or "Medical Doctor in California who accepts Medicare and is xyz" or other complex combinations.

Using the Search Form concept with an Action now... seems odd that by default my app shows the first search field (type of doctor) and then a few of the last ones, but others only show up when you answer a prior question? I figure Google is trying to filter step-by-step, but I don't want that behavior - do you know how I can show all filter fields at once?

And my Action seems to not show results now, since I added more fields. I think the AND makes all of the fields required to be valid and to equal was was picked in the form. But if the user only selects "Accepts Insurance" and hits submit, I want detailed records to come back for anyone who has a Y for Accepts Insurance - I don't want to also filter by "Primary Degree = null" or other fields:
LINKTOFILTEREDVIEW("Clinicians", AND([Primary Degree] = [_THISROW].[Primary Degree], [Specialty] = [_THISROW].[Specialty], [Condition] = [_THISROW].[Condition], [Accepts Insurance] = [_THISROW].[Accepts Insurance], [Accepts Medicare] = [_THISROW].[Accepts Medicare], [Virtual Consultations] = [_THISROW].[Virtual Consultations],[Practice State] = [_THISROW].[Practice State],[Practice Country] = [_THISROW].[Practice Country] ))

 

Clinicians Table.png 
Search Form.png

 

Also struggling with a Condition field which I would like to hold multiple values at times. A doctor may treat Asthma and Arthritis, for example... So I tried to use Asthma|Arthritis in a field and do an EnumList with | as the separator...

Rather than putting things in words, I created a small demo app that you can take a look at.

https://www.appsheet.com/portfolio/3401559

Copy "Clinicians Search" if this is something that you are looking for. Hope this will give you a starting point.

Animation.gif

A few comments:

  • You do not have to use a dashboard.
  • Search Form (table) needs a row with your email as its key (security filter is used so your app instance sees only your data. )

TeeSee1_0-1668744121141.png

  • A detail view is created from Search Form table and quick edit is enabled so you do not have to open a Form and do save before the change is seen in the Clinicians Filtered View.
  • Clinicians Filtered view is based on a Slice of Clinicians table. ThesSlice filter does all the work. The filter conditions on ENUMLIST (clinicians) to ENUMLIST (search form) look a bit weird. I had to tweak them a bit to get them to work because the App gave me errors around data types.
  • Always start with a specific view - this can be done conditionally but not always doable. Basically you give the user the URL link to the view you want to be opened. Browser Link is what you want to use. Install Link remembers where you were at when you last logged off the app, so it does not work.

TeeSee1_1-1668744879785.png

TeeSee1_2-1668745119021.png

EDITED

  • Though I have not done this in the demo app, I would create master tables for most of the clinician attributes.

Thanks! I'm learning a lot by looking at those IF statements and the structure of the app, etc.

Dumb question: When a user first opens the app does there have to be the accept info/button?

I'm hoping to embed this table/search into a webpage as well, for public consumption - to enhance our clinicians listing on our website. But since it is an app I'm not sure that will work well? I have the free version of AppSheet, but it test embedding into our public page https://iseai.org/find-a-professional/ under our map I think I'd need to pay for a higher version? All the text-based listings on that page are what we are trying to turn into the "searchable database", but our two different map plugins don't have good UIs for the text-based listings (they are better at just doing the map piece, which maybe AppSheet could also handle better?)

Also the public (via webpage embed iframe, or app) user needs to instantly be able to search by name, filter on specialty, etc etc, then see detailed results table returned, and be able to click into the detail.

Right now I actually can't figure out what you clicked or what steps you took in order to have that Filter pane on the left, with all the search/toggle/etc fields... so I'm not sure this would work.? Is there a way for that pane to be the first and only thing the user sees in the main area of the app?

Example from another industry, that somewhat captures what we'd like to accomplish: https://www.acac.org/find

Here's what I see when I first open the app:
Permissions on App Launch.png How to Filter.png

Not sure how to publish this to public. I defer to other experts in the community on this.

If, however, this is your primary use case, I would just develop it with a web page and SQL, especially with your background expertise in them, that would be more appropriate.

The video I attached is a Dashboard view on a PC. Cannot do that on a smartphone.

Top Labels in this Space