跳到正文
cccskills
免费在 GitHub 公开

ftrl

Expert knowledge of Folketrygdloven (National Insurance Act) processing in melosys-api. Use when: (1) Understanding FTRL bestemmelser (§2-5 to §2-13), (2) Debugging yrkesaktiv/ikke-yrkesaktiv/pensjonist processing flows, (3) Understanding trygdedekning options and combinations, (4) Investigating vilkår for each bestemmelse, (5) Understanding medlemskapsperiode generation logic, (6) Debugging frivillig vs pliktig membership determination.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(2)

  • SKILL.md12.9 KB
  • references/debugging.md9.1 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Folketrygdloven (FTRL) Domain

Folketrygdloven (National Insurance Act) Chapter 2 governs membership in the Norwegian social insurance scheme for persons outside treaty/EU contexts. This domain handles §2-1 through §2-13, managing pliktig (mandatory) and frivillig (voluntary) membership applications.

Quick Reference

Domain Model Hierarchy

Behandlingsresultat
├── medlemskapsperioder: List<Medlemskapsperiode>
│   ├── fom/tom: LocalDate          (columns fom_dato/tom_dato)
│   ├── bestemmelse: Bestemmelse
│   ├── medlemskapstype: Medlemskapstyper (PLIKTIG/FRIVILLIG)
│   ├── trygdedekning: Trygdedekninger   (column trygde_dekning)
│   ├── innvilgelsesresultat: InnvilgelsesResultat   (column innvilgelse_resultat)
│   ├── medlPeriodeID: Long?        (column medlperiode_id)
│   └── trygdeavgiftsperioder: Set<Trygdeavgiftsperiode>
└── trygdeavgiftType: Trygdeavgift_typer?

Note: Medlemskapsperiode (domain/.../Medlemskapsperiode.kt) has no arbeidsland column (dropped in V98), and no direct skatteforholdTilNorge/inntektsperioder collections; only trygdeavgiftsperioder is mapped directly (via grunnlagMedlemskapsperiode).

FTRL Bestemmelser (Paragraphs)

ParagraphTypeDescription
§2-1PliktigBosatt i Norge - grunnregel
§2-2PliktigArbeidstaker i Norge
§2-5.a-gPliktigOffentlig ansatte (statsforvaltning, forsvaret, etc.)
§2-5.hPliktigStudent med lån/stipend
§2-6PliktigSjømenn på norskregistrerte skip
§2-7.1FrivilligOpphold i Norge (ikke bosatt)
§2-7.4FrivilligFamiliemedlemmer §2-7
§2-7aFrivilligSjømenn bosatt i Norge, utenlandsk skip
§2-8.1.aFrivilligUtsendt arbeidstaker
§2-8.1.bFrivilligStudent utenlands
§2-8.1.cFrivilligOffentlig oppdrag/stipend
§2-8.1.dFrivilligPensjonist/uføretrygdet
§2-8.2FrivilligAndre yrkesaktive (rimelighetsvurdering)
§2-8.4FrivilligFamiliemedlemmer §2-8
§2-13UnntakUnntak fra medlemskap

Behandlingstema

The valid bestemmelser per tema are defined in code as YrkesaktivBestemmelser, IkkeYrkesaktivBestemmelser and PensjonistBestemmelser (service/.../ftrl/bestemmelse/). The lists below mirror those code objects.

TemaDescriptionBestemmelser (from code)
YRKESAKTIVWorking persons§2-1, §2-2, §2-3 andre ledd, §2-5 første ledd a-g, §2-7 første ledd, §2-7a, §2-8.1.a, §2-8.1.b, §2-8 andre ledd, + vertslandsavtaler (Arktisk råds sekretariat art16, Det internasjonale Barentssekretariatet art14, Den nordatlantiske sjøpattedyrkommisjon art16, Tilleggsavtale NATO)
IKKE_YRKESAKTIVNon-working persons§2-1, §2-5 første ledd h, §2-5 andre ledd, §2-7 første ledd, §2-7 fjerde ledd, §2-8.1.b, §2-8.1.c, §2-8 andre ledd, §2-8 fjerde ledd
PENSJONISTPensioners/disabled§2-1, §2-5 andre ledd, §2-7 første ledd, §2-7 fjerde ledd, §2-8.1.d, §2-8 andre ledd, §2-8 fjerde ledd

Trygdedekning (Coverage)

Coverage codes live in the Trygdedekninger enum (domain/.../kodeverk/Trygdedekninger). For FTRL the relevant values are FULL_DEKNING_FTRL (pliktige + §2-7/§2-7a) and the FTRL_2_9_* / FTRL_2_7* series (frivillig §2-8 / §2-7). There is no bare FULL_DEKNING, HELSEDEL or UTEN_DEKNING value in this enum (the bare HELSEDEL_* codes belong to a different enum, Avgiftsdekning).

CodeDescriptionUse Case
FULL_DEKNING_FTRLFull coverage in folketrygdenPliktige bestemmelser + §2-7/§2-7a
FTRL_2_9_FØRSTE_LEDD_A_HELSE§2-9 first ledd a, health onlyFrivillig §2-8
FTRL_2_9_FØRSTE_LEDD_B_PENSJON§2-9 first ledd b, pension onlyFrivillig §2-8
FTRL_2_9_FØRSTE_LEDD_C_HELSE_PENSJON§2-9 first ledd c, health + pensionFrivillig §2-8 (e.g. pensjonist)
FTRL_2_7_TREDJE_LEDD_B_HELSE_SYKE_FORELDREPENGER§2-7 third ledd bFrivillig §2-7
TILLEGGSAVTALE_NATO_HELSEDELNATO supplementary agreement, healthVertslandsavtale NATO

(The full FTRL_2_9_* matrix — including andre/tredje ledd variants — is enumerated in LovligeKombinasjonerTrygdedekningBestemmelse.)

Medlemskapstype

TypeDescription
PLIKTIGMandatory membership - automatic by law
FRIVILLIGVoluntary membership - by application

Service Layer

FtrlBestemmelser

Location: service/src/main/kotlin/.../ftrl/bestemmelse/FtrlBestemmelser.kt

@Component that resolves the valid bestemmelser for a given Behandlingstema (+ optional Trygdedekninger), by intersecting the tema list (YrkesaktivBestemmelser / IkkeYrkesaktivBestemmelser / PensjonistBestemmelser) with the legal trygdedekning-combinations from LovligeKombinasjonerTrygdedekningBestemmelse.

YrkesaktivBestemmelser / IkkeYrkesaktivBestemmelser / PensjonistBestemmelser

Location: service/src/main/kotlin/.../ftrl/bestemmelse/

Separate files defining valid bestemmelser for each behandlingstema.

MedlemskapsperiodeService

Location: service/src/main/kotlin/.../ftrl/medlemskapsperiode/MedlemskapsperiodeService.kt

Key operations:

  • hentMedlemskapsperioder() - Get periods for behandling
  • opprettMedlemskapsperiode() - Create new period
  • oppdaterMedlemskapsperiode() - Update existing period
  • erstattMedlemskapsperioder() - Replace periods (ny vurdering)

OpprettForslagMedlemskapsperiodeService

Location: service/src/main/kotlin/.../ftrl/medlemskapsperiode/OpprettForslagMedlemskapsperiodeService.kt

Creates suggested membership periods based on søknadsperiode and rules.

UtledMedlemskapsperioder

Location: service/src/main/kotlin/.../ftrl/medlemskapsperiode/UtledMedlemskapsperioder.kt

Logic for deriving membership periods from input data.

GyldigeTrygdedekningerService

Location: service/src/main/kotlin/.../ftrl/GyldigeTrygdedekningerService.kt

Returns valid trygdedekning options for given context.

LovligeKombinasjonerTrygdedekningBestemmelse

Location: service/src/main/kotlin/.../ftrl/bestemmelse/LovligeKombinasjonerTrygdedekningBestemmelse.kt

Defines valid combinations of trygdedekning and bestemmelse.

Vilkår System

Vilkår Structure

Location: service/src/main/kotlin/.../ftrl/bestemmelse/vilkaar/

VilkårForBestemmelse (interface)
├── VilkårForBestemmelseYrkesaktiv
├── VilkårForBestemmelseIkkeYrkesaktiv
└── VilkårForBestemmelsePensjonist

Each bestemmelse has associated vilkår (conditions) that must be evaluated.

AvklarteFaktaForBestemmelse

Location: service/src/main/kotlin/.../ftrl/bestemmelse/avklartefakta/

Defines which avklarte fakta are required for each bestemmelse.

Processing Flows

Yrkesaktiv Flow (§2-8)

┌─────────────────────┐
│ Søknad mottas       │
│ (behandlingstema:   │
│  YRKESAKTIV)        │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Velg bestemmelse    │
│ (§2-8.1.a, §2-8.2)  │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Avklar vilkår       │
│ (arbeidsgiver,      │
│  arbeidsland, etc.) │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Opprett medlemskaps-│
│ periode med avgift  │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Fatt vedtak         │
│ IVERKSETT_VEDTAK_   │
│ FTRL                │
└─────────────────────┘

Pensjonist Flow (§2-8.1.d)

┌─────────────────────┐
│ Søknad mottas       │
│ (behandlingstema:   │
│  PENSJONIST)        │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Bestemmelse:        │
│ §2-8.1.d automatisk │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Trygdedekning:      │
│ FTRL_2_9_*_HELSE    │
│ (kun helsedel)      │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Betalingsvalg:      │
│ FAKTURA/KONTONUMMER │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Fatt vedtak         │
└─────────────────────┘

Saksflyt Integration

IVERKSETT_VEDTAK_FTRL

Step sequence (from ProsessflytDefinisjon):

LAGRE_PERSONOPPLYSNINGER →
LAGRE_MEDLEMSKAPSPERIODE_MEDL →
OPPRETT_FAKTURASERIE →
AVSLUTT_SAK_OG_BEHANDLING →
SEND_MELDING_OM_VEDTAK →
OPPRETTE_AARSAVREGNING_ENDRING →
RESET_ÅPNE_ÅRSAVREGNINGER

Debugging Queries

Schema note: medlemskapsperiode.behandlingsresultat_id is the FK to behandlingsresultat, whose PK is behandling_id (1:1 with behandling, no separate id column). So mp.behandlingsresultat_id equals the behandling.id. behandling links to fagsak via saksnummer (not fagsak_id); fagsak's PK is saksnummer and its type column is fagsak_type. There is no bruker_aktor_id on fagsak — the bruker's aktørID lives in the aktoer table (column aktoer_id, rolle = 'BRUKER', joined on saksnummer).

Find Medlemskapsperiode by Behandling

SELECT mp.*, b.status
FROM medlemskapsperiode mp
JOIN behandlingsresultat br ON mp.behandlingsresultat_id = br.behandling_id
JOIN behandling b ON br.behandling_id = b.id
WHERE b.id = :behandlingId;

Check Bestemmelse and Dekning

SELECT mp.id, mp.fom_dato, mp.tom_dato,
       mp.bestemmelse, mp.trygde_dekning,
       mp.medlemskapstype,
       mp.innvilgelse_resultat
FROM medlemskapsperiode mp
WHERE mp.behandlingsresultat_id = :behandlingId;

Find FTRL Cases for Person

SELECT f.saksnummer, f.fagsak_type, b.id, b.status, f.tema
FROM fagsak f
JOIN aktoer a ON a.saksnummer = f.saksnummer AND a.rolle = 'BRUKER'
JOIN behandling b ON b.saksnummer = f.saksnummer
WHERE a.aktoer_id = :aktorId
AND f.fagsak_type = 'FTRL'
ORDER BY b.registrert_dato DESC;

Check MEDL Registration

SELECT mp.medlperiode_id, mp.bestemmelse, mp.fom_dato, mp.tom_dato
FROM medlemskapsperiode mp
WHERE mp.behandlingsresultat_id = :behandlingId
AND mp.medlperiode_id IS NOT NULL;

Common Issues

IssueSymptomsInvestigation
Wrong bestemmelseIncorrect paragraph in vedtakCheck vilkårsvurdering flow
Invalid dekningValidation errorCheck LovligeKombinasjonerTrygdedekningBestemmelse
Period overlapCannot save medlemskapsperiodeCheck existing periods for fagsak
Missing MEDLmedlperiode_id is NULLCheck LAGRE_MEDLEMSKAPSPERIODE_MEDL step
Avgift calculation failNo trygdeavgiftsperiodeVerify skatteforhold and inntekt grunnlag

Bestemmelse Details

§2-8 First Paragraph (Frivillig Yrkesaktiv)

a) Utsendt arbeidstaker

  • Norwegian employer sends to work abroad
  • Employer has substantial activity in Norway
  • Previously subject to Norwegian legislation

b) Student utenlands

  • Studying abroad with Norwegian loan/stipend
  • Enrolled at recognized institution

c) Offentlig oppdrag/stipend

  • Government assignment abroad
  • Research stipend from Norwegian sources

d) Pensjonist/uføretrygdet

  • Receiving pension from folketrygden
  • Only helsedel coverage available

§2-8 Second Paragraph

  • Other workers where "særlige grunner" make it reasonable
  • Discretionary evaluation (rimelighetsvurdering)

§2-13 Unntak

  • Exception from mandatory membership
  • Used when person should not be member despite §2-1/§2-2

Detailed Documentation

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Expert knowledge of Altinn A1 application processing for posted workers in melosys-api. Use when: (1) Understanding Altinn søknad/skjema processing, (2) Debugging MedlemskapArbeidEOS form mapping, (3) Understanding SoeknadMapper transformations, (4) Investigating posted worker application issues, (5) Understanding the MOTTAK_SOKNAD_ALTINN saga flow.

中文简介正在准备中。当前显示原文说明。

navikt/melosys-api22026年10月21日 更新

Expert knowledge of Employer/Employment integration (EREG/AAREG) in melosys-api. Use when: (1) Working with organization data from EREG (Enhetsregisteret), (2) Working with employment data from AAREG (Arbeidsforhold), (3) Understanding employer/organization lookup, (4) Debugging employer or employment issues, (5) Understanding the mapping between register data and domain models. Triggers: orgnummer, arbeidsforhold, EREG, AAREG, Enhetsregisteret, registeropplysninger, ansettelsesperiode, saksopplysning.

中文简介正在准备中。当前显示原文说明。

navikt/melosys-api22026年10月21日 更新

Modular monolith architecture overview for melosys-api. Use when needing to understand module structure, dependencies between modules, where to place new code, or when changes in one module might affect others. Triggers: "architecture", "module dependencies", "where should I put", "which modules", "dependency graph".

中文简介正在准备中。当前显示原文说明。

navikt/melosys-api22026年10月21日 更新

Expert knowledge of Behandling (case treatment) domain in melosys-api. Use when: (1) Understanding the behandling lifecycle and status transitions, (2) Debugging issues with behandling creation, status changes, or closure, (3) Understanding relationships between Fagsak, Behandling, and Behandlingsresultat, (4) Investigating why a behandling is stuck or has wrong status, (5) Understanding Behandlingstyper, Behandlingstema, Behandlingsstatus enums, (6) Debugging journalføring or SED-triggered behandling creation, (7) Understanding behandling creation via saksflyt sagas.

中文简介正在准备中。当前显示原文说明。

navikt/melosys-api22026年10月21日 更新

Expert knowledge of Behandlingsresultat (treatment result) domain in melosys-api. Use when: (1) Understanding result types and their meaning (FASTSATT_LOVVALGSLAND, MEDLEM_I_FOLKETRYGDEN, etc.), (2) Working with periods - Lovvalgsperiode, Medlemskapsperiode, Anmodningsperiode, Utpekingsperiode, (3) Debugging vedtak/decision metadata, criteria evaluation, or social insurance charges, (4) Understanding EU/EEA coordination logic and Article 16 exception handling, (5) Working with trygdeavgift (social insurance charge) calculations.

中文简介正在准备中。当前显示原文说明。

navikt/melosys-api22026年10月21日 更新

brev

免费

Expert knowledge of Brev (letter generation) in melosys-api. Use when: (1) Producing letters and decision documents (vedtaksbrev), (2) Understanding Dokgen templates and mapping, (3) Configuring letter recipients and distribution, (4) Debugging letter generation issues, (5) Adding new letter types or templates.

中文简介正在准备中。当前显示原文说明。

navikt/melosys-api22026年10月21日 更新

查看 navikt 的全部技能

报告此技能的问题