DIPS Core Implementation Guide
0.1.0 - ci-build Norway

DIPS Core Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Documentation

Introduction

The intended audience for this document is personnel developing integrations to FHIR R4 modules. This document contains information about the implemented API and authentication. All integration through this resource is subjected to the access control mechanisms in DIPS. This means that results of operations reflect the access level of the calling user; e.g. the number of Procedures returned will be limited if the calling user is not authorized to view some of DIPS Procedures.

Authentication

All communications with FHIR R4 Core are required to be secure at the transport level. In addition, every interaction with a FHIR R4 Core application requires a token to identify the caller. The caller must be a known user entity in DIPS.

Transport Security

By default, all FHIR R4 Core applications are installed with security requirements. This means that the use of SSL is required for communicating with the services. The server is required to provide an SSL certificate when negotiating security with clients. The use of client certificates is not a required feature of FHIR R4 Core, so any client certificate requirement should be considered at each separate deployment. The base URL for all requests is where the FHIR R4 server is installed.

Security Tokens

FHIR R4 Core requires the usage of “security tokens”. To find out which type of security token you are required to send, contact the organization you are integrating with. Different methods to add security tokens are described in chapter below.

Forms of Security Token

The security framework in FHIR R4 Core supports TicketHeader and OAuth token schemes, including the DIPS authentication ticket (AKA “ticket”) and federated security, using an OAuth 2.0 Bearer token. Failure to provide a security token, regardless of the mechanism used by FHIR R4 Core, will result in a failed request. The HTTP response status will be HTTP 401 “Unauthorized”. Details on failed authentication and authorization can also be found for each resource.

DIPS Ticket

This security token is the security token generated by the DIPS core system when a user is authenticated. The token is passed along with each call. The ticket can be attached to the call in the following ways:

  • As a custom HTTP header
  • In the standard HTTP “Authorization” header
Ticket in a Custom HTTP Header

The ticket is sent in a custom HTTP header called “Auth-Ticket”:

POST https://localhost/DIPS-WebAPI/HL7/FHIR-R4/<resource> HTTP/1.1 Accept-Encoding: gzip,deflate Auth-Ticket: E73CA55A-F8C7-4D81-8F55-A2C6FBD88C62

Ticket in an HTTP Authorize Header

The ticket is sent in the standard HTTP Authorization header, with a scheme named “Auth-Ticket”

POST https://localhost/DIPS-WebAPI/HL7/FHIR-R4/<resource> HTTP/1.1 Authorization: Auth-Ticket E73CA55A-F8C7-4D81-8F55-A2C6FBD88C62

Federated Security with OAuth 2.0 Bearer Token

Federated security in FHIR R4 Core requires Bearer tokens obtained from an OAuth 2.0 enabled authorization server if federated security is enabled.

See the section "Enable Federated Security" below for information about enabling federated security.

For a detailed description of federated security in FHIR R4 Core, please see the Administrator’s Guide.

A detailed description of OAuth 2.0 can be found here: https://tools.ietf.org/html/rfc6749

A detailed description of the Bearer Token usage can be found here: https://tools.ietf.org/html/rfc6750

A request for a FHIR resource using the Bearer token will use the standard HTTP Authorization header, but with the scheme Bearer:

POST https://localhost/DIPS-WebAPI/HL7/FHIR-R4/<resource> HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYW RtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

The Bearer token must be a Base64-encoded JSON Web Token (JWT). For detailed info about the JWT, please see here:( https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32)

When federated security is enabled, all other forms of authentication will be disabled

HTTP Status Codes

The service will respond with HTTP status codes which describe the result of the call to the service:

Name Code Description
OK 200 The request succeeded.
Bad Request 400 Invalid Request.
Unauthorized 401 The caller is not authorized to access the resource.
NotFound 404 Data not in the database.
Unprocessable Entity 422 The request contained values which were not accepted, or missing required properties.
Unprocessable Entity 500 A validation error or an unknown error occurred while processing the request.

FHIR Organization

FHIR Organization is a shared registry of contact and other information for various organizations. It can be used as a support for other resources that need to reference organizations, perhaps as a document, message or as a contained resource.

The service implements the following FHIR resources in conformance with FHIR R4.

  • Organization (profile DIPSOrganization and NoBasisOrganization) This document describes how to call the FHIR service, and how values are mapped to DIPS. The base URL for all requests is where the FHIR R4 server is installed.

https://{server}/DIPS-WebAPI/HL7/FHIR-R4/organization/

Organization Resource

The Organization resource may be used in a shared registry of contact and other information for various organizations. It can be used as a support for other resources that need to reference organizations.

It implements the DIPSOrganization profile with the following interactions:

  • Search
  • Read

The following organizational units are included in the Organization:

  • Organization internal
  • Organization external
  • Section
  • Department
  • Hospital
  • Ward
  • Location

To represent the whole organization hierarchy, partOf on a Organization resource is pointing to its parent in the hierarchy:

  • Department → Hospital
  • Section → Hospital
  • Ward → Hospital
  • Hospital → Organization
  • Organization → Organization
Access control

Access is checked for the DIPS user in the provided ticket or the config file (depending on the authorization method used). Only the records that the user has access to are returned.

Authorization

These codes must be used in security attributes returned in each resource entity:

P=Permit

D=Deny

U=Unknown

A=ALL

Example requests

_security=http://dips.no/fhir/ValueSet/v1-OrgAccess|PERMIT

_security=http://dips.no/fhir/ValueSet/v1-OrgAccess|DENY

_security=http://dips.no/fhir/ValueSet/v1-OrgAccess|ALL

This code must be returned in every resource returned in the field: Organization.meta.security

Search for an organization by organization ID, ReshID, name, business registration number, part of, StdNumber and type.

Request format

GET .../Organization?<parameters>

Table 1. Parameters

Parameter Description
_id Search for an organization by given logical ID
identifier Supports search for RESH ID, Organization ID and Standard department number
name Search by phrase, contains at the beginning of the organization name
name:contains Returns results that include the supplied parameter value anywhere within the field being searched
name:exact Returns results that match the entire supplied parameter, including casing and accents
type Search for organization by type
partOf Returns organizations that are part of the given organization
_security Search parameter for an organization’s authorization
_pretty Format the case of the response strings. Available statuses are true and false
_summary Change the content of the response. Available stauses are true, false, data, text and count

Valid coding systems for search with "identifier"

Table 2. Valid OIDs and identifiers

OID/System Description Example
urn:oid:1.3.6.1.4.1.9038.70.1 Organization ID 27
urn:oid:1.3.6.1.4.1.9038.70.2 Hospital ID 1
urn:oid:1.3.6.1.4.1.9038.70.3 Department ID 22
urn:oid:1.3.6.1.4.1.9038.70.4 Ward ID 21
urn:oid:1.3.6.1.4.1.9038.70.5 Section ID 21
urn:oid:1.3.6.1.4.1.9038.70.6 Location ID 1000021
urn:oid:2.16.578.1.12.4.1.4.101 Business registration number 000000000
urn:oid:2.16.578.1.12.4.1.4.102 RESH-ID 10013
http://dips.no/fhir/namingsystem/dipsdepartmentshortname Department short name KIR
http://dips.no/fhir/namingsystem/dipswardshortname Ward short name K1
http://dips.no/fhir/namingsystem/dipssectionshortname Section short name URO
http://dips.no/fhir/namingsystem/dipslocationshortname Location short name TDBYGGA
http://dips.no/fhir/namingsystem/dipsstandardnumber Standard number 70008

Organization search with query by AuthorizedOrgUnits

Use the AuthorizedOrgUnits query to search for organizations by userroleid to get authorized organizations.

GET .../Organization?_query=AuthorizedOrgUnits&userroleid={user role ID}

Table 3. Parameters

Parameter Description
userroleid Search organizations by user role id

Includes

  • _include=Organization:partof - The organization of which this organization forms a part

Example requests

Search for organizations with organization ID aks1000090:

GET .../Organization?_id=aks1000090

Search for organizations with organization ID 1000090:

GET .../Organization?identifier=urn:oid:1.3.6.1.4.1.9038.70.1|1000090

Search for organizations with organization number (business registration number) 883974832:

GET .../Organization?identifier=urn:oid:2.16.578.1.12.4.1.4.101|883974832

Search for organizations with Resh ID 5004:

GET .../Organization?identifier=urn:oid:2.16.578.1.12.4.1.4.102|5004

Search for organizations with standardnumber 8180:

GET .../Organization?identifier=http://dips.no/fhir/namingsystem/dips-standardnumber|8180

Search for organizations with short name Med Kn:

GET .../Organization?identifier=http://dips.no/fhir/namingsystem/dips-departmentshortname|Med Kn

Search for organizations where name starts with ABC:

GET .../Organization?name=ABC

Search for organizations with organization name containing the string HF in any place:

GET .../Organization?name:contains=HF

Search for organizations with exact name Testsykehuset HF

GET .../Organization?name:exact=Testsykehuset FH

Search for organizations with organization type urn:oid:2.16.578.1.12.4.1.1.8628|1 and organization name contains "HF:

GET .../Organization?type=urn:oid:2.16.578.1.12.4.1.1.8628|1&name:contains=HF

Search for organizations which are part of the aks1000176 organization :

GET .../Organization?partof=Organization/aks1000176

Search for organizations with organization identifier and pretty enabled:

GET .../Organization?identifier=urn:oid:2.16.578.1.12.4.1.4.101|883974832&_pretty=true

Search for organizations with organization identifier and summary=data:

GET .../Organization?identifier=urn:oid:2.16.578.1.12.4.1.4.101|883974832&_summary=data

FHIR Location

FHIR Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations. Locations may be private, public, mobile or fixed and scale from small freezers to full hospital buildings or parking garages. The Location resource represents location, team and bed in DIPS.

The service implements the following FHIR resources in conformance with FHIR R4.

  • Location (profile DIPSLocation and NoBasisLocation)

This document describes how to call the FHIR service, and how values are mapped to DIPS.

The base URL for all requests is where the FHIR R4 server is installed.

https://{server}/DIPS-WebAPI/HL7/FHIR-R4/Location/<id>

Location Resource

The location resource implements the DIPSLocation profile with these interactions. It can represent a bed, ward, or location in DIPS.

  • Search
  • Read

The following organizational units are included in Location:

  • Location
  • Team
  • Bed
  • Ward
Access control

Access is checked for the DIPS user in the provided ticket or the config file (depending on the authorization method used). Only records the user has access to are returned.

Authorization

These codes must be used in security attributes returned in each resource entity.

  • P=Permit
  • D=Deny
  • U=Unknown
  • A=ALL

Example requests

_security=http://dips.no/fhir/ValueSet/v1-OrgAccess PERMIT
_security=http://dips.no/fhir/ValueSet/v1-OrgAccess DENY
_security=http://dips.no/fhir/ValueSet/v1-OrgAccess ALL

This code must be returned in every resource returned in the field: Organization.meta.security

Request: Search

Search for a location by location ID, ReshID, name, part of, StdNumber and type.

Request format

GET .../Location?<parameters>

Table 4. Parameters

Parameter Description
_id Search for an location by given logical ID
identifier Supports search RESH ID, short name and standard location number
name Search by phrase, contains at the beginning of the location name
name:contains Returns results that include the supplied parameter value anywhere within the field being searched
name:exact Returns results that match the entire supplied parameter, including casing and accents
type Search by location by type
organization The organization responsible for the provisioning and upkeep of the location
_pretty Format the case of the response strings. Available statuses are true and false
_summary Change the content of the response. Available statuses are: true, false, data, text and count

Includes

• _include=Location:organization - The organization of which this location forms a part

Valid coding systems for search with "identifier"

Table 5. Valid OIDs and identifiers

OID/System Description Example
http://dips.no/fhir/namingsystem/dipslocationshortname Location short name TDBYGGA
http://dips.no/fhir/namingsystem/dipswardshortname Ward short name K1
urn:oid:1.3.6.1.4.1.9038.70.6 Location ID 1000159
urn:oid:1.3.6.1.4.1.9038.70.4 Ward ID 29
http://dips.no/fhir/namingsystem/dips-bedid Bed ID 21
http://dips.no/fhir/namingsystem/dips-teamid Team ID 86
http://dips.no/fhir/namingsystem/dipsstandardlocationnumber Standard location number 70002
urn:oid:2.16.578.1.12.4.1.4.102 RESH-ID 70001

Example requests

Search locations with location ID "aea1000148": GET .../Location?_id=aea1000148

Search locations with location ID "1000148": GET .../Location?identifier=urn:oid:1.3.6.1.4.1.9038.70.6|1000148

Search location with short name "habygga": GET .../Location?identifier=http://dips.no/fhir/namingsystem/dips-locationshortname|habygga

Search locations with Resh ID "10003": GET .../Location?identifier=Location?identifier=urn:oid:2.16.578.1.12.4.1.4.102|10003

Search locations with standard location number "70003": GET ...Location?identifier=http://dips.no/fhir/namingsystem/dips-standardlocationnumber|70003

Search locations where name starts with "ABC": GET .../Location?name=ABC

Search locations where name contains "medisinsk" GET .../Location?name:contains=medisinsk

Search locations where exact name is "Medisinsk Pol 1H" GET .../Location?name:exact=Medisinsk Pol 1H

Search locations by location type GET ...Location?type=http://dips.no/fhir/namingsystem/dips-locationtype|Ventelistested

Search location where name contains "medisinsk", with pretty enabled: GET .../Location?name:contains=medisinsk&_pretty=true

Search location where exact name is "Medisinsk Pol 1H" and summary=data: GET .../Location?name:exact=Medisinsk Pol 1H&_summary=data

Read location by ward ID "ahl1000139": GET .../Location/ahl1000139

Search for locations by ward ID "ahl1000139": GET .../Location?_id=ahl1000139

Search locations by ward identifier "1000139": GET .../Location?identifier=urn:oid:1.3.6.1.4.1.9038.70.4|1000139

Search location with short ward name "IN IT": GET .../Location?identifier=http://dips.no/fhir/namingsystem/dips-wardshortname|IN IT

Search location with ward name "Ikke ": GET .../Location?name=Ikke

Search locations with standard ward number "1010": GET ...Location?identifier=http://dips.no/fhir/namingsystem/dips-standardlocationnumber|1010

Search locations by ward type GET ...Location?type=http://dips.no/fhir/namingsystem/dips-wardtype|212779

FHIR Patient

Table 6. Supported FHIR Operations

Operation Supported
Read Yes
VRead No
Create Yes
Update Yes
History No
Search Yes
Delete No
Patch No
Operation Yes

Table 7. OIDs used in Patient R4 Resource

OID Description Used in
2.16.578.1.12.4.1.4.1 Norwegian National Identity Number Patient.Identifier.System
2.16.578.1.12.4.1.4.2 Norwegian D-number Patient.Identifier.System
2.16.578.1.12.4.1.4.3 Norwegian Common Help Number Patient.Identifier.System
2.16.578.1.12.4.1.4.4 Norwegian Healthcare Practitioner Identificator (HPR) Patient.generalPractitioner.identifier:HPR.system
1.3.6.1.4.1.9038.51 DIPS Requisitioner number Patient.Contact.Extension.ValueCodeableConcept.Coding.System
2.16.578.1.12.4.1.4.101 Organizational number in Brønnøysundregisteret Organization.Identifier.System
2.16.578.1.12.4.1.2 HER identifier by Norsk Helsenett Patient.Contact.Extension.ValueCodeableConcept.Coding.System and Organization.Identifier.System
2.16.578.1.12.4.1.1.9034 Healthcare Practitioner Role to Patient Patient.contact.relationship.coding:HCPFunctionInRelationToPatient.system
2.16.578.1.12.4.1.2.101 Organization ENH Identifier Patient.contact.organization.identifier:ENH /Patient.managingOrganization.identifier:ENH.system
2.16.578.1.12.4.1.2.102 Organizational RSH Identifier Patient.contact.organization.identifier:RSH /Patient.managingOrganization.identifier:RSH.system

Read Operation

Table 8. OperationInformation

PATH https://{server}/DIPS-WebAPI/HL7/FHIR-R4/Patient/{ID}
HTTP VERB GET
Auth-Ticket Valid ticket from database
Content-Type application/json or application/xml
ID Norwegian National Identity Number / Norwegian D-Number / Local temporary Identity
HTTP response codes 200,404,500
Sample Response
{
   "resourceType":"Patient",
   "id":"cdp1000811",
   "meta":{
      "profile":[
         "DIPSPatient",
         "NoBasisPatient"
      ]
   },
   "identifier":[
      {
         "use":"official",
         "system":"urn:oid:2.16.578.1.12.4.1.4.1",
         "value":"01048900000"
      },
      {
         "system":"http://dips.no/fhir/namingsystem/dips-patientid",
         "value":"1000811"
      }
   ],
   "active":true,
   "name":[
      {
         "use":"official",
         "text":"Telokk, Gry",
         "family":"Telokk",
         "given":[
            "Gry"
         ]
      }
   ],
   "telecom":[
      {
         "extension":[
            {
               "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPatientPhoneTypeId",
               "valueDecimal":268903
            }
         ],
         "system":"phone",
         "value":"22334455",
         "use":"home"
      },
      {
         "system":"email",
         "value":"email@example.com",
         "use":"home"
      },
      {
         "extension":[
            {
               "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPatientPhoneTypeId",
               "valueDecimal":268905
            }
         ],
         "system":"phone",
         "value":"90909090",
         "use":"mobile"
      }
   ],
   "gender":"female",
   "birthDate":"1979-05-12",
   "deceasedBoolean":false,
   "address":[
      {
         "extension":[
            {
               "extension":[
                  {
                     "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPatientMunicipality",
                     "valueCoding":{
                        "system":"urn:oid:2.16.578.1.12.4.1.1.3402",
                        "code":"1201",
                        "display":"Bergen"
                     }
                  }
               ],
               "url":"http://hl7.no/fhir/StructureDefinition/no-basis-propertyinformation"
            },
            {
               "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPatientStateName",
               "valueString":"HORDALAND FYLKESKOMMUNE"
            }
         ],
         "use":"home",
         "line":[
            "Lungegaardsbakken 13"
         ],
         "city":"Bergen",
         "district":"Bergen",
         "_district":{
            "extension":[
               {
                  "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPatientMunicipality",
                  "valueCoding":{
                     "system":"urn:oid:2.16.578.1.12.4.1.1.3402",
                     "code":"1201",
                     "display":"Bergen"
                  }
               }
            ]
         },
         "state":"12",
         "postalCode":"5020",
         "country":"Norge"
      }
   ],
   "generalPractitioner":[
      {
         "reference":"PractitionerRole/agb1000944"
      }
   ]
}

Search Operation

Table 9. OperationInformation

SEARCH https://{server}/DIPS-WebAPI/HL7/FHIR-R4/Patient?{SearchParameters}
HTTP VERB GET
Auth-Ticket Valid ticket from database
Content-Type application/json or application/xml
ID Norwegian National Identity Number / Norwegian D-Number / Local temporary Identity
HTTP response codes 200,404,500

A successful search will return 200 with a Bundle containing patients matching the search criteria. If no patients were found, the service returns 200 and an OperationOutcome containing details about the issue. A search without any valid parameters will return 400 with an OperationOutcome. Parameters can either be used alone or together. Valid search parameters are listed below.

Table 10. SearchParameters

Parameter Valid values Example
identifier Norwegian National Identity Number / Norwegian D-Number/ Local temporary Identity/Patient Id  
given String matching Patient.Name.Given /patient?given=Geir
family String matching Patient.Name.Family /patient?family=Hansen
birthdate Date formatted as yyyy-MM-dd /patient?birthdate=1993-02-06
gender "Male", "M", "Female", "F","K" "Other", "?", "Unknown", "U" /patient?gender=F
deceased true, false, yyyy-MM-dd /patient?deceased=true
address String matching Patient.Address.Line /patient?address=Morenevegen58
zip String matching Patient.Address.PostalCode /patient?zip=9027
district String matching Patient.Address.District /patient?district=Ramfjord
urban-district String matching the urban district of the patient /patient?urban-district=Sagene
municipal String matching Patient.Address.State /patient?municipal=Tromsø
email String matching Patient.Telecom.Value, where System=email /patient?email=email@example.com
fax String matching Patient.Telecom.Value, where System=fax /patient?fax=12345666
phone String matching Patient.Telecom.Value, where System=phone /patient?phone=12345455
_include:Patient:general:practitioner   /patient?_include=Patient:Patient:generalpractitioner&_id=urn:oid:2.16.578.1.12.4.1.4.3

The Identifier can be kept standalone or be prefixed with a Norwegian National Identity Number (urn:oid:2.16.578.1.12.4.1.4.1) or Norwegian D-Number (urn:oid:2.16.578.1.12.4.1.4.2). String matching for name parameters is case insensitive

If an Identifier is specified, any other search parameters will be ignored.

Table 11. Search modifiers

Modifier Valid Parameters Behaviour Example
:contains given, family Wild card search for the string supplied /patient?given:contains=Eve
:exact given, family Any patients with a name that is exactly same as the search string /patient?given:exact=Eve

Parameter names may specify a modifier as a suffix. Modifiers are separated from the parameter name by a colon.

Update Contact Information Operation

Contact Information can be updated according to the Social Security Number of a Patient. Upon a successful update, this operation returns Patient details with updated contact information in the response itself. Supported Contact information details are as follows:

• Mobile Number • Email Address • Consent

 Social Security Number is a mandatory field for updating contact information.

Table 12. OperationInformation

PATH https://{server}/DIPS-WebAPI/HL7/FHIR-R4/patient/$updatecontactinformation
HTTP VERB POST
Auth-Ticket Valid ticket from database
Content-Type application/json
HTTP response codes 200,400,500

Sample POST Request for update Email, Mobile Number and Consent of a Patient.

{
   "resourceType":"Parameters",
   "parameter":[
      {
         "name":"OfficialNumber",
         "valuestring":"14502063562"
      },
      {
         "name":"MobileNumber",
         "valuestring":"911111111"
      },
      {
         "name":"EmailAddress",
         "valuestring":"abcd@dips.com"
      },
      {
         "name":"consent",
         "valuestring":"1"
      }
   ]
}

Update Official Number Operation

A Patient’s Official Number / Social Security Number can be updated from this operation. In order to do so, a new Official Number needs to be provided along with the current Official Number to the operation as inputs.

 Current Official Number’s Identifier must contain a system value describing it as either Norwegian National Identity Number (urn:oid:2.16.578.1.12.4.1.4.1) or Norwegian D-Number (urn:oid:2.16.578.1.12.4.1.4.2) and a matching value for New Official Number.

PATH https://{server}/DIPS-WebAPI/HL7/FHIR-R4/patient/$changeOfficialNumber
HTTP VERB POST
Auth-Ticket Valid ticket from database
Content-Type application/json
HTTP response codes 200,400,500

Sample POST Request for update patients Official Number

{
   "resourceType":"Parameters",
   "parameter":[
      {
         "name":"oldofficialnumber",
         "valuestring":"19046233533"
      },
      {
         "name":"NewOfficialNumber",
         "valuestring":"19046243849"
      }
   ]
}

Query IsPatient

Custom query IsPatient is used to check if a person is a patient, and can check if the patient has documents or referrals. Output values are returned as Parameter resource. IsPatient supports both HTTP GET with query parameters and HTTP POST with query parameters as application/x-www-formurlencoded form. HTTP POST is the preferred method as national identifier will be logged in Internet Information Services logs if HTTP GET is used as query method. See sample request for more information.

Parameter Datatype Cardinality Direction Description
nationalidentifier string 1..1 in Norwegian National Identity Number /Norwegian D-Number / Local temporary Identity
checkfordocuments boolean 0..1 in If true checks if patient has documents, if false or not in request no check is run
checkforreferrals boolean 0..1 in If true checks if patient has referrals, if false or not in request no check is run
ispatient boolean 1..1 out Returns true if person is patient, false if person is not patient
hasdocuments boolean 0..1 out Returns true if patient has documents, false if no documents. No value if checkfordocuments is false or not in query
hasreferrals boolean 0..1 out Returns true if patient has referrals, false if no referrals. No value if checkforreferrals is false or not in query

Sample request

Following requests are equal for FHIR-R4

Query with HTTP GET

GET .../Patient?_query=IsPatient&nationalidentifier=12497847379&checkfordocuments=true&checkforrefe rrals=true

Query with HTTP POST

POST .../Patient/_search HTTP/1.1 Content-Type: application/x-www-form-urlencoded _query=IsPatient&nationalidentifier=12497847379&checkfordocuments=true&checkforreferrals=true

Response

{
   "resourceType":"Parameters",
   "parameter":[
      {
         "name":"ispatient",
         "valueBoolean":true
      },
      {
         "name":"hasdocuments",
         "valueBoolean":true
      },
      {
         "name":"hasreferrals",
         "valueBoolean":true
      }
   ]
}

Profiles

Profiles used in this implementation of FHIR Patient R4 Resource are as follows. All profiles will be available on the server after installation and on DIPS Customer Portal as an appendix to the documentation as well.

Table 13. Profiles

Name Use Element
DIPSPatient Main profile for Patient Patient
ContactIdentifier Extension used at patient.contact patient.contact.ContactIdentifier
ContactPractitionerRoleName Extension used at patient.contact patient.contact.ContactPractitionerRoleName
PatientContactOrganization Profile for contained contact organization patient.contact.organization
DIPSPatientDeathRegistered Optional Extension patient.extension:deathRegisteredTime
DipsPatientLanguageId Profile showing the language id of the patient patient.communication.language.coding.extension:LanguageId

Create Operation

The create operation (https://www.hl7.org/fhir/http.html#create) creates a new resource at the server. The payload is a FHIR Organization resource.

Create Request Information for patient

• Auth-Ticket = Valid ticket from the database • Content-Type = application/json • Method = POST • URL = https://{SERVER}/DIPS-WebAPI/HL7/FHIR-R4/patient

Sample POST Request body (minimal) for creating a patient by National Temporary Identifier (HNR)
{
   "resourceType":"Patient",
   "identifier":[
      {
         "system":"urn:oid:2.16.578.1.12.4.1.4.3",
         "value":"80434218415"
      }
   ],
   "gender":"male"
}
Sample POST Request body (minimal) for creating a patient by Norwegian National Identity number
{
   "resourceType":"Patient",
   "identifier":[
      {
         "system":"urn:oid:2.16.578.1.12.4.1.4.1",
         "value":"01048900000 "
      }
   ],
   "active":true,
   "name":[
      {
         "use":"official",
         "text":"Telokk, Gry",
         "family":"Telokk",
         "given":[
            "Gry"
         ]
      }
   ],
   "address":[
      {
         "extension":[
            {
               "extension":[
                  {
                     "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPatientMunicipality",
                     "valueCoding":{
                        "system":"urn:oid:2.16.578.1.12.4.1.1.3402",
                        "code":"1804"
                     }
                  }
               ],
               "url":"http://hl7.no/fhir/StructureDefinition/no-basis-propertyinformation"
            }
         ],
         "use":"home",
         "postalCode":"6800"
      }
   ]
}
Sample POST Request body (complete)
{
   "resourceType":"Patient",
   "identifier":[
      {
         "system":"urn:oid:2.16.578.1.12.4.1.4.1",
         "value":"01048900000 "
      }
   ],
   "active":true,
   "name":[
      {
         "use":"official",
         "text":"Telokk, Gry",
         "family":"Telokk",
         "given":[
            "Gry"
         ]
      }
   ],
   "telecom":[
      {
         "extension":[
            {
               "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPatientPhoneTypeId",
               "valueDecimal":268903
            }
         ],
         "system":"phone",
         "value":"77635429",
         "use":"home"
      }
   ],
   "gender":"male",
   "deceasedBoolean":false,
   "address":[
      {
         "extension":[
            {
               "extension":[
                  {
                     "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPatientMunicipality",
                     "valueCoding":{
                        "system":"urn:oid:2.16.578.1.12.4.1.1.3402",
                        "code":"0301",
                        "display":"Bodø"
                     }
                  }
               ],
               "url":"http://hl7.no/fhir/StructureDefinition/no-basis-propertyinformation"
            },
            {
               "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPatientStateName",
               "valueString":"NORDLAND FYLKESKOMMUNE"
            }
         ],
         "use":"home",
         "city":"Førde",
         "district":"Bodø",
         "_district":{
            "extension":[
               {
                  "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPatientMunicipality",
                  "valueCoding":{
                     "system":"urn:oid:2.16.578.1.12.4.1.1.3402",
                     "code":"0301",
                     "display":"Bodø"
                  }
               }
            ]
         },
         "state":"18",
         "postalCode":"6800"
      }
   ]
}

Request: Update

Update patient information

Table 14. OperationInformation

PATH https://{SERVER}/DIPS-WebAPI/HL7/FHIR-R4/patient/{patient ID}
HTTP VERB PUT

Table 15. Updatable Parameters

Parameter Description
given Update patient’s existing First Name with a new String
family Update patient’s exsisting Family Name with a new String
address-line Update patient’s address line with a new String
address-city Update patient’s city. This can be done by updating the city along with the relevant PostalCode
postalCode Update patient’s postalCode. City gets updated along with this
district Update patient’s district with a new valid district
Municipality Code Update patient’s municipality code (when the municipality code is changed the relevant municipality name is also updated)
fax Update patient’s fax number
phone Update patient’s phone number
email Update patient’s email address
active Update patient’s status. Available statuses are true and false
Language id Update patient’s Language code
urban-district Update patient’s urban-district

Table 16. Non-Updatable Parameters

Parameter Description
id patient ID cannot be updated
identifier Patient information by an identifier cannot be updated
birthdate Date of birth of a patient cannot be updated
State country specified in a patient cannot be updated
Gender Gender of a patient cannot be updated

FHIR Person

The service implements the following FHIR resources in conformance with FHIR R4. The profiles are available on the server after installation, and on DIPS customer portal as an appendix to the documentation.

Request: Read

Get person information by providing a person ID.

Table 17. OperationInformation

PATH https://{server}/DIPS-WebAPI/HL7/FHIR-R4/person/{id}?_profile={Profile name}
HTTP VERB GET
id Person ID

Request: Search

Search for person information

Table 18. OperationInformation

PATH https://{server}/DIPS-WebAPI/HL7/FHIR-R4/person?{SearchParameters}
HTTP VERB GET

Table 19. Parameters

Parameter VERB Description
identifier Search for person information by a human identifier for this person.This supports the following URNs. http://dips.no/fhir/namingsystem/dipspersonid, urn:oid:2.16.578.1.12.4.1.4.1 and + urn:oid:2.16.578.1.12.4.1.4.2
_id Search with person ID
given Search person by the first name that starts with the given string
family Search person by the last name that starts with the given string
address Persons' address
address-city A city specified in an address
address-state A state specified in an address
address-statecode A state code specified in an address
address-use A use code specified in an address. Available statuses are true and false
municipal The municipal of the person
zip zip code of the person
district The district of the person
urban-district String matching urban district information
birthdate The person’s date of birth
phone A value in a phone contact
email A value in an email contact
telecom The value in any kind of contact such as Email, Mobile Phone, Phone and fax
gender The gender of the person (M,m,male,Mann,K,k,Kvinne,Female,f,F,unknown,u,?,other,ukjent,ubestemt)
active Search person by status. Available statuses are true and false
_page Search by The page number of the person results
_count Search by The number of records to display for the given page
_pretty Format the case of the response strings. Available statuses are true and false

Table 20. Search Modifiers

Modifier Valid Parameters Description
:contains given, family wild card search for the string supplied
:exact given, family Any person with a name that is exactly same as the search string
Example response
{
   "resourceType":"Person",
   "id":"ajf2014791",
   "meta":{
      "profile":[
         "DIPSPerson",
         "NoBasisPerson"
      ]
   },
   "identifier":[
      {
         "use":"official",
         "system":"urn:oid:2.16.578.1.12.4.1.4.1",
         "value":"01048900000"
      },
      {
         "system":"http://dips.no/fhir/namingsystem/dips-personid",
         "value":"2014791"
      }
   ],
   "name":[
      {
         "text":"Nystad, John",
         "family":"Nystad",
         "given":[
            "John"
         ]
      }
   ],
   "gender":"male",
   "address":[
      {
         "extension":[
            {
               "extension":[
                  {
                     "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPersonMunicipality",
                     "valueCoding":{
                        "system":"urn:oid:2.16.578.1.12.4.1.1.3402",
                        "code":"1804",
                        "display":"Bodø"
                     }
                  }
               ],
               "url":"http://dips.no/fhir/StructureDefinition/R4/no-basis-propertyinformation"
            },
            {
               "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPersonStateName",
               "valueString":"NORDLAND FYLKESKOMMUNE"
            }
         ],
         "use":"home",
         "city":"Bodø",
         "district":"Bodø",
         "_district":{
            "extension":[
               {
                  "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPersonMunicipality",
                  "valueCoding":{
                     "system":"urn:oid:2.16.578.1.12.4.1.1.3402",
                     "code":"1804",
                     "display":"Bodø"
                  }
               }
            ]
         },
         "state":"18",
         "postalCode":"8001",
         "country":"Norway"
      }
   ],
   "active":true
}
Example requests

Read person info by person ID ajf1000024: GET .../person/ajf1000024

Search for person by person identifier: GET .../person?identifier=urn:oid:2.16.578.1.12.4.1.4.3|01048900000

Search for person first name starts with: GET .../person?given=POL

Search for person first name contains: GET .../person?given:contains=ROL

Search for person by a string which exactly matches with the first name: (_pretty default setting is "true". You must send _pretty=false to match result case with the search string case.) GET .../person?given:exact=ROL&_pretty=false

Search for person family name starts with: GET .../person?family=COM

Search for person family name contains: GET .../person?family:contains=ko

Search for person by a string which exactly matches with the family name: (_pretty default setting is "true". You must send _pretty=false to match result case with the search string case.) GET .../person?family:exact=Utskrevet&_pretty=false

Search for person by a string which matches with first name and active status is true: GET .../person?given=POL&active=true

Search for person by a string which matches with first name and active status is false: GET .../person?given=POL&active=false

Search for person by Person ID: GET .../person?_id=ajf1000024

Search for person by Address: GET .../person?address=Girogata 9

Search for person by Address - City: GET .../person?address-city=Bodø

Search for person by Address - state: GET .../person?address-state=NORDLAND FYLKESKOMMUNE

Search for person by Address - state code: GET .../person?address-statecode=18

Search for person by Address - use: GET .../person?address=Mystery Road 1249&address-use=true

Search for person by municipal: GET .../person?municipal=Oslo

Search for person by district: GET .../person?district=Oslo

Search for person by urban district: GET .../person?urban-district=Sagene

Search for person by zip: GET .../person?zip=8037

Search for person by a value in email contact: GET .../person?email=name1@domain.com

Search for person by a value in phone contact: GET .../person?phone=77635429

Search for person by a value in any Email, Mobile Phone, Phone and fax for the individual (telecom): GET .../person?telecom=77635429

Search for person by a value in birthdate: GET .../person?birthdate=1925-02-15

Search for person by a value in gender: GET .../person?gender=kvinne

Create Operation

The create operation (https://www.hl7.org/fhir/http.html#create) creates a new resource at the server. The payload is a FHIR Person resource.

Create Request Information for Person

• Auth-Ticket = Valid ticket from the database • Content-Type = application/json • Method = POST • URL = https://{SERVER}/DIPS-WebAPI/HL7/FHIR-R4/Person

Sample POST Request body (minimal) for creating a person by National Temporary Identifier
{
   "resourceType":"Person",
   "identifier":[
      {
         "system":"urn:oid:2.16.578.1.12.4.1.4.1",
         "value":"80434218415"
      }
   ],
   "gender":"male"
}
Sample POST Request body (minimal) for creating a person by Norwegian national identity number
{
   "resourceType":"Person",
   "identifier":[
      {
         "system":"urn:oid:2.16.578.1.12.4.1.4.1",
         "value":"01048900000"
      }
   ],
   "name":[
      {
         "use":"official",
         "text":"Nystad, John",
         "family":"Nystad",
         "given":[
            "John"
         ]
      }
   ],
   "address":[
      {
         "extension":[
            {
               "extension":[
                  {
                     "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPersonMunicipality",
                     "valueCoding":{
                        "system":"urn:oid:2.16.578.1.12.4.1.1.3402",
                        "code":"1804",
                        "display":"Bodø"
                     }
                  }
               ],
               "url":"http://dips.no/fhir/StructureDefinition/R4/no-basis-propertyinformation"
            }
         ],
         "use":"home",
         "postalCode":"8001"
      }
   ]
}
Sample POST Request body (complete)
{
   "resourceType":"Person",
   "identifier":[
      {
         "use":"official",
         "system":"urn:oid:2.16.578.1.12.4.1.4.1",
         "value":"01048900000"
      },
      {
         "system":"http://dips.no/fhir/namingsystem/dips-personid",
         "value":"2014819"
      }
   ],
   "name":[
      {
         "text":"Nystad, John",
         "family":"Nystad",
         "given":[
            "John"
         ]
      }
   ],
   "gender":"male",
   "address":[
      {
         "extension":[
            {
               "extension":[
                  {
                     "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPersonMunicipality",
                     "valueCoding":{
                        "system":"urn:oid:2.16.578.1.12.4.1.1.3402",
                        "code":"1804",
                        "display":"Bodø"
                     }
                  }
               ],
               "url":"http://dips.no/fhir/StructureDefinition/R4/no-basis-propertyinformation"
            },
            {
               "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPersonStateName",
               "valueString":"NORDLAND FYLKESKOMMUNE"
            }
         ],
         "use":"home",
         "city":"Bodø",
         "district":"Bodø",
         "_district":{
            "extension":[
               {
                  "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSPersonMunicipality",
                  "valueCoding":{
                     "system":"urn:oid:2.16.578.1.12.4.1.1.3402",
                     "code":"1804",
                     "display":"Bodø"
                  }
               }
            ]
         },
         "state":"18",
         "postalCode":"8001",
         "country":"Norway"
      }
   ],
   "active":true
}

Request: Update

Update person information

Table 21. OperationInformation

PATH https://{SERVER}/DIPS-WebAPI/HL7/FHIR-R4/Person/{Person ID}
HTTP VERB PUT

Table 22. Updatable Parameters

Parameter Description
given Update person’s existing First Name with a new String
family Update person’s existing Family Name with a new String
address-line Update person’s address line with a new String
address-city Update person’s city. This can be done by updating the city along with the relevant PostalCode
postalCode Update person’s postalCode. City gets updated along with this
district Update person’s district with a new valid district
Municipality Code Update person’s municipality code (when the municipality code is changed the relevant municipality name is also updated.)
fax Update person’s fax number
phone Update person’s phone number
email Update person’s email address
active Update person’s status. Available statuses are true and false
Language id Update person’s Language code
urban-district Update person’s urban district

Table 23. Non-Updatable Parameters

Parameter Description
id Person ID cannot be updated
identifier Person information by a human identifier cannot be updated
birthdate Date of birth of a person cannot be updated
State State specified in a person’s address cannot be updated
Country Country specified in a person’s id cannot be updated

FHIR Practitioner

The Practitioner resource implements the Norwegian Basis Practitioner and DIPSPractitioner profile with the following interactions:

Table 24. Supported FHIR Operations

Operation Supported
Read Yes
VRead No
Create No
Update No
History No
Search Yes
Delete No
Patch No

Request: Read

Get practitioner by providing a person ID.

Table 25. OperationInformation

PATH https://{server}/DIPS-WebAPI/HL7/FHIR-R4/practitioner/{id}
HTTP VERB GET
id Person ID

Request: Search

Table 26. OperationInformation

PATH https://{server}/DIPS-WebAPI/HL7/FHIR-R4/practitioner?{SearchParameters}
HTTP VERB GET

Table 27. Parameters

Parameter Description
identifier Search for practitioner by identifier. This supports the following identifier searches: - 1. DIPSHPRIdentifier - urn:oid:2.16.578.1.12.4.1.4.4 - 2. DIPSFNRIdentifier - urn:oid:2.16.578.1.12.4.1.4.1 - 3. DIPSDNRIdentifier - urn:oid:2.16.578.1.12.4.1.4.2 - 4. Person identifier - http://dips.no/fhir/namingsystem/dips-personid
given Search practitioner by the first name that starts with the given string
given:contains Returns results that include the supplied parameter value anywhere within the first name field
given:exact Returns results with the first name that matches the entire supplied parameter, including casing
family Search practitioner by the last name that starts with the given string
family:contains Returns results that include the supplied parameter value anywhere within the last name field
family:exact Returns results with the last name that matches the entire supplied parameter, including casing
active Search practitioner by status. Available statuses are true and false
_id Search with person ID

Example requests Read practitioner info by person ID: GET .../practitioner/stf39

Search for practitioner by DIPSHPRIdentifier: GET .../practitioner?identifier=urn:oid:2.16.578.1.12.4.1.4.4|1234567

Search for practitioner by DIPSFNRIdentifier: GET .../practitioner?identifier=urn:oid:2.16.578.1.12.4.1.4.1|04056600324

Search for practitioner by DIPSDNRIdentifier: GET .../practitioner?identifier=urn:oid:2.16.578.1.12.4.1.4.2|30507300000

Search for practitioner by person Identifier: GET .../practitioner?identifier=http://dips.no/fhir/namingsystem/dips-personid|267

Search for practitioner first name starts with: GET .../practitioner?given=Kommunelegen

Search for practitioner first name contains: GET .../practitioner?given:contains=munelegen

Search for practitioner by a string which exactly matches with the first name: (_pretty default setting is "true". You must send _pretty=false to match result case with the search string case.) GET .../practitioner?given:exact=KOMMUNELEGEN&_pretty=false

Search for practitioner family name starts with: GET .../practitioner?family=HANS

Search for practitioner family name contains: GET .../practitioner?family:contains=ANSEN

Search for practitioner by a string which exactly matches with the family name: (_pretty default setting is "true". You must send _pretty=false to match result case with the search string case.) GET .../practitioner?family:exact=HANSEMANN&_pretty=false

Search for practitioner by a string which matches with first name and active status is true: GET .../practitioner?given=Frank&active=true

Search for practitioner by a string which matches with first name and active status is false: GET .../practitioner?given=Frank&active=false

Search for practitioner by Person ID: GET .../practitioner?_id=stf39

FHIR PractitionerRole

Request: Read

Read practitioner role information by providing HCP ID.

Table 28. OperationInformation

PATH https://{server}/DIPS-WebAPI/HL7/FHIR-R4/PractitionerRole/{id}
HTTP VERB GET
id HCP ID

Request: Search

Table 29. OperationInformation

PATH https://{server}/DIPS-WebAPI/HL7/FHIR-R4/PractitionerRole?{SearchParameters}
HTTP VERB GET

Table 30. Parameters

Parameter Description
identifier Search for practitioner role by identifier. This supports the following identifier searches:1. DIPSHCPIdentifier - urn:oid:1.3.6.1.4.1.9038.51.1 2. DIPSHERIdentifier - urn:oid:2.16.578.1.12.4.1.2 3. DIPSHCPCodeIdentifier - urn:oid:1.3.6.1.4.1.9038.51 4. DIPSHPRIdentifier - urn:oid:2.16.578.1.12.4.1.4.4
organization Search by organization ID which is associated with practitioner role
organization.identifier This parameter is used to filter practitioner roles by organization number, when search by HPR identifier
organization.herid Search by organization HER ID which is associated with practitioner role
organization.name Search by organization name associated with practitioner role
organization.name:contains Returns results with a portion of the organization’s name at any place
organization.name:exact Returns results with organization name that matches the entire supplied parameter, including casing
active Search practitioner role by status. Available statuses are true and false
_ID Search with HCP ID
warning7.png

Table 31. Includes

Include Description
_include=PractitionerRole:Organization Include organization details which are associated with practitioner role
_include=PractitionerRole:practitioner Include practitioner details which are associated with practitioner role
_include=PractitionerRole:location Include location details which are associated with practitioner role
_include=PractitionerRole:service Include HealthcareService details which are associated with practitioner role

Example requests

Read practitioner role info by HCP ID: GET .../PractitionerRole/agb1000203

Search for practitioner role by HCPIdentifier: GET .../PractitionerRole?identifier=urn:oid:1.3.6.1.4.1.9038.51.1|1000203

Search for practitioner role by HERIdentifier: GET .../PractitionerRole?identifier=urn:oid:2.16.578.1.12.4.1.2|889911

Search for practitioner role by HPRIdentifier: GET .../PractitionerRole?identifier=urn:oid:2.16.578.1.12.4.1.4.4|1234567

Search for practitioner role by HCPCodeIdentifier: GET .../PractitionerRole?identifier=urn:oid:1.3.6.1.4.1.9038.51|HA1

Search for practitioner role by Organization ID: GET .../PractitionerRole?organization=aks1

Filter practitioner roles by organization number when search by HPR identifier.(Here organization number should search with HPRIdentifier)

GET .../PractitionerRole??organization.identifier=urn:oid:2.16.578.1.12.4.1.4.101|970948139&identifier=ur n:oid:2.16.578.1.12.4.1.4.4|1234567

Search for practitioner role by organization.herid: GET .../PractitionerRole?organization.herid=80624

Search for practitioner role by organization.name: GET .../PractitionerRole?organization.name=Andenes

Search for practitioner role by organization.name:contains: GET .../PractitionerRole?organization.name:contains=ak

Search for practitioner role by organization.name:exact: GET .../PractitionerRole?organization.name:exact=Andenes legekontor

Read practitioner role info by HCP ID and Include associated organization: GET .../PractitionerRole?_id=agb1000203&_include=PractitionerRole:Organization

Search for practitioner role by organization aks1 and enable pagination showing two records per page and show page 2 results: GET .../PractitionerRole?organization=aks1&page=2&_count=2

Operation search based on $GetCurrentUser

Operation search using GetCurrentUser as the operation id will return the current logged in practitioner role with user role information. Operation ID - $GetCurrentUser

GET .../PractitionerRole/$GetCurrentUser

Table 32. Parameters

Parameter Description
active Search practitioner role by status. Available statuses are true and false
_pretty Format the case of the response strings. Available statuses are true and false. The default status is false

Example requests

Search for practitioner role associated with the current user: GET .../PractitionerRole/$GetCurrentUser

Search for active practitioner role data associated with the current user: GET .../PractitionerRole/$GetCurrentUser?active=true

Search for inactive practitioner role data which associated with the current user: GET .../PractitionerRole/$GetCurrentUser?active=false

Apply pretty for practitioner role information which associated with current user: GET .../PractitionerRole/$GetCurrentUser?_pretty=true

Search for active practitioner role data associated with the current user and apply pretty: GET .../PractitionerRole/$GetCurrentUser?active=true&_pretty=true

Practitioner role Advanced search by GetUserRole

Use the GetUserRole query to search for Practitioner role by userroleid, dipssignature, userrolename & healthcareposition.

GET .../PractitionerRole?_query=GetUserRole&{SearchParameters}

Table 33. Parameters

Parameter Description
userroleid Search practitioner role by user role id
dipssignature Search practitioner role by Dips signature. Need to provide a full string
userrolename Search practitioner role by user role name
userrolename:exact Match the entire supplied user role name, including casing
userrolename:contains A portion of the user role name at any place
healthcareposition Search practitioner role by healthcare position
healthcareposition:exact Match the entire supplied healthcare position, including casing
healthcareposition:contains A portion of the healthcare position name at any place
active Search by status. Available statuses are true and false

Practitioner role Operation search examples based on $GetUserRole

Search practitioner role by user role ID: GET .../PractitionerRole?_query=GetUserRole&userroleid=100

Search practitioner role by dips signature GET .../PractitionerRole?_query=GetUserRole&dipssignature=KRE

Search practitioner role by healthcare position: GET .../PractitionerRole?_query=GetUserRole&healthcareposition=Fysi

Search practitioner role by exact healthcare position: GET .../PractitionerRole?_query=GetUserRole&healthcareposition:exact=Fysioterapeut

Search practitioner role by a portion of the healthcare position name: GET .../PractitionerRole?_query=GetUserRole&healthcareposition:contains=Overlege

Search practitioner role by user role name: GET .../PractitionerRole?_query=GetUserRole&userrolename=KRE

Search practitioner role by exact user role name: GET .../PractitionerRole?_query=GetUserRole&userrolename:exact=KRE: Testplan for medikasjon

Search practitioner role by a portion of the healthcare position name and user role ID: GET .../PractitionerRole?_query=GetUserRole&userroleid=1000750&healthcareposition:contains=Overlege

Practitioner role Advanced search by GetByHcpRoleName

Use the GetByHcpRoleName query to search for a Practitioner role by hcprolename

GET .../PractitionerRole?_query=GetByHcpRoleName&{SearchParameters}

Table 34. Parameters

Parameter Description
hcprolename Search practitioner role by the healthcare position role name
hcprolename:exact Match the entire supplied healthcare position role name, including casing
hcprolename:contains A portion of the healthcare position role name at any place
active Search by status. Available statuses are true and false

Practitioner role advanced search examples based on GetByHcpRoleName

Search practitioner role by the healthcare position role name: GET .../PractitionerRole?_query=GetByHcpRoleName&hcprolename=Onkolog

Search practitioner role by the exact healthcare position role name: GET .../PractitionerRole?_query=GetByHcpRoleName&hcprolename:exact=Onkolog

Search practitioner role by a portion of the healthcare position role name: GET .../PractitionerRole?_query=GetByHcpRoleName&hcprolename:contains=Onko

Search practitioner role by a portion of the healthcare position role name and enable pagination and filter by active Practitioner: GET .../PractitionerRole?_query=GetByHcpRoleName&hcprolename:contains=On&active=true&page=1&_c ount=2

Practitioner role Advanced search by UserRoleProfile

Use the UserRoleProfile query to Search for Practitioner role based on user role id or ticket.

GET .../PractitionerRole?_query=UserRoleProfile&userrole=<userrole ID Or Ticket>

Table 35. Parameters

Parameter Description
userrole This parameter is required. User role ID or ticket
active Search practitioner role by status. Available statuses are true and false
_pretty Format the case of the response strings. Available statuses are true and false.The default status is false

Practitioner role advanced search examples based on UserRoleProfile

Search for practitioner data associated with user role ID 78: GET .../PractitionerRole?_query=UserRoleProfile&userrole=78

Search for active practitioner data associated with user role ID 78: GET .../PractitionerRole?_query=UserRoleProfile&userrole=78

Search for inactive practitioner data associated with user role ID 78 and status is true: GET .../PractitionerRole?_query=UserRoleProfile&userrole=78&active=true

Search for inactive practitioner data associated with user role ID 78 and status is false: GET .../PractitionerRole?_query=UserRoleProfile&userrole=78&active=false

Practitioner role Advanced search by UserRoleProfileByPosition

Use the UserRoleProfileByPosition query to search for Practitioner role by healthcareposition, healthcareposition:exact, healthcareposition:contains, type and partof.

GET .../PractitionerRole?_query=UserRoleProfileByPosition&<Other supported parameters>

Table 36. Parameters

Parameter Description
healthcareposition Search practitioner role by healthcare position
healthcareposition:exact match the entire supplied healthcare position, including casing
healthcareposition:contains A portion of the healthcare position name at any place
type Search practitioner role by healthcare position CodeId
partof Search practitioner role which is part of the Organization
active Search by status. Available statuses are true and false

Practitioner role advanced search examples based on UserRoleProfileByPosition

search for practitioner role by healthcareposition name: GET .../PractitionerRole?_query=UserRoleProfileByPosition&healthcareposition=overlege

Search for practitioner role by exact healthcareposition name: GET .../PractitionerRole?_query=UserRoleProfileByPosition&healthcareposition:exact=Overlege

Search practitioner role by portion of healthcare position name: GET .../PractitionerRole?_query=UserRoleProfileByPosition&healthcareposition:contains=lege

Search for practitioner role by multiple exact names of healthcarepositions: GET .../PractitionerRole?_query=UserRoleProfileByPosition&healthcareposition:exact=Overlege&healthcare position:exact=Lege

Search for practitioner role by mutiple healthcarepositions: GET .../PractitionerRole?_query=UserRoleProfileByPosition&healthcareposition=overlege&&healthcareposi tion=Lege

Search for practitioner role by healthcare position CodeId: GET .../PractitionerRole?_query=UserRoleProfileByPosition&type=urn:oid:1.3.6.1.4.1.9038.52.3018|219505

Search for practitioner role by multiple healthcare position CodeId: GET .../PractitionerRole?_query=UserRoleProfileByPosition&type=urn:oid:1.3.6.1.4.1.9038.52.3018|219505 &type=urn:oid:1.3.6.1.4.1.9038.52.3018|219469

Search for practitioner role by Type and part of Organization: GET .../PractitionerRole?_query=UserRoleProfileByPosition&type=urn:oid:1.3.6.1.4.1.9038.52.3018|219505 &partof=Organization/aks1

Search practitioner role by portion of healthcare position name and enable pagination to show 10 results per page and show 2nd page: GET .../PractitionerRole?_query=UserRoleProfileByPosition&healthcareposition:contains=Lege&page=2&_c ount=10

Search for practitioner role by healthcareposition name and status=true : GET .../PractitionerRole?_query=UserRoleProfileByPosition&healthcareposition=Lege&active=true

Search for practitioner role by healthcareposition name and status=false : GET .../PractitionerRole?_query=UserRoleProfileByPosition&healthcareposition=Lege&active=false

FHIR HealthcareService

Table 37. Supported FHIR Operations

Operation Supported
Read Yes
VRead No
Create No
Update No
History No
Search Yes
Delete No
Patch No

Request: Read

Read HealthcareService by providing a HealthcareService ID.

Table 38. OperationInformation

PATH https://{server}/DIPS-WebAPI/HL7/FHIR-R4/HealthcareService/{id}
HTTP VERB GET
id HealthcareService ID

Request: Search

Table 39. OperationInformation

PATH https://{server}/DIPS-WebAPI/HL7/FHIR-R4/HealthcareService?{SearchParameters}
HTTP VERB GET

Table 40. Parameters

Parameter Description
identifier Search for HealthcareService by identifier. This supports the following identifier searches. 1. DIPSHCPIdentifier-urn:oid:1.3.6.1.4.1.9038.51.1 2. DIPSHERIdentifier-urn:oid:2.16.578.1.12.4.1.2 3. HealthcareServiceIdentifierhttp://dips.no/fhir/namingsystem/healthcareserviceId  
name Search healthcare service by name which starts with the given value
name:contains Returns results that include the supplied parameter value anywhere within the healthcare service name field
name:exact Returns results that match the entire supplied parameter, including casing and accents
organization Search healthcare service by organization ID
service-type Search healthcare service by service type
active Search healthcare service by status. Available statuses are true and false
_pretty Format the case of the response strings. Available statuses are true and false
_page Get the response by providing the page number
_count The number of records to display for the given page
_id Search with HealthcareService ID

Table 41. Includes

Include
_include=HealthcareService:organization
_include=HealthcareService:department
_include=HealthcareService:section
_include=HealthcareService:ward
_include=HealthcareService:hospital

Example requests

Read healthcare service by HealthcareService ID: GET .../HealthcareService/avcF64B2E39B7237702E043146A000A273D

Search healthcare service by DIPSHCPIdentifier: GET .../HealthcareService?identifier=urn:oid:1.3.6.1.4.1.9038.51.1|12995

Search healthcare service by DIPSHERIdentifier: GET .../HealthcareService?identifier=urn:oid:2.16.578.1.12.4.1.2|997635

Search healthcare service by Healthcare Service Identifier: GET .../HealthcareService?identifier=http://dips.no/fhir/namingsystem/healthcareserviceId|F1E097119EF5 4BCE8675892FF91641B2

Search healthcare service by name: GET .../HealthcareService?name=Avsenderadresse

Search healthcare service by name:contains: GET .../HealthcareService?name:contains=senderadresse

Search healthcare service by name:exact: GET .../HealthcareService?name:exact=Avsenderadresse

Search healthcare service by Organization ID: GET .../HealthcareService?organization=Organization/aks1 GET .../HealthcareService?organization=aks1

Search healthcare service by name which contains given string and active status is true: GET .../HealthcareService?name:contains=deradr&active=true

Search healthcare service by organization aks1 and see the 3rd page and page record count is 5: GET .../HealthcareService?organization=Organization/aks1&page=3&_count=5

Search healthcare service by service name starts with "Avsenderadresse" and view as it is stored in the database: GET .../HealthcareService?name=Avsenderadresse&_pretty=false

Search healthcare service by service name that starts with "Avsenderadresse" and apply pretty for the name string: GET .../HealthcareService?name=Avsenderadresse&_pretty=true

Search healthcare service by service-type: GET .../HealthcareService?service-type=263142

Search healthcare service with healthcare service ID: GET .../HealthcareService?_id=avcF64B2E39B7237702E043146A000A273D

The RelatedPersons typically have a personal or non-healthcare-specific professional relationship to the patient.

Request: Read

Get person information by providing a person ID.

Table 42. OperationInformation

PATH https://{server}/DIPS-WebAPI/HL7/FHIR-R4/RelatedPerson/{id}
HTTP VERB GET
id Related person ID

Request: Search

Search for person information

Table 43. OperationInformation

PATH https://https://{server}/DIPS-WebAPI/HL7/FHIR-R4/RelatedPerson?{SearchParameters}
HTTP VERB GET

Table 44. Parameters

Parameter Description
identifier Search for related person information by a human identifier for this person. This supports the following URNs. http://dips.no/fhir/namingsystem/dipsguardianid, http://dips.no/fhir/namingsystem/dips-relativeid or urn:oid:2.16.578.1.12.4.1.4.1 or urn:oid:2.16.578.1.12.4.1.4.2 or urn:oid:2.16.578.1.12.4.1.4.3
_id Search with related person ID
given Search related person by the first name that starts with the given string
family Search related person by the last name that starts with the given string
address Related Persons' address
address-city A city specified in an address
address-state A state specified in an address
address-postalcode A postal code specified in an address
birthdate The person’s date of birth
phone A value in a phone contact
email A value in an email contact
gender The gender of the person.(M,m,male,Mann,K,k,Kvinne,Female,f,F,unknown,u,?,other,ukjent,ubestemt)
active Search person by status. Available statuses are true and false
relationship Search by The relationship of the person to the patient

Table 45. Search Modifiers

Modifier Valid Parameters Description
:contains given, family wild card search for the string supplied
:exact given, family Any person with a name that is exactly same as the search string
Example response
{
   "resourceType":"RelatedPerson",
   "id":"aoz2015095cdp2015093",
   "meta":{
      "profile":[
         "DIPSRelatedPerson",
         "NoBasisRelatedPerson"
      ]
   },
   "extension":[
      {
         "url":"http://dips.no/fhir/StructureDefinition/R4/DIPSRelatedPersonParentalResponsibility",
         "valueBoolean":true
      }
   ],
   "identifier":[
      {
         "use":"official",
         "system":"http://dips.no/fhir/namingsystem/dips-relativeid",
         "value":"aoz2015095cdp2015093"
      }
   ],
   "patient":{
      "reference":"Patient/cdp2015093",
      "identifier":{
         "use":"official",
         "system":"http://dips.no/fhir/namingsystem/dips-patientid",
         "value":"2015093"
      }
   },
   "relationship":[
      {
         "coding":[
            {
               "system":"urn:oid:1.3.6.1.4.1.9038.52.4353",
               "code":"1",
               "display":"Forelder/foresatt"
            }
         ]
      },
      {
         "coding":[
            {
               "system":"urn:oid:1.3.6.1.4.1.9038.52.1045",
               "code":"104501",
               "display":"Annen pårørende"
            }
         ]
      },
      {
         "coding":[
            {
               "system":"urn:oid:1.3.6.1.4.1.9038.52.3210",
               "code":"7",
               "display":"Fostermor"
            }
         ]
      },
      {
         "coding":[
            {
               "system":"http://hl7.org/fhir/ValueSet/relatedperson-relationshiptype",
               "code":"MTHFOST",
               "display":"foster mother"
            }
         ]
      }
   ],
   "name":[
      {
         "text":"Micheal, John",
         "family":"Micheal",
         "given":[
            "John"
         ]
      }
   ],
   "telecom":[
      {
         "system":"phone",
         "value":"123456789",
         "use":"home"
      },
      {
         "system":"email",
         "value":"name1@domain.com",
         "use":"home"
      },
      {
         "system":"phone",
         "value":"123456789",
         "use":"mobile"
      }
   ],
   "gender":"male",
   "birthDate":"2021-07-31",
   "address":[
      {
         "extension":[
            {
               "url":"http://hl7.no/fhir/StructureDefinition/no-basis-urban-district",
               "valueCoding":{
                  "system":"urn:oid:1.3.6.1.4.1.9038.52.1065",
                  "display":"Hundvåg"
               }
            },
            {
               "url":"http://hl7.no/fhir/StructureDefinition/no-basis-propertyinformation",
               "valueCoding":{
                  "system":"urn:oid:1.3.6.1.4.1.9038.52.5",
                  "code":"1103",
                  "display":"Stavanger"
               }
            }
         ],
         "use":"home",
         "line":[
            "No 100, Down Street"
         ],
         "city":"Hafrsfjord",
         "district":"ROGALAND FYLKESKOMMUNE",
         "_district":{
            "extension":[
               {
                  "url":"http://dips.no/fhir/StructureDefinition/R4/MunicipalityCode",
                  "valueCoding":{
                     "system":"urn:oid:1.3.6.1.4.1.9038.52.5",
                     "code":"1103",
                     "display":"Stavanger"
                  }
               }
            ]
         },
         "state":"11",
         "postalCode":"4041",
         "country":"Norway"
      }
   ]
}
Example requests

Read related person info by relative ID aoz1000067cdp1000063: GET .../RelatedPerson/ajf1000024

Read related person info by guardian ID ain1000005: GET .../RelatedPerson/ain1000005

Search for related person by relative identifier: GET .../RelatedPerson?identifier=http://dips.no/fhir/namingsystem/dipsrelativeid| aoz1000067cdp1000063

Search for related person by guardian identifier: GET .../RelatedPerson?identifier=http://dips.no/fhir/namingsystem/dips-guardianid|1000005

Search for related person first name starts with: GET .../RelatedPerson?given=POL

Search for related person first name contains: GET .../RelatedPerson?given:contains=ROL

Search for related person by a string which exactly matches with the first name: (_pretty default setting is "true". You must send _pretty=false to match result case with the search string case.) GET .../RelatedPerson?given:exact=ROL&_pretty=false

Search for related person family name starts with: GET .../RelatedPerson?family=COM

Search for related person family name contains: GET .../RelatedPerson?family:contains=ko

Search for related person by a string which exactly matches with the family name: (_pretty default setting is "true". You must send _pretty=false to match result case with the search string case.) GET .../RelatedPerson?family:exact=Utskrevet&_pretty=false

Search for related person by a string which matches with first name and active status is true: GET .../RelatedPerson?given=POL&active=true

Search for related person by a string which matches with first name and active status is false: GET .../RelatedPerson?given=POL&active=false

Search for related person by Person ID: GET .../RelatedPerson?_id=ajf1000024

Search for related person by Address: GET .../RelatedPerson?address=Girogata 9

Search for related person by Address - City: GET .../RelatedPerson?address-city=Bodø

Search for related person by Address - state: GET .../RelatedPerson?address-state=NORDLAND FYLKESKOMMUNE

Search for related person by Address -postal code: GET ...RelatedPerson?address-postal=18

Search for related person by a email contact: GET .../RelatedPerson?email=name1@domain.com

Search for related person by contact number: GET .../RelatedPerson?phone=77635429

Search for related person by a value in birthdate: GET .../RelatedPerson?birthdate=1925-02-15

Search for related person by a value in gender: GET .../RelatedPerson?gender=kvinne

Search for related person by a relationship: GET .../RelatedPerson?relationship=urn:oid:1.3.6.1.4.1.9038.52.3508|3

FHIR ValueSet (DIPSR4ValueSet)

DIPS FHIR R4 ValueSet resource instance specifies a set of codes drawn from one or more code systems, intended for use in a particular context. ValueSets link between CodeSystem definitions and their use in coded elements. It also contains coding systems and limitations to coding systems in FHIR. Examples are medical coding systems as NCRP, NCSP, NCMP, and DIPS internal coding systems found in our administration user interface and coding systems used in FHIR R4 profiles.

Supported Resources

Supports the following resources and operations.

Table 46. Supported FHIR resources

Resources Supported Interactions
ValueSet Read, Search, Create, Update, VRead, Operations Search

Read Operation

The read operation (https://www.hl7.org/fhir/http.html#read) gets a ValueSet by its Logical ID.

Read Request Information for ValueSet

• Auth-Ticket = Valid ticket from database • Content-Type = application/json • Method = GET • URL = https://{SERVER}/DIPS-WebAPI/HL7/FHIR-R4/ValueSet/{id}?_profile=DIPSR4ValueSet

Search Operation

Searching for ValueSets in DIPS FHIR follows the basic FHIR searching principles. ValueSets support the following subset of search parameters defined in the HL7 FHIR specification. (https://www.hl7.org/fhir/ http.html#search)

Search Request Information for ValueSet

Auth-Ticket = Valid ticket from database • Content-Type = application/json • Method = GET • URL = https://{SERVER}/DIPS-WebAPI/HL7/FHIR-R4/ValueSet?{SearchParameters}& _profile=DIPSR4ValueSet

Table 47. Search Parameters

Parameter Description
code Search ValueSet by code
code:contains Search ValueSet by a portion of given code
code:exact Search ValueSet by exact given code
identifier Search ValueSet by code list identifier
name Search ValueSet by Phrase, contains at the beginning of the code list name defined in the value set
name:contains Search ValueSet by Phrase, contains at any position of the code list name defined in the ValueSet
name:exact Search ValueSet by an exact code list name defined in the value set
status Search ValueSet by statuses. Available statuses are "active" and "retired"
_pretty Decides if the pretty output is true or false
reference A code system included or excluded in the value set or an imported ValueSet
url The logical URL for the ValueSet
description Text search in the description of the ValueSet

Create Operation

This section describes the input, output and explanation of properties of the Create method in FHIR ValueSet.

Create Request Information for ValueSet
  • Auth-Ticket = Valid ticket from the database
  • Content-Type = application/json
  • Method = POST
  • URL = https://{SERVER}/DIPS-WebAPI/HL7/FHIR-R4/ValueSet
Sample POST Request body for creating a ValueSet
{
   "resourceType":"ValueSet",
   "id":"",
   "meta":{
      "profile":[
         "DIPSValueSet"
      ]
   },
   "identifier":[
      {
         "system":"http://dips.no/fhir/namingsystem/codelist",
         "value":"224"
      }
   ],
   "name":"TESTVALUESETCODES_224",
   "url":"http://dips.no/fhir/ValueSet/TESTVALUESETCODES_224",
   "date":"2020-11-19T22:40:00",
   "contact":[
      {
         "name":"DIPS AS"
      }
   ],
   "status":"active",
   "description":"This is a test valueset's descriptiopn 224",
   "compose":{
      "include":[
         {
            "system":"urn:oid:1.3.6.1.4.1.9038.52.224",
            "concept":[
               {
                  "code":"101",
                  "display":"1. Test 101"
               },
               {
                  "code":"202",
                  "display":"2. Test 202"
               },
               {
                  "code":"303",
                  "display":"Test 303"
               },
               {
                  "code":"404",
                  "display":"Test 404"
               }
            ]
         }
      ]
   }
}
Sample POST Response for ValueSet

Output A complete ValueSet object is received from the JSON response, and it can be viewed from a Read Operation request.

Mandatory Properties

Table 48. Mandatory Properties

Property Description Example
status The status of the ValueSet "active", "preliminary" or "draft"
compose→include→code One of the codes in the valueset 10
Optional Properties

Table 49. Optional Properties

Property Description Example
identifier Identifier for the ValueSet "identifier": [ { "system":"http://dips.no/fhir/namingsystem/codelist", "value": "224"}]
name Name of the ValueSet DipsCoding1003ValueSet
url URL used to identify ValueSet http://dips.no/fhir/ValueSet/TESTVALUESETCODES_236
description Description of the ValueSet "ValueSet of DIPS Coding 3226"
warning8.png

Update Operation

The Update operation helps to update a Valueset by its Logical ID.

Update Request Information for ValueSet
  • Auth-Ticket = Valid ticket from the database
  • Content-Type = application/json
  • Method = PUT
  • URL = https://{SERVER}/DIPS-WebAPI/HL7/FHIR-R4/ValueSet/{id}
warning9.png

VRead Operation

The VRead operation helps to read a Valueset by its Version ID itself.

VRead Request Information for ValueSet
  • Auth-Ticket = Valid ticket from the database
  • Content-Type = application/json
  • Method = GET
  • URL = https://{SERVER}/DIPS-WebAPI/HL7/FHIR-R4/ValueSet/{id}/_history/{versionNo}&_profile=DIPSR4ValueSet

ValueSet supports paging coded values included in the ValueSet. This can be used on larger ValueSets to reduce the amount of data returned. The operation used is stated as follows:

• additionalPagination

Operations Search Request Information for ValueSet
  • Auth-Ticket = Valid ticket from database
  • Content-Type = application/json
  • Method = GET
  • URL = https://{SERVER}/DIPS-WebAPI/HL7/FHIR-R4/ValueSet/{id}/$additionalPagination?{parameters}&_profile=DIPSR4ValueSet

Table 50. Operations Search Parameters

Property Direction Description
codeValuePageSize in Size of the page for included codes
codeValuePageNumber in Page of codes returned by the operation
codeValueIsValid in Filter codes of given code list ID by active/retired statuses

• Representation of the ValueSet with coded values filtered by in parameters is received in the out direction as a ValueSet object.

Example Requests

Read a ValueSet by CodeId

GET .../ValueSet/agm510?_profile=DIPSR4ValueSet

GET .../ValueSet/agt542?_profile=DIPSR4ValueSet

GET .../ValueSet/{GUID}?_profile=DIPSR4ValueSet

Search ValueSet by code:

GET .../ValueSet?code=1&_profile=DIPSR4ValueSet

Search ValueSet by code:contains:

GET .../ValueSet?code:contains=201&_profile=DIPSR4ValueSet

Search ValueSet by code:exact:

GET .../ValueSet?code:exact=215580&_profile=DIPSR4ValueSet

Search ValueSet by code list ID:

GET .../ValueSet?_id=agm510&_profile=DIPSR4ValueSet

GET .../ValueSet?_id=agt277&_profile=DIPSR4ValueSet

GET .../ValueSet?_id={GUID}&_profile=DIPSR4ValueSet

Search ValueSet by status:

GET .../ValueSet?status=active&_profile=DIPSR4ValueSet

GET .../ValueSet?status=retired&_profile=DIPSR4ValueSet

Search ValueSet by code list identifier:

GET DIPS internal value set .../ValueSet?identifier=http://dips.no/fhir/namingsystem/codelist|510&_profile=DIPSR4ValueSet

GET Medical Coding value set.../ValueSet?identifier=http://dips.no/fhir/namingsystem/medicinecode|277&_profile=DIPSR4Value Set

GET GUID .../ValueSet?identifier=http://dips.no/fhir/namingsystem/dips-valueset|b0983ac1-a115- 41c2-94fb-cbee1f62c384&_profile=DIPSR4ValueSet

Search ValueSet by code list name:

GET .../ValueSet?name=BW-STATUS&_profile=DIPSR4ValueSet

Search ValueSet by code list name:contains:

GET .../ValueSet?name:contains=STATUS&_profile=DIPSR4ValueSet

Search ValueSet by code list name:exact:

GET .../ValueSet?name:exact=BW-STATUS&_profile=DIPSR4ValueSet

Search ValueSet by URL:

GET .../ValueSet?url=http://dips.no/fhir/valueset/v1-OrgAccess&_profile=DIPSR4ValueSet

Search ValueSet by description:

GET .../ValueSet?description=ValueSet of DIPS Coding 3230&_profile=DIPSR4ValueSet

Search ValueSet by multiple parameters:

GET .../ValueSet?code=2&status=active&_profile=DIPSR4ValueSet

GET .../ValueSet?code=2&status=active&name:contains=SYS-LOGOUTCODES&_profile=DIPSR4ValueSet

GET .../ValueSet?code=2&status=active&page=2&_count=5&_profile=DIPSR4ValueSet

GET .../ValueSet?code=2&status=active&_id=agm510&_profile=DIPSR4ValueSet

Search ValueSet with Paging

• Paging works independently of search parameters, where if not specified explicitly, default paging parameter values are taken from the web.config file. • Count & Page Standard Parameters common for any kind of search: http://www.hl7.org/fhir/ search.html

GET .../ValueSet?status=active&_count=<NoOfRecords>&page=<PageNo> ◦ _count : NoOfRecords = No of records Per single page (DEFAULT = 100)

Get a list of active codes associated with code list ID "agm510" and apply pagination to display a single record and display page number 1:

GET .../ValueSet/agm510/$additionalPagination?codeValuePageSize=1&codeValuePageNumber=1&codeVa lueIsValid=1&_profile=DIPSR4ValueSet

Get a list of all the code lists and apply pagination to display 5 codes per page and display page number 2:

GET .../ValueSet/$additionalPagination?codeValuePageSize=5&codeValuePageNumber=2&_profile=DIPSR4 ValueSet

© 2023 DIPS AS
All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, transmitted, or
published to a third party, in any form or by any means, mechanical, electronic, photocopying,
recording, or otherwise, without prior written permission of DIPS AS.
OpenEHR is a registered trademark of OpenEHR Foundation. HL7®, CDA®, FHIR® and the FHIR
[FLAME DESIGN]® are the registered trademarks of Health Level Seven International.
All other trademarks mentioned herein are the property of their respective owners.
DIPS AS
Postboks 1435
8037 Bodø
Norway
https://www.dips.no
+47 75 59 20 00