STU 3 Candidate

This page is part of the FHIR Specification (v1.4.0: STU 3 Ballot 3). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions

4.17 Resource ModuleDefinition - Content

Clinical Decision Support Work GroupMaturity Level: 0Compartments: Not linked to any defined compartments

The ModuleDefinition resource defines the data requirements for a quality artifact.

4.17.1 Scope and Usage

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 Quality Improvement Framework Implementation Guide. Future updates to this resource will incorporate documentation from that guide.

This resource is referenced by library

4.17.2 Resource Content

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. ModuleDefinition DomainResourceDefines the data requirements information for a quality artifact
... identifier Σ0..*IdentifierLogical identifier
... version Σ0..1stringThe version of the module, if any
... model 0..*BackboneElement
.... name 0..1string
.... identifier 1..1string
.... version 0..1string
... library 0..*BackboneElementA library referenced by the module
.... name 0..1stringThe local name for the library
.... identifier 0..1string
.... version 0..1string
.... document[x] 0..1
..... documentAttachmentAttachment
..... documentReferenceReference(ModuleDefinition)
... codeSystem 0..*BackboneElement
.... name 1..1string
.... identifier 1..1string
.... version 0..1string
... valueSet 0..*BackboneElement
.... name 1..1string
.... identifier 1..1string
.... version 0..1string
.... codeSystem 0..*string
... parameter 0..*BackboneElement
.... name 1..1code
.... use 1..1code
OperationParameterUse (Required)
.... documentation 0..1string
.... type 1..1code
FHIRDefinedType (Required)
.... profile 0..1Reference(StructureDefinition)
... data 0..*BackboneElementDescribes a required data item
.... type 1..1codeThe type of the required data
FHIRDefinedType (Required)
.... profile 0..1Reference(StructureDefinition)The profile of the required data
.... mustSupport 0..*stringIndicates that specific structure elements are referenced by the knowledge module
.... codeFilter 0..*BackboneElement
..... path 1..1stringThe code-valued attribute of the filter
..... valueSet[x] 0..1The valueset for the code filter
...... valueSetStringstring
...... valueSetReferenceReference(ValueSet)
..... codeableConcept 0..*CodeableConceptThe codeableConcepts for the filter
.... dateFilter 0..*BackboneElement
..... path 1..1stringThe date-valued attribute of the filter
..... value[x] 0..1The value of the filter, as a Period or dateTime value
...... valueDateTimedateTime
...... valuePeriodPeriod

doco Documentation for this format

UML Diagram

ModuleDefinition (DomainResource)A logical identifier for the module such as the CMS or NQF identifiers for a measure artifactidentifier : Identifier [0..*]The version of the module, if any. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge modules, refer to the Decision Support Service specificationversion : string [0..1]ModelThe name of the modelname : string [0..1]The identifier of the modelidentifier : string [1..1]The version of the modelversion : string [0..1]LibraryThe local name for the library reference. If no local name is provided, the name of the referenced library is assumedname : string [0..1]The identifier of the libraryidentifier : string [0..1]The version of the libraryversion : string [0..1]A reference to the librarydocument[x] : Type [0..1] « Attachment|Reference(ModuleDefinition) »CodeSystemThe local name for the code systemname : string [1..1]The code system uriidentifier : string [1..1]The code system version, if anyversion : string [0..1]ValueSetThe local name for the value setname : string [1..1]The value set uriidentifier : string [1..1]The version of the value set, if anyversion : string [0..1]The code systems in use within the value set. These must refer to previously defined code systems within this knowledge module or a referenced librarycodeSystem : string [0..*]ParameterThe name of the parametername : code [1..1]Whether the parameter is input or output for the moduleuse : code [1..1] « Whether the parameter is input or output (Strength=Required)OperationParameterUse! »A brief description of the parameterdocumentation : string [0..1]The type of the parametertype : code [1..1] « Either a resource or a data type. (Strength=Required)FHIRDefinedType! »The profile of the parameter, if anyprofile : Reference [0..1] « StructureDefinition »DataThe type of the required data, specified as the type name of a resource. For profiles, this value is set to the type of the base resource of the profiletype : code [1..1] « Either a resource or a data type. (Strength=Required)FHIRDefinedType! »The profile of the required data, specified as the uri of the profile definitionprofile : Reference [0..1] « StructureDefinition »Indicates that specific elements of the type are referenced by the knowledge module and must be supported by the consumer in order to obtain an effective evaluation. This does not mean that a value is required for this element, only that the consuming system must understand the element and be able to provide values for it if they are availablemustSupport : string [0..*]CodeFilterThe code-valued attribute of the filter. The specified path must be resolvable from the type of the required data. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. Note that the index must be an integer constant. The path must resolve to an element of type code, Coding, or CodeableConceptpath : string [1..1]The valueset for the code filter. The valueSet or codeableConcept elements are exclusive. If valueSet is specified, the filter will return only those data items for which the value of the code-valued element specified in the path is a member of the specified valuesetvalueSet[x] : Type [0..1] « string|Reference(ValueSet) »The codeable concept for the code filter. Only one of valueSet or codeableConcept may be specified. If codeableConcepts are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified codeable conceptscodeableConcept : CodeableConcept [0..*]DateFilterThe date-valued attribute of the filter. The specified path must be resolvable from the type of the required data. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. Note that the index must be an integer constant. The path must resolve to an element of type dateTime, Period, Schedule, or Timingpath : string [1..1]The value of the filter. If period is specified, the filter will return only those data items that fall within the bounds determined by the Period, inclusive of the period boundaries. If dateTime is specified, the filter will return only those data items that are equal to the specified dateTimevalue[x] : Type [0..1] « dateTime|Period »A model reference used by the contentmodel[0..*]A library referenced by the module. The reference must consist of either an id, or a document referencelibrary[0..*]A code system definition used within the knowledge modulecodeSystem[0..*]A value set definition used by the knowledge modulevalueSet[0..*]Parameters to the moduleparameter[0..*]Code filters for the required data, if anycodeFilter[0..*]Date filters for the required data, if anydateFilter[0..*]Describes a required data item for evaluation in terms of the type of data, and optional code- or date-based filters of the datadata[0..*]

XML Template

<ModuleDefinition xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Logical identifier --></identifier>
 <version value="[string]"/><!-- 0..1 The version of the module, if any -->
 <model>  <!-- 0..* -->
  <name value="[string]"/><!-- 0..1  -->
  <identifier value="[string]"/><!-- 1..1  -->
  <version value="[string]"/><!-- 0..1  -->
 </model>
 <library>  <!-- 0..* A library referenced by the module -->
  <name value="[string]"/><!-- 0..1 The local name for the library -->
  <identifier value="[string]"/><!-- 0..1  -->
  <version value="[string]"/><!-- 0..1  -->
  <document[x]><!-- 0..1 Attachment|Reference(ModuleDefinition)  --></document[x]>
 </library>
 <codeSystem>  <!-- 0..* -->
  <name value="[string]"/><!-- 1..1  -->
  <identifier value="[string]"/><!-- 1..1  -->
  <version value="[string]"/><!-- 0..1  -->
 </codeSystem>
 <valueSet>  <!-- 0..* -->
  <name value="[string]"/><!-- 1..1  -->
  <identifier value="[string]"/><!-- 1..1  -->
  <version value="[string]"/><!-- 0..1  -->
  <codeSystem value="[string]"/><!-- 0..*  -->
 </valueSet>
 <parameter>  <!-- 0..* -->
  <name value="[code]"/><!-- 1..1  -->
  <use value="[code]"/><!-- 1..1  -->
  <documentation value="[string]"/><!-- 0..1  -->
  <type value="[code]"/><!-- 1..1  -->
  <profile><!-- 0..1 Reference(StructureDefinition)  --></profile>
 </parameter>
 <data>  <!-- 0..* Describes a required data item -->
  <type value="[code]"/><!-- 1..1 The type of the required data -->
  <profile><!-- 0..1 Reference(StructureDefinition) The profile of the required data --></profile>
  <mustSupport value="[string]"/><!-- 0..* Indicates that specific structure elements are referenced by the knowledge module -->
  <codeFilter>  <!-- 0..* -->
   <path value="[string]"/><!-- 1..1 The code-valued attribute of the filter -->
   <valueSet[x]><!-- 0..1 string|Reference(ValueSet) The valueset for the code filter --></valueSet[x]>
   <codeableConcept><!-- 0..* CodeableConcept The codeableConcepts for the filter --></codeableConcept>
  </codeFilter>
  <dateFilter>  <!-- 0..* -->
   <path value="[string]"/><!-- 1..1 The date-valued attribute of the filter -->
   <value[x]><!-- 0..1 dateTime|Period The value of the filter, as a Period or dateTime value --></value[x]>
  </dateFilter>
 </data>
</ModuleDefinition>

JSON Template

{doco
  "resourceType" : "ModuleDefinition",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Logical identifier
  "version" : "<string>", // The version of the module, if any
  "model" : [{ // 
    "name" : "<string>", // 
    "identifier" : "<string>", // R!  
    "version" : "<string>" // 
  }],
  "library" : [{ // A library referenced by the module
    "name" : "<string>", // The local name for the library
    "identifier" : "<string>", // 
    "version" : "<string>", // 
    // document[x]: . One of these 2:
    "documentAttachment" : { Attachment }
    "documentReference" : { Reference(ModuleDefinition) }
  }],
  "codeSystem" : [{ // 
    "name" : "<string>", // R!  
    "identifier" : "<string>", // R!  
    "version" : "<string>" // 
  }],
  "valueSet" : [{ // 
    "name" : "<string>", // R!  
    "identifier" : "<string>", // R!  
    "version" : "<string>", // 
    "codeSystem" : ["<string>"] // 
  }],
  "parameter" : [{ // 
    "name" : "<code>", // R!  
    "use" : "<code>", // R!  
    "documentation" : "<string>", // 
    "type" : "<code>", // R!  
    "profile" : { Reference(StructureDefinition) } // 
  }],
  "data" : [{ // Describes a required data item
    "type" : "<code>", // R!  The type of the required data
    "profile" : { Reference(StructureDefinition) }, // The profile of the required data
    "mustSupport" : ["<string>"], // Indicates that specific structure elements are referenced by the knowledge module
    "codeFilter" : [{ // 
      "path" : "<string>", // R!  The code-valued attribute of the filter
      // valueSet[x]: The valueset for the code filter. One of these 2:
      "valueSetString" : "<string>",
      "valueSetReference" : { Reference(ValueSet) },
      "codeableConcept" : [{ CodeableConcept }] // The codeableConcepts for the filter
    }],
    "dateFilter" : [{ // 
      "path" : "<string>", // R!  The date-valued attribute of the filter
      // value[x]: The value of the filter, as a Period or dateTime value. One of these 2:
      "valueDateTime" : "<dateTime>"
      "valuePeriod" : { Period }
    }]
  }]
}

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. ModuleDefinition DomainResourceDefines the data requirements information for a quality artifact
... identifier Σ0..*IdentifierLogical identifier
... version Σ0..1stringThe version of the module, if any
... model 0..*BackboneElement
.... name 0..1string
.... identifier 1..1string
.... version 0..1string
... library 0..*BackboneElementA library referenced by the module
.... name 0..1stringThe local name for the library
.... identifier 0..1string
.... version 0..1string
.... document[x] 0..1
..... documentAttachmentAttachment
..... documentReferenceReference(ModuleDefinition)
... codeSystem 0..*BackboneElement
.... name 1..1string
.... identifier 1..1string
.... version 0..1string
... valueSet 0..*BackboneElement
.... name 1..1string
.... identifier 1..1string
.... version 0..1string
.... codeSystem 0..*string
... parameter 0..*BackboneElement
.... name 1..1code
.... use 1..1code
OperationParameterUse (Required)
.... documentation 0..1string
.... type 1..1code
FHIRDefinedType (Required)
.... profile 0..1Reference(StructureDefinition)
... data 0..*BackboneElementDescribes a required data item
.... type 1..1codeThe type of the required data
FHIRDefinedType (Required)
.... profile 0..1Reference(StructureDefinition)The profile of the required data
.... mustSupport 0..*stringIndicates that specific structure elements are referenced by the knowledge module
.... codeFilter 0..*BackboneElement
..... path 1..1stringThe code-valued attribute of the filter
..... valueSet[x] 0..1The valueset for the code filter
...... valueSetStringstring
...... valueSetReferenceReference(ValueSet)
..... codeableConcept 0..*CodeableConceptThe codeableConcepts for the filter
.... dateFilter 0..*BackboneElement
..... path 1..1stringThe date-valued attribute of the filter
..... value[x] 0..1The value of the filter, as a Period or dateTime value
...... valueDateTimedateTime
...... valuePeriodPeriod

doco Documentation for this format

UML Diagram

ModuleDefinition (DomainResource)A logical identifier for the module such as the CMS or NQF identifiers for a measure artifactidentifier : Identifier [0..*]The version of the module, if any. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge modules, refer to the Decision Support Service specificationversion : string [0..1]ModelThe name of the modelname : string [0..1]The identifier of the modelidentifier : string [1..1]The version of the modelversion : string [0..1]LibraryThe local name for the library reference. If no local name is provided, the name of the referenced library is assumedname : string [0..1]The identifier of the libraryidentifier : string [0..1]The version of the libraryversion : string [0..1]A reference to the librarydocument[x] : Type [0..1] « Attachment|Reference(ModuleDefinition) »CodeSystemThe local name for the code systemname : string [1..1]The code system uriidentifier : string [1..1]The code system version, if anyversion : string [0..1]ValueSetThe local name for the value setname : string [1..1]The value set uriidentifier : string [1..1]The version of the value set, if anyversion : string [0..1]The code systems in use within the value set. These must refer to previously defined code systems within this knowledge module or a referenced librarycodeSystem : string [0..*]ParameterThe name of the parametername : code [1..1]Whether the parameter is input or output for the moduleuse : code [1..1] « Whether the parameter is input or output (Strength=Required)OperationParameterUse! »A brief description of the parameterdocumentation : string [0..1]The type of the parametertype : code [1..1] « Either a resource or a data type. (Strength=Required)FHIRDefinedType! »The profile of the parameter, if anyprofile : Reference [0..1] « StructureDefinition »DataThe type of the required data, specified as the type name of a resource. For profiles, this value is set to the type of the base resource of the profiletype : code [1..1] « Either a resource or a data type. (Strength=Required)FHIRDefinedType! »The profile of the required data, specified as the uri of the profile definitionprofile : Reference [0..1] « StructureDefinition »Indicates that specific elements of the type are referenced by the knowledge module and must be supported by the consumer in order to obtain an effective evaluation. This does not mean that a value is required for this element, only that the consuming system must understand the element and be able to provide values for it if they are availablemustSupport : string [0..*]CodeFilterThe code-valued attribute of the filter. The specified path must be resolvable from the type of the required data. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. Note that the index must be an integer constant. The path must resolve to an element of type code, Coding, or CodeableConceptpath : string [1..1]The valueset for the code filter. The valueSet or codeableConcept elements are exclusive. If valueSet is specified, the filter will return only those data items for which the value of the code-valued element specified in the path is a member of the specified valuesetvalueSet[x] : Type [0..1] « string|Reference(ValueSet) »The codeable concept for the code filter. Only one of valueSet or codeableConcept may be specified. If codeableConcepts are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified codeable conceptscodeableConcept : CodeableConcept [0..*]DateFilterThe date-valued attribute of the filter. The specified path must be resolvable from the type of the required data. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. Note that the index must be an integer constant. The path must resolve to an element of type dateTime, Period, Schedule, or Timingpath : string [1..1]The value of the filter. If period is specified, the filter will return only those data items that fall within the bounds determined by the Period, inclusive of the period boundaries. If dateTime is specified, the filter will return only those data items that are equal to the specified dateTimevalue[x] : Type [0..1] « dateTime|Period »A model reference used by the contentmodel[0..*]A library referenced by the module. The reference must consist of either an id, or a document referencelibrary[0..*]A code system definition used within the knowledge modulecodeSystem[0..*]A value set definition used by the knowledge modulevalueSet[0..*]Parameters to the moduleparameter[0..*]Code filters for the required data, if anycodeFilter[0..*]Date filters for the required data, if anydateFilter[0..*]Describes a required data item for evaluation in terms of the type of data, and optional code- or date-based filters of the datadata[0..*]

XML Template

<ModuleDefinition xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Logical identifier --></identifier>
 <version value="[string]"/><!-- 0..1 The version of the module, if any -->
 <model>  <!-- 0..* -->
  <name value="[string]"/><!-- 0..1  -->
  <identifier value="[string]"/><!-- 1..1  -->
  <version value="[string]"/><!-- 0..1  -->
 </model>
 <library>  <!-- 0..* A library referenced by the module -->
  <name value="[string]"/><!-- 0..1 The local name for the library -->
  <identifier value="[string]"/><!-- 0..1  -->
  <version value="[string]"/><!-- 0..1  -->
  <document[x]><!-- 0..1 Attachment|Reference(ModuleDefinition)  --></document[x]>
 </library>
 <codeSystem>  <!-- 0..* -->
  <name value="[string]"/><!-- 1..1  -->
  <identifier value="[string]"/><!-- 1..1  -->
  <version value="[string]"/><!-- 0..1  -->
 </codeSystem>
 <valueSet>  <!-- 0..* -->
  <name value="[string]"/><!-- 1..1  -->
  <identifier value="[string]"/><!-- 1..1  -->
  <version value="[string]"/><!-- 0..1  -->
  <codeSystem value="[string]"/><!-- 0..*  -->
 </valueSet>
 <parameter>  <!-- 0..* -->
  <name value="[code]"/><!-- 1..1  -->
  <use value="[code]"/><!-- 1..1  -->
  <documentation value="[string]"/><!-- 0..1  -->
  <type value="[code]"/><!-- 1..1  -->
  <profile><!-- 0..1 Reference(StructureDefinition)  --></profile>
 </parameter>
 <data>  <!-- 0..* Describes a required data item -->
  <type value="[code]"/><!-- 1..1 The type of the required data -->
  <profile><!-- 0..1 Reference(StructureDefinition) The profile of the required data --></profile>
  <mustSupport value="[string]"/><!-- 0..* Indicates that specific structure elements are referenced by the knowledge module -->
  <codeFilter>  <!-- 0..* -->
   <path value="[string]"/><!-- 1..1 The code-valued attribute of the filter -->
   <valueSet[x]><!-- 0..1 string|Reference(ValueSet) The valueset for the code filter --></valueSet[x]>
   <codeableConcept><!-- 0..* CodeableConcept The codeableConcepts for the filter --></codeableConcept>
  </codeFilter>
  <dateFilter>  <!-- 0..* -->
   <path value="[string]"/><!-- 1..1 The date-valued attribute of the filter -->
   <value[x]><!-- 0..1 dateTime|Period The value of the filter, as a Period or dateTime value --></value[x]>
  </dateFilter>
 </data>
</ModuleDefinition>

JSON Template

{doco
  "resourceType" : "ModuleDefinition",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Logical identifier
  "version" : "<string>", // The version of the module, if any
  "model" : [{ // 
    "name" : "<string>", // 
    "identifier" : "<string>", // R!  
    "version" : "<string>" // 
  }],
  "library" : [{ // A library referenced by the module
    "name" : "<string>", // The local name for the library
    "identifier" : "<string>", // 
    "version" : "<string>", // 
    // document[x]: . One of these 2:
    "documentAttachment" : { Attachment }
    "documentReference" : { Reference(ModuleDefinition) }
  }],
  "codeSystem" : [{ // 
    "name" : "<string>", // R!  
    "identifier" : "<string>", // R!  
    "version" : "<string>" // 
  }],
  "valueSet" : [{ // 
    "name" : "<string>", // R!  
    "identifier" : "<string>", // R!  
    "version" : "<string>", // 
    "codeSystem" : ["<string>"] // 
  }],
  "parameter" : [{ // 
    "name" : "<code>", // R!  
    "use" : "<code>", // R!  
    "documentation" : "<string>", // 
    "type" : "<code>", // R!  
    "profile" : { Reference(StructureDefinition) } // 
  }],
  "data" : [{ // Describes a required data item
    "type" : "<code>", // R!  The type of the required data
    "profile" : { Reference(StructureDefinition) }, // The profile of the required data
    "mustSupport" : ["<string>"], // Indicates that specific structure elements are referenced by the knowledge module
    "codeFilter" : [{ // 
      "path" : "<string>", // R!  The code-valued attribute of the filter
      // valueSet[x]: The valueset for the code filter. One of these 2:
      "valueSetString" : "<string>",
      "valueSetReference" : { Reference(ValueSet) },
      "codeableConcept" : [{ CodeableConcept }] // The codeableConcepts for the filter
    }],
    "dateFilter" : [{ // 
      "path" : "<string>", // R!  The date-valued attribute of the filter
      // value[x]: The value of the filter, as a Period or dateTime value. One of these 2:
      "valueDateTime" : "<dateTime>"
      "valuePeriod" : { Period }
    }]
  }]
}

 

Alternate definitions: Schema/Schematron, Resource Profile (XML, JSON), Questionnaire

4.17.2.1 Terminology Bindings

PathDefinitionTypeReference
ModuleDefinition.parameter.use Whether the parameter is input or outputRequiredOperationParameterUse
ModuleDefinition.parameter.type
ModuleDefinition.data.type
Either a resource or a data type.Requiredhttp://hl7.org/fhir/valueset/defined-typesFHIRDefinedType