Swedish National Medication List: NLL FHIR is not a generic MedicationRequest
The Swedish National Medication List is a live FHIR R4 API from E-hälsomyndigheten. Pin package 1.3.1 (release 21.18). Personnummer is the named identifier system. NLL profiles are not unconstrained MedicationRequest.
Ala Ben Aicha

Direct answer
The Swedish National Medication List is a live FHIR R4 API. Pin se.electronichealth.fhir.nll.r4 1.3.1 (NLL 21.18). Personnummer uses http://electronichealth.se/identifier/personnummer. NLLMedicationRequest is not a generic MedicationRequest.
Pin the live package, not “Swedish FHIR”
Nationella läkemedelslistan (NLL) is operated by E-hälsomyndigheten (the Swedish eHealth Agency). The external API is FHIR R4. The agency publishes versioned packages on Simplifier and a matching implementation guide. On write day (19 September 2026) the latest public package is:
- Package:
se.electronichealth.fhir.nll.r41.3.1 (created 31 August 2026) - IG: Swedish National Medication List release 21.18
- Canonical claim:
http://electronichealth.se/fhir/ - Guide: simplifier.net/guide/swedishnationalmedicationlist-current
- Handbook: Handbok för vård- och apotekstjänster
Earlier package 1.0.3 is not current. Pin 1.3.1 (or whichever version the buyer’s environment names) in the package lock and re-validate when E-hälsomyndigheten publishes the next sequence.
| NLL profile (IG name) | FHIR resource | What the IG maps | What it is not |
|---|---|---|---|
| NLLPatient | Patient | Patient registered in NLL; personnummer slice identifier:pnr |
Not a national EHR Patient, not an embedded-only identity when pnr exists |
| NLLMedicationRequest | MedicationRequest | A prescription (förskrivning) in NLL | Not a local hospital order, not EU MPD by default |
| NLLMedicationDispense | MedicationDispense | A dispense (uttag) in NLL | Not a ward administration event |
| NLLMedication | Medication | Medicinal product as NLL profiles it | Not an unconstrained Medication resource |
NLL also profiles Provenance, named queries such as latest-dispense, and print/sort code systems. Those are NLL API behaviour, not generic R4 extras you can skip.
The identifier: personnummer
Country-specific identifier on NLLPatient is the Swedish personal identity number (personnummer), slice identifier:pnr:
http://electronichealth.se/identifier/personnummer
Twelve digits, no hyphen (swe-id-rule). Skatteverket assigns it. NLL examples use Skatteverket test identity numbers, not production persons; those test persons are normally absent from NLL test environments. Do not publish a real personnummer. Keep the system URL and a dummy twelve-digit value in fixtures.
When a personnummer is missing, NLLPatient is a contained resource identified by name and birthDate. Do not invent a personnummer to avoid contained Patient.
What to implement first
- If the buyer is connecting to NLL: package
se.electronichealth.fhir.nll.r4#1.3.1(or the version on the target environment), NLLPatient + NLLMedicationRequest + NLLMedicationDispense as the IG maps them, personnummer system as above. - If the buyer wants a Swedish base Patient outside NLL: that is HL7 Sweden Base (
SEBasePatient), a different IG. Do not ship NLL profiles as a national core. - For EHDS ePrescription / eDispensation, NLL is a national medication-list API, not automatically HL7 Europe MPD. Map only when the contract says so.
- Read the handbook for access, headers and search prefixes (
authoredon,whenhandedover). The HL7 FHIR R4 guide does not document NLL search rules.
What this is not
This article is not NLL connection approval, not an E-hälsomyndigheten certificate, not a pharmacy licence, and not legal advice. Implementing NLL profiles in a lab does not authorise production calls. I do not operate NLL test or production access. Personnummer is cited only as an identifier system. Nothing here is clinical or prescribing advice.
Related reading
For mapping work against NLL, use HL7 FHIR integration or start a project.