Gå till slutet av bannern
Gå till början av bannern

Viktigt att komma ihåg vid programmering av beräkningar

Hoppa till slutet på meta-data
Gå till början av metadata

Du visar en gammal version av den här sidan. Visa nuvarande version.

Jämför med nuvarande Visa sidhistorik

Version 1 Nästa »

Frågetyp

För frågetyp Heltal och Decimaltal används det besvarade värdet i beräkningsformeln. För frågetyp Rullgardinsmeny och Radioknapp används svarsalternativets ordningstal, t.ex. 2 om det är det andra alternativet.

Resultatet är ett numeriskt värde (double), inte exempelvis en textsträng.

Hantera icke-obligatoriska frågor

Om du har icke-obligatoriska frågor som är med i resultatet behöver koden ta hänsyn till att det kan komma in tomma svar. Om du är osäker på hur detta görs bör frågan sättas som obligatorisk. Annars finns denna metod att tillgå:

questions.get("q1", 0)
D.v.s. vid icke-obligatoriska frågor kan man ange ett defaultvärde om svar saknas. Praktiskt om man t.ex. beräknar questions.get("q1", 0) + questions.get("q2", 0) + questions.get("q3", 0) där frågorna inte är obligatoriska. Det hade blivit detta utan
(questions.get("q1") == null ? 0 : questions.get("q1")) + (questions.get("q2") == null ? 0 : questions.get("q2")) + (questions.get("3") == null ? 0 : questions.get("q3"))

Så här visas resultatet

Resultat

Vårdpersonal

Invånare

Null

Inget resultat

Om resultatet blir null visas resultatet inte för invånaren.

Error/Fel

Beräkningen kunde inte utföras”.

Minst en resultatberäkning kunde inte genomföras. Det kan bero på felaktigt skriven beräkningskod där malladministratören inte hanterar invånarens kombination av svar på ett korrekt sätt. Kontakta malladministratören snarast möjligt så att åtgärder kan vidtas.

Se skärmbild:

Om resultatet genererar ett fel visas resultatet inte för invånaren.

Skillnader mellan beräkningskod i SoB och Formulärhantering

Beräkningskoden är väldigt lik mellan Stöd och behandling och Formulärhantering. Det finns dock några skillnader:

Stöd och behandling (SoB)

Formulärhantering (FRM)

För befintlig SoB ser det ut så här

1. rule efsob
2. when
3. field: Field()
4. then
5. result.add( field.get("Etikettnamn") );
6. end

Rad 1: har FRM tagit bort.
Rad 3: här använder FRM Questions() istället för Fields(). Om man då låter variablen heta field så behöver man inte ändra i själva beräkningen.
Rad 5: här byter ni result.add(...) till outcome.set(…)
Syntaxen blir då:

1. when
2. field: Questions()
3. then
4. outcome.set( field.get("QuestionId") );
5. end

Exempel:

when   
   $q: Questions()
then
   outcome.set($q.get("weight") / ($q.get("height")/100 * $q.get("height")/100));
end

Mer information om beräkningar i Stöd och behandling hittar du här.

  • Inga etiketter