eHealth Infrastructure (v2020.8)

StructureDefinition: ehealth-library

Introduction

The Library resource is a general-purpose container for knowledge asset definitions. It can be used to describe and expose existing knowledge assets such as logic libraries and information model descriptions, as well as to describe a collection of knowledge assets.

Scope and Usage

In scope of the eHealth Infrastructure, the Library resource is used for:

  • specifying clinical decision rules
    • used for calculating situational context
    • used for calculating operational context
    • used for evaluating measurements and triaging based on this evaluation
  • specifying input and output parameters for clinical decision rules

Defining clinical decision rules

The clinical decision rules are defined as JBoss Drools rules and are stored in the content structure as a base64 encoded string. When defining the rule it is important that the rule package is set to “rules”.

Input and output parameters used by the rule should be defined in the parameters structure with the use element set to the appropriate type of parameter. Only one output type should be defined. In the rule logic the output parameter should be defined as a global variable with the name “result”.

It is important that the input and output parameters defined in the Library resource corresponds to the input and output parameters defined in the clinical decision rule logic. The eHealth infrastructure wont be able to execute a rule if any inconsistency exists.

When defining a rule to be used for evaluation of Observation resources, it is possible to specify that historical Observation resources with the same ProcedureRequest reference should be used as input to the rule. This is done using the dataRequirement structure where the dateFilter.valueDuration is set. Observation resources where the effective element is overlapping this duration is given as input to the rule.

Invoke clinical decision rules

The clinical decision rules used for calculating situational and operational context can be invoked using the evaluate operation on the specific Library resource. Evaluation of submitted measurements will be invoked automatic and asynchronous. The eHealth Infrastructure will create the relevant ClinicalImpression, Task and Communication resources based on the automatic evaluation of submitted measurements.

Use of Library resources at time of decision support rules invocation

The decision support rule Library can be associated with a CarePlan / ProcedureRequest through their references to PlanDefinition / ActivityDefinition resources. When a measurement is submitted in scope of a CarePlan, the answer values in a submitted QuestionnaireResponse can be found and passed in as parameters to the decision support rule as specified by the Library resources.

Formal Views of Profile Content

The official URL for this profile is:

http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-library

This profile builds on Library.

This profile was published on Thu Jan 07 13:26:31 UTC 2021 as a draft by ehealth.sundhed.dk.

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

This structure is derived from Library

NameFlagsCard.TypeDescription & Constraintsdoco
.. Library 0..*LibraryA general-purpose container for knowledge asset definitions.
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... ehealth-intendedAudience 0..*Reference(eHealth Organization) {r}The intended audience of the library
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-intendedAudience
... ehealth-revision 1..1stringExtension
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-revision
... ehealth-modifier-role 1..1(Complex)Maintainers of the library. Identifies practitioners, care teams and organizations and their responsibility as maintainers.
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-modifier-role
... version 1..1stringBusiness version of the library
... type 1..1CodeableConceptlogic-library | model-definition | asset-collection | module-definition | automated-processing
Binding: Library Type (required)
... useContext
.... code 1..1CodingType of context being specified
Binding: eHealth Usage Context Type (extensible)
... jurisdiction 0..*CodeableConceptIntended jurisdiction for library (if applicable)
Binding: Jurisdiction (extensible)
... parameter 1..*ParameterDefinitionParameters defined by the library

doco Documentation for this format

This structure is derived from Library

NameFlagsCard.TypeDescription & Constraintsdoco
.. Library 0..*LibraryA general-purpose container for knowledge asset definitions.
... 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
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
Max Binding: All Languages: A human language.

... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... ehealth-intendedAudience 0..*Reference(eHealth Organization) {r}The intended audience of the library
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-intendedAudience
... ehealth-revision 1..1stringExtension
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-revision
... ehealth-modifier-role 1..1(Complex)Maintainers of the library. Identifies practitioners, care teams and organizations and their responsibility as maintainers.
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-modifier-role
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ0..1uriLogical URI to reference this library (globally unique)
... identifier Σ0..*IdentifierAdditional identifier for the library
... version Σ1..1stringBusiness version of the library
... name Σ0..1stringName for this library (computer friendly)
... title Σ0..1stringName for this library (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of a Value Set or Concept Map.

... experimental ?!Σ0..1booleanFor testing purposes, not real usage
... type Σ1..1CodeableConceptlogic-library | model-definition | asset-collection | module-definition | automated-processing
Binding: Library Type (required)
... date Σ0..1dateTimeDate this was last changed
... publisher Σ0..1stringName of the publisher (organization or individual)
... description Σ0..1markdownNatural language description of the library
... purpose 0..1markdownWhy this library is defined
... usage 0..1stringDescribes the clinical usage of the library
... approvalDate 0..1dateWhen the library was approved by publisher
... lastReviewDate 0..1dateWhen the library was last reviewed
... effectivePeriod Σ0..1PeriodWhen the library is expected to be used
... useContext Σ0..*UsageContextContext the content is intended to support
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
Slice: Unordered, Open by value:url
.... code Σ1..1CodingType of context being specified
Binding: eHealth Usage Context Type (extensible)
.... value[x] Σ1..1Value that defines the context
Binding: Context of Use ValueSet (example): A code that defines the specific value for the context being specified

..... valueCodeableConceptCodeableConcept
..... valueQuantityQuantity
..... valueRangeRange
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for library (if applicable)
Binding: Jurisdiction (extensible)
... topic 0..*CodeableConceptE.g. Education, Treatment, Assessment, etc
Binding: DefinitionTopic (example): High-level categorization of the definition, used for searching, sorting, and filtering


... contributor 0..*ContributorA content contributor
... contact Σ0..*ContactDetailContact details for the publisher
... copyright 0..1markdownUse and/or publishing restrictions
... relatedArtifact 0..*RelatedArtifactAdditional documentation, citations, etc.
... parameter 1..*ParameterDefinitionParameters defined by the library
... dataRequirement 0..*DataRequirementWhat data is referenced by this library
... content 0..*AttachmentContents of the library, either embedded or referenced

doco Documentation for this format

Differential View

This structure is derived from Library

NameFlagsCard.TypeDescription & Constraintsdoco
.. Library 0..*LibraryA general-purpose container for knowledge asset definitions.
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... ehealth-intendedAudience 0..*Reference(eHealth Organization) {r}The intended audience of the library
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-intendedAudience
... ehealth-revision 1..1stringExtension
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-revision
... ehealth-modifier-role 1..1(Complex)Maintainers of the library. Identifies practitioners, care teams and organizations and their responsibility as maintainers.
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-modifier-role
... version 1..1stringBusiness version of the library
... type 1..1CodeableConceptlogic-library | model-definition | asset-collection | module-definition | automated-processing
Binding: Library Type (required)
... useContext
.... code 1..1CodingType of context being specified
Binding: eHealth Usage Context Type (extensible)
... jurisdiction 0..*CodeableConceptIntended jurisdiction for library (if applicable)
Binding: Jurisdiction (extensible)
... parameter 1..*ParameterDefinitionParameters defined by the library

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Library 0..*LibraryA general-purpose container for knowledge asset definitions.
... 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
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
Max Binding: All Languages: A human language.

... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... ehealth-intendedAudience 0..*Reference(eHealth Organization) {r}The intended audience of the library
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-intendedAudience
... ehealth-revision 1..1stringExtension
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-revision
... ehealth-modifier-role 1..1(Complex)Maintainers of the library. Identifies practitioners, care teams and organizations and their responsibility as maintainers.
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-modifier-role
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ0..1uriLogical URI to reference this library (globally unique)
... identifier Σ0..*IdentifierAdditional identifier for the library
... version Σ1..1stringBusiness version of the library
... name Σ0..1stringName for this library (computer friendly)
... title Σ0..1stringName for this library (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of a Value Set or Concept Map.

... experimental ?!Σ0..1booleanFor testing purposes, not real usage
... type Σ1..1CodeableConceptlogic-library | model-definition | asset-collection | module-definition | automated-processing
Binding: Library Type (required)
... date Σ0..1dateTimeDate this was last changed
... publisher Σ0..1stringName of the publisher (organization or individual)
... description Σ0..1markdownNatural language description of the library
... purpose 0..1markdownWhy this library is defined
... usage 0..1stringDescribes the clinical usage of the library
... approvalDate 0..1dateWhen the library was approved by publisher
... lastReviewDate 0..1dateWhen the library was last reviewed
... effectivePeriod Σ0..1PeriodWhen the library is expected to be used
... useContext Σ0..*UsageContextContext the content is intended to support
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
Slice: Unordered, Open by value:url
.... code Σ1..1CodingType of context being specified
Binding: eHealth Usage Context Type (extensible)
.... value[x] Σ1..1Value that defines the context
Binding: Context of Use ValueSet (example): A code that defines the specific value for the context being specified

..... valueCodeableConceptCodeableConcept
..... valueQuantityQuantity
..... valueRangeRange
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for library (if applicable)
Binding: Jurisdiction (extensible)
... topic 0..*CodeableConceptE.g. Education, Treatment, Assessment, etc
Binding: DefinitionTopic (example): High-level categorization of the definition, used for searching, sorting, and filtering


... contributor 0..*ContributorA content contributor
... contact Σ0..*ContactDetailContact details for the publisher
... copyright 0..1markdownUse and/or publishing restrictions
... relatedArtifact 0..*RelatedArtifactAdditional documentation, citations, etc.
... parameter 1..*ParameterDefinitionParameters defined by the library
... dataRequirement 0..*DataRequirementWhat data is referenced by this library
... content 0..*AttachmentContents of the library, either embedded or referenced

doco Documentation for this format

 

Terminology Bindings

PathConformanceValueSet
Library.languageextensibleCommon Languages
Max Binding: All Languages
Library.statusrequiredPublicationStatus
Library.typerequiredLibraryType
Library.useContext.codeextensibleeHealthUsageContextType
Library.useContext.value[x]exampleContext of Use ValueSet
Library.jurisdictionextensibleJurisdiction
Library.topicexampleDefinitionTopic

Constraints

IdPathDetailsRequirements
dom-2LibraryIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-1LibraryIf the resource is contained in another resource, it SHALL NOT contain any narrative
: contained.text.empty()
dom-4LibraryIf 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-3LibraryIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource
: contained.where(('#'+id in %resource.descendants().reference).not()).empty()
ele-1Library.extension:intendedAudienceAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ext-1Library.extension:intendedAudienceMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Library.extension:revisionAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ext-1Library.extension:revisionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Library.extension:modifierRoleAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ext-1Library.extension:modifierRoleMust have either extensions or value[x], not both
: extension.exists() != value.exists()
.