This page is part of the FHIR Specification (v1.2.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 ModuleDefinition resource defines the data requirements for a quality artifact.
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
Structure
UML Diagram
XML Template
<ModuleDefinition xmlns="http://hl7.org/fhir"> <!-- 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
{ "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
XML Template
<ModuleDefinition xmlns="http://hl7.org/fhir"> <!-- 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
{ "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
Path | Definition | Type | Reference |
---|---|---|---|
ModuleDefinition.parameter.use | Whether the parameter is input or output | Required | OperationParameterUse |
ModuleDefinition.parameter.type ModuleDefinition.data.type | The type of the parameter | Required | Parameter Types used in Operation Definitions |