DataRequirement.xml
   1 <?xml version="1.0" encoding="utf-8"?>
   2 <StructureDefinition xmlns="http://hl7.org/fhir">
   3   <id value="DataRequirement" />
   4   <meta>
   5     <lastUpdated value="2023-03-26T06:21:02.749+02:00" />
   6   </meta>
   7   <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
   8     <valueCode value="trial-use" />
   9   </extension>
  10   <url value="http://hl7.org/fhir/StructureDefinition/DataRequirement" />
  11   <version value="5.0.0" />
  12   <name value="DataRequirement" />
  13   <status value="draft" />
  14   <experimental value="false" />
  15   <date value="2023-03-26T06:21:02.0000000+02:00" />
  16   <publisher value="HL7 FHIR Standard" />
  17   <contact>
  18     <telecom>
  19       <system value="url" />
  20       <value value="http://hl7.org/fhir" />
  21     </telecom>
  22   </contact>
  23   <description value="DataRequirement Type: Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data." />
  24   <jurisdiction>
  25     <coding>
  26       <system value="http://unstats.un.org/unsd/methods/m49/m49.htm" />
  27       <code value="001" />
  28       <display value="World" />
  29     </coding>
  30   </jurisdiction>
  31   <fhirVersion value="5.0.0" />
  32   <mapping>
  33     <identity value="rim" />
  34     <uri value="http://hl7.org/v3" />
  35     <name value="RIM Mapping" />
  36   </mapping>
  37   <kind value="complex-type" />
  38   <abstract value="false" />
  39   <type value="DataRequirement" />
  40   <baseDefinition value="http://hl7.org/fhir/StructureDefinition/DataType" />
  41   <derivation value="specialization" />
  42   <snapshot>
  43     <element id="DataRequirement">
  44       <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
  45         <valueCode value="trial-use" />
  46       </extension>
  47       <path value="DataRequirement" />
  48       <short value="Describes a required data item" />
  49       <definition value="Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data." />
  50       <min value="0" />
  51       <max value="*" />
  52       <base>
  53         <path value="DataRequirement" />
  54         <min value="0" />
  55         <max value="*" />
  56       </base>
  57       <constraint>
  58         <key value="ele-1" />
  59         <severity value="error" />
  60         <human value="All FHIR elements must have a @value or children" />
  61         <expression value="hasValue() or (children().count() > id.count())" />
  62         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
  63       </constraint>
  64       <isModifier value="false" />
  65       <mapping>
  66         <identity value="rim" />
  67         <map value="n/a" />
  68       </mapping>
  69     </element>
  70     <element id="DataRequirement.id">
  71       <path value="DataRequirement.id" />
  72       <representation value="xmlAttr" />
  73       <short value="Unique id for inter-element referencing" />
  74       <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." />
  75       <min value="0" />
  76       <max value="1" />
  77       <base>
  78         <path value="Element.id" />
  79         <min value="0" />
  80         <max value="1" />
  81       </base>
  82       <type>
  83         <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
  84           <valueUrl value="id" />
  85         </extension>
  86         <code value="http://hl7.org/fhirpath/System.String" />
  87       </type>
  88       <condition value="ele-1" />
  89       <isModifier value="false" />
  90       <isSummary value="false" />
  91       <mapping>
  92         <identity value="rim" />
  93         <map value="n/a" />
  94       </mapping>
  95     </element>
  96     <element id="DataRequirement.extension">
  97       <path value="DataRequirement.extension" />
  98       <slicing>
  99         <discriminator>
 100           <type value="value" />
 101           <path value="url" />
 102         </discriminator>
 103         <description value="Extensions are always sliced by (at least) url" />
 104         <rules value="open" />
 105       </slicing>
 106       <short value="Additional content defined by implementations" />
 107       <definition value="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
 108       <comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
 109       <alias value="extensions" />
 110       <alias value="user content" />
 111       <min value="0" />
 112       <max value="*" />
 113       <base>
 114         <path value="Element.extension" />
 115         <min value="0" />
 116         <max value="*" />
 117       </base>
 118       <type>
 119         <code value="Extension" />
 120       </type>
 121       <constraint>
 122         <key value="ele-1" />
 123         <severity value="error" />
 124         <human value="All FHIR elements must have a @value or children" />
 125         <expression value="hasValue() or (children().count() > id.count())" />
 126         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 127       </constraint>
 128       <constraint>
 129         <key value="ext-1" />
 130         <severity value="error" />
 131         <human value="Must have either extensions or value[x], not both" />
 132         <expression value="extension.exists() != value.exists()" />
 133         <source value="http://hl7.org/fhir/StructureDefinition/Extension" />
 134       </constraint>
 135       <isModifier value="false" />
 136       <isSummary value="false" />
 137       <mapping>
 138         <identity value="rim" />
 139         <map value="n/a" />
 140       </mapping>
 141     </element>
 142     <element id="DataRequirement.type">
 143       <path value="DataRequirement.type" />
 144       <short value="The type of the required data" />
 145       <definition value="The 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 profile." />
 146       <min value="1" />
 147       <max value="1" />
 148       <base>
 149         <path value="DataRequirement.type" />
 150         <min value="1" />
 151         <max value="1" />
 152       </base>
 153       <type>
 154         <code value="code" />
 155       </type>
 156       <constraint>
 157         <key value="ele-1" />
 158         <severity value="error" />
 159         <human value="All FHIR elements must have a @value or children" />
 160         <expression value="hasValue() or (children().count() > id.count())" />
 161         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 162       </constraint>
 163       <isModifier value="false" />
 164       <isSummary value="true" />
 165       <binding>
 166         <extension url="http://hl7.org/fhir/tools/StructureDefinition/binding-definition">
 167           <valueString value="List of FHIR types (resources, data types)." />
 168         </extension>
 169         <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
 170           <valueString value="FHIRTypes" />
 171         </extension>
 172         <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding">
 173           <valueBoolean value="true" />
 174         </extension>
 175         <strength value="required" />
 176         <description value="List of FHIR types (resources, data types)." />
 177         <valueSet value="http://hl7.org/fhir/ValueSet/fhir-types|5.0.0" />
 178       </binding>
 179     </element>
 180     <element id="DataRequirement.profile">
 181       <path value="DataRequirement.profile" />
 182       <short value="The profile of the required data" />
 183       <definition value="The profile of the required data, specified as the uri of the profile definition." />
 184       <min value="0" />
 185       <max value="*" />
 186       <base>
 187         <path value="DataRequirement.profile" />
 188         <min value="0" />
 189         <max value="*" />
 190       </base>
 191       <type>
 192         <code value="canonical" />
 193         <targetProfile value="http://hl7.org/fhir/StructureDefinition/StructureDefinition" />
 194       </type>
 195       <constraint>
 196         <key value="ele-1" />
 197         <severity value="error" />
 198         <human value="All FHIR elements must have a @value or children" />
 199         <expression value="hasValue() or (children().count() > id.count())" />
 200         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 201       </constraint>
 202       <isModifier value="false" />
 203       <isSummary value="true" />
 204     </element>
 205     <element id="DataRequirement.subject[x]">
 206       <path value="DataRequirement.subject[x]" />
 207       <short value="E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device" />
 208       <definition value="The intended subjects of the data requirement. If this element is not provided, a Patient subject is assumed." />
 209       <comment value="The subject of a data requirement is critical, as the data being specified is determined with respect to a particular subject. This corresponds roughly to the notion of a Compartment in that it limits what data is available based on its relationship to the subject. In CQL, this corresponds to the context declaration." />
 210       <min value="0" />
 211       <max value="1" />
 212       <base>
 213         <path value="DataRequirement.subject[x]" />
 214         <min value="0" />
 215         <max value="1" />
 216       </base>
 217       <type>
 218         <code value="CodeableConcept" />
 219       </type>
 220       <type>
 221         <code value="Reference" />
 222         <targetProfile value="http://hl7.org/fhir/StructureDefinition/Group" />
 223       </type>
 224       <meaningWhenMissing value="Patient" />
 225       <constraint>
 226         <key value="ele-1" />
 227         <severity value="error" />
 228         <human value="All FHIR elements must have a @value or children" />
 229         <expression value="hasValue() or (children().count() > id.count())" />
 230         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 231       </constraint>
 232       <isModifier value="false" />
 233       <isSummary value="true" />
 234       <binding>
 235         <extension url="http://hl7.org/fhir/tools/StructureDefinition/binding-definition">
 236           <valueString value="The possible types of subjects for a data requirement (E.g., Patient, Practitioner, Organization, Location, etc.)." />
 237         </extension>
 238         <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
 239           <valueString value="SubjectType" />
 240         </extension>
 241         <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding">
 242           <valueBoolean value="true" />
 243         </extension>
 244         <strength value="extensible" />
 245         <description value="The possible types of subjects for a data requirement (E.g., Patient, Practitioner, Organization, Location, etc.)." />
 246         <valueSet value="http://hl7.org/fhir/ValueSet/participant-resource-types" />
 247       </binding>
 248     </element>
 249     <element id="DataRequirement.mustSupport">
 250       <path value="DataRequirement.mustSupport" />
 251       <short value="Indicates specific structure elements that are referenced by the knowledge module" />
 252       <definition value="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 available. 

The value of mustSupport SHALL be a FHIRPath resolvable on the type of the DataRequirement. The path SHALL consist only of identifiers, constant indexers, and .resolve() (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details)." />
 253       <min value="0" />
 254       <max value="*" />
 255       <base>
 256         <path value="DataRequirement.mustSupport" />
 257         <min value="0" />
 258         <max value="*" />
 259       </base>
 260       <type>
 261         <code value="string" />
 262       </type>
 263       <constraint>
 264         <key value="ele-1" />
 265         <severity value="error" />
 266         <human value="All FHIR elements must have a @value or children" />
 267         <expression value="hasValue() or (children().count() > id.count())" />
 268         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 269       </constraint>
 270       <isModifier value="false" />
 271       <isSummary value="true" />
 272     </element>
 273     <element id="DataRequirement.codeFilter">
 274       <path value="DataRequirement.codeFilter" />
 275       <short value="What codes are expected" />
 276       <definition value="Code filters specify additional constraints on the data, specifying the value set of interest for a particular element of the data. Each code filter defines an additional constraint on the data, i.e. code filters are AND'ed, not OR'ed." />
 277       <min value="0" />
 278       <max value="*" />
 279       <base>
 280         <path value="DataRequirement.codeFilter" />
 281         <min value="0" />
 282         <max value="*" />
 283       </base>
 284       <type>
 285         <code value="Element" />
 286       </type>
 287       <constraint>
 288         <key value="drq-1" />
 289         <severity value="error" />
 290         <human value="Either a path or a searchParam must be provided, but not both" />
 291         <expression value="path.exists() xor searchParam.exists()" />
 292         <source value="http://hl7.org/fhir/StructureDefinition/DataRequirement" />
 293       </constraint>
 294       <constraint>
 295         <key value="ele-1" />
 296         <severity value="error" />
 297         <human value="All FHIR elements must have a @value or children" />
 298         <expression value="hasValue() or (children().count() > id.count())" />
 299         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 300       </constraint>
 301       <isModifier value="false" />
 302       <isSummary value="true" />
 303     </element>
 304     <element id="DataRequirement.codeFilter.id">
 305       <path value="DataRequirement.codeFilter.id" />
 306       <representation value="xmlAttr" />
 307       <short value="Unique id for inter-element referencing" />
 308       <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." />
 309       <min value="0" />
 310       <max value="1" />
 311       <base>
 312         <path value="Element.id" />
 313         <min value="0" />
 314         <max value="1" />
 315       </base>
 316       <type>
 317         <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
 318           <valueUrl value="string" />
 319         </extension>
 320         <code value="http://hl7.org/fhirpath/System.String" />
 321       </type>
 322       <condition value="ele-1" />
 323       <isModifier value="false" />
 324       <isSummary value="false" />
 325       <mapping>
 326         <identity value="rim" />
 327         <map value="n/a" />
 328       </mapping>
 329     </element>
 330     <element id="DataRequirement.codeFilter.extension">
 331       <path value="DataRequirement.codeFilter.extension" />
 332       <slicing>
 333         <discriminator>
 334           <type value="value" />
 335           <path value="url" />
 336         </discriminator>
 337         <description value="Extensions are always sliced by (at least) url" />
 338         <rules value="open" />
 339       </slicing>
 340       <short value="Additional content defined by implementations" />
 341       <definition value="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
 342       <comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
 343       <alias value="extensions" />
 344       <alias value="user content" />
 345       <min value="0" />
 346       <max value="*" />
 347       <base>
 348         <path value="Element.extension" />
 349         <min value="0" />
 350         <max value="*" />
 351       </base>
 352       <type>
 353         <code value="Extension" />
 354       </type>
 355       <constraint>
 356         <key value="ele-1" />
 357         <severity value="error" />
 358         <human value="All FHIR elements must have a @value or children" />
 359         <expression value="hasValue() or (children().count() > id.count())" />
 360         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 361       </constraint>
 362       <constraint>
 363         <key value="ext-1" />
 364         <severity value="error" />
 365         <human value="Must have either extensions or value[x], not both" />
 366         <expression value="extension.exists() != value.exists()" />
 367         <source value="http://hl7.org/fhir/StructureDefinition/Extension" />
 368       </constraint>
 369       <isModifier value="false" />
 370       <isSummary value="false" />
 371       <mapping>
 372         <identity value="rim" />
 373         <map value="n/a" />
 374       </mapping>
 375     </element>
 376     <element id="DataRequirement.codeFilter.path">
 377       <path value="DataRequirement.codeFilter.path" />
 378       <short value="A code-valued attribute to filter on" />
 379       <definition value="The code-valued attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of type code, Coding, or CodeableConcept." />
 380       <comment value="The path attribute contains a [Simple FHIRPath Subset](fhirpath.html#simple) that allows path traversal, but not calculation." />
 381       <min value="0" />
 382       <max value="1" />
 383       <base>
 384         <path value="DataRequirement.codeFilter.path" />
 385         <min value="0" />
 386         <max value="1" />
 387       </base>
 388       <type>
 389         <code value="string" />
 390       </type>
 391       <condition value="drq-1" />
 392       <constraint>
 393         <key value="ele-1" />
 394         <severity value="error" />
 395         <human value="All FHIR elements must have a @value or children" />
 396         <expression value="hasValue() or (children().count() > id.count())" />
 397         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 398       </constraint>
 399       <isModifier value="false" />
 400       <isSummary value="true" />
 401     </element>
 402     <element id="DataRequirement.codeFilter.searchParam">
 403       <path value="DataRequirement.codeFilter.searchParam" />
 404       <short value="A coded (token) parameter to search on" />
 405       <definition value="A token parameter that refers to a search parameter defined on the specified type of the DataRequirement, and which searches on elements of type code, Coding, or CodeableConcept." />
 406       <min value="0" />
 407       <max value="1" />
 408       <base>
 409         <path value="DataRequirement.codeFilter.searchParam" />
 410         <min value="0" />
 411         <max value="1" />
 412       </base>
 413       <type>
 414         <code value="string" />
 415       </type>
 416       <condition value="drq-1" />
 417       <constraint>
 418         <key value="ele-1" />
 419         <severity value="error" />
 420         <human value="All FHIR elements must have a @value or children" />
 421         <expression value="hasValue() or (children().count() > id.count())" />
 422         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 423       </constraint>
 424       <isModifier value="false" />
 425       <isSummary value="true" />
 426     </element>
 427     <element id="DataRequirement.codeFilter.valueSet">
 428       <path value="DataRequirement.codeFilter.valueSet" />
 429       <short value="ValueSet for the filter" />
 430       <definition value="The valueset for the code filter. The valueSet and code elements are additive. 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 valueset." />
 431       <min value="0" />
 432       <max value="1" />
 433       <base>
 434         <path value="DataRequirement.codeFilter.valueSet" />
 435         <min value="0" />
 436         <max value="1" />
 437       </base>
 438       <type>
 439         <code value="canonical" />
 440         <targetProfile value="http://hl7.org/fhir/StructureDefinition/ValueSet" />
 441       </type>
 442       <constraint>
 443         <key value="ele-1" />
 444         <severity value="error" />
 445         <human value="All FHIR elements must have a @value or children" />
 446         <expression value="hasValue() or (children().count() > id.count())" />
 447         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 448       </constraint>
 449       <isModifier value="false" />
 450       <isSummary value="true" />
 451     </element>
 452     <element id="DataRequirement.codeFilter.code">
 453       <path value="DataRequirement.codeFilter.code" />
 454       <short value="What code is expected" />
 455       <definition value="The codes for the code filter. If values 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 codes. If codes are specified in addition to a value set, the filter returns items matching a code in the value set or one of the specified codes." />
 456       <min value="0" />
 457       <max value="*" />
 458       <base>
 459         <path value="DataRequirement.codeFilter.code" />
 460         <min value="0" />
 461         <max value="*" />
 462       </base>
 463       <type>
 464         <code value="Coding" />
 465       </type>
 466       <constraint>
 467         <key value="ele-1" />
 468         <severity value="error" />
 469         <human value="All FHIR elements must have a @value or children" />
 470         <expression value="hasValue() or (children().count() > id.count())" />
 471         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 472       </constraint>
 473       <isModifier value="false" />
 474       <isSummary value="true" />
 475     </element>
 476     <element id="DataRequirement.dateFilter">
 477       <path value="DataRequirement.dateFilter" />
 478       <short value="What dates/date ranges are expected" />
 479       <definition value="Date filters specify additional constraints on the data in terms of the applicable date range for specific elements. Each date filter specifies an additional constraint on the data, i.e. date filters are AND'ed, not OR'ed." />
 480       <min value="0" />
 481       <max value="*" />
 482       <base>
 483         <path value="DataRequirement.dateFilter" />
 484         <min value="0" />
 485         <max value="*" />
 486       </base>
 487       <type>
 488         <code value="Element" />
 489       </type>
 490       <constraint>
 491         <key value="drq-2" />
 492         <severity value="error" />
 493         <human value="Either a path or a searchParam must be provided, but not both" />
 494         <expression value="path.exists() xor searchParam.exists()" />
 495         <source value="http://hl7.org/fhir/StructureDefinition/DataRequirement" />
 496       </constraint>
 497       <constraint>
 498         <key value="ele-1" />
 499         <severity value="error" />
 500         <human value="All FHIR elements must have a @value or children" />
 501         <expression value="hasValue() or (children().count() > id.count())" />
 502         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 503       </constraint>
 504       <isModifier value="false" />
 505       <isSummary value="true" />
 506     </element>
 507     <element id="DataRequirement.dateFilter.id">
 508       <path value="DataRequirement.dateFilter.id" />
 509       <representation value="xmlAttr" />
 510       <short value="Unique id for inter-element referencing" />
 511       <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." />
 512       <min value="0" />
 513       <max value="1" />
 514       <base>
 515         <path value="Element.id" />
 516         <min value="0" />
 517         <max value="1" />
 518       </base>
 519       <type>
 520         <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
 521           <valueUrl value="string" />
 522         </extension>
 523         <code value="http://hl7.org/fhirpath/System.String" />
 524       </type>
 525       <condition value="ele-1" />
 526       <isModifier value="false" />
 527       <isSummary value="false" />
 528       <mapping>
 529         <identity value="rim" />
 530         <map value="n/a" />
 531       </mapping>
 532     </element>
 533     <element id="DataRequirement.dateFilter.extension">
 534       <path value="DataRequirement.dateFilter.extension" />
 535       <slicing>
 536         <discriminator>
 537           <type value="value" />
 538           <path value="url" />
 539         </discriminator>
 540         <description value="Extensions are always sliced by (at least) url" />
 541         <rules value="open" />
 542       </slicing>
 543       <short value="Additional content defined by implementations" />
 544       <definition value="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
 545       <comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
 546       <alias value="extensions" />
 547       <alias value="user content" />
 548       <min value="0" />
 549       <max value="*" />
 550       <base>
 551         <path value="Element.extension" />
 552         <min value="0" />
 553         <max value="*" />
 554       </base>
 555       <type>
 556         <code value="Extension" />
 557       </type>
 558       <constraint>
 559         <key value="ele-1" />
 560         <severity value="error" />
 561         <human value="All FHIR elements must have a @value or children" />
 562         <expression value="hasValue() or (children().count() > id.count())" />
 563         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 564       </constraint>
 565       <constraint>
 566         <key value="ext-1" />
 567         <severity value="error" />
 568         <human value="Must have either extensions or value[x], not both" />
 569         <expression value="extension.exists() != value.exists()" />
 570         <source value="http://hl7.org/fhir/StructureDefinition/Extension" />
 571       </constraint>
 572       <isModifier value="false" />
 573       <isSummary value="false" />
 574       <mapping>
 575         <identity value="rim" />
 576         <map value="n/a" />
 577       </mapping>
 578     </element>
 579     <element id="DataRequirement.dateFilter.path">
 580       <path value="DataRequirement.dateFilter.path" />
 581       <short value="A date-valued attribute to filter on" />
 582       <definition value="The date-valued attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of type date, dateTime, Period, Schedule, or Timing." />
 583       <comment value="The path attribute contains a [Simple FHIR Subset](fhirpath.html#simple) that allows path traversal, but not calculation." />
 584       <min value="0" />
 585       <max value="1" />
 586       <base>
 587         <path value="DataRequirement.dateFilter.path" />
 588         <min value="0" />
 589         <max value="1" />
 590       </base>
 591       <type>
 592         <code value="string" />
 593       </type>
 594       <condition value="drq-2" />
 595       <constraint>
 596         <key value="ele-1" />
 597         <severity value="error" />
 598         <human value="All FHIR elements must have a @value or children" />
 599         <expression value="hasValue() or (children().count() > id.count())" />
 600         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 601       </constraint>
 602       <isModifier value="false" />
 603       <isSummary value="true" />
 604     </element>
 605     <element id="DataRequirement.dateFilter.searchParam">
 606       <path value="DataRequirement.dateFilter.searchParam" />
 607       <short value="A date valued parameter to search on" />
 608       <definition value="A date parameter that refers to a search parameter defined on the specified type of the DataRequirement, and which searches on elements of type date, dateTime, Period, Schedule, or Timing." />
 609       <min value="0" />
 610       <max value="1" />
 611       <base>
 612         <path value="DataRequirement.dateFilter.searchParam" />
 613         <min value="0" />
 614         <max value="1" />
 615       </base>
 616       <type>
 617         <code value="string" />
 618       </type>
 619       <condition value="drq-2" />
 620       <constraint>
 621         <key value="ele-1" />
 622         <severity value="error" />
 623         <human value="All FHIR elements must have a @value or children" />
 624         <expression value="hasValue() or (children().count() > id.count())" />
 625         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 626       </constraint>
 627       <isModifier value="false" />
 628       <isSummary value="true" />
 629     </element>
 630     <element id="DataRequirement.dateFilter.value[x]">
 631       <path value="DataRequirement.dateFilter.value[x]" />
 632       <short value="The value of the filter, as a Period, DateTime, or Duration value" />
 633       <definition value="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 dateTime. If a Duration is specified, the filter will return only those data items that fall within Duration before now." />
 634       <min value="0" />
 635       <max value="1" />
 636       <base>
 637         <path value="DataRequirement.dateFilter.value[x]" />
 638         <min value="0" />
 639         <max value="1" />
 640       </base>
 641       <type>
 642         <code value="dateTime" />
 643       </type>
 644       <type>
 645         <code value="Period" />
 646       </type>
 647       <type>
 648         <code value="Duration" />
 649       </type>
 650       <constraint>
 651         <key value="ele-1" />
 652         <severity value="error" />
 653         <human value="All FHIR elements must have a @value or children" />
 654         <expression value="hasValue() or (children().count() > id.count())" />
 655         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 656       </constraint>
 657       <isModifier value="false" />
 658       <isSummary value="true" />
 659     </element>
 660     <element id="DataRequirement.valueFilter">
 661       <path value="DataRequirement.valueFilter" />
 662       <short value="What values are expected" />
 663       <definition value="Value filters specify additional constraints on the data for elements other than code-valued or date-valued. Each value filter specifies an additional constraint on the data (i.e. valueFilters are AND'ed, not OR'ed)." />
 664       <min value="0" />
 665       <max value="*" />
 666       <base>
 667         <path value="DataRequirement.valueFilter" />
 668         <min value="0" />
 669         <max value="*" />
 670       </base>
 671       <type>
 672         <code value="Element" />
 673       </type>
 674       <constraint>
 675         <key value="ele-1" />
 676         <severity value="error" />
 677         <human value="All FHIR elements must have a @value or children" />
 678         <expression value="hasValue() or (children().count() > id.count())" />
 679         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 680       </constraint>
 681       <isModifier value="false" />
 682       <isSummary value="true" />
 683     </element>
 684     <element id="DataRequirement.valueFilter.id">
 685       <path value="DataRequirement.valueFilter.id" />
 686       <representation value="xmlAttr" />
 687       <short value="Unique id for inter-element referencing" />
 688       <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." />
 689       <min value="0" />
 690       <max value="1" />
 691       <base>
 692         <path value="Element.id" />
 693         <min value="0" />
 694         <max value="1" />
 695       </base>
 696       <type>
 697         <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
 698           <valueUrl value="string" />
 699         </extension>
 700         <code value="http://hl7.org/fhirpath/System.String" />
 701       </type>
 702       <condition value="ele-1" />
 703       <isModifier value="false" />
 704       <isSummary value="false" />
 705       <mapping>
 706         <identity value="rim" />
 707         <map value="n/a" />
 708       </mapping>
 709     </element>
 710     <element id="DataRequirement.valueFilter.extension">
 711       <path value="DataRequirement.valueFilter.extension" />
 712       <slicing>
 713         <discriminator>
 714           <type value="value" />
 715           <path value="url" />
 716         </discriminator>
 717         <description value="Extensions are always sliced by (at least) url" />
 718         <rules value="open" />
 719       </slicing>
 720       <short value="Additional content defined by implementations" />
 721       <definition value="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
 722       <comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
 723       <alias value="extensions" />
 724       <alias value="user content" />
 725       <min value="0" />
 726       <max value="*" />
 727       <base>
 728         <path value="Element.extension" />
 729         <min value="0" />
 730         <max value="*" />
 731       </base>
 732       <type>
 733         <code value="Extension" />
 734       </type>
 735       <constraint>
 736         <key value="ele-1" />
 737         <severity value="error" />
 738         <human value="All FHIR elements must have a @value or children" />
 739         <expression value="hasValue() or (children().count() > id.count())" />
 740         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 741       </constraint>
 742       <constraint>
 743         <key value="ext-1" />
 744         <severity value="error" />
 745         <human value="Must have either extensions or value[x], not both" />
 746         <expression value="extension.exists() != value.exists()" />
 747         <source value="http://hl7.org/fhir/StructureDefinition/Extension" />
 748       </constraint>
 749       <isModifier value="false" />
 750       <isSummary value="false" />
 751       <mapping>
 752         <identity value="rim" />
 753         <map value="n/a" />
 754       </mapping>
 755     </element>
 756     <element id="DataRequirement.valueFilter.path">
 757       <path value="DataRequirement.valueFilter.path" />
 758       <short value="An attribute to filter on" />
 759       <definition value="The attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of a type that is comparable to the valueFilter.value[x] element for the filter." />
 760       <comment value="The path attribute contains a [Simple FHIR Subset](fhirpath.html#simple) that allows path traversal, but not calculation." />
 761       <min value="0" />
 762       <max value="1" />
 763       <base>
 764         <path value="DataRequirement.valueFilter.path" />
 765         <min value="0" />
 766         <max value="1" />
 767       </base>
 768       <type>
 769         <code value="string" />
 770       </type>
 771       <constraint>
 772         <key value="ele-1" />
 773         <severity value="error" />
 774         <human value="All FHIR elements must have a @value or children" />
 775         <expression value="hasValue() or (children().count() > id.count())" />
 776         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 777       </constraint>
 778       <isModifier value="false" />
 779       <isSummary value="true" />
 780     </element>
 781     <element id="DataRequirement.valueFilter.searchParam">
 782       <path value="DataRequirement.valueFilter.searchParam" />
 783       <short value="A parameter to search on" />
 784       <definition value="A search parameter defined on the specified type of the DataRequirement, and which searches on elements of a type compatible with the type of the valueFilter.value[x] for the filter." />
 785       <min value="0" />
 786       <max value="1" />
 787       <base>
 788         <path value="DataRequirement.valueFilter.searchParam" />
 789         <min value="0" />
 790         <max value="1" />
 791       </base>
 792       <type>
 793         <code value="string" />
 794       </type>
 795       <constraint>
 796         <key value="ele-1" />
 797         <severity value="error" />
 798         <human value="All FHIR elements must have a @value or children" />
 799         <expression value="hasValue() or (children().count() > id.count())" />
 800         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 801       </constraint>
 802       <isModifier value="false" />
 803       <isSummary value="true" />
 804     </element>
 805     <element id="DataRequirement.valueFilter.comparator">
 806       <path value="DataRequirement.valueFilter.comparator" />
 807       <short value="eq | gt | lt | ge | le | sa | eb" />
 808       <definition value="The comparator to be used to determine whether the value is matching." />
 809       <min value="0" />
 810       <max value="1" />
 811       <base>
 812         <path value="DataRequirement.valueFilter.comparator" />
 813         <min value="0" />
 814         <max value="1" />
 815       </base>
 816       <type>
 817         <code value="code" />
 818       </type>
 819       <constraint>
 820         <key value="ele-1" />
 821         <severity value="error" />
 822         <human value="All FHIR elements must have a @value or children" />
 823         <expression value="hasValue() or (children().count() > id.count())" />
 824         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 825       </constraint>
 826       <isModifier value="false" />
 827       <isSummary value="true" />
 828       <binding>
 829         <extension url="http://hl7.org/fhir/tools/StructureDefinition/binding-definition">
 830           <valueString value="Possible comparators for the valueFilter element." />
 831         </extension>
 832         <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
 833           <valueString value="ValueFilterComparator" />
 834         </extension>
 835         <strength value="required" />
 836         <description value="Possible comparators for the valueFilter element." />
 837         <valueSet value="http://hl7.org/fhir/ValueSet/value-filter-comparator|5.0.0" />
 838       </binding>
 839     </element>
 840     <element id="DataRequirement.valueFilter.value[x]">
 841       <path value="DataRequirement.valueFilter.value[x]" />
 842       <short value="The value of the filter, as a Period, DateTime, or Duration value" />
 843       <definition value="The value of the filter." />
 844       <min value="0" />
 845       <max value="1" />
 846       <base>
 847         <path value="DataRequirement.valueFilter.value[x]" />
 848         <min value="0" />
 849         <max value="1" />
 850       </base>
 851       <type>
 852         <code value="dateTime" />
 853       </type>
 854       <type>
 855         <code value="Period" />
 856       </type>
 857       <type>
 858         <code value="Duration" />
 859       </type>
 860       <constraint>
 861         <key value="ele-1" />
 862         <severity value="error" />
 863         <human value="All FHIR elements must have a @value or children" />
 864         <expression value="hasValue() or (children().count() > id.count())" />
 865         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 866       </constraint>
 867       <isModifier value="false" />
 868       <isSummary value="true" />
 869     </element>
 870     <element id="DataRequirement.limit">
 871       <path value="DataRequirement.limit" />
 872       <short value="Number of results" />
 873       <definition value="Specifies a maximum number of results that are required (uses the _count search parameter)." />
 874       <comment value="This element can be used in combination with the sort element to specify quota requirements such as "the most recent 5" or "the highest 5"." />
 875       <requirements value="Enables the requirement "most recent 5 results" to be expressed." />
 876       <min value="0" />
 877       <max value="1" />
 878       <base>
 879         <path value="DataRequirement.limit" />
 880         <min value="0" />
 881         <max value="1" />
 882       </base>
 883       <type>
 884         <code value="positiveInt" />
 885       </type>
 886       <constraint>
 887         <key value="ele-1" />
 888         <severity value="error" />
 889         <human value="All FHIR elements must have a @value or children" />
 890         <expression value="hasValue() or (children().count() > id.count())" />
 891         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 892       </constraint>
 893       <isModifier value="false" />
 894       <isSummary value="true" />
 895     </element>
 896     <element id="DataRequirement.sort">
 897       <path value="DataRequirement.sort" />
 898       <short value="Order of the results" />
 899       <definition value="Specifies the order of the results to be returned." />
 900       <comment value="This element can be used in combination with the sort element to specify quota requirements such as "the most recent 5" or "the highest 5". When multiple sorts are specified, they are applied in the order they appear in the resource." />
 901       <requirements value="Enables the requirement "most recent 5 results" to be expressed." />
 902       <min value="0" />
 903       <max value="*" />
 904       <base>
 905         <path value="DataRequirement.sort" />
 906         <min value="0" />
 907         <max value="*" />
 908       </base>
 909       <type>
 910         <code value="Element" />
 911       </type>
 912       <constraint>
 913         <key value="ele-1" />
 914         <severity value="error" />
 915         <human value="All FHIR elements must have a @value or children" />
 916         <expression value="hasValue() or (children().count() > id.count())" />
 917         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 918       </constraint>
 919       <isModifier value="false" />
 920       <isSummary value="true" />
 921     </element>
 922     <element id="DataRequirement.sort.id">
 923       <path value="DataRequirement.sort.id" />
 924       <representation value="xmlAttr" />
 925       <short value="Unique id for inter-element referencing" />
 926       <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." />
 927       <min value="0" />
 928       <max value="1" />
 929       <base>
 930         <path value="Element.id" />
 931         <min value="0" />
 932         <max value="1" />
 933       </base>
 934       <type>
 935         <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
 936           <valueUrl value="string" />
 937         </extension>
 938         <code value="http://hl7.org/fhirpath/System.String" />
 939       </type>
 940       <condition value="ele-1" />
 941       <isModifier value="false" />
 942       <isSummary value="false" />
 943       <mapping>
 944         <identity value="rim" />
 945         <map value="n/a" />
 946       </mapping>
 947     </element>
 948     <element id="DataRequirement.sort.extension">
 949       <path value="DataRequirement.sort.extension" />
 950       <slicing>
 951         <discriminator>
 952           <type value="value" />
 953           <path value="url" />
 954         </discriminator>
 955         <description value="Extensions are always sliced by (at least) url" />
 956         <rules value="open" />
 957       </slicing>
 958       <short value="Additional content defined by implementations" />
 959       <definition value="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
 960       <comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
 961       <alias value="extensions" />
 962       <alias value="user content" />
 963       <min value="0" />
 964       <max value="*" />
 965       <base>
 966         <path value="Element.extension" />
 967         <min value="0" />
 968         <max value="*" />
 969       </base>
 970       <type>
 971         <code value="Extension" />
 972       </type>
 973       <constraint>
 974         <key value="ele-1" />
 975         <severity value="error" />
 976         <human value="All FHIR elements must have a @value or children" />
 977         <expression value="hasValue() or (children().count() > id.count())" />
 978         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
 979       </constraint>
 980       <constraint>
 981         <key value="ext-1" />
 982         <severity value="error" />
 983         <human value="Must have either extensions or value[x], not both" />
 984         <expression value="extension.exists() != value.exists()" />
 985         <source value="http://hl7.org/fhir/StructureDefinition/Extension" />
 986       </constraint>
 987       <isModifier value="false" />
 988       <isSummary value="false" />
 989       <mapping>
 990         <identity value="rim" />
 991         <map value="n/a" />
 992       </mapping>
 993     </element>
 994     <element id="DataRequirement.sort.path">
 995       <path value="DataRequirement.sort.path" />
 996       <short value="The name of the attribute to perform the sort" />
 997       <definition value="The attribute of the sort. 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." />
 998       <min value="1" />
 999       <max value="1" />
1000       <base>
1001         <path value="DataRequirement.sort.path" />
1002         <min value="1" />
1003         <max value="1" />
1004       </base>
1005       <type>
1006         <code value="string" />
1007       </type>
1008       <constraint>
1009         <key value="ele-1" />
1010         <severity value="error" />
1011         <human value="All FHIR elements must have a @value or children" />
1012         <expression value="hasValue() or (children().count() > id.count())" />
1013         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
1014       </constraint>
1015       <isModifier value="false" />
1016       <isSummary value="true" />
1017     </element>
1018     <element id="DataRequirement.sort.direction">
1019       <path value="DataRequirement.sort.direction" />
1020       <short value="ascending | descending" />
1021       <definition value="The direction of the sort, ascending or descending." />
1022       <min value="1" />
1023       <max value="1" />
1024       <base>
1025         <path value="DataRequirement.sort.direction" />
1026         <min value="1" />
1027         <max value="1" />
1028       </base>
1029       <type>
1030         <code value="code" />
1031       </type>
1032       <constraint>
1033         <key value="ele-1" />
1034         <severity value="error" />
1035         <human value="All FHIR elements must have a @value or children" />
1036         <expression value="hasValue() or (children().count() > id.count())" />
1037         <source value="http://hl7.org/fhir/StructureDefinition/Element" />
1038       </constraint>
1039       <isModifier value="false" />
1040       <isSummary value="true" />
1041       <binding>
1042         <extension url="http://hl7.org/fhir/tools/StructureDefinition/binding-definition">
1043           <valueString value="The possible sort directions, ascending or descending." />
1044         </extension>
1045         <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
1046           <valueString value="SortDirection" />
1047         </extension>
1048         <strength value="required" />
1049         <description value="The possible sort directions, ascending or descending." />
1050         <valueSet value="http://hl7.org/fhir/ValueSet/sort-direction|5.0.0" />
1051       </binding>
1052     </element>
1053   </snapshot>
1054   <differential>
1055     <element id="DataRequirement">
1056       <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
1057         <valueCode value="trial-use" />
1058       </extension>
1059       <path value="DataRequirement" />
1060       <short value="Describes a required data item" />
1061       <definition value="Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data." />
1062       <min value="0" />
1063       <max value="*" />
1064     </element>
1065     <element id="DataRequirement.type">
1066       <path value="DataRequirement.type" />
1067       <short value="The type of the required data" />
1068       <definition value="The 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 profile." />
1069       <min value="1" />
1070       <max value="1" />
1071       <type>
1072         <code value="code" />
1073       </type>
1074       <isSummary value="true" />
1075       <binding>
1076         <extension url="http://hl7.org/fhir/tools/StructureDefinition/binding-definition">
1077           <valueString value="List of FHIR types (resources, data types)." />
1078         </extension>
1079         <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
1080           <valueString value="FHIRTypes" />
1081         </extension>
1082         <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding">
1083           <valueBoolean value="true" />
1084         </extension>
1085         <strength value="required" />
1086         <description value="List of FHIR types (resources, data types)." />
1087         <valueSet value="http://hl7.org/fhir/ValueSet/fhir-types|5.0.0" />
1088       </binding>
1089     </element>
1090     <element id="DataRequirement.profile">
1091       <path value="DataRequirement.profile" />
1092       <short value="The profile of the required data" />
1093       <definition value="The profile of the required data, specified as the uri of the profile definition." />
1094       <min value="0" />
1095       <max value="*" />
1096       <type>
1097         <code value="canonical" />
1098         <targetProfile value="http://hl7.org/fhir/StructureDefinition/StructureDefinition" />
1099       </type>
1100       <isSummary value="true" />
1101     </element>
1102     <element id="DataRequirement.subject[x]">
1103       <path value="DataRequirement.subject[x]" />
1104       <short value="E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device" />
1105       <definition value="The intended subjects of the data requirement. If this element is not provided, a Patient subject is assumed." />
1106       <comment value="The subject of a data requirement is critical, as the data being specified is determined with respect to a particular subject. This corresponds roughly to the notion of a Compartment in that it limits what data is available based on its relationship to the subject. In CQL, this corresponds to the context declaration." />
1107       <min value="0" />
1108       <max value="1" />
1109       <type>
1110         <code value="CodeableConcept" />
1111       </type>
1112       <type>
1113         <code value="Reference" />
1114         <targetProfile value="http://hl7.org/fhir/StructureDefinition/Group" />
1115       </type>
1116       <meaningWhenMissing value="Patient" />
1117       <isSummary value="true" />
1118       <binding>
1119         <extension url="http://hl7.org/fhir/tools/StructureDefinition/binding-definition">
1120           <valueString value="The possible types of subjects for a data requirement (E.g., Patient, Practitioner, Organization, Location, etc.)." />
1121         </extension>
1122         <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
1123           <valueString value="SubjectType" />
1124         </extension>
1125         <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding">
1126           <valueBoolean value="true" />
1127         </extension>
1128         <strength value="extensible" />
1129         <description value="The possible types of subjects for a data requirement (E.g., Patient, Practitioner, Organization, Location, etc.)." />
1130         <valueSet value="http://hl7.org/fhir/ValueSet/participant-resource-types" />
1131       </binding>
1132     </element>
1133     <element id="DataRequirement.mustSupport">
1134       <path value="DataRequirement.mustSupport" />
1135       <short value="Indicates specific structure elements that are referenced by the knowledge module" />
1136       <definition value="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 available. 

The value of mustSupport SHALL be a FHIRPath resolvable on the type of the DataRequirement. The path SHALL consist only of identifiers, constant indexers, and .resolve() (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details)." />
1137       <min value="0" />
1138       <max value="*" />
1139       <type>
1140         <code value="string" />
1141       </type>
1142       <isSummary value="true" />
1143     </element>
1144     <element id="DataRequirement.codeFilter">
1145       <path value="DataRequirement.codeFilter" />
1146       <short value="What codes are expected" />
1147       <definition value="Code filters specify additional constraints on the data, specifying the value set of interest for a particular element of the data. Each code filter defines an additional constraint on the data, i.e. code filters are AND'ed, not OR'ed." />
1148       <min value="0" />
1149       <max value="*" />
1150       <type>
1151         <code value="Element" />
1152       </type>
1153       <constraint>
1154         <key value="drq-1" />
1155         <severity value="error" />
1156         <human value="Either a path or a searchParam must be provided, but not both" />
1157         <expression value="path.exists() xor searchParam.exists()" />
1158         <source value="http://hl7.org/fhir/StructureDefinition/DataRequirement" />
1159       </constraint>
1160       <isSummary value="true" />
1161     </element>
1162     <element id="DataRequirement.codeFilter.path">
1163       <path value="DataRequirement.codeFilter.path" />
1164       <short value="A code-valued attribute to filter on" />
1165       <definition value="The code-valued attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of type code, Coding, or CodeableConcept." />
1166       <comment value="The path attribute contains a [Simple FHIRPath Subset](fhirpath.html#simple) that allows path traversal, but not calculation." />
1167       <min value="0" />
1168       <max value="1" />
1169       <type>
1170         <code value="string" />
1171       </type>
1172       <condition value="drq-1" />
1173       <isSummary value="true" />
1174     </element>
1175     <element id="DataRequirement.codeFilter.searchParam">
1176       <path value="DataRequirement.codeFilter.searchParam" />
1177       <short value="A coded (token) parameter to search on" />
1178       <definition value="A token parameter that refers to a search parameter defined on the specified type of the DataRequirement, and which searches on elements of type code, Coding, or CodeableConcept." />
1179       <min value="0" />
1180       <max value="1" />
1181       <type>
1182         <code value="string" />
1183       </type>
1184       <condition value="drq-1" />
1185       <isSummary value="true" />
1186     </element>
1187     <element id="DataRequirement.codeFilter.valueSet">
1188       <path value="DataRequirement.codeFilter.valueSet" />
1189       <short value="ValueSet for the filter" />
1190       <definition value="The valueset for the code filter. The valueSet and code elements are additive. 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 valueset." />
1191       <min value="0" />
1192       <max value="1" />
1193       <type>
1194         <code value="canonical" />
1195         <targetProfile value="http://hl7.org/fhir/StructureDefinition/ValueSet" />
1196       </type>
1197       <isSummary value="true" />
1198     </element>
1199     <element id="DataRequirement.codeFilter.code">
1200       <path value="DataRequirement.codeFilter.code" />
1201       <short value="What code is expected" />
1202       <definition value="The codes for the code filter. If values 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 codes. If codes are specified in addition to a value set, the filter returns items matching a code in the value set or one of the specified codes." />
1203       <min value="0" />
1204       <max value="*" />
1205       <type>
1206         <code value="Coding" />
1207       </type>
1208       <isSummary value="true" />
1209     </element>
1210     <element id="DataRequirement.dateFilter">
1211       <path value="DataRequirement.dateFilter" />
1212       <short value="What dates/date ranges are expected" />
1213       <definition value="Date filters specify additional constraints on the data in terms of the applicable date range for specific elements. Each date filter specifies an additional constraint on the data, i.e. date filters are AND'ed, not OR'ed." />
1214       <min value="0" />
1215       <max value="*" />
1216       <type>
1217         <code value="Element" />
1218       </type>
1219       <constraint>
1220         <key value="drq-2" />
1221         <severity value="error" />
1222         <human value="Either a path or a searchParam must be provided, but not both" />
1223         <expression value="path.exists() xor searchParam.exists()" />
1224         <source value="http://hl7.org/fhir/StructureDefinition/DataRequirement" />
1225       </constraint>
1226       <isSummary value="true" />
1227     </element>
1228     <element id="DataRequirement.dateFilter.path">
1229       <path value="DataRequirement.dateFilter.path" />
1230       <short value="A date-valued attribute to filter on" />
1231       <definition value="The date-valued attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of type date, dateTime, Period, Schedule, or Timing." />
1232       <comment value="The path attribute contains a [Simple FHIR Subset](fhirpath.html#simple) that allows path traversal, but not calculation." />
1233       <min value="0" />
1234       <max value="1" />
1235       <type>
1236         <code value="string" />
1237       </type>
1238       <condition value="drq-2" />
1239       <isSummary value="true" />
1240     </element>
1241     <element id="DataRequirement.dateFilter.searchParam">
1242       <path value="DataRequirement.dateFilter.searchParam" />
1243       <short value="A date valued parameter to search on" />
1244       <definition value="A date parameter that refers to a search parameter defined on the specified type of the DataRequirement, and which searches on elements of type date, dateTime, Period, Schedule, or Timing." />
1245       <min value="0" />
1246       <max value="1" />
1247       <type>
1248         <code value="string" />
1249       </type>
1250       <condition value="drq-2" />
1251       <isSummary value="true" />
1252     </element>
1253     <element id="DataRequirement.dateFilter.value[x]">
1254       <path value="DataRequirement.dateFilter.value[x]" />
1255       <short value="The value of the filter, as a Period, DateTime, or Duration value" />
1256       <definition value="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 dateTime. If a Duration is specified, the filter will return only those data items that fall within Duration before now." />
1257       <min value="0" />
1258       <max value="1" />
1259       <type>
1260         <code value="dateTime" />
1261       </type>
1262       <type>
1263         <code value="Period" />
1264       </type>
1265       <type>
1266         <code value="Duration" />
1267       </type>
1268       <isSummary value="true" />
1269     </element>
1270     <element id="DataRequirement.valueFilter">
1271       <path value="DataRequirement.valueFilter" />
1272       <short value="What values are expected" />
1273       <definition value="Value filters specify additional constraints on the data for elements other than code-valued or date-valued. Each value filter specifies an additional constraint on the data (i.e. valueFilters are AND'ed, not OR'ed)." />
1274       <min value="0" />
1275       <max value="*" />
1276       <type>
1277         <code value="Element" />
1278       </type>
1279       <isSummary value="true" />
1280     </element>
1281     <element id="DataRequirement.valueFilter.path">
1282       <path value="DataRequirement.valueFilter.path" />
1283       <short value="An attribute to filter on" />
1284       <definition value="The attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of a type that is comparable to the valueFilter.value[x] element for the filter." />
1285       <comment value="The path attribute contains a [Simple FHIR Subset](fhirpath.html#simple) that allows path traversal, but not calculation." />
1286       <min value="0" />
1287       <max value="1" />
1288       <type>
1289         <code value="string" />
1290       </type>
1291       <isSummary value="true" />
1292     </element>
1293     <element id="DataRequirement.valueFilter.searchParam">
1294       <path value="DataRequirement.valueFilter.searchParam" />
1295       <short value="A parameter to search on" />
1296       <definition value="A search parameter defined on the specified type of the DataRequirement, and which searches on elements of a type compatible with the type of the valueFilter.value[x] for the filter." />
1297       <min value="0" />
1298       <max value="1" />
1299       <type>
1300         <code value="string" />
1301       </type>
1302       <isSummary value="true" />
1303     </element>
1304     <element id="DataRequirement.valueFilter.comparator">
1305       <path value="DataRequirement.valueFilter.comparator" />
1306       <short value="eq | gt | lt | ge | le | sa | eb" />
1307       <definition value="The comparator to be used to determine whether the value is matching." />
1308       <min value="0" />
1309       <max value="1" />
1310       <type>
1311         <code value="code" />
1312       </type>
1313       <isSummary value="true" />
1314       <binding>
1315         <extension url="http://hl7.org/fhir/tools/StructureDefinition/binding-definition">
1316           <valueString value="Possible comparators for the valueFilter element." />
1317         </extension>
1318         <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
1319           <valueString value="ValueFilterComparator" />
1320         </extension>
1321         <strength value="required" />
1322         <description value="Possible comparators for the valueFilter element." />
1323         <valueSet value="http://hl7.org/fhir/ValueSet/value-filter-comparator|5.0.0" />
1324       </binding>
1325     </element>
1326     <element id="DataRequirement.valueFilter.value[x]">
1327       <path value="DataRequirement.valueFilter.value[x]" />
1328       <short value="The value of the filter, as a Period, DateTime, or Duration value" />
1329       <definition value="The value of the filter." />
1330       <min value="0" />
1331       <max value="1" />
1332       <type>
1333         <code value="dateTime" />
1334       </type>
1335       <type>
1336         <code value="Period" />
1337       </type>
1338       <type>
1339         <code value="Duration" />
1340       </type>
1341       <isSummary value="true" />
1342     </element>
1343     <element id="DataRequirement.limit">
1344       <path value="DataRequirement.limit" />
1345       <short value="Number of results" />
1346       <definition value="Specifies a maximum number of results that are required (uses the _count search parameter)." />
1347       <comment value="This element can be used in combination with the sort element to specify quota requirements such as "the most recent 5" or "the highest 5"." />
1348       <requirements value="Enables the requirement "most recent 5 results" to be expressed." />
1349       <min value="0" />
1350       <max value="1" />
1351       <type>
1352         <code value="positiveInt" />
1353       </type>
1354       <isSummary value="true" />
1355     </element>
1356     <element id="DataRequirement.sort">
1357       <path value="DataRequirement.sort" />
1358       <short value="Order of the results" />
1359       <definition value="Specifies the order of the results to be returned." />
1360       <comment value="This element can be used in combination with the sort element to specify quota requirements such as "the most recent 5" or "the highest 5". When multiple sorts are specified, they are applied in the order they appear in the resource." />
1361       <requirements value="Enables the requirement "most recent 5 results" to be expressed." />
1362       <min value="0" />
1363       <max value="*" />
1364       <type>
1365         <code value="Element" />
1366       </type>
1367       <isSummary value="true" />
1368     </element>
1369     <element id="DataRequirement.sort.path">
1370       <path value="DataRequirement.sort.path" />
1371       <short value="The name of the attribute to perform the sort" />
1372       <definition value="The attribute of the sort. 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." />
1373       <min value="1" />
1374       <max value="1" />
1375       <type>
1376         <code value="string" />
1377       </type>
1378       <isSummary value="true" />
1379     </element>
1380     <element id="DataRequirement.sort.direction">
1381       <path value="DataRequirement.sort.direction" />
1382       <short value="ascending | descending" />
1383       <definition value="The direction of the sort, ascending or descending." />
1384       <min value="1" />
1385       <max value="1" />
1386       <type>
1387         <code value="code" />
1388       </type>
1389       <isSummary value="true" />
1390       <binding>
1391         <extension url="http://hl7.org/fhir/tools/StructureDefinition/binding-definition">
1392           <valueString value="The possible sort directions, ascending or descending." />
1393         </extension>
1394         <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
1395           <valueString value="SortDirection" />
1396         </extension>
1397         <strength value="required" />
1398         <description value="The possible sort directions, ascending or descending." />
1399         <valueSet value="http://hl7.org/fhir/ValueSet/sort-direction|5.0.0" />
1400       </binding>
1401     </element>
1402   </differential>
1403 </StructureDefinition>