This page is part of the FHIR Specification (v1.8.0: STU 3 Draft). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions
Clinical Decision Support Work Group | Maturity Level: 0 | Compartments: Not linked to any defined compartments |
The ServiceDefinition describes a unit of decision support functionality that is made available as a service, such as immunization modules or drug-drug interaction checking.
This resource is a draft proposal for use as part of an approach to Clinical Quality within FHIR, and is documented as part of the Clinical Reasoning module.
The ServiceDefinition defines a module of clinical decision support functionality made available by a decision support service. For example, a service may provide immunization modules, drug-drug interaction checking, or appropriate use assessment.
Each module defines three main features related to its functionality:
Input and output parameters are used to specify any named parameters used by the module. These are typically patient-independent configuration parameters such as an A1C threshold for a diabetes control module, but they may also be used to return calculations performed by the module.
Data requirements are used to specify the set of data that must be provided (or available) to the module in order to achieve a successful evaluation. For example, if the module requires A1C lab results within the last 6 months, or information on bilateral or both left and right amputation at or below the knee.
Triggers are used to advertise when the module should be invoked. On encountering a specific trigger, a clinical application can invoke the modules associated with the trigger using the $evaluate operation. Any data required by the module can be sent as part of the request, and any suggested actions and other output data are returned via the GuidanceResponse resource.
For a more detailed discussion of the evaluation process, refer to the Clinical Decision Support topic in the Clinical Reasoning module.
The ServiceDefinition is similar in structure and purpose to OperationDefinition. However, ServiceDefinition also represents more information about what service is being described than an operation definition supports. This information is critical to the effective use of the resource as part of a decision support service repository, as it enables searching and selection of functionality based on this additional information.
In addition, the way the $evaluate operation of the ServiceDefinition resource is defined enables all decision support services to share a common set of parameters without having to redeclare them for every module, while still supporting service-specific paramters on each module.
Ballot Note: Because of the overlap with OperationDefinition, this resource is being considered for decomposition into a ServiceDefinition resource that would support a more general description of service functionality, and a possible profile or modification of OperationDefinition to support the requirements for decision support use of an operation.
This resource is referenced by guidanceresponse
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ServiceDefinition | DomainResource | A description of decision support service functionality | ||
url | Σ | 0..1 | uri | Logical uri to reference this service definition (globally unique) |
identifier | Σ | 0..* | Identifier | Additional identifier for the service definition |
version | Σ | 0..1 | string | Business version of the service definition |
name | Σ | 0..1 | string | Name for this service definition (Computer friendly) |
title | Σ | 0..1 | string | Name for this service definition (Human friendly) |
status | ?!Σ | 1..1 | code | draft | active | retired PublicationStatus (Required) |
experimental | ?!Σ | 0..1 | boolean | If for testing purposes, not real usage |
date | Σ | 0..1 | dateTime | Date this was last changed |
description | 0..1 | markdown | Natural language description of the service definition | |
purpose | 0..1 | markdown | Why this service definition is defined | |
usage | 0..1 | string | Describes the clinical usage of the module | |
approvalDate | 0..1 | date | When service definition approved by publisher | |
lastReviewDate | 0..1 | date | Last review date for the service definition | |
effectivePeriod | Σ | 0..1 | Period | The effective date range for the service definition |
useContext | Σ | 0..* | UsageContext | Content intends to support these contexts |
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for service definition (if applicable) Jurisdiction ValueSet (Extensible) |
topic | 0..* | CodeableConcept | Descriptional topics for the module | |
contributor | 0..* | Contributor | A content contributor | |
publisher | Σ | 0..1 | string | Name of the publisher (Organization or individual) |
contact | Σ | 0..* | ContactDetail | Contact details for the publisher |
copyright | 0..1 | markdown | Use and/or publishing restrictions | |
relatedArtifact | 0..* | RelatedArtifact | Related resources for the module | |
trigger | 0..* | TriggerDefinition | "when" the module should be invoked | |
dataRequirement | 0..* | DataRequirement | Data requirements for the module | |
operationDefinition | 0..1 | Reference(OperationDefinition) | Operation to invoke | |
Documentation for this format |
UML Diagram (Legend)
XML Template
<ServiceDefinition xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <url value="[uri]"/><!-- 0..1 Logical uri to reference this service definition (globally unique) --> <identifier><!-- 0..* Identifier Additional identifier for the service definition --></identifier> <version value="[string]"/><!-- 0..1 Business version of the service definition --> <name value="[string]"/><!-- 0..1 Name for this service definition (Computer friendly) --> <title value="[string]"/><!-- 0..1 Name for this service definition (Human friendly) --> <status value="[code]"/><!-- 1..1 draft | active | retired --> <experimental value="[boolean]"/><!-- 0..1 If for testing purposes, not real usage --> <date value="[dateTime]"/><!-- 0..1 Date this was last changed --> <description value="[markdown]"/><!-- 0..1 Natural language description of the service definition --> <purpose value="[markdown]"/><!-- 0..1 Why this service definition is defined --> <usage value="[string]"/><!-- 0..1 Describes the clinical usage of the module --> <approvalDate value="[date]"/><!-- 0..1 When service definition approved by publisher --> <lastReviewDate value="[date]"/><!-- 0..1 Last review date for the service definition --> <effectivePeriod><!-- 0..1 Period The effective date range for the service definition --></effectivePeriod> <useContext><!-- 0..* UsageContext Content intends to support these contexts --></useContext> <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for service definition (if applicable) --></jurisdiction> <topic><!-- 0..* CodeableConcept Descriptional topics for the module --></topic> <contributor><!-- 0..* Contributor A content contributor --></contributor> <publisher value="[string]"/><!-- 0..1 Name of the publisher (Organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact> <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions --> <relatedArtifact><!-- 0..* RelatedArtifact Related resources for the module --></relatedArtifact> <trigger><!-- 0..* TriggerDefinition "when" the module should be invoked --></trigger> <dataRequirement><!-- 0..* DataRequirement Data requirements for the module --></dataRequirement> <operationDefinition><!-- 0..1 Reference(OperationDefinition) Operation to invoke --></operationDefinition> </ServiceDefinition>
JSON Template
{ "resourceType" : "ServiceDefinition", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "url" : "<uri>", // Logical uri to reference this service definition (globally unique) "identifier" : [{ Identifier }], // Additional identifier for the service definition "version" : "<string>", // Business version of the service definition "name" : "<string>", // Name for this service definition (Computer friendly) "title" : "<string>", // Name for this service definition (Human friendly) "status" : "<code>", // R! draft | active | retired "experimental" : <boolean>, // If for testing purposes, not real usage "date" : "<dateTime>", // Date this was last changed "description" : "<markdown>", // Natural language description of the service definition "purpose" : "<markdown>", // Why this service definition is defined "usage" : "<string>", // Describes the clinical usage of the module "approvalDate" : "<date>", // When service definition approved by publisher "lastReviewDate" : "<date>", // Last review date for the service definition "effectivePeriod" : { Period }, // The effective date range for the service definition "useContext" : [{ UsageContext }], // Content intends to support these contexts "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for service definition (if applicable) "topic" : [{ CodeableConcept }], // Descriptional topics for the module "contributor" : [{ Contributor }], // A content contributor "publisher" : "<string>", // Name of the publisher (Organization or individual) "contact" : [{ ContactDetail }], // Contact details for the publisher "copyright" : "<markdown>", // Use and/or publishing restrictions "relatedArtifact" : [{ RelatedArtifact }], // Related resources for the module "trigger" : [{ TriggerDefinition }], // "when" the module should be invoked "dataRequirement" : [{ DataRequirement }], // Data requirements for the module "operationDefinition" : { Reference(OperationDefinition) } // Operation to invoke }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:ServiceDefinition; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:ServiceDefinition.url [ uri ]; # 0..1 Logical uri to reference this service definition (globally unique) fhir:ServiceDefinition.identifier [ Identifier ], ... ; # 0..* Additional identifier for the service definition fhir:ServiceDefinition.version [ string ]; # 0..1 Business version of the service definition fhir:ServiceDefinition.name [ string ]; # 0..1 Name for this service definition (Computer friendly) fhir:ServiceDefinition.title [ string ]; # 0..1 Name for this service definition (Human friendly) fhir:ServiceDefinition.status [ code ]; # 1..1 draft | active | retired fhir:ServiceDefinition.experimental [ boolean ]; # 0..1 If for testing purposes, not real usage fhir:ServiceDefinition.date [ dateTime ]; # 0..1 Date this was last changed fhir:ServiceDefinition.description [ markdown ]; # 0..1 Natural language description of the service definition fhir:ServiceDefinition.purpose [ markdown ]; # 0..1 Why this service definition is defined fhir:ServiceDefinition.usage [ string ]; # 0..1 Describes the clinical usage of the module fhir:ServiceDefinition.approvalDate [ date ]; # 0..1 When service definition approved by publisher fhir:ServiceDefinition.lastReviewDate [ date ]; # 0..1 Last review date for the service definition fhir:ServiceDefinition.effectivePeriod [ Period ]; # 0..1 The effective date range for the service definition fhir:ServiceDefinition.useContext [ UsageContext ], ... ; # 0..* Content intends to support these contexts fhir:ServiceDefinition.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for service definition (if applicable) fhir:ServiceDefinition.topic [ CodeableConcept ], ... ; # 0..* Descriptional topics for the module fhir:ServiceDefinition.contributor [ Contributor ], ... ; # 0..* A content contributor fhir:ServiceDefinition.publisher [ string ]; # 0..1 Name of the publisher (Organization or individual) fhir:ServiceDefinition.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher fhir:ServiceDefinition.copyright [ markdown ]; # 0..1 Use and/or publishing restrictions fhir:ServiceDefinition.relatedArtifact [ RelatedArtifact ], ... ; # 0..* Related resources for the module fhir:ServiceDefinition.trigger [ TriggerDefinition ], ... ; # 0..* "when" the module should be invoked fhir:ServiceDefinition.dataRequirement [ DataRequirement ], ... ; # 0..* Data requirements for the module fhir:ServiceDefinition.operationDefinition [ Reference(OperationDefinition) ]; # 0..1 Operation to invoke ]
Changes since DSTU2
This resource did not exist in Release 2
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ServiceDefinition | DomainResource | A description of decision support service functionality | ||
url | Σ | 0..1 | uri | Logical uri to reference this service definition (globally unique) |
identifier | Σ | 0..* | Identifier | Additional identifier for the service definition |
version | Σ | 0..1 | string | Business version of the service definition |
name | Σ | 0..1 | string | Name for this service definition (Computer friendly) |
title | Σ | 0..1 | string | Name for this service definition (Human friendly) |
status | ?!Σ | 1..1 | code | draft | active | retired PublicationStatus (Required) |
experimental | ?!Σ | 0..1 | boolean | If for testing purposes, not real usage |
date | Σ | 0..1 | dateTime | Date this was last changed |
description | 0..1 | markdown | Natural language description of the service definition | |
purpose | 0..1 | markdown | Why this service definition is defined | |
usage | 0..1 | string | Describes the clinical usage of the module | |
approvalDate | 0..1 | date | When service definition approved by publisher | |
lastReviewDate | 0..1 | date | Last review date for the service definition | |
effectivePeriod | Σ | 0..1 | Period | The effective date range for the service definition |
useContext | Σ | 0..* | UsageContext | Content intends to support these contexts |
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for service definition (if applicable) Jurisdiction ValueSet (Extensible) |
topic | 0..* | CodeableConcept | Descriptional topics for the module | |
contributor | 0..* | Contributor | A content contributor | |
publisher | Σ | 0..1 | string | Name of the publisher (Organization or individual) |
contact | Σ | 0..* | ContactDetail | Contact details for the publisher |
copyright | 0..1 | markdown | Use and/or publishing restrictions | |
relatedArtifact | 0..* | RelatedArtifact | Related resources for the module | |
trigger | 0..* | TriggerDefinition | "when" the module should be invoked | |
dataRequirement | 0..* | DataRequirement | Data requirements for the module | |
operationDefinition | 0..1 | Reference(OperationDefinition) | Operation to invoke | |
Documentation for this format |
XML Template
<ServiceDefinition xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <url value="[uri]"/><!-- 0..1 Logical uri to reference this service definition (globally unique) --> <identifier><!-- 0..* Identifier Additional identifier for the service definition --></identifier> <version value="[string]"/><!-- 0..1 Business version of the service definition --> <name value="[string]"/><!-- 0..1 Name for this service definition (Computer friendly) --> <title value="[string]"/><!-- 0..1 Name for this service definition (Human friendly) --> <status value="[code]"/><!-- 1..1 draft | active | retired --> <experimental value="[boolean]"/><!-- 0..1 If for testing purposes, not real usage --> <date value="[dateTime]"/><!-- 0..1 Date this was last changed --> <description value="[markdown]"/><!-- 0..1 Natural language description of the service definition --> <purpose value="[markdown]"/><!-- 0..1 Why this service definition is defined --> <usage value="[string]"/><!-- 0..1 Describes the clinical usage of the module --> <approvalDate value="[date]"/><!-- 0..1 When service definition approved by publisher --> <lastReviewDate value="[date]"/><!-- 0..1 Last review date for the service definition --> <effectivePeriod><!-- 0..1 Period The effective date range for the service definition --></effectivePeriod> <useContext><!-- 0..* UsageContext Content intends to support these contexts --></useContext> <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for service definition (if applicable) --></jurisdiction> <topic><!-- 0..* CodeableConcept Descriptional topics for the module --></topic> <contributor><!-- 0..* Contributor A content contributor --></contributor> <publisher value="[string]"/><!-- 0..1 Name of the publisher (Organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact> <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions --> <relatedArtifact><!-- 0..* RelatedArtifact Related resources for the module --></relatedArtifact> <trigger><!-- 0..* TriggerDefinition "when" the module should be invoked --></trigger> <dataRequirement><!-- 0..* DataRequirement Data requirements for the module --></dataRequirement> <operationDefinition><!-- 0..1 Reference(OperationDefinition) Operation to invoke --></operationDefinition> </ServiceDefinition>
JSON Template
{ "resourceType" : "ServiceDefinition", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "url" : "<uri>", // Logical uri to reference this service definition (globally unique) "identifier" : [{ Identifier }], // Additional identifier for the service definition "version" : "<string>", // Business version of the service definition "name" : "<string>", // Name for this service definition (Computer friendly) "title" : "<string>", // Name for this service definition (Human friendly) "status" : "<code>", // R! draft | active | retired "experimental" : <boolean>, // If for testing purposes, not real usage "date" : "<dateTime>", // Date this was last changed "description" : "<markdown>", // Natural language description of the service definition "purpose" : "<markdown>", // Why this service definition is defined "usage" : "<string>", // Describes the clinical usage of the module "approvalDate" : "<date>", // When service definition approved by publisher "lastReviewDate" : "<date>", // Last review date for the service definition "effectivePeriod" : { Period }, // The effective date range for the service definition "useContext" : [{ UsageContext }], // Content intends to support these contexts "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for service definition (if applicable) "topic" : [{ CodeableConcept }], // Descriptional topics for the module "contributor" : [{ Contributor }], // A content contributor "publisher" : "<string>", // Name of the publisher (Organization or individual) "contact" : [{ ContactDetail }], // Contact details for the publisher "copyright" : "<markdown>", // Use and/or publishing restrictions "relatedArtifact" : [{ RelatedArtifact }], // Related resources for the module "trigger" : [{ TriggerDefinition }], // "when" the module should be invoked "dataRequirement" : [{ DataRequirement }], // Data requirements for the module "operationDefinition" : { Reference(OperationDefinition) } // Operation to invoke }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:ServiceDefinition; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:ServiceDefinition.url [ uri ]; # 0..1 Logical uri to reference this service definition (globally unique) fhir:ServiceDefinition.identifier [ Identifier ], ... ; # 0..* Additional identifier for the service definition fhir:ServiceDefinition.version [ string ]; # 0..1 Business version of the service definition fhir:ServiceDefinition.name [ string ]; # 0..1 Name for this service definition (Computer friendly) fhir:ServiceDefinition.title [ string ]; # 0..1 Name for this service definition (Human friendly) fhir:ServiceDefinition.status [ code ]; # 1..1 draft | active | retired fhir:ServiceDefinition.experimental [ boolean ]; # 0..1 If for testing purposes, not real usage fhir:ServiceDefinition.date [ dateTime ]; # 0..1 Date this was last changed fhir:ServiceDefinition.description [ markdown ]; # 0..1 Natural language description of the service definition fhir:ServiceDefinition.purpose [ markdown ]; # 0..1 Why this service definition is defined fhir:ServiceDefinition.usage [ string ]; # 0..1 Describes the clinical usage of the module fhir:ServiceDefinition.approvalDate [ date ]; # 0..1 When service definition approved by publisher fhir:ServiceDefinition.lastReviewDate [ date ]; # 0..1 Last review date for the service definition fhir:ServiceDefinition.effectivePeriod [ Period ]; # 0..1 The effective date range for the service definition fhir:ServiceDefinition.useContext [ UsageContext ], ... ; # 0..* Content intends to support these contexts fhir:ServiceDefinition.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for service definition (if applicable) fhir:ServiceDefinition.topic [ CodeableConcept ], ... ; # 0..* Descriptional topics for the module fhir:ServiceDefinition.contributor [ Contributor ], ... ; # 0..* A content contributor fhir:ServiceDefinition.publisher [ string ]; # 0..1 Name of the publisher (Organization or individual) fhir:ServiceDefinition.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher fhir:ServiceDefinition.copyright [ markdown ]; # 0..1 Use and/or publishing restrictions fhir:ServiceDefinition.relatedArtifact [ RelatedArtifact ], ... ; # 0..* Related resources for the module fhir:ServiceDefinition.trigger [ TriggerDefinition ], ... ; # 0..* "when" the module should be invoked fhir:ServiceDefinition.dataRequirement [ DataRequirement ], ... ; # 0..* Data requirements for the module fhir:ServiceDefinition.operationDefinition [ Reference(OperationDefinition) ]; # 0..1 Operation to invoke ]
Changes since DSTU2
This resource did not exist in Release 2
Alternate definitions: Master Definition (XML, JSON), XML Schema/Schematron (for ) + JSON Schema, ShEx (for Turtle), JSON-LD (for RDF as JSON-LD),
Path | Definition | Type | Reference |
---|---|---|---|
ServiceDefinition.status | The lifecycle status of a Value Set or Concept Map. | Required | PublicationStatus |
ServiceDefinition.jurisdiction | Countries and regions within which this artifact is targeted for use | Extensible | Jurisdiction ValueSet |
Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
Name | Type | Description | Paths | In Common |
date | date | The service definition publication date | ServiceDefinition.date | |
description | string | Text search against the description of the service definition | ServiceDefinition.description | |
effective | date | Effective time associated with the service definition | ServiceDefinition.effectivePeriod | |
identifier | token | External identifiers for the service definition | ServiceDefinition.identifier | |
jurisdiction | token | Intended jurisdiction for service definition | ServiceDefinition.jurisdiction | |
name | string | Name of the service definition | ServiceDefinition.name | |
publisher | string | Name of the publisher of the service definition | ServiceDefinition.publisher | |
status | token | The current status of the service definition | ServiceDefinition.status | |
title | string | Text search against the title of the service definition | ServiceDefinition.title | |
topic | token | Topics associated with the module | ServiceDefinition.topic | |
url | uri | The uri that identifies the service definition | ServiceDefinition.url | |
version | token | The version identifier of the service definition | ServiceDefinition.version |