SFM Basis API Implementation Guide

Practitioner

Practitioner information will have to be written to the SFM via the SFM API basis in advance to grant the correct access to the SFM API.

The sfm-Practitioner profile on Practitioner shall be used.

SFM will do neccesary checks against national registers to decide the pattern for medication information retrevial for each individual practitioner. Typically, SFM will look up medical authorizations and prescription rights and store locally whenever a sfm-Practitioner is created or modified, causing a new version of the resource to be created automatically.

Access to operation on this resource is granted by presenting a token with a personal identity matching a known Person(sfm-Person) written to SFM in advance.

Practitioner

  • create
  • read
  • update
  • delete - Operation is avaliable, but will generally report error.

When creating or updating a practitioner resource, the minimum required fields are:

  • Profile: sfm-Practitioner
  • Identifier (exactly one of FNR or PNR) - required for operation on RF/KJ
  • Identifier (HPR) - will be checked against Helsepersonellregisteret
  • active (true or false)
  • name (at least one given and one family)

Seach operations supported:

GET [base]/Practitioner?given=<string> - match for resources containing the string in given name

GET [base]/Practitioner?family=<string>- match for resources containing the string in family name

GET [base]/Practitioner?identifier=<string> - match for resources containing the string in identifier (FNR/DNR)

GET [base]/Practitioner - return all Practitioners (warning: as paging is not supported, this may be a large bundle)

active=true|false may be given as a parameter to limit the search.

To search for an identifier within a specific set, these special searches are implemented:

GET [base]/Practitioner?identifier=<system>|<string>

where <system> is one of:

urn:oid:2.16.578.1.12.4.1.4.1 for FNR

urn:oid:2.16.578.1.12.4.1.4.2 for DNR

urn:oid:2.16.578.1.12.4.1.4.4 for HPR

Result paging is not supported.

Profile

sfm-Practitioner

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
id0..1
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
id0..1
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
activeS Σ1..1boolean
id0..1
middlenameI0..1Extension(string)
useΣ ?!0..1codeBinding
textΣ0..1string
familyΣ1..1string
givenΣ1..1string
prefixΣ0..*string
suffixΣ0..*string
periodΣ I0..1Period
telecomΣ I0..*ContactPoint
addressΣ0..*no-basis-Address
genderΣ0..1codeBinding
birthDateΣ0..1date
photoI0..*Attachment
id0..1
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
identifier0..*Identifier
id0..1
extensionI0..*Extension
id0..1
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1
extensionI0..*Extension
id0..1
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1
extensionI0..*Extension
id0..1
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
periodI0..1Period
issuerI0..1Reference(Organization)
communication0..*CodeableConceptBinding