Innehållsförteckning | ||||
---|---|---|---|---|
|
Koppla ihop formulärmallen med tidbokning
Det krävs några steg för att koppla ihop en formulärmall med tidbokning
...
<beskrivning> eller länkar
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
...
I dagsläget har varken lokal eller regional administratör behörighet att skapa beräkningar för att koppla ihop formulärmallen med tidbokningen.
...
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: byt ut denna mot Sunneskomplettera med beskrivningar i scriptet
Kodblock | ||
---|---|---|
| ||
when $q: Questions() then double result = 0; // result motsvarar vilken utgång. // hämta invånares svar på fråga Q1 int svarsQ1 = $q.get("Q1").intValue(); if ( svarsQ1 == 1 ) Här 0. { //hämta Q1:1. Under 18 år result = 0; } else if ( svarsQ1 == 2 ) { // Q1:2. 18 - 25 år // hämta invånares svar på fråga Q2 invånarens svar från fråga 1 (här märkt med id Q1). "Vilket besvär har du?"" int svarsQ2svarsQ1 = $q.get("Q2Q1").intValue(); if ( svarsQ2 == 1 ) { // Q2:1: Ja, för samma besvär som jag vill boka tid för nu // hämta invånares svarom svaret på fråga Q3 int svarsQ3 = $q.get("Q3").intValue(); 1(Q1) är = 1 (1 är första svarsalternativet) if ( svarsQ3svarsQ1 == 1 ) { //hämta Q3:1: Kurator result = 2; } else { // Q3:2: Psykolog result = 3; } } else if ( svarsQ2 == 2 || svarsQ2 == 3 ) { // Q2:2: Ja, men för ett annat besvär // Q2:3: NEJ // hämta invånares svar på fråga Q4 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 svarsQ4svarsQ2 = $q.get("Q4Q2").intValue(); if ( svarsQ4 == 1 ) { // Q4:1: Ja, Jag tänker ofta så // hämta invånares svar på fråga Q6 int svarsQ6svarsQ3 = $q.get("Q6Q3").intValue(); if ( svarsQ6 == 1 ) { // Q6:1: JA result = 4; } else { // Q6:2: NEJ // hämta invånares svar på fråga Q7 int svarsQ7 = $q.get("Q7").intValue(); //om svaret på fråga 2 = 2 och svaret på fråga 3 = 1.. if ( svarsQ7svarsQ2 == 12 ) { // Q7:1 Ja result = 4; } else if ( svarsQ7&& svarsQ3 == 2 1 ) { // Q7:2 Nej, bara vaga tankar result = 30; //.. blir resultatet/utgången 0. } else { // Q7:3 Nej, inte alls // hämta invånares svar på fråga Q8 int svarsQ8 = $q.get("Q8").intValue();//.. 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... ifelse if( ( svarsQ8svarsQ2 == 1 || svarsQ8 == 2 || svarsQ8svarsQ2 == 3 || svarsQ8svarsQ2 == 4 ||) svarsQ8 == 5 || svarsQ8&& svarsQ3 == 81 ) { result = 31; //.. blir resultatet 1 (dvs utgång med id 1) } else { result = 2; } } } } else if( svarsQ4if( svarsQ3 == 2 ) { // Q4:2: Ja, jag tänker så ibland // hämta invånares svarom svaret på fråga Q9 int svarsQ93 = $q.get("Q9").intValue(); if ( svarsQ9 == 1 ) 2... { // Q9:1: JA result = 5; } else { //Q9:2: NEJ 2; // blir resultatet 2 (dvs utgång med id 2) // hämta invånares svar på fråga Q10} int svarsQ10 = $q.get("Q10").intValue(); if ( svarsQ10else if( svarsQ3 == 1 ) { // Q10:1: Ja 3 ) // om svaret på fråga 3 = 3 { result = 43; //blir resultatet 3 (dvs utgång med id 3) } } else if ( svarsQ10svarsQ1 == 2 || svarsQ10svarsQ1 == 3 ) { int svarsQ4 // Q10:2: Nej, bara vaga tankar // hämta invånares svar på fråga Q11 = $q.get("Q4").intValue(); int svarsQ11svarsQ5 = $q.get("Q11Q5").intValue(); if ( svarsQ11 == 1 || svarsQ11svarsQ4 == 2 ||&& svarsQ11svarsQ5 == 3 || svarsQ11 == 4 || svarsQ11 == 5 || svarsQ11 == 8 ) 1 ) { result = 3; 0; } else { result = 2; } } } } else { // Q4:3: NEJ // hämta invånares svar på fråga Q5 int svarsQ5 = $q.get("Q5").intValue(); if ( svarsQ5if( (svarsQ4 == 1 || svarsQ5 == 2 || svarsQ5svarsQ4 == 3 || svarsQ5svarsQ4 == 4 || svarsQ5 == 5 ||) && svarsQ5 == 81 ) { result = 3; 4; } else if( svarsQ5 == 2 ) { result = 2; } } } } else if ( svarsQ1svarsQ5 == 3 ) { // 3. Över 25 år { result = 13; } } // spara utgång för att kunna läsas/kopplas till uthopps-URL} 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
...
Problem / behov | Lösning |
---|---|
Vid konfigurering av beräkningen i external application i Formulärtjänstenformulä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: |