Release 5 Draft Ballot

This page is part of the FHIR Specification (v4.6.0: R5 Draft Ballot). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions

Extension: logicDefinition

FHIR Infrastructure Work Group Maturity Level: 1InformativeUse Context: Any

URL for this extension:

http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition

Status: draft. Extension maintained by: Health Level Seven, Inc. - CDS WG

Represents a specific logic definition used by the artifact.

Context of Use: Use on Element ID Element

Extension Content

Summary

NameFlagsCard.TypeDescription & Constraintsdoco
.. logicDefinition0..*ExtensionURL = http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
logicDefinition: Represents a specific logic definition used by the artifact.


Use on Element ID Element
... libraryName1..1stringThe name of the library that contains this definition. This is the library name, not the library alias within any particular library usage, and SHOULD be the fully qualified name of the library (i.e. namespace included).

... name1..1stringThe name of the definition, e.g. Initial Population. For function definitions, this SHOULD include the function parameters (e.g. "Measure Observation"(Encounter Encounter)).

... statement1..1stringThe complete declaration statement for the definition. For example, define "Initial Population": [Encounter: "Inpatient"] E where duration in days of E.period > 2.

... displaySequence0..1integerAn integer value indicating the order in which this definition should be displayed in any human readable representation.


doco Documentation for this format

Full Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. extension0..*ExtensionURL = http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
logicDefinition: Represents a specific logic definition used by the artifact.


Use on Element ID Element
... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... extension:libraryName 1..1ExtensionWhich library
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"libraryName"
.... value[x] 1..1stringValue of extension
... extension:name 1..1ExtensionWhich definition
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"name"
.... value[x] 1..1stringValue of extension
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"statement"
.... value[x] 1..1stringValue of extension
... extension:displayCategory 0..1ExtensionWhat category?
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"displayCategory"
.... value[x] 1..1stringValue of extension
... extension:displaySequence 0..1ExtensionWhat order?
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"displaySequence"
.... value[x] 1..1integerValue of extension
... url 1..1uri"http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition"
... value[x] 0..0
.... valueBase64Binarybase64Binary
.... valueBooleanboolean
.... valueCanonicalcanonical(Any)
.... valueCodecode
.... valueDatedate
.... valueDateTimedateTime
.... valueDecimaldecimal
.... valueIdid
.... valueInstantinstant
.... valueIntegerinteger
.... valueInteger64integer64
.... valueMarkdownmarkdown
.... valueOidoid
.... valuePositiveIntpositiveInt
.... valueStringstring
.... valueTimetime
.... valueUnsignedIntunsignedInt
.... valueUriuri
.... valueUrlurl
.... valueUuiduuid
.... valueAddressAddress
.... valueAgeAge
.... valueAnnotationAnnotation
.... valueAttachmentAttachment
.... valueCodeableConceptCodeableConcept
.... valueCodingCoding
.... valueContactPointContactPoint
.... valueCountCount
.... valueDistanceDistance
.... valueDurationDuration
.... valueHumanNameHumanName
.... valueIdentifierIdentifier
.... valueMoneyMoney
.... valuePeriodPeriod
.... valueQuantityQuantity
.... valueRangeRange
.... valueRatioRatio
.... valueReferenceReference(Any)
.... valueSampledDataSampledData
.... valueSignatureSignature
.... valueTimingTiming
.... valueContactDetailContactDetail
.... valueContributorContributor
.... valueDataRequirementDataRequirement
.... valueExpressionExpression
.... valueParameterDefinitionParameterDefinition
.... valueRelatedArtifactRelatedArtifact
.... valueTriggerDefinitionTriggerDefinition
.... valueUsageContextUsageContext
.... valueDosageDosage
.... valueMetaMeta

doco Documentation for this format

XML Template

<!-- logicDefinition -->doco

<extension xmlns="http://hl7.org/fhir"
     url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition" >
 <-- extension sliced by value:url  in the specified orderOpen-->
 <extension url="libraryName"> ?? 1..1 Extension  <!-- ?? 1..1 Which library -->
  <valueString value="[string]"/><!-- ?? 1..1 Value of extension -->
 </extension>
 <extension url="name"> ?? 1..1 Extension  <!-- ?? 1..1 Which definition -->
  <valueString value="[string]"/><!-- ?? 1..1 Value of extension -->
 </extension>
 <extension url="statement"> ?? 1..1 Extension  <!-- ?? 1..1 Complete declaration statement -->
  <valueString value="[string]"/><!-- ?? 1..1 Value of extension -->
 </extension>
 <extension url="displayCategory"> ?? 0..1 Extension  <!-- ?? 0..1 What category? -->
  <valueString value="[string]"/><!-- ?? 1..1 Value of extension -->
 </extension>
 <extension url="displaySequence"> ?? 0..1 Extension  <!-- ?? 0..1 What order? -->
  <valueInteger value="[integer]"/><!-- ?? 1..1 Value of extension -->
 </extension>
</extension>

JSON Template

{ // logicDefinition
    "extension" : [ //  sliced by value:url  in the specified order, Open 
      { // Which library // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "libraryName", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      },
      { // Which definition // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "name", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      },
      { // Complete declaration statement // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "statement", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      },
      { // What category? // C?
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "displayCategory", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      },
      { // What order? // C?
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "displaySequence", // R! 
        "valueInteger" : <integer> // C? R! Value of extension
      }
    ],
    "url" : "http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition", // R! 
// value[x]: Value of extension. One of these 51:
  }

Summary

NameFlagsCard.TypeDescription & Constraintsdoco
.. logicDefinition0..*ExtensionURL = http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
logicDefinition: Represents a specific logic definition used by the artifact.


Use on Element ID Element
... libraryName1..1stringThe name of the library that contains this definition. This is the library name, not the library alias within any particular library usage, and SHOULD be the fully qualified name of the library (i.e. namespace included).

... name1..1stringThe name of the definition, e.g. Initial Population. For function definitions, this SHOULD include the function parameters (e.g. "Measure Observation"(Encounter Encounter)).

... statement1..1stringThe complete declaration statement for the definition. For example, define "Initial Population": [Encounter: "Inpatient"] E where duration in days of E.period > 2.

... displaySequence0..1integerAn integer value indicating the order in which this definition should be displayed in any human readable representation.


doco Documentation for this format

Full Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. extension0..*ExtensionURL = http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
logicDefinition: Represents a specific logic definition used by the artifact.


Use on Element ID Element
... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... extension:libraryName 1..1ExtensionWhich library
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"libraryName"
.... value[x] 1..1stringValue of extension
... extension:name 1..1ExtensionWhich definition
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"name"
.... value[x] 1..1stringValue of extension
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"statement"
.... value[x] 1..1stringValue of extension
... extension:displayCategory 0..1ExtensionWhat category?
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"displayCategory"
.... value[x] 1..1stringValue of extension
... extension:displaySequence 0..1ExtensionWhat order?
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"displaySequence"
.... value[x] 1..1integerValue of extension
... url 1..1uri"http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition"
... value[x] 0..0
.... valueBase64Binarybase64Binary
.... valueBooleanboolean
.... valueCanonicalcanonical(Any)
.... valueCodecode
.... valueDatedate
.... valueDateTimedateTime
.... valueDecimaldecimal
.... valueIdid
.... valueInstantinstant
.... valueIntegerinteger
.... valueInteger64integer64
.... valueMarkdownmarkdown
.... valueOidoid
.... valuePositiveIntpositiveInt
.... valueStringstring
.... valueTimetime
.... valueUnsignedIntunsignedInt
.... valueUriuri
.... valueUrlurl
.... valueUuiduuid
.... valueAddressAddress
.... valueAgeAge
.... valueAnnotationAnnotation
.... valueAttachmentAttachment
.... valueCodeableConceptCodeableConcept
.... valueCodingCoding
.... valueContactPointContactPoint
.... valueCountCount
.... valueDistanceDistance
.... valueDurationDuration
.... valueHumanNameHumanName
.... valueIdentifierIdentifier
.... valueMoneyMoney
.... valuePeriodPeriod
.... valueQuantityQuantity
.... valueRangeRange
.... valueRatioRatio
.... valueReferenceReference(Any)
.... valueSampledDataSampledData
.... valueSignatureSignature
.... valueTimingTiming
.... valueContactDetailContactDetail
.... valueContributorContributor
.... valueDataRequirementDataRequirement
.... valueExpressionExpression
.... valueParameterDefinitionParameterDefinition
.... valueRelatedArtifactRelatedArtifact
.... valueTriggerDefinitionTriggerDefinition
.... valueUsageContextUsageContext
.... valueDosageDosage
.... valueMetaMeta

doco Documentation for this format

XML Template

<!-- logicDefinition -->doco

<extension xmlns="http://hl7.org/fhir"
     url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition" >
 <-- extension sliced by value:url  in the specified orderOpen-->
 <extension url="libraryName"> ?? 1..1 Extension  <!-- ?? 1..1 Which library -->
  <valueString value="[string]"/><!-- ?? 1..1 Value of extension -->
 </extension>
 <extension url="name"> ?? 1..1 Extension  <!-- ?? 1..1 Which definition -->
  <valueString value="[string]"/><!-- ?? 1..1 Value of extension -->
 </extension>
 <extension url="statement"> ?? 1..1 Extension  <!-- ?? 1..1 Complete declaration statement -->
  <valueString value="[string]"/><!-- ?? 1..1 Value of extension -->
 </extension>
 <extension url="displayCategory"> ?? 0..1 Extension  <!-- ?? 0..1 What category? -->
  <valueString value="[string]"/><!-- ?? 1..1 Value of extension -->
 </extension>
 <extension url="displaySequence"> ?? 0..1 Extension  <!-- ?? 0..1 What order? -->
  <valueInteger value="[integer]"/><!-- ?? 1..1 Value of extension -->
 </extension>
</extension>

JSON Template

{ // logicDefinition
    "extension" : [ //  sliced by value:url  in the specified order, Open 
      { // Which library // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "libraryName", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      },
      { // Which definition // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "name", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      },
      { // Complete declaration statement // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "statement", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      },
      { // What category? // C?
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "displayCategory", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      },
      { // What order? // C?
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "displaySequence", // R! 
        "valueInteger" : <integer> // C? R! Value of extension
      }
    ],
    "url" : "http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition", // R! 
// value[x]: Value of extension. One of these 51:
  }

 

Constraints

  • ele-1: All FHIR elements must have a @value or children (xpath: @value|f:*|h:div)
  • ext-1: Must have either extensions or value[x], not both (xpath: exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')]))
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: @value|f:*|h:div)
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: @value|f:*|h:div)
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: @value|f:*|h:div)
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: @value|f:*|h:div)
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: @value|f:*|h:div)
  • ele-1: On Extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.value[x]: @value|f:*|h:div)