1.0.0 - Release

This page is part of the KLGatewayPrevention (v1.0.0: Release) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Resource Profile: KLGateway119ServiceRequest

Official URL: http://fhir.kl.dk/prevention/StructureDefinition/klgateway-119-servicerequest Version: 1.0.0
Active as of 2023-09-28 Computable Name: KLGateway119ServiceRequest

Referal or request for prevention/health promotion to a Danish municipalities

Scope and usage

This model is used to represent when a municipality recieves a referal or request for prevention/health promotion according to §119 in the health act.

The ServiceRequest, may have the sending organisation as the requester i.e the hospital or general practitioner that sends the request/referal. The requester is only required if the organisation or person that requests the service does so using a MedCom message, and the SOR-code can be drawn automatically from there. Requests recieved via phone e.g. from GP’s, citizens or next-of-kin should be reported without requester.

Intent should always be “plan”. The status attribute should be used according to the FHIR-guidance. The citizen is referred in ServiceRequest.subject.

ServiceRequest.authoredOn holds the time, where the request was recieved in the municipality, if this is available. Else, the time that the request was send from the hosptal may be used. The date may be repported with or without time of day.

ServiceRequest.status and ServiceRequest.intent are mandatory. ServiceRequest.intent always have the value ‘plan’. ServiceRequest.status uses the required FHIR ValueSet as appropriate.

It may happen that a new request is recieved, while another one is already active for the citizen. In this case, choose the appropriate use case:

  • If the new request calls for the same interventions (with just minor modifications). Then the new request replaces the old one. This is documented by reporting both the old and the new ServiceRequest. The new serviceRequest referes the old one using the attribute serviceRequest.replaces. The old ServiceRequest sets ServiceRequest.status to ‘revoked’.
  • It could also happen that the new request means that the citizen interventions should be modified. E.g. the therapist start over with the clarification (afklarende samtale) and/or plan another intervention. In this case, revoke the old ServiceRequest, and use the new one as a reference in all interventions and encounters.
  • In the last case, both requests are relevant at the same time, and each calls for different interventions. In this case, both ServiceRequests remains active, and each have different interventions and encounters associated with it.

SeviceRequest.reasonReference is only used if a code or codes were recieved in a MedCom message as a diagnosis. The reasonReference describes this through a reference to FocusCondition, which again uses SKS or ICPC2 diagnosis codes to describe the problem/diagnosis, that led the hospital or General practitioner to request §119 prevention/health promotion.

ServiceRequest.code.coding is used to state, what kind of interventions the requester wants for the citizen. The value is always ‘Sundhedsfremme og forebyggelse’.

Conversions between Danish information model and FHIR-profile

Nedenstående tabel oversætter mellem de attributter der er defineret i den fælleskommunale informationsmodel (FKI), definerer kort den enkelte attribut på dansk og specificere hvilke af FHIR-profilens atributter der skal bruges til specifikation af indholdet

FKI-attribut Definition FHIR
anledningAnsvarlig Den som har ansvar for henvendelsen/henvisningen ServiceRequest.requester
anledningsstatus Klasse der udtrykker status for henvendelsen ServiceRequest.status
anledningsHensigt Klasse der udtrykker hensigten med henvendelsen ServiceRequest.intent
anledningsIndsats Klasse der udtrykker, hvilken type kommunal indsats/ydelse der anmodes om. ServiceRequest.code.coding
anledningsSubjekt Den borger som henvisningen/henvendelsen vedrører ServiceRequest.subject
anledningstid Det tidspunkt hvor henvisning/henvendelsen er forfattet af den ansvarlige ServiceRequest.authoredOn
anledningsbegrundelse Den borgertilstand, der ligger til grund for henvendelsen/henvisningen. SeviceRequest.reasonReference
anledningErstatter Den tidligere anledning som denne erstatter SeviceRequest.replaces

Usage:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from ServiceRequest

NameFlagsCard.TypeDescription & Constraintsdoco
.. ServiceRequest ServiceRequest
... identifier 0..0
... instantiatesCanonical 0..0
... instantiatesUri 0..0
... basedOn 0..0
... replaces 0..1Reference(KLGateway119ServiceRequest) {b}[DK] anledningErstatter
... requisition 0..0
... status 1..1code[DK] anledningsStatus
... intent 1..1code[DK] anledningsHensigt
Required Pattern: plan
... category 0..0
... priority 0..0
... doNotPerform 0..0
... code
.... coding 0..*Coding[DK] anledningsIndsats
Binding: ServiceTypes (required)
... orderDetail 0..0
... quantity[x] 0..0
... subject 1..1Reference(KLGateway119Citizen) {b}[DK] anledningsSubjekt
... encounter 0..0
... occurrence[x] 0..0
... asNeeded[x] 0..0
... authoredOn 1..1dateTime[DK] anledningstid
... requester 0..1Reference(KLGateway119Organization) {b}[DK] anledningAnsvarlig
... performerType 0..0
... performer 0..0
... locationCode 0..0
... locationReference 0..0
... reasonCode 0..0
... reasonReference 0..*Reference(KLGateway119FocusCondition) {b}[DK] anledningsbegrundelse
... insurance 0..0
... supportingInfo 0..0
... specimen 0..0
... bodySite 0..0
... note 0..0
... patientInstruction 0..0
... relevantHistory 0..0

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
ServiceRequest.code.codingrequiredServiceTypes119
NameFlagsCard.TypeDescription & Constraintsdoco
.. ServiceRequest C0..*ServiceRequestA request for a service to be performed
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... replaces Σ0..1Reference(KLGateway119ServiceRequest) {b}[DK] anledningErstatter
... intent ?!Σ1..1code[DK] anledningsHensigt
Binding: RequestIntent (required): The kind of service request.


Required Pattern: plan
... subject Σ1..1Reference(KLGateway119Citizen) {b}[DK] anledningsSubjekt
... authoredOn Σ1..1dateTime[DK] anledningstid
... requester Σ0..1Reference(KLGateway119Organization) {b}[DK] anledningAnsvarlig
... reasonReference Σ0..*Reference(KLGateway119FocusCondition) {b}[DK] anledningsbegrundelse

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
ServiceRequest.statusrequiredRequestStatus
ServiceRequest.intentrequiredPattern: plan

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorServiceRequestIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorServiceRequestIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorServiceRequestIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorServiceRequestIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceServiceRequestA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
prr-1errorServiceRequestorderDetail SHALL only be present if code is present
: orderDetail.empty() or code.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. ServiceRequest C0..*ServiceRequestA request for a service to be performed
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... replaces Σ0..1Reference(KLGateway119ServiceRequest) {b}[DK] anledningErstatter
... status ?!Σ1..1code[DK] anledningsStatus
Binding: RequestStatus (required): The status of a service order.

... intent ?!Σ1..1code[DK] anledningsHensigt
Binding: RequestIntent (required): The kind of service request.


Required Pattern: plan
... code Σ0..1CodeableConceptWhat is being requested/ordered
Binding: ProcedureCodes(SNOMEDCT) (example): Codes for tests or services that can be carried out by a designated individual, organization or healthcare service. For laboratory, LOINC is (preferred)[http://build.fhir.org/terminologies.html#preferred] and a valueset using LOINC Order codes is available here.

.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ0..*Coding[DK] anledningsIndsats
Binding: ServiceTypes (required)
.... text Σ0..1stringPlain text representation of the concept
... subject Σ1..1Reference(KLGateway119Citizen) {b}[DK] anledningsSubjekt
... authoredOn Σ1..1dateTime[DK] anledningstid
... requester Σ0..1Reference(KLGateway119Organization) {b}[DK] anledningAnsvarlig
... reasonReference Σ0..*Reference(KLGateway119FocusCondition) {b}[DK] anledningsbegrundelse

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
ServiceRequest.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
ServiceRequest.statusrequiredRequestStatus
ServiceRequest.intentrequiredPattern: plan
ServiceRequest.codeexampleProcedureCodes(SNOMEDCT)
ServiceRequest.code.codingrequiredServiceTypes119

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorServiceRequestIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorServiceRequestIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorServiceRequestIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorServiceRequestIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceServiceRequestA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
prr-1errorServiceRequestorderDetail SHALL only be present if code is present
: orderDetail.empty() or code.exists()

Differential View

This structure is derived from ServiceRequest

NameFlagsCard.TypeDescription & Constraintsdoco
.. ServiceRequest ServiceRequest
... identifier 0..0
... instantiatesCanonical 0..0
... instantiatesUri 0..0
... basedOn 0..0
... replaces 0..1Reference(KLGateway119ServiceRequest) {b}[DK] anledningErstatter
... requisition 0..0
... status 1..1code[DK] anledningsStatus
... intent 1..1code[DK] anledningsHensigt
Required Pattern: plan
... category 0..0
... priority 0..0
... doNotPerform 0..0
... code
.... coding 0..*Coding[DK] anledningsIndsats
Binding: ServiceTypes (required)
... orderDetail 0..0
... quantity[x] 0..0
... subject 1..1Reference(KLGateway119Citizen) {b}[DK] anledningsSubjekt
... encounter 0..0
... occurrence[x] 0..0
... asNeeded[x] 0..0
... authoredOn 1..1dateTime[DK] anledningstid
... requester 0..1Reference(KLGateway119Organization) {b}[DK] anledningAnsvarlig
... performerType 0..0
... performer 0..0
... locationCode 0..0
... locationReference 0..0
... reasonCode 0..0
... reasonReference 0..*Reference(KLGateway119FocusCondition) {b}[DK] anledningsbegrundelse
... insurance 0..0
... supportingInfo 0..0
... specimen 0..0
... bodySite 0..0
... note 0..0
... patientInstruction 0..0
... relevantHistory 0..0

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
ServiceRequest.code.codingrequiredServiceTypes119

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. ServiceRequest C0..*ServiceRequestA request for a service to be performed
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... replaces Σ0..1Reference(KLGateway119ServiceRequest) {b}[DK] anledningErstatter
... intent ?!Σ1..1code[DK] anledningsHensigt
Binding: RequestIntent (required): The kind of service request.


Required Pattern: plan
... subject Σ1..1Reference(KLGateway119Citizen) {b}[DK] anledningsSubjekt
... authoredOn Σ1..1dateTime[DK] anledningstid
... requester Σ0..1Reference(KLGateway119Organization) {b}[DK] anledningAnsvarlig
... reasonReference Σ0..*Reference(KLGateway119FocusCondition) {b}[DK] anledningsbegrundelse

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
ServiceRequest.statusrequiredRequestStatus
ServiceRequest.intentrequiredPattern: plan

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorServiceRequestIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorServiceRequestIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorServiceRequestIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorServiceRequestIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceServiceRequestA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
prr-1errorServiceRequestorderDetail SHALL only be present if code is present
: orderDetail.empty() or code.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. ServiceRequest C0..*ServiceRequestA request for a service to be performed
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... replaces Σ0..1Reference(KLGateway119ServiceRequest) {b}[DK] anledningErstatter
... status ?!Σ1..1code[DK] anledningsStatus
Binding: RequestStatus (required): The status of a service order.

... intent ?!Σ1..1code[DK] anledningsHensigt
Binding: RequestIntent (required): The kind of service request.


Required Pattern: plan
... code Σ0..1CodeableConceptWhat is being requested/ordered
Binding: ProcedureCodes(SNOMEDCT) (example): Codes for tests or services that can be carried out by a designated individual, organization or healthcare service. For laboratory, LOINC is (preferred)[http://build.fhir.org/terminologies.html#preferred] and a valueset using LOINC Order codes is available here.

.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ0..*Coding[DK] anledningsIndsats
Binding: ServiceTypes (required)
.... text Σ0..1stringPlain text representation of the concept
... subject Σ1..1Reference(KLGateway119Citizen) {b}[DK] anledningsSubjekt
... authoredOn Σ1..1dateTime[DK] anledningstid
... requester Σ0..1Reference(KLGateway119Organization) {b}[DK] anledningAnsvarlig
... reasonReference Σ0..*Reference(KLGateway119FocusCondition) {b}[DK] anledningsbegrundelse

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
ServiceRequest.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
ServiceRequest.statusrequiredRequestStatus
ServiceRequest.intentrequiredPattern: plan
ServiceRequest.codeexampleProcedureCodes(SNOMEDCT)
ServiceRequest.code.codingrequiredServiceTypes119

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorServiceRequestIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorServiceRequestIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorServiceRequestIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorServiceRequestIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceServiceRequestA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
prr-1errorServiceRequestorderDetail SHALL only be present if code is present
: orderDetail.empty() or code.exists()

 

Other representations of profile: CSV, Excel, Schematron