Introduktion Designverktyget: Formulär, resultat

← Bakåt

I det här avsnittet berör vi formulärfunktionen och resultatberäkningar. Två viktiga delar i ett moment för interaktivitet och uppföljning.

Om formulär

Formulär är en möjlig interaktion mellan invånare och momentet.

Där invånaren själv kan interagera med att skriva, markera och ta del av ett eventuellt resultat från sina svar efteråt.

Formulär kan finnas på flera ställen i ett moment.

I ett steg,

I en modul

I ett mätbatteri

Om resultat

Resultat är en beräkning av hur formuläret besvarats. Resultat och regler för hur resultatet ska beräknas skrivs genom kodspråket Drools av designern.

 

Länk till designverktygets manual för formulär

https://inera.atlassian.net/wiki/spaces/OSOB/pages/3062795

Beskrivning av resultatfliken, resultatberäkning och drools

Länk till designverktygets manual för resultat

https://inera.atlassian.net/wiki/spaces/OSOB/pages/3062612

Drools - kod för beräkning

 

Droolskod.svg

Drools är ett kodspråk baserat i 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 skriva dessa regler i droolskod.

Ä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:

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.

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:

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

Att tänka på

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.