Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

...

Länk till designverktygets manual för resultat

...

Drools - kod för beräkning

Droolskod.svgImage Added

Drools är ett kodspråk baserat i java kodsppråket Java, som genom regler bland annat kan hantera ifyllda formulär. I Stöd och behandling så kan du som designer skapa en eller flera resultatberäkningar genom att använda skriva dessa regler i droolskod.

Info

Även 1177 Formulärhantering använder sig av drools, men använder en lite annorlunda syntax - dialekt för när man skriver dessa regler, men fungerar i praktiken likadant.

Regelstruktur

Nedan ser du hur reglerna är strukturerade i drools för Stöd och behandling:

Kodblock
rule efsob
when
  field: Field()
then
  result.add( 
field.get()
)
;
end

Reglerna delas upp i:

rule efsob (Namnet på regeln)

When (När)

Then (Då)

End (Slut på regeln)

Kodexempel PHQ-9

Här är ett exempel från det standardiserade formuläret PHQ-9 där formuläret har 9 olika frågor som har etiketterna 1-9 vilka ska läggas ihop till ett summerat resultat.

Kodblock
 rule phq9
when
  field: Field()
then
  result.add( 
(field.get("1") - 1) + 
(field.get("2") - 1) + 
(field.get("3") - 1) + 
(field.get("4") - 1) + 
(field.get("5") - 1) + 
(field.get("6") - 1) + 
(field.get("7") - 1) + 
(field.get("8") - 1) + 
(field.get("9") - 1) 
)
;
end

Bra saker att tänka på:

  • Drools fungerar på samma sätt som funktioner i exempelvis excel, Cell A1 + Cell A2 == field.get(1) + field.get(2). På samma sätt som du kan lägga in ekvationer och formler i excel så kan drools hantera det med.

  • Du kan ha flera regler i en och samma resultatberäkning och när beräkningen körs så används båda reglerna. Se exemplet nedan:

    Kodblock
    rule regel1
    when
      field: Field()
    then
      result.add( 
    field.get()
    )
    ;
    end
    
    rule regel2
    when
      field: Field()
    then
      result.add( 
    field.get()
    )
    ;
    end

    Reglerna delas upp i:

Observera

Viktigt!

Reglerna körs alltid uppifrån och ned. Så har du flera regler i samma beräkning så kommer alltid den första regeln köras först, sedan den andra, sedan den tredje.

  • För att kunna lägga in en fråga och hämta upp svaret på den så behöver frågan ha en etikett, du lägger till etikett genom att klicka på inställningar för den specifika frågan.

  • Drools kör enbart det du sagt åt den att göra, är det vissa frågor du inte vill ska vara med i beräkningen så ignorerar beräkningen det.

  • Du kan testköra din beräkning genom att förhandsgranska formuläret.