Kommunal räddningstjänst – förbundsredo, MSB-kompatibel, PostGIS-klar
Version 2.0 – September 2025
Modellen är framtagen för att stödja både en liten kommunal räddningstjänst och stora räddningstjänstförbund med flera kommuner och stationer. Den alignar till:
Anm: SS 12000 är en interoperabilitetsstandard för skolsektorn och reglerar hur data utbyts, inte vilken domänmodell räddningstjänsten ska ha.
Interaktivt nätverksdiagram som visar alla tabeller och relationer i systemet. Dra för att navigera, scrolla för att zooma.
ORGANISATIONER + ORG_KOMMUN modellerar kommunalförbund/gemensam nämnd/egen regi. Stationer är kopplade till både organisation och kommun (passar drift/logistik och statistik). (Jfr SKR:s beskrivning av organisationsformer och SOU/prop.)INSATSER har kategorier/underkategorier, orsak, utfall m.m. som frikopplade kodtabeller. Detta speglar MSB:s händelserapport och möjliggör framtida justeringar utan schemaändring.geography(Point,4326)) och SWEREF 99 TM (geometry(Point,3006)) för svensk analys, enligt Lantmäteriet/EPSG.TILLSTAND med typ_kod (enligt MSBFS 2013:3) samt koppling till VERKSAMHETER och handläggare.INSATSER; detaljer kan normaliseras vid behov (egna tabeller) enligt nationella riktlinjer.KOD_TYPER, KODER) för att harmonisera begrepp över många kommuner/förbund och undvika migreringar.PERSONAL_STATION med giltighetsintervall stödjer RiB/hybridbemanning och tillfälliga förflyttningar.INSATS_FORDON + INSATS_PERSONAL gör tidslinjer/uppdrag spårbara per resurs.FORDON och MATERIEL separeras för att stödja olika typer av resurser. MATERIEL har lagerstyrning med minimunivåer och QR-koder för spårning.VB_STATUS samlar realtidsinformation om verksamhetsberedskap med koppling till organisation, stationer, fordon och personal.VERKSAMHETER innehåller riskklass, tillsynshistorik och status för effektiv planering och uppföljning.BRANDSKYDSOBJEKT och BRANDSKYDSKONTROLL separeras för att stödja både objektregister och kontrollplanering. KONTROLL_PROTOKOLL dokumenterar genomförda kontroller.ARENDEN kan kopplas till verksamheter och har prioritering och status för effektiv handläggning. ARENDE_HANDLINGAR spårar alla aktiviteter i ärendet.| Kodtyp | Exempel på koder | Kommentar |
|---|---|---|
| INSATS_TYP | Brand; Trafikolycka; Utsläpp; Automatlarm; IVPA | Matcha MSB:s händelseklassificering |
| INSATS_PRIORITET | HÖG; MED; LÅG | Operativ prioritering lokalt |
| INSATS_STATUS | Startad; Pågående; Avslutad; Avbruten | Rapportlivscykel |
| ORSAK_BRAND | El; Matlagning; Anlagd; Okänd | MSB/utredningsfält |
| UTFALL_SKADOR | Inga; Personskada; Dödsfall; Endast egendom | Statistik/uppföljning |
| LBE_TILLSTAND_TYP | Gasol; Bensin; Vätgas; Brandfarlig vätska | MSBFS 2013:3 |
| TILLSYN_LAGRUM | LSO; LBE | Styr tillsynstyp och mall |
| FORDON_TYP | Släckbil; Tank; Steg; Ledning; ATV/Utv | För lokal/operativ klassning |
| BEFATTNING_TYP | SL; Stf SL; BmH; Bm; Brandinspektör; Brandingenjör | Personalbefattningar |
| SKIFT_TYP | A; B; C; Dagtid | Arbetsskift |
| FRANVARO_TYP | Semester; Sjuk; VAB; Tjänstledighet; Utbildning | Frånvarotyper |
| FRANVARO_STATUS | Godkänd; Avvaktar; Avslagen | Frånvarostatus |
| ARENDE_TYP | Allmänna handlingar; Remisser; Överklaganden; Synpunkter | Ärendetyper |
| ARENDE_STATUS | Ny; Pågående; Väntar på svar; Under granskning | Ärendestatus |
| PRIORITET | Hög; Medium; Låg | Ärendeprioritet |
| UTBILDNING_TYP | Intern; Extern; MSB | Utbildningstyper |
| OVNING_TYP | Rökdykning; Trafikolycka; Brandövning; Vattenlivräddning | Övningstyper |
| TILLSYN_STATUS | Planerad; Förberedd; Bokad; Genomförd | Tillsynsstatus |
| TILLSYN_RESULTAT | Godkänd; Föreläggande; Avslag | Tillsynsresultat |
| TILLSTAND_TYP | Brandfarlig vara; Explosiv vara | Tillståndstyper |
| TILLSTAND_STATUS | Ny; Komplettering begärd; Under handläggning; Klar för beslut; Avslutad | Tillståndsstatus |
| KONTROLL_STATUS | Planerad; Genomförd | Kontrollstatus |
| VB_STATUS | Normal beredskap; Reducerad; Ej tillgänglig | VB-status |
| FORDON_STATUS | Tillgänglig; På insats; Underhåll; Reserverad | Fordonstatus |
| RISKKLASS | 1; 2; 3; 4 | Riskklass för verksamheter |
| VERKSAMHET_STATUS | Godkänd; Föreläggande; Avslag | Verksamhetsstatus |
| HANDLING_TYP | Notering; Beslut; Dokument; Remiss; Svar | Typ av ärendehandling |
| MATERIEL_STATUS | Tillgänglig; Underhåll; Utgången | Materielstatus |
| Kolumn | Typ | Begränsningar | Beskrivning |
|---|---|---|---|
| organisation_id | INT | PK, AUTO_INCREMENT | Kommun, kommunalförbund eller gemensam nämnd |
| namn | VARCHAR(200) | NOT NULL | Officiellt namn |
| orgnr | VARCHAR(12) | UNIQUE | Organisationsnummer |
| typ | VARCHAR(40) | NOT NULL | kommun, kommunalförbund, gemensam_nämnd |
| status | VARCHAR(20) | NOT NULL | Aktiv/Inaktiv |
| Kolumn | Typ | Begränsningar | Beskrivning |
|---|---|---|---|
| insats_id | INT | PK, AUTO_INCREMENT | Unik |
| larmnummer | VARCHAR(40) | UNIQUE, NOT NULL | Externt larm-ID (t.ex. från SOS) |
| larmtid | DATETIME | NOT NULL | Tid för larm |
| organisation_id | INT | FK | Vem som genomfört insatsen |
| kommun_id | INT | FK | Var händelsen inträffade (statistik) |
| init_station_id | INT | FK | Första utlarmad station |
| insatsledare_id | INT | FK | Ansvarig ledare |
| kategori_kod | INT | FK | MSB händelsetyp |
| underkategori_kod | INT | FK | MSB underkategori |
| prioritet_kod | INT | FK | Operativ prioritet |
| status_kod | INT | FK | Startad/Pågående/Avslutad/Avbruten |
| adress | VARCHAR(200) | NULL | Plats |
| latitud | DECIMAL(10,8) | NULL | WGS84 |
| longitud | DECIMAL(11,8) | NULL | WGS84 |
| wgs84_point | GEOGRAPHY(Point,4326) | NULL | PostGIS, global |
| sweref_point | GEOMETRY(Point,3006) | NULL | PostGIS, svensk analys |
| beskrivning | TEXT | NULL | Fritext |
| starttid | DATETIME | NULL | Insats start |
| sluttid | DATETIME | NULL | Insats slut |
| orsak_kod | INT | FK | Orsak/brandorsak |
| utfall_kod | INT | FK | Skadeutfall |
| rakel_talgrupp | VARCHAR(60) | NULL | T.ex. Samverkan Blå / RAPS |
| Kolumn | Typ | Begränsningar | Beskrivning |
|---|---|---|---|
| tillstand_id | INT | PK | Unik |
| verksamhet_id | INT | FK | Verksamhet/objekt |
| diarie_nr | VARCHAR(30) | UNIQUE, NOT NULL | Diarienummer |
| typ_kod | INT | FK | Typ enligt MSBFS 2013:3 |
| status_kod | INT | FK | Inkommen/Kompletteras/Beslutad/Löper ut |
| inkom_datum | DATE | NOT NULL | Inkom datum |
| beslut_datum | DATE | NULL | Beslutsdatum |
| handlaggare_id | INT | FK | Ansvarig handläggare |
| beskrivning | TEXT | NULL | Fritext |
| beslut | VARCHAR(50) | NULL | Beviljat/Avslag/Villkorat |
| giltig_till | DATE | NULL | Giltighetstid för tillstånd |
| Kolumn | Typ | Begränsningar | Beskrivning |
|---|---|---|---|
| verksamhet_id | INT | PK, AUTO_INCREMENT | Unik |
| kommun_id | INT | FK | Kommun där verksamheten finns |
| orgnr | VARCHAR(12) | UNIQUE | Organisationsnummer |
| namn | VARCHAR(200) | NOT NULL | Verksamhetsnamn |
| adress | VARCHAR(200) | NULL | Gatuadress |
| postnummer | VARCHAR(10) | NULL | Postnummer |
| postort | VARCHAR(100) | NULL | Postort |
| kontakt_namn | VARCHAR(100) | NULL | Kontaktperson |
| kontakt_telefon | VARCHAR(20) | NULL | Telefonnummer |
| kontakt_email | VARCHAR(100) | NULL | E-postadress |
| riskklass_kod | INT | FK | Riskklass (1-4) |
| senaste_tillsyn | DATE | NULL | Datum för senaste tillsyn |
| nasta_tillsyn | DATE | NULL | Planerat datum för nästa tillsyn |
| status_kod | INT | FK | Godkänd/Föreläggande/Avslag |
| skapad_datum | DATETIME | NOT NULL | När verksamheten registrerades |
| upphor_datum | DATE | NULL | När verksamheten upphörde |
| Kolumn | Typ | Begränsningar | Beskrivning |
|---|---|---|---|
| tillsyn_id | INT | PK, AUTO_INCREMENT | Unik |
| verksamhet_id | INT | FK | Verksamhet som tillsyns |
| lagrum_kod | INT | FK | LSO/LBE |
| planerad_tid | DATETIME | NULL | Planerad tid för tillsyn |
| genomford_tid | DATETIME | NULL | När tillsynen genomfördes |
| inspektor_id | INT | FK | Ansvarig inspektör |
| status_kod | INT | FK | Planerad/Förberedd/Bokad/Genomförd |
| resultat_kod | INT | FK | Godkänd/Föreläggande/Avslag |
| anmarkningar | TEXT | NULL | Anmärkningar från tillsynen |
| forelaggande | TEXT | NULL | Föreläggande om det finns |
| forelaggande_datum | DATE | NULL | Datum för föreläggande |
| uppföljning_datum | DATE | NULL | Planerat uppföljningsdatum |
| Kolumn | Typ | Begränsningar | Beskrivning |
|---|---|---|---|
| kontroll_id | INT | PK, AUTO_INCREMENT | Unik |
| objekt_id | INT | FK | Sotningspliktigt objekt |
| kontrollnummer | VARCHAR(30) | UNIQUE | Kontrollnummer (t.ex. BSK-2025-1001) |
| senaste_kontroll | DATE | NULL | Datum för senaste kontroll |
| nasta_kontroll | DATE | NULL | Planerat datum för nästa kontroll |
| status_kod | INT | FK | Planerad/Genomförd |
| tekniker_id | INT | FK | Ansvarig tekniker |
| anmarkningar | TEXT | NULL | Anmärkningar från kontrollen |
| Kolumn | Typ | Begränsningar | Beskrivning |
|---|---|---|---|
| objekt_id | INT | PK, AUTO_INCREMENT | Unik |
| kommun_id | INT | FK | Kommun där objektet finns |
| fastighetsbeteckning | VARCHAR(50) | NULL | Fastighetsbeteckning |
| adress | VARCHAR(200) | NOT NULL | Gatuadress |
| postnummer | VARCHAR(10) | NULL | Postnummer |
| postort | VARCHAR(100) | NULL | Postort |
| agare | VARCHAR(200) | NULL | Ägare av objektet |
| kontakt_person | VARCHAR(100) | NULL | Kontaktperson |
| kontakt_telefon | VARCHAR(20) | NULL | Telefonnummer |
| kontakt_email | VARCHAR(100) | NULL | E-postadress |
| objekttyp | VARCHAR(100) | NULL | Typ av objekt (eldstad, rökkanal, etc.) |
| Kolumn | Typ | Begränsningar | Beskrivning |
|---|---|---|---|
| protokoll_id | INT | PK, AUTO_INCREMENT | Unik |
| kontroll_id | INT | FK | Kontroll som protokollet gäller |
| kontroll_datum | DATE | NOT NULL | Datum för kontrollen |
| tekniker_id | INT | FK | Tekniker som utförde kontrollen |
| resultat | VARCHAR(50) | NULL | Resultat av kontrollen |
| anmarkningar | TEXT | NULL | Anmärkningar |
| atgarder | TEXT | NULL | Åtgärder som krävs |
| nasta_kontroll | DATE | NULL | Nästa planerade kontroll |
| Kolumn | Typ | Begränsningar | Beskrivning |
|---|---|---|---|
| fordon_id | INT | PK, AUTO_INCREMENT | Unik |
| organisation_id | INT | FK | Organisation som äger fordonet |
| station_id | INT | FK | Station där fordonet är placerat |
| fordonnummer | VARCHAR(20) | UNIQUE, NOT NULL | Fordonnummer (t.ex. 241-1010) |
| regnr | VARCHAR(10) | UNIQUE | Registreringsnummer |
| typ_kod | INT | FK | Släckbil/Stegebil/Räddningsbil/Tank/etc. |
| fabrikat_modell | VARCHAR(100) | NULL | Fabrikat och modell |
| status_kod | INT | FK | Tillgänglig/På insats/Underhåll/Reserverad |
| latitud | DECIMAL(10,8) | NULL | Aktuell position WGS84 |
| longitud | DECIMAL(11,8) | NULL | Aktuell position WGS84 |
| position_uppdaterad | DATETIME | NULL | När positionen senast uppdaterades |
| Kolumn | Typ | Begränsningar | Beskrivning |
|---|---|---|---|
| materiel_id | INT | PK, AUTO_INCREMENT | Unik |
| organisation_id | INT | FK | Organisation som äger materielen |
| materielnummer | VARCHAR(20) | UNIQUE | Materielnummer (t.ex. M-001) |
| namn | VARCHAR(200) | NOT NULL | Materielnamn |
| antal | INT | NOT NULL | Antal enheter |
| min_niva | INT | NOT NULL | Minimunivå för lager |
| lagerplats | VARCHAR(100) | NULL | Var materielen finns |
| utgangsdatum | DATE | NULL | Utgångsdatum om tillämpligt |
| qr_kod | VARCHAR(50) | UNIQUE | QR-kod för spårning |
| Kolumn | Typ | Begränsningar | Beskrivning |
|---|---|---|---|
| vb_id | INT | PK, AUTO_INCREMENT | Unik |
| organisation_id | INT | FK | Organisation |
| status_kod | INT | FK | Normal beredskap/Reducerad/Ej tillgänglig |
| tillgangliga_enheter | INT | NOT NULL | Antal tillgängliga enheter |
| totala_enheter | INT | NOT NULL | Totalt antal enheter |
| aktiva_stationer | INT | NOT NULL | Antal aktiva stationer |
| totala_stationer | INT | NOT NULL | Totalt antal stationer |
| personal_i_tjanst | INT | NOT NULL | Antal personal i tjänst |
| total_personal | INT | NOT NULL | Totalt antal personal |
| uppdaterad_tid | DATETIME | NOT NULL | När statusen senast uppdaterades |
| Kolumn | Typ | Begränsningar | Beskrivning |
|---|---|---|---|
| arende_id | INT | PK, AUTO_INCREMENT | Unik |
| organisation_id | INT | FK | Organisation som äger ärendet |
| diarie_nr | VARCHAR(30) | UNIQUE, NOT NULL | Diarienummer (t.ex. A-2025-098) |
| rubrik | VARCHAR(200) | NOT NULL | Ärendets rubrik |
| beskrivning | TEXT | NULL | Beskrivning av ärendet |
| typ_kod | INT | FK | Allmänna handlingar/Remisser/Överklaganden/Synpunkter |
| status_kod | INT | FK | Ny/Pågående/Väntar på svar/Under granskning/Avslutad |
| prioritet_kod | INT | FK | Hög/Medium/Låg |
| handlaggare_id | INT | FK | Ansvarig handläggare |
| inkom_datum | DATE | NOT NULL | När ärendet inkom |
| svar_datum | DATE | NULL | När svar skickades |
| avslut_datum | DATE | NULL | När ärendet avslutades |
| verksamhet_id | INT | FK | Relaterad verksamhet om tillämpligt |
| Kolumn | Typ | Begränsningar | Beskrivning |
|---|---|---|---|
| handling_id | INT | PK, AUTO_INCREMENT | Unik |
| arende_id | INT | FK | Ärende som handlingen tillhör |
| personal_id | INT | FK | Person som skapade handlingen |
| tidpunkt | DATETIME | NOT NULL | När handlingen skapades |
| typ_kod | INT | FK | Typ av handling (Notering/Beslut/Dokument/etc.) |
| beskrivning | TEXT | NULL | Beskrivning av handlingen |
| dokument_url | VARCHAR(500) | NULL | Länk till dokument om tillämpligt |
orgnr (ORGANISATIONER), kommunkod (KOMMUNER), stationskod (STATIONER)personnummer och email (PERSONAL)larmnummer (INSATSER), fordonnummer och regnr (FORDON), materielnummer (MATERIEL)diarie_nr (ARENDEN, TILLSTAND), kontrollnummer (BRANDSKYDSKONTROLL)orgnr (VERKSAMHETER), rapport_nr (MSB_RAPPORTER), resurs_nr (RESURSER)qr_kod (MATERIEL)INSATSER(larmtid), INSATSER(starttid), INSATSER(sluttid), TILLSYNER(planerad_tid), TILLSYNER(genomford_tid), ARENDEN(inkom_datum), TILLSTAND(inkom_datum), BRANDSKYDSKONTROLL(nasta_kontroll)GIST-index på wgs84_point och sweref_point i INSATSER och FORDONstatus_kod / typ_kod i centrala tabeller (INSATSER, TILLSYNER, TILLSTAND, ARENDEN, BRANDSKYDSKONTROLL, VERKSAMHETER)(kommun_id, kategori_kod, larmtid) i INSATSER, (verksamhet_id, status_kod, planerad_tid) i TILLSYNER)VERKSAMHETER(nasta_tillsyn) för planeringsfrågor, VERKSAMHETER(riskklass_kod) för filtreringMATERIEL(antal, min_niva) för lagerövervakning, VB_STATUS(uppdaterad_tid) för realtidsstatusSYSTEM_LOG för alla CRUD (GDPR spårbarhet).RESTful API för räddningstjänstens IT-stöd enligt OpenAPI 3.1.1-specifikationen.
API Base URL: https://api.raddningstjansten.se/v1
Specifikation: OpenAPI 3.1.1
Autentisering: JWT Bearer Token
Format: JSON
API:et är designat för att stödja alla funktioner i räddningstjänstens IT-stöd med fokus på:
{
"securitySchemes": {
"BearerAuth": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "JWT"
},
"ApiKeyAuth": {
"type": "apiKey",
"in": "header",
"name": "X-API-Key"
}
}
}
/insatser
- Lista alla insatser
/insatser
- Skapa ny insats
/insatser/{id}
- Hämta specifik insats
/insatser/{id}
- Uppdatera insats
/insatser/{id}
- Ta bort insats
/personal
- Lista all personal
/personal
- Registrera ny personal
/personal/{id}/schema
- Hämta personschema
/personal/{id}/kompetenser
- Hämta personens kompetenser
/verksamheter
- Lista alla verksamheter
/verksamheter
- Registrera ny verksamhet
/verksamheter/{id}/tillsyner
- Hämta tillsyner för verksamhet
/verksamheter/{id}/tillstand
- Hämta tillstånd för verksamhet
/tillsyner
- Lista alla tillsyner
/tillsyner
- Planera ny tillsyn
/tillsyner/{id}
- Hämta tillsynsdetaljer
/brandskyddskontroller
- Lista alla kontroller
/brandskyddsobjekt
- Lista alla objekt
/brandskyddskontroller/{id}/protokoll
- Hämta protokoll för kontroll
/fordon
- Lista alla fordon
/materiel
- Lista all materiel
/vb-status
- Hämta VB-status
/arenden
- Lista alla ärenden
/arenden
- Skapa nytt ärende
/arenden/{id}/handlingar
- Hämta handlingar för ärende
/utbildningar
- Lista utbildningar
/ovningar
- Lista övningar
/utbildningar/{id}/anmal
- Anmäl till utbildning
/rapporter/msb
- MSB-rapporter
/statistik/insatser
- Insatsstatistik
/statistik/tillsyner
- Tillsynsstatistik
POST /api/v1/insatser
Content-Type: application/json
Authorization: Bearer {jwt_token}
{
"larmnummer": "L2024-001234",
"larmtid": "2024-09-15T14:30:00Z",
"kategori_kod": 1,
"prioritet_kod": 2,
"adress": "Storgatan 123, Stockholm",
"latitud": 59.3293,
"longitud": 18.0686,
"beskrivning": "Brand i lägenhet",
"insatsledare_id": 15
}
GET /api/v1/insatser?kommun_id=1&start_datum=2024-09-01&slut_datum=2024-09-30&status_kod=1
Authorization: Bearer {jwt_token}
GET /api/v1/insatser/nearby?lat=59.3293&lng=18.0686&radius=5000
Authorization: Bearer {jwt_token}
{
"success": true,
"data": {
"insats_id": 123,
"larmnummer": "L2024-001234",
"status": "Pågående",
"created_at": "2024-09-15T14:30:00Z"
},
"meta": {
"total": 1,
"page": 1,
"per_page": 20
}
}
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Ogiltig data",
"details": [
{
"field": "larmnummer",
"message": "Larmnummer är obligatoriskt"
}
]
},
"timestamp": "2024-09-15T14:30:00Z"
}
| Kod | Beskrivning | Användning |
|---|---|---|
| 200 | OK | Framgångsrikt svar |
| 201 | Created | Resurs skapad |
| 204 | No Content | Framgångsrikt utan innehåll |
| 400 | Bad Request | Ogiltig begäran |
| 401 | Unauthorized | Autentisering krävs |
| 403 | Forbidden | Åtkomst nekad |
| 404 | Not Found | Resurs hittades inte |
| 422 | Unprocessable Entity | Valideringsfel |
| 500 | Internal Server Error | Serverfel |
Begränsningar: 1000 requests per timme per API-nyckel
Headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset
Överskridning: 429 Too Many Requests
URL-versionering: /api/v1/, /api/v2/
Header-versionering: Accept: application/vnd.raddningstjansten.v1+json
Backward compatibility: Minst 2 versioner stöds samtidigt
Fullständig OpenAPI 3.1.1-specifikation är tillgänglig på:
https://api.raddningstjansten.se/openapi.json
Specifikationen följer OpenAPI 3.1.1-standarden och inkluderar alla endpoints, scheman, exempel och säkerhetsdefinitioner.
pg_trgm + tsvector för ärenden/rapporter.INSATSER(larmtid) för storskalig historik (100k+/år nationellt).Källor (urval): SS12000 (skolsektorns interoperabilitet); MSB händelserapporter/insatsstatistik; Undersökning & dokumentation efter insats; LBE & MSBFS 2013:3; Räddningstjänstens insatsstatistik 2024; Lantmäteriet SWEREF 99 TM/EPSG:3006; Rakel riktlinjer; Organisationsformer (SKR/SOU/prop).