Publisert - 12.01.2026

PMD API Specification

Pasientens Måledata (PMD) is a data sharing service being established in Norway to centralize and share vital health measurements, such as pulse and blood pressure, among healthcare providers.

PMD is a NOT a master data storage, and has no opinion and does no interpretation about it's data.

PMD is a FHIR-API

PMD implements a subset of the FHIR REST API specification, with the following limitations:

  • Only one resource type is available: Observation (see Observation).
  • Bundle endpoint only accepts Observation resources. For other constrains, see bundle-
  • Patients are automatically created and managed internally by the system.

Getting started

In order to use the PMD APIs, you must:

Select an environment

Environment URL Usage Authentication Availabilty
Dev pmd.dev.nhn.no Internal development environment None Internett, Helsenett
Test pmd.test.nhn.no Close-to-production test environment HelseID Internett, Helsenett
Production pmd.nhn.no Production environment HelseID Helsenett

Authenticate with HelseID

You can explore our APIs without authentication in our Dev environment.

All endpoints are guarded by HelseID. To use the PMD API the client therefore must implement HelseID with DPoP. The end users must log in at security level 4 (BankID or Buypass Security).

See the official HelseID documentation and their official support channels for more information about HelseID, OpenID Connect and DPoP.

How PMD implements FHIR

PMD API follows the FHIR R5 specification, while also being backwards compatible with R4 for observation resources.

Resource: Observation

Clients can expect to find Observation resources to the Base observation profile , as well as the Observation variant from VKP (Velferdsteknologisk Knutepunkt) - VkpObservation - as described here:

Consume or produce FHIR observations to PMD

FHIR observations can be created to PMD through bundles, and read through search.

At the time of writing, updating or deleting observations is NOT POSSIBLE through the APIs. This comes from the restriction that the API consumer currently has no way of knowing the ID of stored observations. As such, updating or deleting observations must be done manually by contacting NHN.

Deleting and updating observations must be done manually.

Bundle endpoints

Endpoints for uploading bundles should target the root URL (e.g. https://pmd.dev.nhn.no/ for the internal development environment).

Currently only bundles of type=collection is supported.

Collection bundle endpoint

PMD supports uploading bundles of type=collection. This allows inserting observations into PMD.

Only resources of resourceType=observation will be stored in PMD, others will be ignored.

Currenly, it is not possible to update observations using the collection endpoint; if the same observation is sendt to PMD twice, two separate observations will be stored in PMD.

Each resource will be treated independently.

A successful request will return a response bundle of type type=batch-response. It contains an entry array that corresponds one-to-one with the entries in the request bundle - including resources not processed (e.g not observations). Each entry has a response object that contains a standard HTTP status code from the processing of the given resource.

Since the order of the entries in the response bundle matches the order in the request bundle, you can correlate the HTTP status for each resource from their position in the arrays.

POST [base_url]/Observation/_search

See examples

Notes:

  • Observation search will only return results for one patient at a time.
  • Search through GET parameters is not allowed.
  • Following filters are available:
    • date (comparators eq, ge, gt, lt, le, see FHIR search prefixes)
    • code
    • patient.identifier currently implemented as header X-Pmd-Patient

References

Søk i Utviklerportalen

Søket er fullført!