Landlæknir — Directorate of Health (Embætti landlæknis)

SkillDev tools

Directorate of Health (landlæknir) — ~30 Power BI dashboards: mortality, medication, healthcare, infectious disease; Talnabrunnur PDFs.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Landlæknir — Directorate of Health (Embætti landlæknis) skill

What this skill tells your AI

The instructions your AI receives, as published by jokull/icelandic-data in .agents/skills/landlaeknir/SKILL.md and read by ahel’s review.

Health statistics for Iceland: mortality, medication use, healthcare services, workforce, infectious disease surveillance, and public health indicators. Primary portal is Mælaborð embættis landlæknis (~30 Power BI dashboards); secondary is Talnabrunnur, a PDF newsletter series (2007–present).

Listed by the Hagtalnanefnd report (March 2026) as one of four other European-statistics producers for Iceland (alongside Seðlabanki, Ríkislögreglustjóri, Samgöngustofa). Produces European health statistics under regulation (EC) No 1338/2008.

Landing pages

PortalURLFormat
Mælaborð (dashboard index)https://island.is/maelabordHTML index → Power BI embeds
Talnabrunnur (newsletter archive)https://island.is/talnabrunnurPDF index, 2007–present
Tölfræði og rannsóknir (hub)https://island.is/tolfraedi-og-rannsoknirHTML

Note: landlaeknir.is/* URLs now 301-redirect to island.is/*. Use the island.is canonical form.

Mælaborð catalog (~30 dashboards, all Power BI)

All share tenant ID 4d762ac0-6205-42ce-b964-c3b8958fd4a9. Embed URL form: https://app.powerbi.com/view?r=<base64-encoded {"k":report_key,"t":tenant,"c":8}>

Lýðheilsa (Public Health)

NameReport keySubject
Lýðheilsuvaktine96fb72e-64c7-40b9-b413-9880b6d3ebb6Monitoring of selected health determinants
Lýðheilsuvísarb844ee2b-a5ac-47e3-8c32-fd4c9260a7b3Public health indicators by region
Reykingar8a8c91a6-8baa-4a92-91f7-c8bbb09a61cfSmoking habits by gender and age

Lyfjanotkun (Medication Usage)

NameReport keySubject
Lyfjanotkun91dbfdc1-b502-412d-b5b9-ed9195d13cc5All drug prescriptions by ATC, gender, age
ADHD-lyfja5964b5b1-e090-4295-876a-16d7818f5d89ADHD medication
Þunglyndislyfjada30ebd3-fdb3-4f61-85b2-c0eaf2475816Antidepressants
Ópíóíða7de4f8d0-1d91-4e36-9ada-d708069663beOpioids
Svefnlyfja og slævandi lyfja4c04de98-4ba9-499e-9de2-28e1169ca81fSleep & sedatives
Sýklalyfja8ab229cd-6dc2-41b5-b472-b2e9bd62dcdfAntibiotics (outpatient)

Dánarorsakir (Mortality)

NameReport keySubject
Mortis9762f31f-75d5-44a0-84f4-2748ada887a5Mortality by cause, gender, age
Umframdánartíðni8434975c-221d-4cf8-be41-b3a018a341c8Excess mortality by period
Sjálfsvíg7099a77d-3bcb-4ecc-b3ad-555816b6d199Suicide by gender and age
Lyfjatengd andlát4b1b3b1f-627a-4b65-9088-35a5be7a0d80Drug-related deaths

Heilbrigðisstarfsfólk (Healthcare Workforce)

NameReport keySubject
Mannafli í heilbrigðisþjónustu100a2e7c-8e70-4f4d-8931-3a18f7743b54Workforce counts, specialty

Heilbrigðisþjónusta (Healthcare Services)

NameReport keySubject
Lykilvísar heilbrigðisþjónustu3c7aff7a-d011-49c0-999b-42e8572b333dKey indicators + Nordic comparison
Starfsemi sjúkrahúsad397920c-ceeb-461e-8e5a-31637e0dfe2eHospital admissions, length of stay
Samskipti við heilsugæsluaaa2dbb1-509c-4440-a487-9f9b17f74d04Primary care contacts
Skimun fyrir krabbameini695fcc55-c9cf-48f9-8dea-05114188eacdCancer screening participation
Bið eftir skurðaðgerðumde0dd7d1-f6e8-4952-9dad-12f6d011338aSurgery waitlists
Liðskiptaaðgerðir66d4f15b-d403-41fb-9f46-11643f02f9eeJoint replacement procedures
Bið eftir hjúkrunarrýmif78159f5-1187-49eb-9b21-c3240b96659cNursing-home waitlists
Gæði þjónustu á hjúkrunarheimilum7280e4c3-e418-45e7-8109-c52c9da328f7InterRAI quality indicators
Tannheilsa barna9b56cbba-0997-47cb-819d-c4ad88c09083Children's dental health
Alvarleg atvik288bcc93-e451-4227-855e-f517c45d8523Serious healthcare incidents
Kvartanir6437ece5-4086-430e-9a6c-25e92c3f0cfdPatient complaints
Rekstur heilbrigðisþjónustu2b14022e-6e9a-4f31-a2e2-1ba08b7b9775Service operation notifications
DRG mælaborð7da1376f-51a7-4129-83dd-47e1d68ad45bDiagnosis-related groups (hospital costs)
ACG mælaborðf95fc235-5913-45a9-bd1a-c052c3f465b1Adjusted Clinical Groups (disease burden)

Sóttvarnir (Infectious Disease Control)

NameReport keySubject
Árlegur fjöldi smitsjúkdómacd829644-4051-4a71-9571-e0ed60157d3bAnnual notifiable disease counts
Lekandi, klamydía og sárasótt53f7eba1-f7bf-42dd-acad-9b4fa068cbd2STI diagnoses
Öndunarfærasýkingarf829b4c8-63dd-4cd3-9e37-1b1101e8e02dCOVID-19, influenza, RSV surveillance
Veirugreiningar656ffb3f-8a7f-4746-b921-4f6e364754ceLab viral diagnostics
Þátttaka í bólusetningum barna608e169f-867c-4b00-9224-925e92b6a247Child vaccination uptake

Embed-URL reconstruction

import base64, json
TENANT = "4d762ac0-6205-42ce-b964-c3b8958fd4a9"
def embed_url(report_key: str) -> str:
    payload = {"k": report_key, "t": TENANT, "c": 8}
    token = base64.b64encode(json.dumps(payload, separators=(",", ":")).encode()).decode().rstrip("=")
    return f"https://app.powerbi.com/view?r={token}"

Extraction method

Same Playwright-intercept pattern as ferdamalastofa, samgongustofa, and maelabord_landbunadarins:

import asyncio
from playwright.async_api import async_playwright

async def scrape_report(url: str) -> list[dict]:
    async with async_playwright() as p:
        browser = await p.chromium.launch(headless=True)
        page = await browser.new_page()
        results = []
        async def on_response(r):
            if "querydata" in r.url.lower() or "executeQueries" in r.url.lower():
                if r.status == 200:
                    try:
                        results.append(await r.json())
                    except Exception:
                        pass
        page.on("response", on_response)
        await page.goto(url, wait_until="networkidle", timeout=60000)
        await asyncio.sleep(10)
        await browser.close()
        return results

These are public /view?r=... URLs — no auth or embed-token refresh needed.

Talnabrunnur (newsletter archive)

PDF index at https://island.is/talnabrunnur. Each issue is one PDF, 2007–present, usually covering one or two topics in detail. No API. Useful as context for dashboards (methodology, definitions, caveats) rather than as a data source.

Script Usage

# Enumerate all dashboards (prints the catalog)
uv run python scripts/landlaeknir.py list

# Scrape one dashboard by slug (saves Power BI query responses to data/raw/landlaeknir/)
uv run python scripts/landlaeknir.py fetch --slug mortis
uv run python scripts/landlaeknir.py fetch --slug syklalyfja

# Scrape all dashboards (slow — ~30 × ~15s each)
uv run python scripts/landlaeknir.py fetch --all

Data Files

PathFormatDescription
data/raw/landlaeknir/{slug}.jsonJSONRaw Power BI executeQueries responses for one dashboard
data/processed/landlaeknir_catalog.csvCSVCatalog of slugs, names, report keys, categories (from list)

Caveats

  1. Power BI structure is volatile. Query response shape can change without notice. Do not hard-code column indices — inspect the descriptor.Select array per response.
  2. Suppression on small counts. Dánarorsakir, Sjálfsvíg, Lyfjatengd andlát suppress cells where N is below a privacy threshold (typically ≤4 people). Treat missing cells as "suppressed", not zero.
  3. Excess mortality uses a rolling baseline. The Umframdánartíðni baseline changes as new years shift in. Snapshot the response JSON, not just the delta, to preserve comparability.
  4. Nordic-comparison tables lag. Lykilvísar heilbrigðisþjónustu compares against NOMESCO data which updates annually with a ~2-year lag.
  5. Antibiotic data excludes inpatients. Sýklalyfja covers outpatient prescriptions only. Hospital antibiotic use is in a separate (non-public) dataset.
  6. Overlaps with Hagstofa for mortality. Hagstofa publishes cause-of-death and life-expectancy series from the same underlying dánarmeinaskrá. Mortis has higher temporal granularity; Hagstofa has cleaner methodology docs.
  7. URL 301 redirect. www.landlaeknir.is/*island.is/*. Use the latter directly.
  8. Talnabrunnur is PDFs only — no structured data, no API.
  9. Encoding. Power BI responses are UTF-8 throughout (Icelandic chars þ, ð, æ, ö, í, ó, ú in dimension labels and ATC drug names). Write JSON with ensure_ascii=False and read with encoding="utf-8".

Complementary sources

SourceOverlap
hagstofanCause of death (HEI02000), life expectancy, health status survey
loftgaediAir-quality → respiratory health link
Eurostat (external)Regulation 1338/2008 health stats (Landlæknir submits these)
OECD Health Statistics (external)Nordic/OECD benchmarks used on Lykilvísar

Signals

GitHub stars
53
Forks
4
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
landlaeknir
Source
github.com/jokull/icelandic-data