Formatspecifikation CSV

Formatspecifikation CSV

 

 

Som ett alternativ till XML exportformatet tillhandahåller Stöd- och behandlingsplattformen utdata i CSV format (komma-separerade värden). Den komma-separerade datafilen innehåller data från behandlingar i ett tvådimensionellt upplägg, lämpligt för bearbetning och beräkning i program som tillhandahåller en tabellvy, där jämförbar data från olika behandlingar sorteras i kolumner. Exempelvis hamnar datum för när de exporterade behandlingarna påbörjades under varandra i samma kolumn. Varje data-rad motsvarar vidare information om en behandling som en invånare genomgår/genomgått.

 

Stöd- och behandlingsplattformen tillåter en användare med behörigheten DataAdmin att exportera behandlingsinformation från den vårdenhet som användaren har medarbetaruppdrag i. Stöd- och behandlingsplattformen kan, utifrån en urvalsfunktion, generera en export-XML. Denna fil konverteras vidare till en CSV, för närvarande via en separat tjänst (CSV-generatorn). Tjänsten tillhandahåller en webbsida där användaren ges möjlighet att välja skiljetecken, teckenkodning samt att peka ut den XML fil som ska konverteras till CSV. Notera att Stöd- och behandlingsplattformens exportfunktionalitet komprimerar ihop XML filen till en ZIP fil. ZIP filen måste packas upp innan den kan pekas ut i CSV-konverteringsverktyget.

Informationsinnehållet i CSV filen är begränsat till att som mest kunna innehålla den information som XML-filen innehåller.

Teckenkodning

CSV-filen är textbaserad och kan väljas att kodas antingen i UTF-8 eller ISO-8859-1. Den teckenkodning du väljer måste stämma överens med teckenkodningen som systemet eller programmet använder som du vidare vill importera CSV-filen i. Oftast ges möjlighet att välja teckenkodning i samband med att du importerar filen. Ett tydligt resultat av att fel teckenkodning valts är att svenska tecken (Å, Ä, Ö) blir förvanskade.

CSV-filen som genereras innehåller teckenkodningen i filnamnet för att göra det tydligare när den ska vidare importeras.

Skiljetecken

I standardläge genereras kommatecken som skiljetecken mellan data. Detta medför i sin tur att kommatecken blir ett "förbjudet" tecken i allt datainnehåll så som svarstexter som invånare skrivit i formulärsvar eller kommatecknet i resultatvärden. I sådant fall kommer CSV generatorn att ersätta kommatecken med blanksteg i texter och med punkt (.) i resultatvärden.

CSV generatorn tillhandahåller dock möjligheten att definiera andra skiljetecken. Detta är användbart om användaren önskar få decimaltecknet som kommatecken i resultatvärdena istället för punkt. Det tecken som då väljs som skiljetecken kommer i sin tur att bli ett "förbjudet" tecken och därmed ersättas av CSV generatorn i exempelvis svarstexter. 

Varje rad (motsvarande hjälprubrikerna eller information från en behandling) avgränsas med ett radbryt. I CSV-filen motsvaras detta av de två bytes "0x0d, 0x0a" (hexadecimala tal). Det betyder således att även dessa tecken är "förbjudna" tecken i datainnehållet. Om vagnretur/radbryt finns i exempelvis en svarstext i ett formulärsvar kommer detta att ersättas av ett blanksteg av CSV generatorn.

Exempel på genererad data

När CSV filen vidare importeras till ett program så som exempelvis Excel, kommer data att delas upp så att data organiseras i separata celler, baserat på skiljetecknen och radbryten: 

 

 

Definition av radrubriker (hjälp-rader överst i CSV:n)

De första raderna i CSV filen representeras av kolumnrubriker. Genom att exportera multipla rubrikrader, där varje datakolumn får flera rader med tillhörande rubriker, kan ytterligare hjälpinformation om kolumnen exporteras. Om exempelvis en kolumn gäller data från formulärsvar kan kolumnen kompletteras med information om mall-id för den formulärmall som var grund för formuläret. Vidare kan versionen för formulärmallen eller frågetexten visas. 

Rubrikrad 1 håller en etikett/namn som visar vad för data som kolumnen innehåller (förutom första cellen på rad 1, kolumn 1, som är ett specialfall).

Se rubriken Definition på kolumnrubriker längre ner för kolumnernas definition och namnsyntax. De följande rubrikraderna är hjälp-rubriker med mera information som tillhör kolumninnehållet. Varje hjälp-rubrik är applicerbar för en delmängd av kolumnerna. För kolumner där rubriker ej är applicerbara står det NA (= NotApplicable) i cellen. Här följer definitionen på de översta rubrik-raderna.

Definition på kolumnrubriker

Rubrikrad X

Namn

Beskrivning

Rubrikrad X

Namn

Beskrivning

1

Etikett/namn på kolumn 

Översta raden består av kolumnrubriker som beskriver kolumninnehållet. Se kapitlet Kolumn-namnsättning på första rubrikraden för vidare definition av kolimnrubrikerna

2

HandlerHSAId

HSAId för behandlaren. Kolumner som inte berör data om behandlaren har värdet NA

3

FormTemplateId

Anger unikt id (UUID) för formulärmallen som har varit till grund för formulärinstansen. Kolumner som inte berör formulärinformation har värdet NA

4

FormTemplateVersion

Version för formulärmallen som har varit till grund för formulärinstansen. Kolumner som inte berör formulär har värdet NA

5

FormInstanceIndex

Index/räknare som identifierar instanser av formulär. Denna räknare är till hjälp för att enkelt kunna se vilka kolumner i en datarad härstammar från samma formulärinstans. Räknaren börjar på 1 och ökas för varje nytt formulär som visas på en rad. Räknaren ska inte ses som en identiferare av en specifik formulärinstans för en specifik behandling/moment. Räknaren är endast till för att enkelt gruppera kolumnerna visuellt i CSV uttaget.

6

FormType

Visar om formuläret är en del av ett mätbatteri, en del av en aktivitetsplan eller ett fristående formulär. Giltiga värden är MEASUREMENT_BATTERY_FORM|ACTIVITY_PLAN_FORM|FORM. Kolumner som innehåller resultat märks med RESULT.

7

FormName

Namn på formuläret. Kolumner som inte berör data gällande formulärfrågor/svar har värdet NA

8

FormQuestion

Fråga i formuläret. Kolumner som inte berör data gällande formulärfrågor/svar har värdet NA. Kolumner som tillhör samma formulärinstans föregås av en kolumn som visar datum för formuläret. För de kolumnerna märks FormQuestion med strängen "FORM_DATE"

9

FormInputType

Inmatningstyp för frågan. Visar vad för typ av inmatningsgränssnitt som frågan har i formuläret, exempelvis enkelt textinmatningsfält, lista med förval, flervalslista mm. Giltiga värden är TEXT|TEXTAREA|CHECKBOX|RADIO|SELECT|NUMBER|RANGE|MATRIXRADIO|MATRIXCHECKBOX|SCALE

10

FormAnswerAlternatives

Svarsalternativ för formulärfrågor som har flera förutbestämda svarsalternativ. Kolumner som inte berör data gällande formulärfrågor/svar med flerval har värdet NA

11

MeasurementBatteryName

Namn på mätbatteri, i de fall som kolumnen innehåller svar från formulär från mätbatterier. Kolumner som inte berör data gällande formulärfrågor/svar från mätbatterier har värdet NA

12

ResultName

Namn på resultatet. Kolumner som inte berör data gällande resultat har värdet NA

 

Tidsstämplar

Samtlig data som representerar tidsstämplar i CSV-uttaget som är genererade från datum eller datum+tid från händerlser i en behandling/moment visas i formatet:

Datum och tid

CCYY-MM-DD hh:mm

Exempel: 2017-12-12 16:16


Datum - (då ingen tidsstämpel finns med i XML uttaget)

CCYY-MM-DD 00:00
Exempel: 2017-12-12 00:00

 

 Observera:

Export-XML filen från Stöd- och behandlingsplattformen innehåller även sekunder och millisekunder för datum som inkluderar tiden. Likaså finns tidszonen angiven i XML filen för båda varianterna ovan. Millisekunderna och tidszonen filtreras bort av CSV generatorn. Detta för att underlätta för bearbetningen i exempelvis Excel.

Kolumn-namnsättning på första rubrikraden

Specialfall - Cell (1, 1)

Första cellen (rad 1, kolumn 1) visar vilka inställningar/filter användaren valde i exportgränssnittet vid export. Följande inställningar exporteras.

Attribut

Beskrivning

Datatyp/möjliga värden

Attribut

Beskrivning

Datatyp/möjliga värden

exportDate

Datum för när exporten gjordes

Format enligt rubriken "Tidsstämplar" ovan.

systemName

System som genererat exporten

"Stöd- och behandling" eller "Designverktyget"

processName

Namn på den momentmall som valts för export

 

specifiedSelection

Visar om alla behandlingar ska exporteras eller om filtrering ska ske på kategorier, personnummer eller endast export gällande en individ (ett personnummer)

Möjliga värden är ALL|FILTER_ON_CATEGORIES|ONLY_ONE_RESIDENT|SELECT_RESIDENTS

selectedCategories

Om filtrering valts baserat på kategorier visas de kategorier som önskats exporteras.

Den eller de kategorier som valts för export. Om mer än en kategori valts separeras kategorinamnen med tecknet "|". Exempelvis "Referensgrupp A|Referensgrupp B". Tomt om ingen filtering gjorts på kategorier. 

status

Visar om export valts för endast avslutade eller endast pågående behandlingar.

Giltiga värden är INPROGRESS|DONE|MAINTAIN

residentInformation

Visar om personuppgifter för behandlade personer ska ingå i exporten. Om personuppgifter valts exporteras personnummer och namn för behandlade personer (NONE). Exporten kan även anonymiseras (ANONYMIZED) alternativt att personumret krypteras i kombination med att namnet utelämnas (PSEUDOANONYMIZED). Vid kryptering av personumret skapas en till synes slumpmässig kod. Denna kod är dock densamma för en specifik individ. På så sätt kan exportdata som berör en specifik individ jämföras vid olika exporttillfällen eller om olika behandlingar som specifika individer gått ska korreleras.

Möjliga värden är NONE|ANONYMIZED|PSEUDOANONYMIZED

modulesExported

Visar om användaren valt att exportera information om moduler som ingår i behandlingen.

Möjliga värden är true|false

messageTransactionsExported

Visar om användaren valt att exportera information om meddelanden och kommentarer som skickats under behandlingen. Endast metadata kring emddelanden kommer i så fall att skickas med så som exempelvis datum då meddelandet skickades, i vilken riktning meddelandet skickats (invånare eller behandlare skickade). HSAId och namn på behandlaren om det var behandlaren som skickade meddelandet. Meddelandetexten exporteras inte.

Möjliga värden är true|false

linkedProcessesExported

Visar om användaren valt att även exportera Id:n för eventuellt länkade moment

Möjliga värden är true|false

activityPlansExported

Visar om användaren valt att exportera aktivitetsplaner

Möjliga värden är true|false

measurementBatteriesExported

Visar om användaren valt att exportera svarade formulär som ingår i mätbatterier

Möjliga värden är true|false

formsExported

Visar om användaren valt att exportera övrigt svarade formulär osm inte ingår i mätbatterier eller asktivitetsplaner. 

Möjliga värden är true|false

startFromPeriod

Visar ett valt startdatum för period inom vilken benhandlingen påbörjades, inklusive den valda dagen.

Format enligt rubriken "Tidsstämplar" ovan. Endast datum.

startToPeriod

Visar ett valt slutdatum för period inom vilken benhandlingen påbörjades, inklusive den valda dagen.

Format enligt rubriken "Tidsstämplar" ovan. Endast datum. Om inget datum anges, saknas detta attribut.

endFromPeriod

Visar ett valt startdatum för period inom vilken benhandlingen avslutades, inklusive den valda dagen.

Format enligt rubriken "Tidsstämplar" ovan. Endast datum. Om inget datum anges, saknas detta attribut.

endToPeriod

Visar ett valt slutdatum för period inom vilken benhandlingen avslutades, inklusive den valda dagen.

Format enligt rubriken "Tidsstämplar" ovan. Endast datum. Om inget datum anges, saknas detta attribut.

 

De ovan nämnda attributen och deras värden konkateneras som en sträng och exporteras i cell (1, 1). Exempelvis:

exportDate=2017-01-30|systemName=Stöd- och behandlingsplattformen|processName=Depressionsbehandling|specifiedSelection=ALL|selectedCategories=Referensgrupp A|status=DONE ... o s v

 

Övriga kolumnrubriker i första rubrikraden

Kolumnnamnen på första raden, efter cell (1, 1) har följande namn och innebörd. Ordningen i tabellen nedan visar även den ordning som kolumnerna genereras i CSV filen.

Kolumn-namn

Beskrivning

Kolumn-namn

Beskrivning

ProcessId

Unikt ID för behandlingen. Det unika ID:t pekar på instansen, d v s ett unikt ID för en behandling som invånare X deltar i.

ProcessName

Namn på behandlingen. Alla dataceller i denna kolumn kolumn kommer att innehålla samma namn eftersom endast en behandlingstyp kan exporteras per CSV exportfil

ProcessMajorVersion

Huvudversionsnummer på behandling. Version på en behandling representeras av <major>.<minor> exempelvis 1.1. Detta attribut innehåller <major>

ProcessMinorVersion

Underversionsnummer på behandling. Version på en behandling representeras av <major>.<minor> exempelvis 1.1. Detta attribut innehåller <minor>

ProcessStartDate

Datum då behandlingen påbörjades. Format enligt rubriken "Tidsstämplar" ovan.

ProcessEndDate

Datum då behandlingen avslutades. Format enligt rubriken "Tidsstämplar" ovan.

ProcessLastActivityDate

Senaste invånaraktivitet enligt formatet i rubriken "Tidsstämplar" ovan. Kan vara tomt om invånaren aldrig varit aktiv enligt momentets definition på aktivitet.

T.ex. 2015-01-13

ProcessStatus

Status på behandlingen vid exportens tidpunkt.

  • INPROGRESS (pågående)

  • MAINTAIN (i vidmakthållande)

  • DONE (avslutad)

ProcessTerminationReasonCode

Kod till avslutningsorsak i Snomed. Tom om behandlingen inte är avslutad, är i vidmakthållande, avslutningsorsak är satt till "Övrigt" eller om momentet avslutades innan release 1.12 (innan 24:e oktober 2017). Beskrivning av möjliga koder finns här Snomed CT

ProcessTerminationReasonText

Beskrivning/namn på avslutningsorsak enligt konfiguration i Stöd- och behandling. Konceptnamnet för Snomed CT koden kommer inte med i CSV:n. Tom om behandlingen inte är avslutad, är i vidmakthållande, avslutningsorsak är satt till "Övrigt" eller om momentet avslutades innan release 1.12 (innan 24:e oktober 2017).

ProcessCategory_XXX

Om filtreringen för exportuttaget baserats på kategorier kommer det att skapas en kolumn för varje kategori som valts att exporteras (enligt listan för selectedCategories i exportfiltreringen). XXX kommer att ersättas med kategorinamnet. Om exempelvis två kategorier av behandlingen filtrerats ut för att exporteras (exempelvis "Referensgrupp A" och "Referensgrupp B") kommer kolumnnamnen att bli ProcessCategory_Referensgrupp A och ProcessCategory_Referensgrupp B. Om inget filter för kategorier valts kommer denna/dessa kolumner att utelämnas i CSV:n.

Sorteringsordningen av kolumnerna för kategorier följer den ordningen som Stöd- och behandlingsplattformen exporterar kategorierna i XML filen, således den ordning som kategorierna renderas i XML noderna export.selectedCategories.

ConnectedProcessIds

Lista med behandlingar som invånare deltagit i och som är länkade till denna behandling. Listan består av det eller de unika ID för behandlingarna, motsvarande ProcessId ovan. Om den exporterade behandlingen har mer än ett länkat moment kommer de unika ID:n att konkateneras ihop i cellen, separerade med skiljetecknet "|".

Exempel "c5c0b045-6208-4fcc-82af-838093ad2504|a9c69253-2e32-45fe-9201-72b92006cb15"

ConnectedProcess_XXX

Lista med namn på behandlingar som invånare deltagit i och som är länkade till denna behandling. Listan består av det eller de namn för behandlingarna, motsvarande ProcessName ovan. Om den exporterade behandlingen har mer än ett länkat moment kommer namnen att konkateneras ihop i cellen, separerade med skiljetecknet "|".

Exempel "Depressionsbehandling|Behandling för sömnsvårighet"

CareGiverHsaId

HSA Id för vårdgivare som behandlaren arbetar under, för momentet. HSAId för organisation hämtas från medarbetaruppdraget för den behandlare som senast ansvarade för behandlingen.
 I de fall ett moment överlämnats mellan olika enheter visar vi den enhet och vårdgivare som den behandlare som sist var ansvarig för momentet tillhörde.

CareGiverName

Namn för vårdgivare som utför behandlingen. Namn för organisation hämtas från medarbetaruppdraget för den behandlare som senast ansvarade för behandlingen.
  I de fall ett moment överlämnats mellan olika enheter visar vi den enhet och vårdgivare som den behandlare som sist var ansvarig för momentet tillhörde.

CareUnitHsaId

HSA Id för vårdenhet som behandlaren arbetar under, för momentet. HSAId för organisation hämtas från medarbetaruppdraget för den behandlare som senast ansvarade för behandlingen.
 I de fall ett moment överlämnats mellan olika enheter visar vi den enhet och vårdgivare som den behandlare som sist var ansvarig för momentet tillhörde.

CareUnitName

Namn för vårdenhet som utför behandlingen. Namn för organisation hämtas från medarbetaruppdraget för den behandlare som senast ansvarade för behandlingen.
 I de fall ett moment överlämnats mellan olika enheter visar vi den enhet och vårdgivare som den behandlare som sist var ansvarig för momentet tillhörde.

UnitHsaId

Ändra sen HSA Id för den avdelning/enhet/kopplad enhet som utför behandlingen. HSAId för avdelning/enhet/kopplad enhet hämtas från den behandlare som senast ansvarade för behandlingen. Se förklaring i XML dok
 I de fall ett moment överlämnats mellan olika enheter visar vi den enhet och vårdgivare som den behandlare som sist var ansvarig för momentet tillhörde.

UnitName

Namn för avdelning/enhet/kopplad enhet som utför behandlingen. Namn för avdelning/enhet/kopplad enhet hämtas från den behandlare som senast ansvarade för behandlingen. 
 I de fall ett moment överlämnats mellan olika enheter visar vi den enhet och vårdgivare som den behandlare som sist var ansvarig för momentet tillhörde.

ResidentId

Personnummer för patient/invånare. Detta fält kommer bara med om användare valt "invånarinformation" i gränssnitet.  Användaren måste specifikt välja att personnumer ska exporteras för att data ska finnas med. Användaren kan dessutom välja att kryptera personnumret i de fall som det finns behov av att samköra flera olika exportuttag där information från samma individ ska sammankopplas. När personnummer krypteras genereras ändå samma kryptoresultat för samma individ, vid olika exporttillfällen. 

ResidentFirstName

Patientens förnamn. Om användaren valt att inte skicka med personnummer eller om personnummer valts att krypteras kommer detta fält att utelämnas.

Om invånaren har skyddad identitet skrivs "skyddad" i detta fält.

ResidentLastName

Patientens efternamn. Om användaren valt att inte skicka med personnummer eller om personnummer valts att krypteras kommer detta fält att vara tomt.

Om invånaren har skyddad identitet skrivs "identitet" i detta fält.

ResidentGender

Patientens/invånarens kön, möjliga värden är:

  • MALE

  • FEMALE

  • OTHER

ResidentAgeAtStart

Patientens/invånarens ålder då behandlingen påbörjades. Heltal.

NoOfModules

Totala antalet moduler i behandlingen

NoOfModulesStarted

Antal moduler som var i tillståndet Startade för invånaren. Om behandlingen är avslutad visar denna räknare vilka moduler som var i tillståndet Startade då behandlingen avslutades. Summan baserar sig på den senaste tillståndet modulen hade.

NoOfModulesPending

Antal moduler som var i tillståndet Kommande för invånaren. Om behandlingen är avslutad visar denna räknare vilka moduler som var i tillståndet Kommande då behandlingen avslutades. Summan baserar sig på den senaste tillståndet modulen hade.

NoOfModulesStopped

Antal moduler som var i tillståndet Stoppade/Avklarade för invånaren. Om behandlingen är avslutad visar denna räknare vilka moduler som var i tillståndet Stoppade/Avklarade då behandlingen avslutades. Summan baserar sig på den senaste tillståndet modulen hade.

NoOfMessagesFromHandler

Antalet meddelanden skickade från behandlare

NoOfMessagesFromResident

Antalet meddelanden skickade från invånaren

NoOfCommentsFromHandler

Antalet kommentarer skickade från behandlare

NoOfCommentsFromResident

Antalet kommentarer skickade från invånaren

NoOfSavedActivities

Aggregerat antal aktiviteter som är sparade. Summan som visas är totalsumman för alla sparade aktiviteter i behandlingen för invånaren.

NoOfMissedActivities

Aggregerat antal aktiviteter som är missade. Summan som visas är totalsumman för alla missade aktiviteter i behandlingen för invånaren.

NoOfSkippedActivities

Aggregerat antal aktiviteter som är skippade. Summan som visas är totalsumman för alla skippade aktiviteter i behandlingen för invånaren.

NoOfCancelledActivities

Aggregerat antal aktiviteter som är kancellerade. Summan som visas är totalsumman för alla kancellerade aktiviteter i behandlingen för invånaren.

NoOfSavedMeasurementBatteries

Aggregerat antal sparade mätbatterier. Summan som visas är totalsumman för alla sparade mätbatterier i behandlingen för invånaren.

NoOfMissedMeasurementBatteries

Aggregerat antal missade mätbatterier. Summan som visas är totalsumman för alla missade mätbatterier i behandlingen för invånaren.

NoOfCancelledMeasurementBatteries

Aggregerat antal kancellerade mätbatterier. Summan som visas är totalsumman för alla kancellerade mätbatterier i behandlingen för invånaren.

<förnamn>_<efternamn>_StartDate

Kolumnen visar när behandlaren fick/övertog ansvaret för behandlingen. Kolumnnamnet består av förnamn, efternamn, ihopslagna med "_" samt följt av "_startDate". Kolumnen itereras lika många gånger som det finns unika behandlare i hela uttagsfilen.

Om en behandlare har haft ansvaret under flera perioder under momentet kommer kolumnen visa startdatumet för första ansvarsperioden.

<förnamn>_<efternamn>_EndDate

Kolumnen visar när behandlaren avslutade behandlingen eller lämnade över ansvaret till annan behandlare. Kolumnnamnet består av förnamn, efternamn, ihopslagna med "_" samt följt av "_endDate". Kolumnen itereras lika många gånger som det finns unika behandlare i hela uttagsfilen. Om en behandlare har haft ansvaret under flera perioder under momentet kommer kolumnen visa slutdatumet för sista ansvarsperioden.

Om behandlingen fortfarande pågår kommer EndDate att vara "dagens datum", för när exportuttaget gjordes.

 (TODO: Att fundera över: behandlare med flera förnamn, dubbel-efternamn mm)

<förnamn>_<efternamn>_NoOfDays

Kolumnen visar hur många dagar behandlaren ansvarat för behandlingen. Om behandlaren lämnat över ansvaret under perioden räknas dessa dagar bort.

<formulärnamn>_<index1>_<mätbatterinamn>_[M|A|F]_<index2>

Kolumnen visar svar från fråga i ett formulär. För att avgöra från vilket formulär frågan/svaret kommer har kolumnnamnet byggts upp på följande sätt:
<formulärnamn> = I första hand alternativnamnet för formuläret. Om detta är tomt tas de första 10 tecknen från formulärnamnet
<index1> = löpsiffra som visar vilken fråga i ordningen det är i formuläret. Om frågan är en flervalsfråga kommer varje valbart alternativ att exporteras i en egen kolumn. Index1 får då ett två-ställigt värde, t ex 1_1, 1_2, 1_3 om frågan har tre svarsalternativ.

<mätbatterinamn> =

  1. Om formuläret är del av ett mätbatteri tas mätbatteriets alternativa namn.

  2. Om alternativa namnet är tomt tas de 10 första tecknen på mätbatteriets namn.

  3. Om formuläret är en aktivitetsplan eller ett övrigt formulär blir <mätbatterinamn tomt>.

[M|A|F] = märkning som visar om formuläret är del av ett mätbatteri (M), del av aktivitetsplan (A) eller ett vanligt formulär (F)

<index2> löpsiffra som ökas för varje ny formulärsvarskolumn

För frågor som är envalsfrågor eller flervalsfrågor kommer det att skapas en kolumn per svarsalternativ. Datacellen innehåller vidare ett boolskt värde (0/1) som visar om invånaren svarat med att välja alternativet (0 = alternativet ej valt, 1 = anternativet valt).

För att formulärsvar från olika moment ska hamna i samma kolumn gäller följande kriterier:

  1. Formulärmalls-id matchar:

  2. Formulärmalls-version matchar

  3. Formuläret är skapat ur samma sammanhang, d v s ingår i mätbatteri, aktivitetsplan eller är ett "övrigt" formulär.

  4. Fråga i formuläret 

Sorteringsordningen av kolumner som gäller formulärsvar är, i prioriteringsordning:

  1. Svar från samma formulärinstans kommer alltid efter varandra, sorterade i den ordning frågorna har i formulärmallen. Ordningen är alltid samma inom en formulär-mall

  2. Formuläret är skapat ur samma sammanhang, d v s ingår i mätbatteri

  3. Formuläret är skapat ur samma sammanhang, d v s är en aktivitet i aktivitetsplan

  4. Formuläret är skapat ur samma sammanhang, är ett formulär som inte ingår i ett mätbatteri eller är en aktivitetsplan.

  5. Om formuläret är del av ett mätbatteri och om mätbatteriet har ett alternativt namn, sorteras kolumner efter det alternativa namnet

  6. Om formuläret är del av ett mätbatteri sorteras kolumner efter mätbatteriets namn

  7. Om formulärmallen har ett alternativt namn, sorteras kolumnerna på det alternativa namnet

  8. Formulärmallens namn

  9. Formulärmallens unika ID

  10. Formulärmallens versionsnummer

  11. Inom den kvarstående grupperingen sorteras kolumnerna i tidsordning, den ordning som invånaren svarat på formulären

XML:en som är till grund för CSV:n sorterar datat dessutom i tidsordning. Det betyder att om samma fråga i ett formulär svarats flera gånger (olika formulärinstanser av samma formulärmall) kommer kolumnerna att hamna i "tidsordning". Dock har generatorn för CSV ingen egen logik för att säkerställa detta.

 Gruppen av kolumner som tillhör samma formulärinstans föregås av en kolumn som innehåller datum för formuläret. Datumet som då visas är (i prioritetsordning):

  1. Det datum då en mätning/svar förväntades (motsvarar ReferralDate i XML)

  2. Det datum då formuläret senast sparades (motsvarar LastSavedDate i XML)

Kolumnnamnet byggs upp enligt <formulärnamn>_<index1>_<mätbatterinamn>_[M|A|F]_Date_<index2>

<resultatnamn>_<formulärnamn>_R_<index>_<index2>

Resultat från formulärberäkning. 

<resultatnamn> =

  1. Om resultatet har ett alternativt namn tas det alternativa namnet

  2. Annars tas resultatnamnet. Om resultatnamnet består av mer än 10 tecken trunkeras strängen till 10 tecken

<formulärnamn> =  I första hand alternativnamnet för formuläret. Om detta är tomt tas de första 10 tecknen från formulärnamnet

<index> = Index som visar vilket resultat i ordningen det är inom formulärinstansen..

<index2> = löpsiffra för att skilja på resultatkolumner med samma namn.

CSV exporten säkerställer att resultat som hamnar i samma kolumn (från olika behandlingar) härstammar från samma formulär (samma formulärnamn) och har samma namn på resultatet.

För att resultat från olika moment ska hamna i samma kolumn gäller följande kriterier:

  1. Resultatet är från formulärmall med samma formulärmall-id 

  2. Resultatet är från formulärmall med samma formulärmall-version

  3. Resultatet har samma resultatnamn (både alternativt namn och namn på resultat)

Resultatkolumner kommer efter de formulärkolumnerna som genererat resultaten.

Övriga rader - dataraderna

Raderna efter rubrikraderna innehåller exporterad data från behandlingarna. En data-rad motsvarar en behandling för en invånare. Kolumn-namn som nedan är definierade med exempelvis <förnamn> kommer att i exporten ersättas med den berörda behandlarens förnamn, o s v.

Kolumnsortering i CSV:n

Datainnehållet i CSV-filen bygger dels på statisk information, d v s sådan information som enkelt kan visas på fasta positioner, exempelvis namn på behandlingen, datum då behandlingen påbörjades, information om invånaren som gått behandlingen mm. Dels på sådan information som skapas dynamiskt, allteftersom behandlingen/momentet fortgår, exempelvis formulärsvar, utifrån mätbatterier eller aktiviteter som invånaren har svarat på.

Den statiska informationen kan enkelt positioneras i kolumner där ordningen blir förutsägbar. Det går m a o att förutsäga att exempelvis första datakolumnen innehåller ett unikt id för behandlingen/momemtet, den femte datakolumnen innehåller tidsstämpel då behandlingen påbörjades. Dessa kolumner följer den positionering som visas i tabellen ovan, Övriga kolumner i första rubrikraden.

Positioneringen av den data som skapas dynamiskt ger däremot en mer utmanande logik. Som exempel kan det i exportuttaget finnas information om flera behandlingar/moment som pågått olika länge och med olika mängd aktivitet från invånare. En invånare kan ha valt att fylla i aktiviteter från en aktivitetsplan varje dag, medan en annan invånare kan ha valt att avstå från att vara lika delaktig och därmed endast fyllt i samma aktiviteter ett fåtal gånger.

Utifrån syftet med CSV-uttaget, som är att i största mån kunna jämföra data från olika behandlingar, finns det ett behov av att para ihop informationen från olika behandlingar i gemensamma kolumner. Samtidigt behöver CSV-generatorn säkerställa att endast jämförbar information ska placeras i samma kolumner. CSV-generatiorn har således inbyggd logik för att maximera dessa två behov. Sorteringsordningen för den dynamiskt skapade informationen blir även den en utmaning i ett uttag där olika behandlingar/moment innehåller olika mängd data, har påbörjats under olika tidspunker och vidare där invånarens progress genom behandlingen varierat i tiden.

Sorteringsordningen av kolumner sker på följande sätt:

Statiska kolumner

Kolumner som visar information om behandlare

Aggregerad information om moduler, mätbatterier, aktiviteter och meddelanden

Kolumner för formulärsvar och resultat

Statiska kolumner

Kolumner som visar information om behandlare

Aggregerad information om moduler, mätbatterier, aktiviteter och meddelanden

Kolumner för formulärsvar och resultat

Exempelvis unikt id för behandlingen, starttidpunkt för behandlingen mm

För varje unik behandlare som indentifieras inom hela XML exportfilen skapas tre kolumner motsvarande start- och slutdatum då behandlaren först fick ansvar för behandlingen, Sist hade ansvaret, samt hur maånga dagar totalt behandlaren hade ansvaret. 

Dessa kolumner, som exempelvis summerar antalet moduler i tillståndet "startade", antalet meddelanden som behandlaren skickat till invånaren mm, är fasta i sitt antal. Dock påverkas kolumnerna utifrån det urval data-administratören gjort vid exporten. Om data-administratören valt att inte exportera information om moduler kommer de kolumner som visar aggregering av modulers tillstånd att uteslutas.

Samtliga formulärsvar från en behandling grupperas ihop. Inom denna grupp sorteras kolumnerna inbördes genom följande sorteringsordning:

  1. Svar från samma formulärinstans kommer alltid efter varandra, sorterade i den ordning frågorna har i formulärmallen. Ordningen är alltid samma inom en formulär-mall