Koppla ihop formulärmallen med tidbokning
Det krävs några steg för att koppla ihop en formulärmall med tidbokning
Ta fram beräkning utifrån de olika frågorna och svaren i formuläret för att peka på ett visst utfall (id på en utgång)
Länka från beräkning i formulärmallen till tidbokningstjänst
Lägg in URL-parameter vid utdelning av tjänst
Steg 1 - Ta fram beräkning som räknar ut utfallen av frågor/svar
I formulärmallen finns möjlighet att lägga in beräkningar för att ange vilka resultat i formulärets frågor/svar som ska leda till vilket utfall.
Beräkningen skrivs med kod i formulärtjänstens designverktyg, så personer med kunskap om enklare typer av kodning kan göra detta.
Länk till Formulärtjänstens dokumentation: Steg för steg, konfiguration
För att underlätta, rekommenderas att ett beslutsträd tas fram för att enklare skapa scriptet. Se exempel: Beslutsträd som hjälp i arbetet med flödet
Exempel på beräkning Fysioterapimottagning
Nedan skript visar hur en beräkning kan se ut. Utgångarna kan ha ett värde mellan 0 och 5, dvs totalt 6 utgångar.
TODO: komplettera med beskrivningar i scriptet som mappar mot frågorna i beslutsträdet
when $q: Questions() then double result = 0; // result motsvarar vilken utgång. Här 0. //hämta invånarens svar från fråga 1 (här märkt med id Q1). "Vilket besvär har du?"" int svarsQ1 = $q.get("Q1").intValue(); //om svaret på fråga 1(Q1) är = 1 (1 är första svarsalternativet) if ( svarsQ1 == 1 ) { //hämta invånarens svar från fråga 2 (här märkt med id Q2) - "Vad har du för besvär?" och fråga 3 "Vad önskar du boka?" int svarsQ2 = $q.get("Q2").intValue(); int svarsQ3 = $q.get("Q3").intValue(); //om svaret på fråga 2 = 2 och svaret på fråga 3 = 1.. if( svarsQ2 == 2 && svarsQ3 == 1 ) { result = 0; //.. blir resultatet/utgången 0. } //.. annars forts... om svaret på fråga 2 = 1 eller fråga 2 = 3 eller fråga 2 = 4 OCH om svaret på fråga 3 = 1... else if( ( svarsQ2 == 1 || svarsQ2 == 3 || svarsQ2 == 4 ) && svarsQ3 == 1 ) { result = 1; //.. blir resultatet 1 (dvs utgång med id 1) } else if( svarsQ3 == 2 ) // om svaret på fråga 3 = 2... { result = 2; // blir resultatet 2 (dvs utgång med id 2) } else if( svarsQ3 == 3 ) // om svaret på fråga 3 = 3 { result = 3; //blir resultatet 3 (dvs utgång med id 3) } } else if ( svarsQ1 == 2 || svarsQ1 == 3 ) { int svarsQ4 = $q.get("Q4").intValue(); int svarsQ5 = $q.get("Q5").intValue(); if( svarsQ4 == 2 && svarsQ5 == 1 ) { result = 0; } else if( (svarsQ4 == 1 || svarsQ4 == 3 || svarsQ4 == 4 ) && svarsQ5 == 1 ) { result = 4; } else if( svarsQ5 == 2 ) { result = 2; } else if( svarsQ5 == 3 ) { result = 3; } } outcome.set( result ); end
Kontrollera beräkningen
Beräkningen kan kontrolleras genom en förhandsgranskningsvy. Genom att välja vad invånaren kan svara, blir resultatet olika baserat på vad som är inlagt i scriptet. Se mer i Formulärtjänstens dokumentation [länk].
Steg 2 - Länka från beräkning i formulärmallen till tidbokningstjänst
I externalApplication kopplas en vidarelänkning från beräkningen i formulärmallen
Exempel på länkning
förklara delarna i url:en
https://tidbok.1177.se/make?configid=c3fb8b23-466b-45b2-bc35-b7b42565ebf7&hsaid=TSTNMT2321000156-112C&timetypeCode=2&terms=false
Steg 3 - lägg in URL-parameter vid utdelning av tjänst
[beskrivning av detta steg]
Läs mer hos Formulärtjänstens dokumentation:
Uthoppslänk på mottagningens startsida i inloggat läge
Exempel på URL-parameter
förklara delarna i url:en
?externalApplication=TRIAGE_VARMLAND
Tips och trix
Problem / behov | Lösning |
---|---|
Vid konfigurering av beräkningen i formulärmallen, går det inte att peka på samma utgång från flera frågor/svarsalternativ | Frågan och svarsalternativen behöver kopieras och kan inte gå ihop till samma. Dvs inte: Utan: |