eHealth Infrastructure - Local Development build (v2021.3.0). See the Directory of published versions
Defining URL: | http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-library |
Version: | 2021.3.0 |
Name: | ehealth-library |
Status: | Active as of 2021-11-25T09:32:14+00:00 |
Publisher: | Systematic | Trifork |
Source Resource: | XML / JSON / Turtle |
The official URL for this profile is:
http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-library
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.
In scope of the eHealth Infrastructure, the Library resource is used for:
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.
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.
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.
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from Library
This structure is derived from Library
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Library | I | 0..* | Library | Represents a library of quality improvement components |
id | Σ | 0..1 | string | Logical id of this artifact |
meta | Σ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages: A human language. | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
Slices for extension | 2..* | Extension | Extension Slice: Unordered, Open by value:url | |
ehealth-intendedAudience | 0..* | Reference() | The intended audience of the resource URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-intendedAudience | |
ehealth-revision | 1..1 | string | Business revision URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-revision | |
ehealth-modifier-role | 1..1 | (Complex) | Modifier role URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-modifier-role | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
url | Σ | 0..1 | uri | Canonical identifier for this library, represented as a URI (globally unique) |
identifier | Σ | 0..* | Identifier | Additional identifier for the library |
version | Σ | 1..1 | string | Business version of the library |
name | ΣI | 0..1 | string | Name for this library (computer friendly) |
title | Σ | 0..1 | string | Name for this library (human friendly) |
subtitle | 0..1 | string | Subordinate title of the library | |
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. |
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage |
type | Σ | 1..1 | CodeableConcept | logic-library | model-definition | asset-collection | module-definition Binding: Library Type (required) |
subject[x] | 0..1 | Type of individual the library content is focused on Binding: SubjectType (extensible): The possible types of subjects for a library (E.g. Patient, Practitioner, Organization, Location, etc.). | ||
subjectCodeableConcept | CodeableConcept | |||
subjectReference | Reference(Group) | |||
date | Σ | 0..1 | dateTime | Date last changed |
publisher | Σ | 0..1 | string | Name of the publisher (organization or individual) |
contact | Σ | 0..* | ContactDetail | Contact details for the publisher |
description | Σ | 0..1 | markdown | Natural language description of the library |
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support |
id | 0..1 | string | Unique id for inter-element referencing | |
Slices for extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
code | Σ | 1..1 | Coding | Type of context being specified Binding: eHealth Usage Context Type (required) |
value[x] | Σ | 1..1 | Value that defines the context Binding: Context of Use ValueSet (example): A code that defines the specific value for the context being specified. | |
valueCodeableConcept | CodeableConcept | |||
valueQuantity | Quantity | |||
valueRange | Range | |||
valueReference | Reference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization) | |||
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for library (if applicable) Binding: Jurisdiction (required) |
purpose | 0..1 | markdown | Why this library is defined | |
usage | 0..1 | string | Describes the clinical usage of the library | |
copyright | 0..1 | markdown | Use and/or publishing restrictions | |
approvalDate | 0..1 | date | When the library was approved by publisher | |
lastReviewDate | 0..1 | date | When the library was last reviewed | |
effectivePeriod | Σ | 0..1 | Period | When the library is expected to be used |
topic | 0..* | CodeableConcept | E.g. Education, Treatment, Assessment, etc. Binding: DefinitionTopic (example): High-level categorization of the definition, used for searching, sorting, and filtering. | |
author | 0..* | ContactDetail | Who authored the content | |
editor | 0..* | ContactDetail | Who edited the content | |
reviewer | 0..* | ContactDetail | Who reviewed the content | |
endorser | 0..* | ContactDetail | Who endorsed the content | |
relatedArtifact | 0..* | RelatedArtifact | Additional documentation, citations, etc. | |
parameter | 1..* | ParameterDefinition | Parameters defined by the library | |
dataRequirement | 0..* | DataRequirement | What data is referenced by this library | |
content | Σ | 0..* | Attachment | Contents of the library, either embedded or referenced |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Library | I | 0..* | Library | Represents a library of quality improvement components |
Documentation for this format |
This structure is derived from Library
Differential View
This structure is derived from Library
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Library | I | 0..* | Library | Represents a library of quality improvement components |
id | Σ | 0..1 | string | Logical id of this artifact |
meta | Σ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages: A human language. | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
Slices for extension | 2..* | Extension | Extension Slice: Unordered, Open by value:url | |
ehealth-intendedAudience | 0..* | Reference() | The intended audience of the resource URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-intendedAudience | |
ehealth-revision | 1..1 | string | Business revision URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-revision | |
ehealth-modifier-role | 1..1 | (Complex) | Modifier role URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-modifier-role | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
url | Σ | 0..1 | uri | Canonical identifier for this library, represented as a URI (globally unique) |
identifier | Σ | 0..* | Identifier | Additional identifier for the library |
version | Σ | 1..1 | string | Business version of the library |
name | ΣI | 0..1 | string | Name for this library (computer friendly) |
title | Σ | 0..1 | string | Name for this library (human friendly) |
subtitle | 0..1 | string | Subordinate title of the library | |
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. |
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage |
type | Σ | 1..1 | CodeableConcept | logic-library | model-definition | asset-collection | module-definition Binding: Library Type (required) |
subject[x] | 0..1 | Type of individual the library content is focused on Binding: SubjectType (extensible): The possible types of subjects for a library (E.g. Patient, Practitioner, Organization, Location, etc.). | ||
subjectCodeableConcept | CodeableConcept | |||
subjectReference | Reference(Group) | |||
date | Σ | 0..1 | dateTime | Date last changed |
publisher | Σ | 0..1 | string | Name of the publisher (organization or individual) |
contact | Σ | 0..* | ContactDetail | Contact details for the publisher |
description | Σ | 0..1 | markdown | Natural language description of the library |
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support |
id | 0..1 | string | Unique id for inter-element referencing | |
Slices for extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
code | Σ | 1..1 | Coding | Type of context being specified Binding: eHealth Usage Context Type (required) |
value[x] | Σ | 1..1 | Value that defines the context Binding: Context of Use ValueSet (example): A code that defines the specific value for the context being specified. | |
valueCodeableConcept | CodeableConcept | |||
valueQuantity | Quantity | |||
valueRange | Range | |||
valueReference | Reference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization) | |||
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for library (if applicable) Binding: Jurisdiction (required) |
purpose | 0..1 | markdown | Why this library is defined | |
usage | 0..1 | string | Describes the clinical usage of the library | |
copyright | 0..1 | markdown | Use and/or publishing restrictions | |
approvalDate | 0..1 | date | When the library was approved by publisher | |
lastReviewDate | 0..1 | date | When the library was last reviewed | |
effectivePeriod | Σ | 0..1 | Period | When the library is expected to be used |
topic | 0..* | CodeableConcept | E.g. Education, Treatment, Assessment, etc. Binding: DefinitionTopic (example): High-level categorization of the definition, used for searching, sorting, and filtering. | |
author | 0..* | ContactDetail | Who authored the content | |
editor | 0..* | ContactDetail | Who edited the content | |
reviewer | 0..* | ContactDetail | Who reviewed the content | |
endorser | 0..* | ContactDetail | Who endorsed the content | |
relatedArtifact | 0..* | RelatedArtifact | Additional documentation, citations, etc. | |
parameter | 1..* | ParameterDefinition | Parameters defined by the library | |
dataRequirement | 0..* | DataRequirement | What data is referenced by this library | |
content | Σ | 0..* | Attachment | Contents of the library, either embedded or referenced |
Documentation for this format |
Other representations of profile: CSV, Excel, Schematron
Path | Conformance | ValueSet |
Library.language | preferred | CommonLanguages Max Binding: AllLanguages |
Library.status | required | PublicationStatus |
Library.type | required | LibraryType |
Library.subject[x] | extensible | SubjectType |
Library.useContext.code | required | eHealthUsageContextType |
Library.useContext.value[x] | example | Context of Use ValueSet |
Library.jurisdiction | required | Jurisdiction |
Library.topic | example | DefinitionTopic |
Id | Path | Details | Requirements |
dom-2 | Library | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | Library | If 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-4 | Library | If 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-5 | Library | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | Library | A resource should have narrative for robust management : text.`div`.exists() | |
lib-0 | Library | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,254}') | |
ele-1 | Library.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Library.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Library.extension:intendedAudience | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Library.extension:intendedAudience | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Library.extension:revision | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Library.extension:revision | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Library.extension:modifierRole | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Library.extension:modifierRole | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Library.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Library.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Library.url | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.version | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.name | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.title | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.subtitle | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.status | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.experimental | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.type | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.subject[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.date | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.publisher | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.contact | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.description | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.useContext | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.useContext.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Library.useContext.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Library.useContext.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.useContext.value[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.jurisdiction | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.purpose | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.usage | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.copyright | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.approvalDate | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.lastReviewDate | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.effectivePeriod | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.topic | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.author | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.editor | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.reviewer | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.endorser | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.relatedArtifact | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.parameter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.dataRequirement | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Library.content | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |