I denne artikel vil jeg tale dig igennem, hvordan jeg brugte en React-krog, nemlig BrugerEducer, for at skabe en problemfri onboarding-proces for en app til sundhedspleje som jeg og mit team hos RebelDot har udviklet for nylig.
- Hvorfor er onboarding-processen afgørende for udviklingen af en sundheds-app?
- Hvordan opstod beslutningstræideen?
- Hvad er et beslutningstræ, og hvorfor udvikle et?
- Hvordan opretter man et beslutningstræ ved hjælp af React Native?
- Hvad er UserEducer, og hvordan bruges det?
- En lille måde at digitalisere sundhedsvæsenet på.
Hvorfor er onboarding-processen afgørende for udviklingen af en sundheds-app?
Da jeg arbejdede på dette sundhedsprojekt, faldt jeg over en udfordring og forsøgte at implementere en kompleks funktion inden for en relativt kort periode.
For at give dig en vis kontekst opstod ideen til denne funktion i de allersidste faser af udviklingsprocesDerfor var det afgørende for projektet at finde en hurtig, men effektiv løsning.
Denne funktion var en beslutningstræ nødvendigt for brugerens onboarding-proces, en væsentlig Machine Learning-lignende funktion til enhver app til sundhedspleje eller digitalt sundhedsprodukt udviklet i dag.
Det var bydende nødvendigt, at lægerne kendte relevante detaljer om deres patienter, så de kan skabe en nøjagtig diagnose og behandling.
Således var vi nødt til at skabe en dynamisk onboarding-proces, intuitiv og ikke gentagen, der kun fokuserede på et begrænset antal vigtige spørgsmål, såsom spørgsmål om eventuelle kroniske sygdomme eller allergier, som patienten måtte lide af, samt detaljer om familiens medicinske historie.
Hvordan opstod beslutningstræideen?
Den første og måske mest basale løsning, som vi tænkte på, var at begrænse spørgeskemaet til en simpel form (.tekstinput), hvor spørgsmålene screenes efter hinanden, og brugeren skal udfylde svaret på alle disse spørgsmål.
Med hensyn til implementering af denne type tilgang er det rimeligt at sige, at det ville have været en let proces og mest af alt en tidsmæssig.
Men.
Ikke så brugervenlig og effektiv.
Patienter ville have været nødt til at spilde tid på at besvare en hel liste med spørgsmål, selv spørgsmål, der måske ikke er i overensstemmelse med deres omstændigheder, mens læger også ville spilde deres tid på at gennemgå alle disse svar.
I stedet besluttede vi at bygge noget brugerintuitivt og let at fuldføre.
Et beslutningstræ.
Hvad er et beslutningstræ, og hvorfor udvikle et?
Dette betød, at onboarding-processen og henholdsvis det indledende spørgeskema rettet til brugerne nu kun ville være baseret på relevante spørgsmål, også have en række foruddefinerede svar samt mulighed for at tilføje brugerdefinerede.
Hvis du nogensinde har arbejdet med SurveyMonkey eller Qualtrics, du ved sandsynligvis, hvad jeg taler om - tilføje en spørgeskema/undersøgelseslogik så emnerne ville springe unødvendige spørgsmål over.
For at give en mere teknisk forklaring er et beslutningstræ et beslutningsstøtteværktøj, der bruger en trælignende model af beslutninger og deres mulige konsekvenser. Det er en måde at vise en algoritme, der kun indeholder betingede kontrolsætninger.
For eksempel, hvis brugeren giver et positivt svar på et ja/nej spørgsmål, kan følgende spørgsmål være baseret på det pågældende svar. I det tilfælde, hvor svaret var negativt, vil spørgeskemaet ifølge den etablerede strøm gå videre til det næste spørgsmål uden at adressere det, der specifikt er udpeget til dem, der besvarede følgende positivt.
I enklere vendinger skal du dog tænke på det som et dynamisk spørgeskema, der ændrer sine spørgsmål i realtid afhængigt af de svar, du giver.
Hvordan opretter man et beslutningstræ ved hjælp af React Native?
Jeg startede med en simpel 'BrugEjendom', men da jeg så, at jeg er nødt til at tilføje en masse data til den tilstand (og begynde at ligne en liste over objekter), indså jeg, at min enkle tilstand ikke kan håndtere den mængde ændringer, så jeg begyndte at lede efter et alternativ, der ville spare hele teamet tid og give os mulighed for at lancere produktet på den oprindeligt fastsatte frist.
Sådan begyndte jeg at arbejde med 'BrugerEducer', en alternativ løsning til' useState ', en reaktionskrog, der hjælper med at styre kompleks tilstand.
Jeg læste om alle reaktionskrogene, men sandheden er, at der er mange af dem, der sjældent bruges, som 'BrugMemo','BrugCall Back', eller vores'BrugerEducer. Arbejde med Redux før hjalp mig med at forstå måden"UserEducer“ fungerer på.
I starten var min 'UserEducer' tilstand temmelig enkel, men da jeg udviklede algoritmen og opdagede hvert hjørnesag, endte jeg med en kompleks og stærk komponent, der giver mig mulighed for at levere onboarding-processen.
Så jeg havde en kompleks tilstand og UserEducer, der håndterer komplekse tilstande. Dette var den perfekte pasform, der hjalp mig med at levere en funktion, der syntes så svær at implementere.
Hvad er UserEducer, og hvordan bruges det?
Lad os starte med nogle generelle oplysninger om, hvad der er UserEducer, og hvorfor det kan bruges.
UserEducer er en alternativ UseState, de store forskelle er, at useState bruges til at styre enkle tilstande (som strenge, booleaner osv.), mens UserEducer er perfekt til komplekse (tilstandsobjekter med flere underværdier).
For dem af jer, der er bekendt med reduktionsmidler, kan nemt forstå, hvordan Reacts UserEducer-krog fungerer.
Sådan kan du bruge det, vi har stat og forsendelse metode knyttet til denne tilstand (som jeg sagde ovenfor, hvis du arbejdede med reduktionsmidler, skal du vide, hvad forsendelse er)
const [tilstand, forsendelse] = userEducer (reducer, initialState);
reducering er en funktion, der er ansvarlig for at håndtere alle de handlinger, der sendes, og dermed ændre den nye tilstand.
Initialstat er, ja.. statens oprindelige værdi.
![telemedicine app useReducer](https://cdn.prod.website-files.com/6452267235631954acf24ecb/649c39067ea36571b6d2f722_Screenshot-2021-09-03-at-10.16.19.png)
I vores tilfælde er den oprindelige tilstand en liste over spørgsmål med vigtige underværdier såsom spørgsmålskategori, spørgsmålstekst, svar (en liste over objekter), en prop, der siger, om spørgsmålene accepterer flere svar (boolsk), en prop, der siger, om spørgsmålene vil blive stillet (en boolsk) og andet.
![useReducer development telemedicine](https://cdn.prod.website-files.com/6452267235631954acf24ecb/649c3906d881e996a30f9983_Screenshot-2021-09-03-at-10.17.03.png)
Svarobjekter indeholder svarteksten, den effekt, som svaret vil have, og listen over spørgsmålsindekser, der vil blive påvirket af svaret.
I reducer har jeg defineret de næste handlinger: tilføje et svar, fjerne et svar, påvirke et spørgsmål og opdatere alle svarene.
![useReducer React](https://cdn.prod.website-files.com/6452267235631954acf24ecb/649c390642ea5052b46733f0_Screenshot-2021-09-03-at-10.17.23.png)
Så hvordan fungerer dette? Når en bruger vælger et foruddefineret svar, sendes handlingen ADD_ANSWER (svaret gemmes), og APPLY_EFFECT sendes til hvert spørgsmål fra listen over spørgsmål, der påvirkes af svaret.
Den sidste handling indstiller, om spørgsmålene vises til brugeren eller ej.
En lille måde at digitalisere sundhedsvæsenet på.
Baseret på denne løsning tillod denne form for maskinlæringslignende algoritme automatisering af processer, eliminering af manuelle opgaver og glatning af ekstraktion af data direkte fra elektroniske poster.
Desuden skabte det muligheden for læger at forudsige tendenser i patientforholdene og deres adfærd ved at opdage forbindelser og relationer fra tilsyneladende uafhængige oplysninger, mønstre, der derefter kunne bruges til at bestemme diagnoser, prognoser og behandlinger for patienter i sundhedsorganisationer.
På en mere personlig note, selvom jeg var lidt bange, da denne opgave blev tildelt mig, er jeg nu taknemmelig for dette, da den samlede oplevelse lærte mig, at nogle gange løsningen er skjult i det klare syn, og at tidspres vil få dig til at afdække disse løsninger, når du forventer det mindst.
Nå, hvis du leder efter et pålideligt sundhedsappudviklingsfirma til at bringe din idé til live gennem den nyeste teknologi og et brugercentreret design, så tøv ikke med at række ud. 🚀
Du vil måske læse vores seneste casestudier, hvor vi præsenterer, hvordan vi udviklede en telemedicin app, såvel som en Leverandør af administrationssoftware til sundhedsfaciliteter.