Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.
Innehållsförteckning
minLevel1
maxLevel7

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

  1. 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)

  2. Länka från beräkning i formulärmallen till tidbokningstjänst

  3. 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
breakoutModewide
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: