本文へ移動
cccskills
無料GitHub で公開

behandlingsresultat

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.

インストール方法を見る

含まれるファイル(4)

  • SKILL.md9.2 KB
  • references/periods.md5.3 KB
  • references/result-types.md4.3 KB
  • references/trygdeavgift.md4.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Behandlingsresultat Domain

Behandlingsresultat captures the outcome of a Behandling, including which law applies, membership status, periods, decision metadata, and eligibility criteria results.

Quick Reference

Entity Structure

Behandling (1)
    ↓ OneToOne
Behandlingsresultat
    ├─ VedtakMetadata (decision date, appeal deadline)
    ├─ Lovvalgsperiode* (law choice periods)
    │   └─ Trygdeavgiftsperiode*
    ├─ Medlemskapsperiode* (membership periods)
    │   └─ Trygdeavgiftsperiode*
    ├─ Anmodningsperiode* (Article 16 request periods)
    │   └─ AnmodningsperiodeSvar
    ├─ Utpekingsperiode* (designation periods)
    ├─ Vilkaarsresultat* (eligibility criteria)
    ├─ Kontrollresultat* (verification results)
    ├─ Avklartefakta* (clarified facts)
    └─ HelseutgiftDekkesPeriode (EEA pensioner health coverage)

Key Attributes

AttributeTypeDescription
typeBehandlingsresultattyperIKKE_FASTSATT, FASTSATT_LOVVALGSLAND, MEDLEM_I_FOLKETRYGDEN, etc.
behandlingsmåteBehandlingsmaateAUTOMATISERT, MANUELT, DELVIS_AUTOMATISERT
fastsattAvLandLand_iso2Country that determined the result
vedtakMetadataVedtakMetadataDecision date and appeal deadline
begrunnelseFritekstString?Free-text justification

Result Types (Behandlingsresultattyper)

TypeDescriptionUse Case
IKKE_FASTSATTNot determinedInitial state
FASTSATT_LOVVALGSLANDLaw choice country setEU/EEA lovvalg
MEDLEM_I_FOLKETRYGDENMember of Norwegian NIFTRL membership
UNNTATT_MEDLEMSKAPExempt from membershipNon-member
AVSLAG_SØKNADApplication deniedRejection
OPPHØRTMembership terminatedTermination
ANMODNING_OM_UNNTAKArticle 16 exception requestSent to foreign authority
REGISTRERT_UNNTAKRegistered exceptionException approved
HENLEGGELSECase dismissedDropped case
FERDIGBEHANDLETCompletedGeneric completion
MEDHOLDAppeal upheldKlage result
OMGJORTDecision reversedKlage result

Period Types

Lovvalgsperiode (Law Choice Period)

Determines which country's social security law applies.

lovvalgsperiode.lovvalgsland        // Land_iso2 - chosen country
lovvalgsperiode.bestemmelse         // LovvalgBestemmelse - regulation (Art. 11, 13, etc.)
lovvalgsperiode.innvilgelsesresultat // INNVILGET, AVSLAATT, OPPHØRT
lovvalgsperiode.medlemskapstype     // PLIKTIG, FRIVILLIG, UNNTATT
lovvalgsperiode.dekning             // Trygdedekninger

Medlemskapsperiode (Membership Period)

Membership in Norwegian National Insurance (folketrygden).

medlemskapsperiode.innvilgelsesresultat  // INNVILGET, AVSLAATT, OPPHØRT
medlemskapsperiode.medlemskapstype       // PLIKTIG, FRIVILLIG, UNNTATT
medlemskapsperiode.trygdedekning         // Coverage type
medlemskapsperiode.bestemmelse           // Membership-specific provision

Anmodningsperiode (Article 16 Request Period)

Request for exception under EU Regulation Article 16.

anmodningsperiode.sendtUtland           // Sent to foreign authority
anmodningsperiode.anmodetAv             // Requested by
anmodningsperiode.anmodningsperiodeSvar // Response from authority

Utpekingsperiode (Designation Period)

Provisional designation of applicable law (EU/EFTA).

Common Operations

Fetching Behandlingsresultat

// Basic fetch
val resultat = behandlingsresultatService.hentBehandlingsresultat(behandlingId)

// With specific relations loaded
val resultat = behandlingsresultatService.hentBehandlingsresultatMedAnmodningsperioder(behandlingId)
val resultat = behandlingsresultatService.hentResultatMedMedlemskapOgLovvalg(behandlingId)

Status Checks

resultat.erInnvilgelse()           // Is approval (lovvalg)
resultat.erAvslag()                // Is denial
resultat.erOpphørt()               // Is terminated
resultat.erAnmodningOmUnntak()     // Is Article 16 request
resultat.erUtpeking()              // Is designation
resultat.erAutomatisert()          // Was auto-processed
resultat.erRegistrertUnntak()      // Is registered exception

Period Access

// Single period (throws if multiple exist)
val lovvalg = resultat.hentLovvalgsperiode()
val anmodning = resultat.hentAnmodningsperiode()

// Optional access
val lovvalg: Optional<Lovvalgsperiode> = resultat.finnLovvalgsperiode()

// Validated period (any type)
val periode: PeriodeOmLovvalg? = resultat.finnValidertPeriodeOmLovvalg()

// Collections
val medlemsperioder = resultat.medlemskapsperioder  // Set<Medlemskapsperiode>

Trygdeavgift (Social Insurance Charges)

// Get all charge-liable periods
val avgiftsPerioder = resultat.finnAvgiftspliktigPerioder()

// Check overlap with tax year
resultat.harInnvilgetAvgiftspliktigPeriodeSomOverlapperMedÅr(2024)

// Get all charge periods
val trygdeavgift = resultat.trygdeavgiftsperioder

VedtakMetadata (Decision)

resultat.harVedtak()  // Has decision metadata

// Set decision
resultat.settVedtakMetadata(
    vedtaksdato = Instant.now(),
    vedtakKlagefrist = LocalDate.now().plusWeeks(6)
)

Clearing for Reprocessing

// Clear all periods and clarifications
behandlingsresultatService.tømBehandlingsresultat(resultat)

// Clear only membership periods
behandlingsresultatService.tømMedlemskapsperioder(resultat)

Important Interfaces

PeriodeOmLovvalg

Implemented by: Lovvalgsperiode, Anmodningsperiode, Utpekingsperiode

interface PeriodeOmLovvalg {
    val lovvalgsland: Land_iso2
    val bestemmelse: LovvalgBestemmelse?
    // ...
}

AvgiftspliktigPeriode

Implemented by: Lovvalgsperiode, Medlemskapsperiode

interface AvgiftspliktigPeriode {
    val trygdeavgiftsperioder: Set<Trygdeavgiftsperiode>
    // ...
}

Key Services

BehandlingsresultatService

  • hentBehandlingsresultat() - Fetch by ID
  • lagreNyttBehandlingsresultat() - Create (initial: IKKE_FASTSATT, MANUELT)
  • oppdaterBehandlingsresultattype() - Update type
  • tømBehandlingsresultat() - Clear for reprocessing

AngiBehandlingsresultatService

  • oppdaterBehandlingsresultattypeOgAvsluttFagsakOgBehandling() - Set type with validation and close case
  • Validates result type against case type, theme, and treatment type

ReplikerBehandlingsresultatService

  • replikerBehandlingsresultat() - Clone result for replicated treatment
  • Deep clones all relationships, resets to IKKE_FASTSATT/MANUELT

Important Gotchas

1. Single Period Assumption

Some methods assume only one period of a type exists:

// Throws if multiple lovvalgsperioder exist
resultat.hentLovvalgsperiode()

// Safe alternative
resultat.finnLovvalgsperiode()  // Returns Optional

2. Type-Driven Logic

Business logic depends heavily on type and fagsak.erLovvalg():

// Different period collections based on case type
val perioder = if (fagsak.erLovvalg()) {
    resultat.lovvalgsperioder
} else {
    resultat.medlemskapsperioder
}

3. Cascade Deletion

All child entities use CascadeType.ALL with orphanRemoval = true. Removing a period from the collection deletes it from the database.

4. Conditional Eager Loading

Use specific service methods to optimize loading:

// Only loads anmodningsperioder
hentBehandlingsresultatMedAnmodningsperioder()

// Loads both membership and lovvalg
hentResultatMedMedlemskapOgLovvalg()

Debugging

Find Behandlingsresultat

SELECT br.* FROM behandlingsresultat br
WHERE br.id = :behandlingId;

Find All Periods for a Result

-- Lovvalgsperioder
SELECT * FROM lovvalgsperiode WHERE behandlingsresultat_id = :id;

-- Medlemskapsperioder
SELECT * FROM medlemskapsperiode WHERE behandlingsresultat_id = :id;

-- Anmodningsperioder
SELECT * FROM anmodningsperiode WHERE behandlingsresultat_id = :id;

Find Results Without Decision

SELECT br.id, b.status
FROM behandlingsresultat br
JOIN behandling b ON b.id = br.id
LEFT JOIN vedtak_metadata vm ON vm.behandlingsresultat_id = br.id
WHERE vm.id IS NULL
AND br.type != 'IKKE_FASTSATT';

Find Results with Multiple Periods (potential issue)

SELECT br.id, COUNT(*) as period_count
FROM behandlingsresultat br
JOIN lovvalgsperiode lp ON lp.behandlingsresultat_id = br.id
GROUP BY br.id
HAVING COUNT(*) > 1;

Detailed Documentation

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Complete architecture reference for the A3 insurance platform — file locations, data flow, conventions, microservice map, and fullstack patterns

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

Drafts U.S. commercial real estate access and indemnity (right-of-entry) agreements for pre-closing due diligence. Covers license grants, non-invasive vs invasive testing gates, insurance/endorsement requirements, indemnity with discovery carve-outs, restoration and lien remedies, confidentiality, and anti-indemnity guardrails. Trigger: access agreement, right of entry, due diligence access, Phase I/II, invasive testing, pre-PSA site inspection.

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

当用户需要对意外险投保问卷进行专业、结构化的核保审查,提取职业类别、工作环境、作业内容、危险活动参与情况、交通出行习惯、特殊工作暴露及其他可能影响意外险承保判断的高风险信息,并生成适合意外险核保、补问流转和风险分层处理的结构化分析结果时使用本 skill。

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

Inspect, schema, and fill true AcroForm PDFs using sciClaw's pdf_form_inspect, pdf_form_schema, and pdf_form_fill tools. Use when: (1) checking whether a PDF is a real fillable AcroForm, (2) listing form field names, types, and choices, (3) filling a supported form from structured values, (4) preparing reviewable insurance, legal, administrative, or clinical form drafts, (5) reporting skipped fields or unused input keys after a fill. Do not use for scanned PDFs, OCR tasks, or XFA-only forms.

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

Guide actuarial analysis for insurance pricing. TRIGGERS - Use when user needs help with actuarial-analysis related tasks.

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

Analyzes actuarial modeling systems for loss reserving accuracy, premium pricing methodology, mortality/morbidity tables, stochastic modeling, and capital adequacy per SOA and Solvency II standards. USE THIS SKILL WHEN: - You need to review or audit actuarial models (reserving, pricing, capital) - Someone asks about loss triangle analysis or reserve adequacy - You are evaluating IBNR calculations, chain ladder methods, or Bornhuetter-Ferguson - A project involves insurance pricing, GLM rating models, or ratemaking - You need to assess Solvency II SCR calculations or RBC compliance - Someone mentions actuarial opinions, ASOP compliance, or SOA standards - You are reviewing stochastic models, ESG configurations, or DFA frameworks - A codebase uses actuarial libraries (chainladder, lifetables, ChainLadder R package) TRIGGER PHRASES: "actuarial", "loss reserving", "IBNR", "chain ladder", "premium pricing", "mortality table", "Solvency II", "capital adequacy", "ratemaking", "GLM pricing", "risk-based capital", "reserve analysis", "actuarial opinion"

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

FDU-INS のスキルをすべて見る

このスキルの問題を報告する