Hoppa till innehållet
ErsviaErsviaSystemarkitekturdokument

10. Kvalitetskrav

10.1 Kvalitetsträd#

Kvalitetsträdet delar upp målen för kvalitet i kapitel 1.4 (ISO/IEC 25010:2023) i scenarier. Ett scenario är ett konkret fall som går att pröva och mäta.

Kvalitetsegenskap Delegenskap Scenarier
Funktionell lämplighet Korrekthet Q1, Q2, Q3
Fullständighet Q4
Säkerhet Konfidentialitet Q5, Q6
Spårbarhet och oavvislighet Q7, Q8
Integritet Q9
Prestanda Tidsbeteende Q10, Q11
Kapacitet Q12
Tillförlitlighet Tillgänglighet Q13
Återställbarhet Q14
Feltolerans Q15
Kompatibilitet Interoperabilitet Q16, Q17
Underhållbarhet Modifierbarhet Q18, Q19
Modularitet Q20
Testbarhet Q21
Flexibilitet Anpassningsbarhet Q22
Interaktionsförmåga Tillgänglighet och lärbarhet Q23, Q24
Flyttbarhet Installerbarhet och utbytbarhet Q25, Q26

10.2 Kvalitetsscenarier#

Varje scenario har källa, stimulus, miljö, svar och mått, som i den vanliga mallen. Källan är den som gör något, och stimulus är det som händer. Miljön är läget när det sker. Svaret är vad systemet gör, och måttet visar om det räcker.

Id Källa och stimulus Miljö Svar Mått Krav Verifiering
Q1 Controller kör om majberäkningen 2026 i november med samma manifest Produktion, efter flera retroaktiva beslut Samma belopp per ersättningsrad Bitidentiskt resultat (samma hash över ersättningsraderna) KRAV-36 POST /korningar/{id}/reproducera, facit maj 2026, IntegritetTester
Q2 Nämnden beslutar i augusti om nya belopp från maj Normal drift Omräkning med nytt manifest och differensunderlag med bara skillnaden Differensen stämmer mot facit på kronan. Den ursprungliga körningen finns kvar. KRAV-55 Golden-test, s05
Q3 Parallellkörning mot ERSMO/HEJ Acceptans Skillnader per vårdgivare förklaras 100 % av skillnaderna förklarade under 3 månader i rad före bytet KRAV-72, risk 1 Migrering-rapport
Q4 En ny ersättningsform beslutas (t.ex. en trappa på CNI) Normal drift Controllern bygger den av befintliga mallar Ingen kodändring. Minst 95 % av regeländringarna under ett år utan utveckling. Mål 2, KRAV-20 Uppföljning av ändringsärenden
Q5 En utvecklare försöker referera Personuppgifters interna typer från Berakning Bygge Bygget stoppas Arkitekturtestet faller KRAV-18, ADR 0001 ModulgransTester
Q6 Ett fakturaunderlag skapas för en patient med skyddad identitet Normal drift Inga personnummer eller namn i underlaget 0 träffar för personnummermönster i fakturor och exporter (automatisk skanning) KRAV-18, planen 4f Integrationstest
Q7 En handläggare läser en vårdhändelse med personuppgifter Normal drift Läsningen loggas 100 % av läsningarna finns i revisionsloggen med aktör, tid och objekt KRAV-67 Integrationstest, logguppföljning
Q8 Samma controller försöker godkänna sin egen regelversion Normal drift Godkännandet avvisas RV-5001, och försöket loggas KRAV-21 Enhetstest, s06
Q9 Någon ändrar en revisionspost direkt i databasen Angrepp Ändringen upptäcks VerifieraAsync pekar ut den första trasiga posten KRAV-67 OutboxOchRevisionTester
Q10 Ett journalsystem skickar 10 000 vårdhändelser under en topptimme Toppbelastning Alla valideras Valideringsresultat för 100 % inom 1 timme, p95 inom 10 minuter. Uppmätt i F4: 70 000 händelser validerade på 4,2 minuter (marginal cirka 14 gånger) KRAV-15 VardhandelseLasttest (matningar.md)
Q11 Månadsstängning för alla vårdgivare Månadsskifte Hela beräkningen klar Högst 4 timmar. Uppmätt i F6: 2 miljoner vårdhändelser och 2,4 miljoner listade på 4,5 min; 3× volym cirka 13,6 min KRAV-35 BerakningLasttest (matningar.md)
Q12 Ett år med vårdhändelser Normal drift Systemet klarar volymen 25 miljoner öppenvårdstillfällen och 300 000 slutenvårdstillfällen per år, med partitionering per månad B3 Lasttest
Q13 En nod i klustret går ned under kontorstid Produktion Trafiken flyttas till andra repliker Tillgänglighet minst 99,5 % under kontorstid KRAV-70 Driftstatistik
Q14 Primärdatabasen förstörs Produktion Återställning från WAL-arkiv Dataförlust högst 1 timme (RPO). Återställning inom 4 timmar (RTO, förslag) KRAV-70 Kvartalsvis återställningsövning
Q15 Raindance svarar inte när fakturor skickas Produktion Fakturan köas och skickas om Ingen faktura går förlorad eller skickas två gånger (idempotens) KRAV-54 Integrationstest med mock
Q16 Ett journalsystem byter till Ersvia Övergång Systemet fortsätter som i dag Bara bas-URL ändras. 100 % av GVR v2-paritetstesterna gröna. Uppfyllt i F9a: 59/59 (v2.0.0) och 54/54 (v1.9.5) operationer, svaren validerade mot specens scheman KRAV-6, KRAV-72 GvrParitetTester
Q17 Inera anropar carelisting Create Normal drift Listningen registreras enligt kontraktet Kontraktstest mot WSDL/schema för v2.1 KRAV-12 Kontraktstest
Q18 SKR ändrar riksavtalets pris för digitala kontakter Normal drift Ny parameterversion Klart inom en arbetsdag, utan release KRAV-19 Användartest
Q19 Uppgradering av .NET eller PostgreSQL Förvaltning Komponenten uppgraderas för sig Ingen ändring i andra moduler KRAV-78 CI
Q20 Regionen vill byta ut beräkningen mot ett standardsystem Förvaltning Beräkningen byts ut bakom sina kontrakt Övriga moduler oförändrade KRAV-71, KRAV-74 Kontraktstester
Q21 Ett skall-krav saknar test CI Täckningsrapporten visar luckan 100 % av skall-kraven har ett taggat test eller en dokumenterad mätning Planen avsnitt 9 JUnit till TestViora
Q22 En ny region (Region Exempel) installerar Ersvia Installation Fungerar med eget regionpaket Ingen kodändring. E2E-scenariot grönt för båda paketen. KRAV-76, ADR 0010 E2E
Q23 En vårdgivare som använder skärmläsare granskar sitt fakturaunderlag Portal Alla uppgifter går att utföra WCAG 2.2 AA, 0 allvarliga axe-fel KRAV-69 axe och manuella test
Q24 En ny controller gör en regeländring och en månadsgranskning Användartest före driftstart Klarar uppgifterna Efter högst en dags utbildning KRAV-77 Användartest
Q25 Regionen byter leverantör Avveckling All data exporteras Regler, avtal, underlag och beräkningar i öppet format, fullständigt KRAV-79 Exporttest
Q26 Leverans till e-arkiv Enligt dokumenthanteringsplanen Paketen godtas FGS Paketstruktur 2.0 validerar KRAV-75 Validering mot FGS

10.3 Uppmätta värden (slutversion)#

Mätningarna finns i docs/plan/matningar.md. Maskinen var en WSL2-maskin med 12 kärnor och cirka 7–8 GB RAM. Den delades med andra agenter som byggde.

Scenario Krav Uppmätt Marginal Test eller skript
Q10 Validering av en dygnsvolym (70 000 vårdhändelser) Högst 60 min (KRAV-15) 4,2 min: inskick 687 händelser/s, asynkron validering 281 händelser/s med 4 arbetare cirka 14 gånger VardhandelseLasttest
Q11 Månadsberäkning, full volym (2 miljoner vårdhändelser, 2,4 miljoner listade, 240 vårdcentraler) Högst 4 timmar (KRAV-35) 4,5 min (272,8 s), 7 330 vårdhändelser/s; 3× volym cirka 13,6 min; toppminne 4,5 GB cirka 50 gånger BerakningLasttest
Q1 Reproduktion Bitidentiskt (KRAV-36) Samma resultathash efter omstart och efter att händelserna markerats som ersatta – BerakningIntegrationTester, E2E steg 9b
Q22 Två regioner utan kodändring E2E grönt för båda regionpaketen (KRAV-76) 24/24 gröna (12 steg × 2 regioner) i delat zonläge med mTLS-zonbrygga; beräkningen mot facit har 0 avvikelser; cirka 42 s för båda regionerna inklusive containerstart och migrationer – tests/Ersvia.Tests.E2E
Fullstack i containrar Alla images startar och samverkar 15/15 kontroller gröna i docker compose (hälsa ×6, zonurval, zonbrygga, OIDC-inloggning, portalen inloggad, GVR med certifikat); 34 s till grön smoke; cirka 1,15 GB minne totalt – scripts/fullstack-smoke.sh
Q16 GVR-paritet 100 % av operationerna 59/59 (v2.0.0) och 54/54 (v1.9.5) – GvrParitetTester
Q23 Tillgänglighet WCAG 2.2 AA, 0 allvarliga fel (KRAV-69) 0 överträdelser på 67 axe-granskningar i portalen; SAD-sajten 0 överträdelser – axe.mjs, sad-sajt.mjs
Q14 Återställning RPO ≤ 1 timme (KRAV-70) WAL-arkivering med archive_timeout = 300 ger RPO ≤ 5 min; veckovis återläsningstest med hashkedjeverifiering – deploy/backup/, kontinuitet.md
Q21 Kravtäckning Alla skall-krav har test 78 av 79 K-krav har grönt test (K74 är organisatoriskt); 21 av 40 lagkrav (NK); i TestViora har 100 av 119 krav test och 0 är underkända – kravtackning.md, testviora-uppladdning.md
Testsviten Allt grönt 1125 av 1125 (678 enhet, 274 kontrakt, 21 arkitektur, 37 integration, 24 E2E, 54 portal, 37 AI); 0 varningar i bygget – dotnet test

Smoken (ett snabbt test av att allt startar och hänger ihop) hittade fem fel i drift och compose. De rättades i F12b. Det var dubbla appsettings när patientdata publicerades, och migrationsjobb som körde samtidigt. Det var också zonroller som saknade en anslutning som administratör, och värdar som migrerade vid start som zonroll. Det sista var GVR-certifikat bakom en ingress som avslutar TLS.

Allt är mätt i en miljö för utveckling, inte i regionens miljö för produktion. Tillgänglighet (99,5 %) och RTO (hur snabbt systemet är i gång igen efter ett avbrott) kan bara mätas i drift.

Ersvia SAD · version b706ca6 (2026-11-11) (med ändringar som inte är incheckade) · byggd 2026-11-11 · Ändringslogg · Diagramgalleri · Källa: docs/arkitektur/kapitel/10-kvalitetskrav.md

Sök i dokumentet

100 % Ladda ned SVG