Hoppa till innehållet
ErsviaErsviaSystemarkitekturdokument

11. Risker och teknisk skuld

11.1 Risker#

Riskerna R1–R5 kommer från TestViora (sannolikhet och konsekvens på skalan 1–5). R6 och framåt har tillkommit i arkitekturarbetet.

Id Risk S K Ägare Åtgärd i arkitekturen Status
R1 Fel i ersättningen vid systembytet 3 5 Controller på HSF Parallellkörning i minst 3 månader med förklarade skillnader per vårdgivare (Migrering, AI-förklaring). Golden files. Reproducerbara körningar. Öppen
R2 Regelverket blir för komplext för verksamheten 3 4 Systemförvaltningen Regler som tabeller med villkor och utfall. Åtta primitiver och färdiga mallar. Tidig prototyp med controllers. Regelassistent. Öppen
R3 Det nya systemet upprepar gamla strukturer 3 4 HSF Målarkitektur som grund. Workshoppar med vårdgivare, handläggare och uppföljning. Kanonisk modell i stället för GVR-modellen i kärnan. Öppen
R4 Bristande datakvalitet i underlagen 4 4 Systemförvaltningen Validering vid mottagandet, svar inom 1 h, begripliga felkoder med AI-förklaring, datakvalitetsmått, nattlig omkörning av RF. Öppen
R5 Obehörig åtkomst till känsliga personuppgifter 2 5 Systemförvaltningen Zoner, pseudonymisering, behörighet per roll och vårdgivare, läsloggning, hashkedjad revisionslogg, logguppföljning. Öppen
R6 Legacyformat som saknar publik specifikation (Kodserverns XML, FUMS-filer, VF:s e-faktura, SNOD25) 4 3 Arkitekt Bygg efter publicerade specar. Beställ formaten från förvaltningarna. Adaptrar isolerar formaten. Öppen
R7 Ineras tjänstekontrakt för listning och anslutningen till NTjP/RTP försenas 3 4 HSF Mock i MVP. Port med två adaptrar (egen listning eller statlig tjänst). Tidig dialog med Inera. Öppen
R8 Prestanda för månadsberäkningen (≤ 4 h) nås inte 2 4 Utvecklingsteamet Parallellisering per vårdgivare, förberäknade ögonblicksbilder, lasttest redan i F7. Öppen
R9 AI ger felaktiga regelutkast eller läcker personuppgifter 3 4 Arkitekt Utkast, fyra ögon, simulering och facittest. Pseudonymisering och utgående filter. Eval-svit. Lokal modell. Öppen
R10 Avtalstexterna kräver i dag VF, HEJ, AF, FUMS och FUL 5 3 HSF Införandeaktivitet: avtalsändring och information till vårdgivarna före platå C. Öppen
R11 Cirka 40 avtalsområden publicerar inga ersättningsvillkor 5 3 HSF Begär ut villkoren från HSF eller E-avrop. Mallarna är generella. OCR för OSAS-villkoren. Öppen
R12 Omorganisation (föreslagen Psykiatrinämnd 2027, RS 2026-0416) och nya föreskrifter (patientregistret 2027, ICD-11 2029) 4 3 HSF Beställarnämnd som bitemporal dimension. Generisk kodverksmodell. Öppen
R13 Inloggningsuppgifter till NTjP-API:er finns i Ineras publika JavaScript 3 3 Användaren Uppgifterna har inte använts. Användaren kan välja att rapportera det till Inera. Öppen
R14 Leverantörs- och kompetensberoende för en egenutvecklad produkt 3 3 HSF Öppen källkod i stacken, dokumenterade kontrakt, SAD och ADR, export utan inlåsning. Öppen

| R15 | Införanderisk: BEST-moderniseringen (Sopra Steria), Symfoni 2.0, Cosmic 2029 och upphandlingen av leverantörskontroller (HSN 2026-0081) kan överlappa eller konkurrera | 3 | 4 | HSF | Kontaktplan för HSN 2026-0799 (samlad plan för vårdersättning). Modulpaket som kan köpas var för sig. | Öppen | | R16 | AI-förordningens högriskkrav från 2027-12-02 och GDPR-profilering av enskilda näringsidkare | 3 | 4 | Arkitekt | AI-register, högriskfunktioner avstängda som standard, DPIA, konsekvensbedömning art. 27 (kap. 8.6) | Öppen | | R17 | NIS 2-ansvar hos leverantör vid drift som tjänst | 3 | 4 | HSF | ADR om säkerhetsdrift, avtalskrav, incidentflöde 24 h/72 h/1 mån (kap. 8.4) | Öppen |

Arkitekturrisker från kontroll 3#

Den oberoende granskningen (docs/underlag/verifiering/kontroll3.md avsnitt 4) gav tolv arkitekturrisker. De tas in som ADR:er i den fas de berör.

Id Risk Åtgärd Fas Status
K3-R1 Rättelse av en delperiod i bitemporal lagring är felbenägen, och ersattTid omfattas inte av hashkedjan Rättelse som en operation i lagret, stängningen kedjas som egen händelse F2–F3 Delvis (F2: oföränderlighetstrigger och AvslutaAsync)
K3-R2 As-of-uppslag per vårdhändelse blir dyrt Manifestet kompileras till en oföränderlig ögonblicksbild i minnet vid körningens start F6 Öppen
K3-R3 Prestanda: cirka 2,1 miljoner händelser per månad, trace på flera GB, retroaktiva omräkningar över 12+ månader, listning per dag ger cirka 900 miljoner rader per år Mängdbaserad beräkning partitionerad per huvudman och period, intervall-lagring av listning, lasttest 3× F5, F6 Öppen
K3-R4 Zonerna är bara logiska i en monolit Egen process och deploybar enhet, DB-roll utan grants, HMAC per tenant och ändamål med nyckel i KMS/HSM, test som visar att ersättningszonen inte når patientdata F8, F12 Öppen
K3-R5 Pseudonymiserade data är fortfarande personuppgifter DPIA, k-anonymitet och aggregering före AI, extern LLM avstängd tills beslut F11 Öppen
K3-R6 Återidentifiering saknas för drill-down och utlämning Återidentifieringstjänst och utlämningsexport i patientdatazonen F8 Öppen
K3-R7 NIS 2 i leveranskedjan ADR om säkerhetsdrift F12 Öppen
K3-R8 AI Act och GDPR: profilering av enskilda näringsidkare, art. 50.1 AI-register med klassning (kap. 8.6) F11 Öppen
K3-R9 Multi-tenant: läckage via poolade anslutningar, bakgrundsjobb eller outbox utan tenant; app-roll med BYPASSRLS; KSON passar inte "huvudman = region" SET LOCAL per transaktion, test som misslyckas om tenant saknas, app-roll utan BYPASSRLS F2–F4 Delvis (F2: RLS ENABLE + FORCE, app-roll utan BYPASSRLS, explicit filtrering, RLS-test stockholm/exempel)
K3-R10 Regelmotorns uttrycksförmåga (pooler, årstak mitt i period, avrundning) Fyra körfaser, DAG, avrundningsregel per mall F3 Öppen
K3-R11 ERSMO/HEJ saknar transaktionstid Legacy-manifest med källsystem och hash, differens mot importerat utfall, tee från GVR under parallellkörningen F10 Öppen
K3-R12 Beroenden i organisationen Se R15 Löpande Öppen

11.2 Teknisk skuld (känd och avsiktlig)#

Id Skuld Orsak Planerad åtgärd Fas
T1 Outbox och revisionslogg är in-memory F0-skelett Åtgärdad i F2: PostgresOutbox och PostgresRevisionslogg per schema (ADR 0011) F2
T2 Masterdata använder in-memory-lager och saknar migrationer F0 Åtgärdad i F2: EF-migrationer per modul, PostgresBitemporalLager F2
T3 Nio moduler finns i Modulkatalog efter F5 (Masterdata, Kodverk, Personuppgifter, Overenskommelse, Vardhandelser, Vantande, Identitet, Regelverk, Listning) Fasordning Moduler läggs till fas för fas F6–F11
T4 AsyncAPI-kontrakten saknas, ADR 0006 har gammal namnform Åtgärdad: AsyncAPI i F1, ADR 0006 reviderad i SAD v3. Åtta planerade händelser saknas fortfarande i kontraktet (kap. 8.8). F1, löpande
T5 Felkodskatalogen bygger delvis på dokument från 2015. FA-5101 (utomläns äldre än 6 månader) saknas. Underlag Verifiera med förvaltningarna, lägg in FA-5101 F8, F9
T6 Zonerna är bara logiska Fasordning Åtgärdad i F12a (ADR 0020): två värdar, zonbrygga, databasroller, INyckelkalla. Kvar: F8-adaptrarna i delat zonläge (T33) F12a
T10 Listfrågor och aggregering filtrerar i minnet efter AllaAsOf (masterdata, avtal och listning; ögonblicksbildens poster lagras som dokument) ADR 0011, ADR 0014 Vårdhändelser och idempotens är åtgärdade i F4 (partitionerad tabell och idempotens-tabell). Listning behöver indexerade kolumner (enhet, typ) eller en materialiserad vy per dag, och posterna en egen tabell, vid lasttestet i F6 F6
T11 Klassdiagrammen d02–d08 och ER-diagrammen visar målbilden SAD före koden Delvis åtgärdad i SAD v3: d02–d05, e01, e02 och e04 visar det byggda (F2–F5). d06–d08 och e03 är märkta som målbild och stäms av i F7–F8. F7–F8
T7 Ingen riktig mTLS eller OIDC i F0 F0 Keycloak och dev-CA i Aspire F2–F5
T8 Integrationsadaptrar saknas (bara README) F0 Port, adapter och mock per integration F2–F9
T9 Diagram och tabell- och gränssnittsnamn i SAD:en är delvis före koden (vardhandelse_version, idempotens, trace, manifest_post, listningsogonblicksbild, IVardhandelseMottagning, IPseudonymisering, IRegelversionLas) SAD skrivs före F2–F7 SAD:en uppdateras efter varje fas, och avvikelser rättas i den riktning koden visar Löpande
T12 Listningsreglerna ligger i Listnings egen konfiguration (listningsregler.json, regler_version, Listningsregelmotor) och inte i Regelverk F3 och F5 byggdes parallellt (ADR 0014) Byt IListningsregelkalla mot en adapter mot Regelverk när motorn kan uttrycka listningsregler som beslutstabell per regionpaket F6–F7
T13 Kö, index och uppehåll i Listning är dokument utan transaktion över flera dokument; listning körs sekventiellt per huvudman MVP Egen tabell eller transaktion över dokument F6
T14 GVR-journal, vårdplatser, SNOD och CVR-fil saknas Fasordning Åtgärdad i F9a utom SNOD25 (T23) och VF-.prn/AF-Excel (F9b) F9a
T15 carelisting v2.1 exponeras över REST, inte RIVTA via NTjP MVP NTjP/RIVTA-adapter ovanpå ICarelistingProducent F9–F12
T16 Personuppgifters hashkedjade åtkomstlogg skrivs seriellt per huvudman (flaskhals i lasttestet), och PostgreSQL:s gräns på 100 anslutningar räcker bara upp till cirka 16 samtidiga valideringar F4-mätning Batchad loggning eller partitionerad kedja; anslutningspooler F6
T17 Tre ADR:er hade numret 0012 Parallellt arbete Åtgärdad (1d377a2): 0012 vårdhändelser, 0013 regelmotor, 0014 listning Klar
T18 Regelmotorns kända luckor: mätning vid flera tidpunkter i mål, riskpott i tandvård, LOL-undantag över tak 2, arvode som passerar tak 1 mitt i ett besök ADR 0013 Byggs i F6–F7 F6–F7
T19 Beräkningskörningen är synkron i anropet (202 med avslutat jobb) ADR 0015 Bakgrundskö och jobbstatus F12
T20 Efterregistrerade händelser räknas inte i faktureringsmånaden ADR 0015 Åtgärdad i F8: faktureringsdatum i periodfiltret (ADR 0019) F8
T21 Momskompensation omfattar inte ackumulerade regler ADR 0015 Åtgärdad i F8: raden MOMSK-AVTAL på allt fakturerat (ADR 0019) F8
T22 GVR:s akut- och tillgänglighetsfält lagras bara i kompatibilitetsfasadens gvrpost, inte i Vårdhändelser F9a Ta in fälten i den kanoniska vårdhändelsen om de behövs för ersättning eller uppföljning F10
T23 SNOD25 med fast postlayout och SNOD-XSD saknas i underlaget och är inte byggda F9a Begär specifikation från GVR-förvaltningen (öppen fråga F1) F9b
T24 Listningsbilden hålls i minnet för alla listade (toppminne 4,5 GB vid full volym) F6-mätning Hämta listning per vårdenhet ur porten eller sänk parallelliteten F12
T25 Rader och trace lagras som dokument per körning och vårdgivare ADR 0015 Egen tabell om Avstämning (F8) kräver det F8
T26 Indikatorer och kontrollregler ligger i egna moduler (Malrelaterad, Granskning) och inte i Regelverk ADR 0017 Avsiktligt; omprövas om regelmotorn får indata för täljare, nämnare och kontrollhändelser Löpande
T27 Referensräntor och beloppsnivåer i attest- och delegationsmatriserna är exempelvärden i regionpaketet Inget publicerat attestreglemente Regionen fyller i från beslutsordningen och Riksbankens beslut varje halvår Införande
T28 Skuggningskön till gamla GVR ligger i minnet; full kö eller omstart tappar anrop ADR 0018 Beständig kö (outbox) före skuggning med full volym F12
T29 Leveranser och exporter lagras base64-kodade som dokument ADR 0018 Objektlagring eller leveranskatalog, bara manifestet i databasen F12
T30 KPP-layouten 2025 och patientregistrets variabelförteckning finns inte i underlaget; layouten är tolkad ADR 0018 Begär specifikationerna från SKR och Socialstyrelsen F12
T31 AI-revisionsloggen är en JSON Lines-fil ADR 0016 Åtgärdad i F12a: AI-zonens databas F12a
T32 Anthropic-adaptern är otestad mot det riktiga API:t F11a Integrationstest med nyckel i en godkänd miljö F11b
T33 F8:s adaptrar för faktureringsunderlag, avstämningsunderlag och AF/billing:claim (IFaktureringsunderlag, IAvstamningsunderlag, IKompatibilitetIdentitet, IKompatibilitetFakturering, IKompatibilitetAvstamning) blandar data från båda zonerna och klarar inte delat zonläge F8 och F12a parallellt Åtgärdad i F12b (ADR 0020, tillägg F12b) F12b
T34 FGS-paketen är inte validerade i Riksarkivets eller E-ARK:s verktyg; METS/PREMIS-XSD saknas och arkivbeskrivningen är inte EAD F12a Validera och samråd med Regionarkivet Införande
T35 Bara API-imagen har körts F12a Åtgärdad i F12b: alla fem images körda i fullstack-smoken (15/15) F12b
T36 VAL-leveranserna (personnummer i klartext) hålls i minnet i patientdatazonen ADR 0020 tillägg Persistent krypterad utkorg Införande
T37 Tillägg på fakturaunderlag saknar bifogade filer (finns inte i kontraktet) F11b Utöka kontraktet fakturering.yaml F11c
T38 Mina rapporter saknar ZIP och kopiering av beställningar F11b Bygg i Avstämning och portalen F11c
T39 Zonbryggan går utan mTLS i docker compose (KravMtls=false); mTLS mellan zonerna prövas i E2E och i Helm med cert-manager Compose för utveckling Aktivera mTLS i compose med dev-CA Införande
T40 Produktkodstabell för BTYP + yrkeskategori + taxa finns inte i regionpaketet; besöksersättningen härleds via den versionerade tabellen vdg-yrkesgrupp (VC-BESOK-rättelsen) Underlag saknas Läs in Kodserverns PRODUKT-tabell och bygg produktkodsregeln Införande
T41 AF-rapporten gör zonhopp patientdata → ersättning → patientdata ADR 0020 tillägg F12b Strömma underlaget vid full volym Vid behov
T42 E2E prövar LMA-kontrollen via återsökningsunderlaget och förregistreringens format, inte själva fakturaspärren FA-5006 (den prövas i enhetstest) E2E-scenariots omfång Lägg till fakturaspärren i E2E steg 7 Införande
T43 .prn-filens teckenkodning och beloppsformat, och billing:claim-XML:en, är inte verifierade mot verkliga filer och tjänstekontraktets XSD Underlag saknas Verifiera med VF-förvaltningen och Inera Införande
T44 I TestViora visas 78 K-krav som delvis verifierade, eftersom de äldre testfallen TC1–TC79 aldrig har körts (uppladdningen är gjord, be1fa89) Äldre testfall i projektet Markera TC1–TC79 som föråldrade, kör eller ta bort dem Beslut
Ersvia SAD · version b706ca6 (2026-11-11) (med ändringar som inte är incheckade) · byggd 2026-11-11 · Ändringslogg · Diagramgalleri · Källa: docs/arkitektur/kapitel/11-risker-och-teknisk-skuld.md

Sök i dokumentet

100 % Ladda ned SVG