Hoppa till innehållet
ErsviaErsviaSystemarkitekturdokument

Byggstatus

Det här kapitlet visar slutstatus för referensimplementationen: vad som är byggt, hur det är verifierat och vilka avvikelser och luckor som återstår, med länkar till koden och arkitekturbesluten. Det uppdaterades i slutet av varje fas, tillsammans med ändringsloggen. En kortfattad version för styrgruppen finns i Sammanfattning för beslutsfattare. Fasindelningen följer den kanoniska fastabellen i planen (docs/plan/PLAN.md avsnitt 8) och kapitel 7.6.

Slutstatus 2026-11-11 (SAD v7): Alla byggfaser F0–F12 är klara (F9 som F9a och F9b, F11 som F11a och F11b, F12 som F12a och F12b), liksom VC-BESOK-rättelsen och GUI v2. dotnet build ger 0 varningar, och dotnet test ger 1125 av 1125 gröna tester (efter F2: 251, F3: 542, F5: 638, F6/F9a: 796, F7/F10/F11a: 944, F12a/F11b: 1060, F12b: 1089). Portarna kopplas i kompositionsroten Modulkopplingar, Kopplingar/ och, över zongränsen, Zonkopplingar.

Översikt per fas#

Fas Status Commit Byggt ADR
Förberedelse Klar 0c3cf8a, 6b0b781, 63afcbe Underlag i docs/underlag/: uppsatsen, TestViora, systembeskrivningar, avtal, GVR-specar, lagregister, fullmäktige, diariet, benchmark och kontroll 3
F0 Skelett Klar 4d576fe Solution, Ersvia.BuildingBlocks, Ersvia.Api, Ersvia.AppHost, arkitekturtester 0001–0010
F1 Kontrakt Klar d837638 18 OpenAPI 3.1-kontrakt plus common.yaml (172 operationer), AsyncAPI 3.0 med 23 händelser, regelschema (10 primitiver, 33 mallar), legacykontrakt för GVR 2.0.0/1.9.5, CVR och VF, och felkoder.yaml med 438 koder 0002
F2 Masterdata, Kodverk, Personuppgifter, Överenskommelse Klar e96a50d Bitemporal persistens med RLS och fyra moduler (se nedan) 0011
F3 Regelverk och Identitet Klar 84917df Ersvia.Regelmotor, modulerna Regelverk och Identitet, regelmappning.yaml, 51 facitfiler 0013
F4 Vårdhändelser och Väntande Klar 8e6d3f1 GVR v2-kärnan: partitionerad lagring, idempotens, inskickets livscykel, asynkron validering, faktureringsmånad och periodbilder; lasttest 0012
F5 Listning Klar 0a26dbb ListOn-ersättaren med intervall-lagring, regler per regionpaket, carelisting v2.1 (7 operationer), låsta ögonblicksbilder 0014
F6 Beräkning, Simulering, FUMS/FUL Klar 8d4d7f0 Beräkning med manifest, retroaktivitet och skuggkörning, Simulering, MedicinskService och Lakemedel med KÖL, Region Exempel i CI, facit maj 2026, 4,5 min för full volym 0015
F9a Kompatibilitet och Rapportering Klar b3adec3 GVR v2 59/59 och v1.9.5 54/54, mTLS via SERIALNUMBER, SNOD med nio tjänster, CVR, Rapportering med 34 operationer 0012 (portar)
F7 Målrelaterad och Granskning Klar 1017451 Indikatorer, måluppfyllelse, årsavstämning, ansökningar; kontrollregler, riskpoäng, ärenden, återkrav med ränta och preskription, attest, årsrapport 0017
F10 Uppföljning, Migrering, Drift Klar 3891443 Exportpaket med manifest, nationella exporter, budget, publicering; parallellkörning, skuggning, legacy-körningar; integrationsstatus, loggar, export, e-arkiv 0018
F11a Portal, AI och MCP Klar 28f74ab Blazor-portal med tema per regionpaket och Vad gällde när?, AI-tjänst med register och skydd, MCP-server 0016
F8 och F9b Fakturering, Avstämning, VF/AF Klar 9f92684 Fakturering med Peppol, attest, kvittning, utlämningsexport och billing:claim; Avstämning; VF-.prn och AF-Excel 0019
F12a Drift Klar 4c08934 Fysisk zonseparation med zonbrygga och personnummervakt, Docker, Helm/OpenShift, OTel, backup/RPO, FGS e-arkiv, gallring, NIS 2-rutiner, CI med SBOM och Trivy; VAL-export från patientdatazonen 0020
F11b Portalsidor Klar 02cfdfd Sidor för alla roller; axe 45/0 0016
F12b E2E och zonuppdelning Klar 0f2c1c6 E2E i delat zonläge 24/24 för båda regionerna, zonuppdelade F8-adaptrar (IVardhandelsestatusunderlag, IAfUnderlag, IKompatibilitetFakturering, IKompatibilitetReferens), personnummervakt åt båda håll, fullstack-smoke 15/15, kravtäckning 0020 (tillägg F12b)
Rättelse VC-BESOK Klar d17d400, b19722f Versionerad tabell vdg-yrkesgrupp, regel 04a/04b, nytt facit
GUI v2 Klar 604d2ce, d4d5696 Sidomeny per arbetsflöde, Ctrl+K, rollväljare, startsidor per roll, komponentbibliotek, tokens v2; SAD-sajten omdesignad 0021
SAD v7 (slutversion) denna commit Kapitel 00–18, 60 diagram, skärmdumpar från GUI v2, HTML-sajt

Verifiering i slutläget#

Område Resultat Källa
Testsviten 1125 av 1125 gröna (678 enhet, 274 kontrakt, 21 arkitektur, 37 integration, 24 E2E, 54 portal, 37 AI); bygget ger 0 varningar dotnet test efter GUI v2
E2E i delat zonläge 24/24 (12 steg × region-stockholm och region-exempel) med två Kestrel-värdar, mTLS-zonbrygga, zonroller utan grants och GVR-fasad med SITHS-liknande certifikat; beräkningen mot facit har 0 avvikelser; cirka 42 s tests/Ersvia.Tests.E2E
Fullstack i containrar 15/15 kontroller med alla fem images i docker compose; fem driftfel hittade och rättade scripts/fullstack-smoke.sh, matningar.md
Prestanda Validering av en dygnsvolym 4,2 min (krav 60 min); månadsberäkning med full volym 4,5 min (krav 4 h) kapitel 10.3
Kravtäckning K 78 av 79 (K74 är organisatoriskt); NK 21 av 40 (övriga är backlogg, organisatoriska eller beroende av regionen) kravtackning.md, bilaga D
Funktionsparitet 107 av 151 gröna, 26 finns, 18 saknas paritet.yaml, bilaga D.2
Tillgänglighet axe: 0 överträdelser på 67 portalgranskningar; SAD-sajten 0 överträdelser och 0 brutna länkar ADR 0021
TestViora Uppladdat (be1fa89): NK1–NK40 skapade som krav (KRAV-80–KRAV-119), 110 testfall och 589 verifierar-kopplingar, körningen med 110 av 110 godkända. Täckning i TestViora: 119 krav, 100 med test, 0 underkända; 21 NK-krav verifierade, 78 K-krav delvis (de äldre testfallen TC1–TC79 i projektet har aldrig körts), K74 ej kört, 19 NK saknar test testviora-uppladdning.md

Rättelser efter F12#

Rättelse Commit Vad
VC-BESOK (VDG-yrkeskategori) d17d400, b19722f GVR rapporterar yrkeskategori som VDG-kod (t.ex. "11"), men regel 04 nycklade på namn, så läkarbesök gav 0 kr. Rättelse: den versionerade tabellen vdg-yrkesgrupp i båda regionpaketen, härlett fält vardhandelse.yrkesgrupp i mallen prislistaProduktkod, och regel 04 delad i 04a (före 2026-03-01) och 04b (från 2026-03-01: läkare 200, sjuksköterska 150, undersköterska 75, paramedicinare 150, samtalsbehandlare 200 kr). Nytt facit för maj 2026 och testet BesoksersattningVdgTester. De nationella exporterna använder också tabellen.
GUI v2 604d2ce, d4d5696 Ny design för portalen och SAD-sajten (ADR 0021, kapitel 5.5).

Avvikelser och kvarstående luckor i slutläget#

Område Målbild Läge Åtgärd
LMA-spärren i E2E E2E visar att fakturan spärras för reservnummer utan LMA E2E prövar LMA via återsökningsunderlaget och förregistreringens format; själva fakturaspärren FA-5006 prövas i enhetstest T42
Zonbryggan i compose mTLS i alla miljöer Utan mTLS i docker compose (KravMtls=false); mTLS prövas i E2E och Helm T39
Produktkod Produktkod ur BTYP + yrkeskategori + taxa (Kodserverns PRODUKT) Tabellen finns inte i regionpaketet; besöksersättningen använder vdg-yrkesgrupp T40
AF-rapporten Ett zonanrop Zonhopp patientdata → ersättning → patientdata T41 (acceptabelt för månadsrapporter)
Mina rapporter ZIP och kopiering av beställningar Saknas T38
Tillägg på fakturaunderlag Bifogade filer Saknas i kontraktet T37
FGS-paket Validerat mot Riksarkivets krav Inte validerat i Riksarkivets eller E-ARK:s verktyg T34
VAL-leveranser Persistent krypterad utkorg I minnet i patientdatazonen T36
.prn och billing:claim Verifierat mot verkliga filer och XSD Byggt efter specifikation, inte verifierat T43
Referensräntor och attestbelopp Regionens beslut Exempelvärden T27
Skuggningskö Beständig I minnet T28
Exportfiler Objektlagring Base64-dokument T29
KPP- och patientregisterlayout Enligt specifikation Tolkad T30
Anthropic-adaptern Testad mot API:t Otestad; lokal modell är standard T32
Beräkningskörning Bakgrundskö Synkron T19
GVR:s akut- och tillgänglighetsfält, SNOD25 I vårdhändelsen; alla tjänster Bara i fasaden; SNOD25 saknas T22, T23
Listningsregler, indikatorer och kontrollregler I Regelverk Egna regler i Listning, Malrelaterad och Granskning (avsiktligt för de två senare, ADR 0017) T12, T26
Lagkrav NK Alla 40 21 gröna; 19 i backlogg, organisatoriska eller beroende av regionen (bilaga D) Per fas i införandet
TestViora K-kraven verifierade i TestViora 78 K-krav visas som delvis eftersom de äldre, aldrig körda testfallen TC1–TC79 finns kvar i projektet Besluta om TC1–TC79 ska markeras som föråldrade, köras eller tas bort (T44)

Byggt per fas (detaljer)#

F0: BuildingBlocks#

Byggblock Kod Krav
Bitemporal version, giltighet, as-of-fråga Bitemporal.cs, Giltighet.cs, BitemporalHistorik.cs, GiltighetsAnalys.cs KRAV-3, KRAV-22, KRAV-73
Manifest och kanonisk JSON Manifest.cs, KanoniskJson.cs KRAV-36
Hashkedja och revisionslogg Hashkedja.cs, Revisionslogg.cs KRAV-22, KRAV-67
Belopp och avrundning Belopp.cs, Avrundningsregel.cs KRAV-36
Outbox Outbox.cs, OutboxBearbetare.cs ADR 0006
Tenant ITenantKontext.cs ADR 0010
Modulgränssnitt IModul.cs, Modulkatalog.cs KRAV-71
Arkitekturtester ModulgransTester.cs, RegionoberoendeTester.cs KRAV-71, KRAV-76, KRAV-78

F2: Persistens och fyra moduler#

ERER-diagram: byggda scheman F2–F5 med generiskt bitemporalt mönsterLadda ned SVG: ER-diagram: byggda scheman F2–F5 med generiskt bitemporalt mönsterLadda ned PUML: ER-diagram: byggda scheman F2–F5 med generiskt bitemporalt mönster

Byggblock Vad som är byggt Kod Krav
Ersvia.BuildingBlocks.Persistens En tabell per bitemporal entitetstyp (giltig daterange, registrerad tstzrange, data jsonb, hashkedja per nyckel), exclusion constraint med btree_gist, oföränderlighetstrigger, IBitemporalLager<T> i minne och PostgreSQL, outbox, dokument och revisionslogg per schema, RLS med app.huvudman, gemensam migrerings-SQL SchemaSql.cs, PostgresBitemporalLager.cs, PostgresOutbox.cs, PostgresRevisionslogg.cs KRAV-3, KRAV-22, KRAV-36, KRAV-67
Masterdata NIM:s Organisation: huvudman, beställarnämnd, vårdgivare (vg-), vårdenhet (ve-), versionerade alias (HSA-id, uppdrags-id, vårdgivarnummer, kombika), fakturamottagare med Peppol (fm-), HSA-port med mock, NVID-scenario Organisation.cs, HsaId.cs, MasterdataEndpoints.cs, MockHsaKatalog.cs KRAV-16, KRAV-76
Kodverk Generisk modell kodsystem + version + kod med mappningar (ICD-11-redo), importörer för ICD-10-SE (TSV), KVÅ (xlsx), NordDRG-viktlista och Kodservertabeller, publicering med fyra ögon Kodverk.cs, Importorer.cs, KodverkModul.cs (features i Features/, ADR 0022) KRAV-17
Personuppgifter PersonId (personnummer, samordningsnummer, reservnummer), folkbokföringsport med mock, pseudonymisering med HMAC-SHA-256 per huvudman, skyddad identitet, åtkomstlogg med pseudonym PersonId.cs, Personuppgiftstjanster.cs, PersonuppgifterKontrakt.cs KRAV-18, KRAV-67
Overenskommelse Avtal och uppdrag i egen regi (ok-), ersättningsgrunder (eg-), VOK- och HVOContract-mappning, import från avtalssystemet med mock, vårdgivarens villkor Overenskommelse.cs, OverenskommelseEndpoints.cs KRAV-1 till KRAV-5
Regionpaket Seed för stockholm och exempel packages/region-stockholm/, packages/region-exempel/ ADR 0010
Tester Integration med Testcontainers (as-of, rättelse, exclusion constraint, triggrar, RLS mellan stockholm och exempel, outbox, åtkomstlogg), validering av alla OpenAPI-exempel mot sina scheman, route-test mot kontrakten BitemporalPersistensTester.cs, ModulIntegrationTester.cs, OpenApiExempelTester.cs, RouteKontraktTester.cs

Kontroll 3 Ä5 är åtgärdad i F2: HSA-id-mönstret i contracts/openapi/common.yaml är ^SE[0-9]{10}-[A-Za-z0-9]{1,24}$, och 14 felaktiga kontraktsexempel är rättade.

F3: Regelmotor, Regelverk och Identitet#

Byggblock Vad som är byggt Kod Krav
Ersvia.Regelmotor Rent bibliotek utan I/O, reflection eller klocka (arkitekturtest). Elva primitiver inklusive episod, beslutstabeller med träffpolicy, uttrycksspråk (JSON eller formel, decimal, explicit avrundning, typkontroll), nio körfaser med DAG, trace per primitivanrop och SHA-256 över resultatet. 34 mallar täcker alla 42 regeltyper. Korning.cs, Primitiver.cs, Tabelluppslag.cs, Uttryck.cs, Mall.cs, Publiceringskontroll.cs KRAV-19 till KRAV-23, KRAV-36; NK40
Facit 51 facitfiler, minst ett per mall, med verkliga exempel ur katalogen tests/Golden/, regelmappning.yaml KRAV-23
Regelverk Regelversioner (utkast → granskad → publicerad → ersatt, avslagen), fyra ögon, facittest med hashat testbevis, parametertabeller, konsultationsversioner, import av rapporteringsanvisningar, jämförelse och export RegelverkTjanst.cs, Regelvalidator.cs, Anvisningstolk.cs, Regelverk.cs KRAV-19 till KRAV-23
Identitet Roller, behörigheter per användare och vårdgivare, delegations- och attestmatris som bitemporal data med utkast och godkännande, provning av beslut och attest (egenattest spärras, två steg över gräns), beslutslogg. Portarna IBeslutskontroll och IAttestkontroll. Identitet.cs, IdentitetTjanst.cs, Beslutsportar.cs KRAV-21, KRAV-49, KRAV-66; NK20

F4: Vårdhändelser och Väntande#

Byggblock Vad som är byggt Kod Krav
Vardhandelser Besök, inskrivning (flytt, utskrivning), aktivitet, vårdperiod och kontakt med GVR v2-fälten. Partitionerad tabell vardhandelse (en rad per version, per faktureringsmånad), register, idempotens (X-Idempotens-Nyckel, X-Resource-Id), periodbild. Tre statusdimensioner, asynkron validering med FOR UPDATE SKIP LOCKED, torrkörning, brytpunkt sista vardagen 24.00, förfall efter 90 dagar, gräns 30 månader, frysta perioder. Statusmodell.cs, Valideringsregler.cs, Faktureringskalender.cs, Bearbetning.cs, PostgresVardhandelselager.cs KRAV-6 till KRAV-10, KRAV-15, KRAV-61
Vantande Väntande som dokument med versionshistorik, avslut Vantande.cs, VantandeTjanst.cs KRAV-14
Lasttest 70 000 händelser validerade på 4,2 minuter (krav 60 min) VardhandelseLasttest.cs, matningar.md KRAV-15

F5: Listning#

Byggblock Vad som är byggt Kod Krav
Listning Listningstyper per regionpaket, listning, omlistning och avlistning som bitemporala intervall (aldrig en rad per dag), högst N omlistningar per 12 månader med avsteg, ST-tak, läkare som slutar, listningstak med kö och förtur, uppehåll i basal hemsjukvård, folkbokföringshändelser, låsta ögonblicksbilder med SHA-256, statistik och export Listningsmodell.cs, Listningsregelmotor.cs, ListningTjanst.cs, ListningLager.cs, Regelkalla.cs KRAV-12, KRAV-24; NK17, NK18
carelisting v2.1 ICarelistingProducent med sju operationer över REST (/api/carelisting/v2), statlig listningstjänst som mock CarelistingProducent.cs KRAV-12
Regionpaket listningsregler.json per region packages/region-stockholm/ ADR 0010

F6: Beräkning, Simulering, FUMS och FUL#

Byggblock Vad som är byggt Kod Krav
Berakning Körning per period, huvudman och urval (ordinarie, omräkning, reproduktion, torrkörning). Manifest med regler, tabeller, masterdata, överenskommelser, kodverk, konfiguration, vårdhändelsebild, listningsbild per mätdag, FUMS/FUL-hash, tidigare körningar och motorversion. Regelval via ersättningsgrund och omfattning, avtalsparametrar som JSON merge patch, ackumulerade regler i två pass, fakturamottagare via beslutstabell i regionpaketet, rader med trace och källhändelser, omräkning med differensrader, stängd period med torrkörning (BE-5004), reproduktion bit för bit, skuggkörning, MarkeraErsattaAsync och BerakningKlar via outbox. BerakningTjanst.cs, Berakningskarna.cs, Berakningskonfiguration.cs, BerakningPortar.cs, BerakningKopplingar.cs KRAV-24 till KRAV-38, KRAV-40, KRAV-55
Simulering Isolerad simulering med KPI och jämförelse per vårdgivare, vårdval och ersättningsslag; parallellkörning mot legacy-CSV SimuleringTjanst.cs KRAV-64, KRAV-65, KRAV-72
MedicinskService (FUMS) JSON och Ersvias CSV-format, beställare via Masterdata, vidarefakturering med 20 % fördelad per rad MedicinskServiceTjanst.cs, Leverantorsfil.cs KRAV-13, KRAV-56
Lakemedel (FUL) CSV-adapter, koppling via HSA-id eller arbetsplatskod, undantagsläkemedel, KÖL-riskdelning (50 % utanför ±3 %) LakemedelTjanst.cs, Ehmfil.cs KRAV-13, KRAV-56
Regionpaket 18 regler med facit och parametertabeller per region, publicerade med fyra ögon. Region Exempel: mätdag den 15:e, egna åldersklasser, annan viktlista och 3,5 % moms utan kodändring. region-stockholm/berakning/berakning.json, region-exempel/berakning/berakning.json ADR 0010
Facit och mätning Facit för maj 2026; CI kör en hel månad för båda regionerna. Full volym (2 miljoner vårdhändelser, 2,4 miljoner listade) på 4,5 minuter. tests/Golden/manad-2026-05/, BerakningLasttest.cs, matningar.md KRAV-35, KRAV-36

F9a: Kompatibilitet och Rapportering#

Byggblock Vad som är byggt Kod Krav
Kompatibilitet GVR REST v2.0.0 (59/59 operationer) och v1.9.5 (54/54) på samma sökvägar under fasadens bas-URL; X-Resource-Id (409/313), GvrProblemDetail via felkodskatalogen, schemavalidering ur inbäddad spec, synkron torrkörning, standardavtal; journaler, vårdplatser och kontakter. mTLS med certifikatautentisering, HSA-id ur SERIALNUMBER, vidarebefordrat certifikat från ingress. SNOD-XML med nio tjänster och Basic auth. CVR-filimport med ögonblicksbild, implicit avslut och maskinell kvittens. Kontrakt kompatibilitet.yaml. GvrTjanst.cs, GvrOversattning.cs, Snodtjanst.cs, CvrImport.cs, Gvrhttp.cs, KompatibilitetModul.cs, KompatibilitetKopplingar.cs, kompatibilitet.yaml, gvr-fasad.json KRAV-6, KRAV-14, KRAV-72
Rapportering 34 operationer: utkast och arbetslista, inskick via torrkörning, efterregistrering med godkännande av annan person, DRG-förslag, MVC, vårdperioder, väntande, kassa och frikort, reservnummer, CSV/JSON-uppladdning RapporteringTjanst.cs, KassaOchReservnummer.cs, Filinlasning.cs, RapporteringKopplingar.cs KRAV-11
Paritetstester Alla 59 + 54 operationer anropas och svaren valideras mot specens scheman GvrParitetTester.cs, KompatibilitetIntegrationTester.cs KRAV-72

F7: Målrelaterad och Granskning#

Byggblock Vad som är byggt Kod Krav
Malrelaterad Indikatorer som bitemporala regler med fyra ögon och facit, måluppfyllelse (tröskel, linjär, andel), täckningskrav, efterregistreringsdag, årsavstämning med tak, ansökningar, externa källor; bokföring via Beräkning MalrelateradTjanst.cs, Malkalkyl.cs, CsvKalla.cs, MalrelateradKopplingar.cs KRAV-41 till KRAV-46
Granskning Avvikelseflaggor, kontrollregler, riskpoäng (profilering, av som standard), ärenden med återkrav, ränta, preskription och kvittning, justeringar, attest i två steg, riskregister och årsrapport GranskningTjanst.cs, Kontrollmotor.cs, Aterkrav.cs, GranskningKopplingar.cs KRAV-47 till KRAV-49; NK3–NK7
Regionpaket Indikatorer, kontrollregler, riskpoängsaktivering, referensräntor och matriser per region region-stockholm/granskning/granskning.json ADR 0010

F10: Uppföljning, Migrering och Drift#

Byggblock Vad som är byggt Kod Krav
Uppfoljning Utfall, exportpaket med manifest (CSV, Parquet, JSON) till VAL och nationella mottagare, personnummerkontroll, bitemporal budget, vårduppdrag, budgetindikatorer, publicering med cellundertryckning UppfoljningTjanst.cs, Nationellaexporter.cs KRAV-62, KRAV-63
Migrering Legacyimport (AF, VF V2), parallellkörning med klassning och täckning, legacy-körningar med differens MigreringTjanst.cs, Legacyformat.cs KRAV-72, KRAV-73
Drift Integrationslogg och omstart, ändrings- och åtkomstlogg med verifiering, export i öppet format, e-arkiv (METS, FGS/CSIP), hälsa DriftTjanst.cs KRAV-67, KRAV-68, KRAV-75, KRAV-79
Skuggning GVR-fasaden vidarebefordrar autentiserade skrivande anrop till gamla GVR via en kö Kompatibilitet (F9a/F10) KRAV-72

F11a: Portal, AI och MCP#

Byggblock Vad som är byggt Kod Krav
Ersvia.Portal Blazor Web App med tema per regionpaket, OIDC-roller, sidor för regelverk, Vad gällde när?, vårdhändelser, torrkörning, listning, kodverk, överenskommelser, vårdgivare och AI-register (kap. 5.5) VadGalldeNar.razor, Program.cs, region-stockholm/portal/portal.json KRAV-5, KRAV-69, KRAV-77
Ersvia.Ai IErsviaAi med adaptrar (Anthropic, lokal, Fake), AI-register, pseudonymiseringsfilter, beloppsvakt, AI-revisionslogg ErsviaAi.cs, AiRegister.cs, Pseudonymiseringsfilter.cs, AiRevisionslogg.cs, ai-register.yaml NK26, NK40
Ersvia.Mcp MCP-server med sju verktyg, autentisering per huvudman, REST /ai/* ErsviaVerktyg.cs, AiEndpoints.cs, Huvudmansautentisering.cs ADR 0007, 0016

F8 och F9b: Fakturering, Avstämning och dagens utdata#

Byggblock Vad som är byggt Kod Krav
Fakturering Underlag per vårdgivare × fakturamottagare × faktureringsmånad, MOMSK-AVTAL, godkännande och invändning per rad, tillägg och kreditering, attest i två steg, Peppol BIS Billing 3 med kvittens, budgetjustering, asylspärr, självfakturering, kvittning, nummerserie, samfaktura, kontering, LMA, faktureringsschema, aviseringar, utlämningar och utomlänskrav FaktureringTjanst.cs, Faktureringsregler.cs, Peppolfaktura.cs, FaktureringPortar.cs, FaktureringKopplingar.cs KRAV-38, KRAV-39, KRAV-50 till KRAV-58
Avstamning Avstämningsrader med drill-down via trace, status per vårdhändelse med AF-kod, månadsfil, prenumerationer, engångsrapporter AvstamningTjanst.cs, Avstamningsregler.cs KRAV-59 till KRAV-61
Utlämningsexport och billing:claim Utlämningsexport och återidentifiering i patientdatazonen, billing:claim som avsändare och mottagare, VF-.prn (V1, V2, kontering) och AF-Excel (F9b) Kompatibilitet (KompatibilitetModul.cs), kompatibilitet.yaml KRAV-39, KRAV-40, KRAV-60, KRAV-72

F12a: Drift, zonseparation och arkiv#

Byggblock Vad som är byggt Kod Krav
Värdar och zonbrygga IModul.Zon, Ersvia:Zon, värdarna Ersvia.Patientdata och Ersvia.Api (ErsviaVard), zonbrygga med mTLS, vitlista och personnummervakt ErsviaVard.cs, Zonkopplingar.cs, Zonserver.cs, Zonklient.cs, Zonmtls.cs, Patientdata/Program.cs KRAV-18; NK22
Databasroller och nycklar Roller per zon, gallringsroll, INyckelkalla med Secret eller Vault/KMS Zonroller.cs, Nyckelkalla.cs KRAV-18
Webbskydd och observerbarhet CSP med nonce, hastighetsbegränsning, säkerhetslogg (≥ 5 år), personnummertvätt, OpenTelemetry Webbskydd.cs, Sakerhetslogg.cs, Personnummertvatt.cs, Telemetri.cs KRAV-66, KRAV-67, KRAV-68; NK19, NK24
Containrar och Helm Fem images, Helm-chart med nätpolicyer, cert-manager, Ingress/Route, HPA, PDB och jobb, docker-compose deploy/helm/ersvia/values.yaml, networkpolicies.yaml, jobb.yaml, api.Dockerfile KRAV-70, KRAV-78
Kontinuitet WAL/PITR (RPO ≤ 5 min), logisk kopia, veckovis återläsningstest ersvia-backup.sh, kontinuitet.md, runbook.md, nis2-incidentrutin.md KRAV-70; NK24
Arkiv och gallring FGS Paketstruktur 2.0 (CSIP), full export, bitemporal gallring per regionpaket FgsPaket.cs, Gallring.cs, OppenExport.cs, earkiv-och-gallring.md KRAV-75, KRAV-79
VAL-export (rättat krav) Vårdhändelser och listning med personnummer i klartext från patientdatazonen med ändamålskontroll och loggning Valexporttjanst.cs KRAV-62
CI Build, test, kontrakt, SBOM (CycloneDX), Trivy, helm lint och kubeconform ci.yml KRAV-78

F11b: Portalsidor för alla roller#

Portalsidor för beräkning, simulering, mål, granskning, fakturering, avstämning, uppföljning och migrering. axe: 45 granskningar med 0 överträdelser. Skärmdumpar i kapitel 5.5.

F12b: E2E i delat zonläge och zonuppdelade adaptrar#

Byggblock Vad som är byggt Kod Krav
Zonuppdelade F8-adaptrar Fakturering och Avstämning läser i ersättningszonen med pseudonym via IVardhandelseunderlag och den nya IVardhandelsestatusunderlag; AF-Excel, VF-.prn och billing:claim produceras i patientdatazonen med underlag via IAfUnderlag, IKompatibilitetFakturering och IKompatibilitetReferens Zonkopplingar.cs, FaktureringKopplingar.cs KRAV-18, KRAV-50 till KRAV-61
Personnummervakt åt båda håll Ersättningszonens server avvisar zonanrop med personnummer i argumenten (422 GEN-0503); patientdatazonens proxy skickar dem aldrig Zonserver.cs, Zonklient.cs KRAV-18; NK22
E2E Planens 12 steg plus 9b för maj 2026 i båda regionpaketen E2eTester.cs, Zonmiljo.cs KRAV-36, KRAV-76
Fullstack-smoke och kravtäckning Alla fem images i compose; kravtäckning ur JUnit fullstack-smoke.sh, kravtackning.sh, kravtackning.md

Förvaltning av dokumentet#

Referensimplementationen är färdigbyggd enligt planen. SAD:en och detta kapitel uppdateras vid varje ändring som påverkar arkitekturen, och kvarstående luckor följs i kapitel 11 och i tabellen ovan.

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

Sök i dokumentet

100 % Ladda ned SVG