StructureDefinition-sdc-questionnaire-launchContext.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <StructureDefinition xmlns="http://hl7.org/fhir"> 3 <id value="sdc-questionnaire-launchContext" /> 4 <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg"> 5 <valueCode value="fhir" /> 6 </extension> 7 <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm"> 8 <valueInteger value="4"> 9 <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom"> 10 <valueCanonical value="http://hl7.org/fhir/uv/sdc/ImplementationGuide/hl7.fhir.uv.sdc" /> 11 </extension> 12 </valueInteger> 13 </extension> 14 <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status"> 15 <valueCode value="trial-use"> 16 <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom"> 17 <valueCanonical value="http://hl7.org/fhir/uv/sdc/ImplementationGuide/hl7.fhir.uv.sdc" /> 18 </extension> 19 </valueCode> 20 </extension> 21 <url value="http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-launchContext" /> 22 <identifier> 23 <system value="urn:ietf:rfc:3986" /> 24 <value value="urn:oid:2.16.840.1.113883.4.642.40.17.42.34" /> 25 </identifier> 26 <version value="4.0.0-ballot" /> 27 <name value="LaunchContextExtension" /> 28 <title value="Launch Contexts" /> 29 <status value="active" /> 30 <date value="2024-12-22T04:48:38.0000000+01:00" /> 31 <publisher value="HL7 International / FHIR Infrastructure" /> 32 <contact> 33 <name value="HL7 International / FHIR Infrastructure" /> 34 <telecom> 35 <system value="url" /> 36 <value value="http://www.hl7.org/Special/committees/fiwg" /> 37 </telecom> 38 </contact> 39 <contact> 40 <telecom> 41 <system value="url" /> 42 <value value="http://www.hl7.org/Special/committees/fiwg" /> 43 </telecom> 44 </contact> 45 <description value="Resources that provide context for form processing logic (pre-population, flow-control, drop-down selection, etc.) when creating/displaying/editing a QuestionnaireResponse." /> 46 <jurisdiction> 47 <coding> 48 <system value="http://unstats.un.org/unsd/methods/m49/m49.htm" /> 49 <code value="001" /> 50 <display value="World" /> 51 </coding> 52 </jurisdiction> 53 <purpose value="Indicates to systems creating or updating a QuestionnaireResponse what types of information to pass in for internal processing. May also influence things like SMART on FHIR permission requests." /> 54 <fhirVersion value="4.0.1" /> 55 <mapping> 56 <identity value="rim" /> 57 <uri value="http://hl7.org/v3" /> 58 <name value="RIM Mapping" /> 59 </mapping> 60 <kind value="complex-type" /> 61 <abstract value="false" /> 62 <context> 63 <type value="element" /> 64 <expression value="Questionnaire" /> 65 </context> 66 <type value="Extension" /> 67 <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" /> 68 <derivation value="constraint" /> 69 <snapshot> 70 <element id="Extension"> 71 <path value="Extension" /> 72 <short value="Context resources needed for Questionnaire" /> 73 <definition value="Resources that provide context for form processing logic (pre-population, flow-control, drop-down selection, etc.) when creating/displaying/editing a QuestionnaireResponse." /> 74 <comment value="3 of these launch contexts are aligned with the existing SMART on FHIR "launch" contexts." /> 75 <min value="0" /> 76 <max value="*" /> 77 <base> 78 <path value="Extension" /> 79 <min value="0" /> 80 <max value="*" /> 81 </base> 82 <condition value="ele-1" /> 83 <constraint> 84 <key value="ele-1" /> 85 <severity value="error" /> 86 <human value="All FHIR elements must have a @value or children" /> 87 <expression value="hasValue() or (children().count() > id.count())" /> 88 <xpath value="@value|f:*|h:div" /> 89 <source value="http://hl7.org/fhir/StructureDefinition/Element" /> 90 </constraint> 91 <constraint> 92 <key value="ext-1" /> 93 <severity value="error" /> 94 <human value="Must have either extensions or value[x], not both" /> 95 <expression value="extension.exists() != value.exists()" /> 96 <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" /> 97 <source value="http://hl7.org/fhir/StructureDefinition/Extension" /> 98 </constraint> 99 <constraint> 100 <key value="sdc-lcext-1" /> 101 <severity value="error" /> 102 <human value="Types must be from the specified value set of resource types based on name: patient: Patient; user: Patient, Practitioner, PractitionerRole, Organization, RelatedPerson, Device; encounter: Encounter; location: Location; study: ResearchStudy; clinical: Any allowed clinical resource" /> 103 <expression value="(extension('name').value.where(code='patient' and system='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext').exists() implies extension('type').all(value = 'Patient')) and (extension('name').value.where(code='user' and system='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext').exists() implies extension('type').all(value='Patient' or value='Practitioner' or value='PractitionerRole' or value='RelatedPerson' or value='Organization' or value='Device')) and (extension('name').value.where(code='encounter' and system='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext').exists() implies extension('type').all(value = 'Encounter')) and (extension('name').value.where(code='location' and system='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext').exists() implies extension('type').all(value = 'Location')) and (extension('name').value.where(code='study' and system='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext').exists() implies extension('type').all(value = 'ResearchStudy'))" /> 104 <xpath value="(not(f:extension[@url='name' and f:valueCoding[f:code/@value='patient' and f:system/@value='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext']]) or not(f:extension[@url='type' and f:valueCode/@value!='Patient'])) and (not(f:extension[@url='name' and f:valueCoding[f:code/@value='user' and f:system/@value='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext']]) or not(f:extension[@url='type' and f:valueCode/@value!=('Patient','Practitioner','PractitionerRole','RelatedPerson', 'Organization', 'Device')])) and (not(f:extension[@url='name' and f:valueCoding[f:code/@value='encounter' and f:system/@value='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext']]) or not(f:extension[@url='type' and f:valueCode/@value!='Encounter']))) and (not(f:extension[@url='name' and f:valueCoding[f:code/@value='study' and f:system/@value='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext']]) or f:extension[@url='type' and not(f:valueCode/@value!='ResearchStudy'])) and (not(f:extension[@url='name' and f:valueCoding[f:code/@value='location' and f:system/@value='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext']]) or not(f:extension[@url='type' and f:valueCode/@value!='Location']))" /> 105 <source value="http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-launchContext" /> 106 </constraint> 107 <isModifier value="false" /> 108 </element> 109 <element id="Extension.id"> 110 <path value="Extension.id" /> 111 <representation value="xmlAttr" /> 112 <short value="Unique id for inter-element referencing" /> 113 <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." /> 114 <min value="0" /> 115 <max value="1" /> 116 <base> 117 <path value="Element.id" /> 118 <min value="0" /> 119 <max value="1" /> 120 </base> 121 <type> 122 <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> 123 <valueUrl value="string" /> 124 </extension> 125 <code value="http://hl7.org/fhirpath/System.String" /> 126 </type> 127 <isModifier value="false" /> 128 <isSummary value="false" /> 129 <mapping> 130 <identity value="rim" /> 131 <map value="n/a" /> 132 </mapping> 133 </element> 134 <element id="Extension.extension"> 135 <path value="Extension.extension" /> 136 <slicing> 137 <discriminator> 138 <type value="value" /> 139 <path value="url" /> 140 </discriminator> 141 <description value="Extensions are always sliced by (at least) url" /> 142 <rules value="open" /> 143 </slicing> 144 <short value="Extension" /> 145 <definition value="An Extension" /> 146 <min value="2" /> 147 <max value="*" /> 148 <base> 149 <path value="Element.extension" /> 150 <min value="0" /> 151 <max value="*" /> 152 </base> 153 <type> 154 <code value="Extension" /> 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 <xpath value="@value|f:*|h:div" /> 162 <source value="http://hl7.org/fhir/StructureDefinition/Element" /> 163 </constraint> 164 <constraint> 165 <key value="ext-1" /> 166 <severity value="error" /> 167 <human value="Must have either extensions or value[x], not both" /> 168 <expression value="extension.exists() != value.exists()" /> 169 <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])" /> 170 <source value="http://hl7.org/fhir/StructureDefinition/Extension" /> 171 </constraint> 172 <isModifier value="false" /> 173 <isSummary value="false" /> 174 </element> 175 <element id="Extension.extension:name"> 176 <path value="Extension.extension" /> 177 <sliceName value="name" /> 178 <short value="Variable name" /> 179 <definition value="The variable name the passed resource will be referenced by within the Questionnaire logic." /> 180 <min value="1" /> 181 <max value="1" /> 182 <base> 183 <path value="Element.extension" /> 184 <min value="0" /> 185 <max value="*" /> 186 </base> 187 <type> 188 <code value="Extension" /> 189 </type> 190 <constraint> 191 <key value="ele-1" /> 192 <severity value="error" /> 193 <human value="All FHIR elements must have a @value or children" /> 194 <expression value="hasValue() or (children().count() > id.count())" /> 195 <xpath value="@value|f:*|h:div" /> 196 <source value="http://hl7.org/fhir/StructureDefinition/Element" /> 197 </constraint> 198 <constraint> 199 <key value="ext-1" /> 200 <severity value="error" /> 201 <human value="Must have either extensions or value[x], not both" /> 202 <expression value="extension.exists() != value.exists()" /> 203 <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])" /> 204 <source value="http://hl7.org/fhir/StructureDefinition/Extension" /> 205 </constraint> 206 <isModifier value="false" /> 207 <isSummary value="false" /> 208 </element> 209 <element id="Extension.extension:name.id"> 210 <path value="Extension.extension.id" /> 211 <representation value="xmlAttr" /> 212 <short value="Unique id for inter-element referencing" /> 213 <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." /> 214 <min value="0" /> 215 <max value="1" /> 216 <base> 217 <path value="Element.id" /> 218 <min value="0" /> 219 <max value="1" /> 220 </base> 221 <type> 222 <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> 223 <valueUrl value="string" /> 224 </extension> 225 <code value="http://hl7.org/fhirpath/System.String" /> 226 </type> 227 <isModifier value="false" /> 228 <isSummary value="false" /> 229 <mapping> 230 <identity value="rim" /> 231 <map value="n/a" /> 232 </mapping> 233 </element> 234 <element id="Extension.extension:name.extension"> 235 <path value="Extension.extension.extension" /> 236 <slicing> 237 <discriminator> 238 <type value="value" /> 239 <path value="url" /> 240 </discriminator> 241 <description value="Extensions are always sliced by (at least) url" /> 242 <rules value="open" /> 243 </slicing> 244 <short value="Extension" /> 245 <definition value="An Extension" /> 246 <min value="0" /> 247 <max value="0" /> 248 <base> 249 <path value="Element.extension" /> 250 <min value="0" /> 251 <max value="*" /> 252 </base> 253 <type> 254 <code value="Extension" /> 255 </type> 256 <constraint> 257 <key value="ele-1" /> 258 <severity value="error" /> 259 <human value="All FHIR elements must have a @value or children" /> 260 <expression value="hasValue() or (children().count() > id.count())" /> 261 <xpath value="@value|f:*|h:div" /> 262 <source value="http://hl7.org/fhir/StructureDefinition/Element" /> 263 </constraint> 264 <constraint> 265 <key value="ext-1" /> 266 <severity value="error" /> 267 <human value="Must have either extensions or value[x], not both" /> 268 <expression value="extension.exists() != value.exists()" /> 269 <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])" /> 270 <source value="http://hl7.org/fhir/StructureDefinition/Extension" /> 271 </constraint> 272 <isModifier value="false" /> 273 <isSummary value="false" /> 274 </element> 275 <element id="Extension.extension:name.url"> 276 <path value="Extension.extension.url" /> 277 <representation value="xmlAttr" /> 278 <short value="identifies the meaning of the extension" /> 279 <definition value="Source of the definition for the extension code - a logical name or a URL." /> 280 <comment value="The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension." /> 281 <min value="1" /> 282 <max value="1" /> 283 <base> 284 <path value="Extension.url" /> 285 <min value="1" /> 286 <max value="1" /> 287 </base> 288 <type> 289 <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> 290 <valueUrl value="uri" /> 291 </extension> 292 <code value="http://hl7.org/fhirpath/System.String" /> 293 </type> 294 <fixedUri value="name" /> 295 <isModifier value="false" /> 296 <isSummary value="false" /> 297 <mapping> 298 <identity value="rim" /> 299 <map value="N/A" /> 300 </mapping> 301 </element> 302 <element id="Extension.extension:name.value[x]"> 303 <path value="Extension.extension.value[x]" /> 304 <short value="Value of extension" /> 305 <definition value="Value of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list)." /> 306 <min value="1" /> 307 <max value="1" /> 308 <base> 309 <path value="Extension.value[x]" /> 310 <min value="0" /> 311 <max value="1" /> 312 </base> 313 <type> 314 <code value="Coding" /> 315 </type> 316 <constraint> 317 <key value="ele-1" /> 318 <severity value="error" /> 319 <human value="All FHIR elements must have a @value or children" /> 320 <expression value="hasValue() or (children().count() > id.count())" /> 321 <xpath value="@value|f:*|h:div" /> 322 <source value="http://hl7.org/fhir/StructureDefinition/Element" /> 323 </constraint> 324 <isModifier value="false" /> 325 <isSummary value="false" /> 326 <binding> 327 <strength value="extensible" /> 328 <description value="Launch context codes for use in defining questionnaires context at launch time (NOTE: the Coding.code will be used for the variable name and that (at present) there is no support for Questionnaires that use multiple launch contexts which share a common code but different code systems. Also, all launch context codes must meet the requirements to be a valid FHIRPath name.)." /> 329 <valueSet value="http://hl7.org/fhir/uv/sdc/ValueSet/launchContext" /> 330 </binding> 331 <mapping> 332 <identity value="rim" /> 333 <map value="N/A" /> 334 </mapping> 335 </element> 336 <element id="Extension.extension:type"> 337 <path value="Extension.extension" /> 338 <sliceName value="type" /> 339 <short value="Resource type" /> 340 <definition value="The kind of resource to be provided." /> 341 <min value="1" /> 342 <max value="*" /> 343 <base> 344 <path value="Element.extension" /> 345 <min value="0" /> 346 <max value="*" /> 347 </base> 348 <type> 349 <code value="Extension" /> 350 </type> 351 <constraint> 352 <key value="ele-1" /> 353 <severity value="error" /> 354 <human value="All FHIR elements must have a @value or children" /> 355 <expression value="hasValue() or (children().count() > id.count())" /> 356 <xpath value="@value|f:*|h:div" /> 357 <source value="http://hl7.org/fhir/StructureDefinition/Element" /> 358 </constraint> 359 <constraint> 360 <key value="ext-1" /> 361 <severity value="error" /> 362 <human value="Must have either extensions or value[x], not both" /> 363 <expression value="extension.exists() != value.exists()" /> 364 <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])" /> 365 <source value="http://hl7.org/fhir/StructureDefinition/Extension" /> 366 </constraint> 367 <isModifier value="false" /> 368 <isSummary value="false" /> 369 </element> 370 <element id="Extension.extension:type.id"> 371 <path value="Extension.extension.id" /> 372 <representation value="xmlAttr" /> 373 <short value="Unique id for inter-element referencing" /> 374 <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." /> 375 <min value="0" /> 376 <max value="1" /> 377 <base> 378 <path value="Element.id" /> 379 <min value="0" /> 380 <max value="1" /> 381 </base> 382 <type> 383 <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> 384 <valueUrl value="string" /> 385 </extension> 386 <code value="http://hl7.org/fhirpath/System.String" /> 387 </type> 388 <isModifier value="false" /> 389 <isSummary value="false" /> 390 <mapping> 391 <identity value="rim" /> 392 <map value="n/a" /> 393 </mapping> 394 </element> 395 <element id="Extension.extension:type.extension"> 396 <path value="Extension.extension.extension" /> 397 <slicing> 398 <discriminator> 399 <type value="value" /> 400 <path value="url" /> 401 </discriminator> 402 <description value="Extensions are always sliced by (at least) url" /> 403 <rules value="open" /> 404 </slicing> 405 <short value="Extension" /> 406 <definition value="An Extension" /> 407 <min value="0" /> 408 <max value="0" /> 409 <base> 410 <path value="Element.extension" /> 411 <min value="0" /> 412 <max value="*" /> 413 </base> 414 <type> 415 <code value="Extension" /> 416 </type> 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 <xpath value="@value|f:*|h:div" /> 423 <source value="http://hl7.org/fhir/StructureDefinition/Element" /> 424 </constraint> 425 <constraint> 426 <key value="ext-1" /> 427 <severity value="error" /> 428 <human value="Must have either extensions or value[x], not both" /> 429 <expression value="extension.exists() != value.exists()" /> 430 <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])" /> 431 <source value="http://hl7.org/fhir/StructureDefinition/Extension" /> 432 </constraint> 433 <isModifier value="false" /> 434 <isSummary value="false" /> 435 </element> 436 <element id="Extension.extension:type.url"> 437 <path value="Extension.extension.url" /> 438 <representation value="xmlAttr" /> 439 <short value="identifies the meaning of the extension" /> 440 <definition value="Source of the definition for the extension code - a logical name or a URL." /> 441 <comment value="The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension." /> 442 <min value="1" /> 443 <max value="1" /> 444 <base> 445 <path value="Extension.url" /> 446 <min value="1" /> 447 <max value="1" /> 448 </base> 449 <type> 450 <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> 451 <valueUrl value="uri" /> 452 </extension> 453 <code value="http://hl7.org/fhirpath/System.String" /> 454 </type> 455 <fixedUri value="type" /> 456 <isModifier value="false" /> 457 <isSummary value="false" /> 458 <mapping> 459 <identity value="rim" /> 460 <map value="N/A" /> 461 </mapping> 462 </element> 463 <element id="Extension.extension:type.value[x]"> 464 <path value="Extension.extension.value[x]" /> 465 <short value="Value of extension" /> 466 <definition value="Value of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list)." /> 467 <min value="1" /> 468 <max value="1" /> 469 <base> 470 <path value="Extension.value[x]" /> 471 <min value="0" /> 472 <max value="1" /> 473 </base> 474 <type> 475 <code value="code" /> 476 </type> 477 <constraint> 478 <key value="ele-1" /> 479 <severity value="error" /> 480 <human value="All FHIR elements must have a @value or children" /> 481 <expression value="hasValue() or (children().count() > id.count())" /> 482 <xpath value="@value|f:*|h:div" /> 483 <source value="http://hl7.org/fhir/StructureDefinition/Element" /> 484 </constraint> 485 <isModifier value="false" /> 486 <isSummary value="false" /> 487 <binding> 488 <strength value="required" /> 489 <valueSet value="http://hl7.org/fhir/ValueSet/resource-types" /> 490 </binding> 491 <mapping> 492 <identity value="rim" /> 493 <map value="N/A" /> 494 </mapping> 495 </element> 496 <element id="Extension.extension:description"> 497 <path value="Extension.extension" /> 498 <sliceName value="description" /> 499 <short value="Explanation of context element" /> 500 <definition value="Guidance on the resource to be provided and what impact providing it will have on questionnaire behavior." /> 501 <min value="0" /> 502 <max value="1" /> 503 <base> 504 <path value="Element.extension" /> 505 <min value="0" /> 506 <max value="*" /> 507 </base> 508 <type> 509 <code value="Extension" /> 510 </type> 511 <constraint> 512 <key value="ele-1" /> 513 <severity value="error" /> 514 <human value="All FHIR elements must have a @value or children" /> 515 <expression value="hasValue() or (children().count() > id.count())" /> 516 <xpath value="@value|f:*|h:div" /> 517 <source value="http://hl7.org/fhir/StructureDefinition/Element" /> 518 </constraint> 519 <constraint> 520 <key value="ext-1" /> 521 <severity value="error" /> 522 <human value="Must have either extensions or value[x], not both" /> 523 <expression value="extension.exists() != value.exists()" /> 524 <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])" /> 525 <source value="http://hl7.org/fhir/StructureDefinition/Extension" /> 526 </constraint> 527 <isModifier value="false" /> 528 <isSummary value="false" /> 529 </element> 530 <element id="Extension.extension:description.id"> 531 <path value="Extension.extension.id" /> 532 <representation value="xmlAttr" /> 533 <short value="Unique id for inter-element referencing" /> 534 <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." /> 535 <min value="0" /> 536 <max value="1" /> 537 <base> 538 <path value="Element.id" /> 539 <min value="0" /> 540 <max value="1" /> 541 </base> 542 <type> 543 <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> 544 <valueUrl value="string" /> 545 </extension> 546 <code value="http://hl7.org/fhirpath/System.String" /> 547 </type> 548 <isModifier value="false" /> 549 <isSummary value="false" /> 550 <mapping> 551 <identity value="rim" /> 552 <map value="n/a" /> 553 </mapping> 554 </element> 555 <element id="Extension.extension:description.extension"> 556 <path value="Extension.extension.extension" /> 557 <slicing> 558 <discriminator> 559 <type value="value" /> 560 <path value="url" /> 561 </discriminator> 562 <description value="Extensions are always sliced by (at least) url" /> 563 <rules value="open" /> 564 </slicing> 565 <short value="Extension" /> 566 <definition value="An Extension" /> 567 <min value="0" /> 568 <max value="0" /> 569 <base> 570 <path value="Element.extension" /> 571 <min value="0" /> 572 <max value="*" /> 573 </base> 574 <type> 575 <code value="Extension" /> 576 </type> 577 <constraint> 578 <key value="ele-1" /> 579 <severity value="error" /> 580 <human value="All FHIR elements must have a @value or children" /> 581 <expression value="hasValue() or (children().count() > id.count())" /> 582 <xpath value="@value|f:*|h:div" /> 583 <source value="http://hl7.org/fhir/StructureDefinition/Element" /> 584 </constraint> 585 <constraint> 586 <key value="ext-1" /> 587 <severity value="error" /> 588 <human value="Must have either extensions or value[x], not both" /> 589 <expression value="extension.exists() != value.exists()" /> 590 <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])" /> 591 <source value="http://hl7.org/fhir/StructureDefinition/Extension" /> 592 </constraint> 593 <isModifier value="false" /> 594 <isSummary value="false" /> 595 </element> 596 <element id="Extension.extension:description.url"> 597 <path value="Extension.extension.url" /> 598 <representation value="xmlAttr" /> 599 <short value="identifies the meaning of the extension" /> 600 <definition value="Source of the definition for the extension code - a logical name or a URL." /> 601 <comment value="The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension." /> 602 <min value="1" /> 603 <max value="1" /> 604 <base> 605 <path value="Extension.url" /> 606 <min value="1" /> 607 <max value="1" /> 608 </base> 609 <type> 610 <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> 611 <valueUrl value="uri" /> 612 </extension> 613 <code value="http://hl7.org/fhirpath/System.String" /> 614 </type> 615 <fixedUri value="description" /> 616 <isModifier value="false" /> 617 <isSummary value="false" /> 618 <mapping> 619 <identity value="rim" /> 620 <map value="N/A" /> 621 </mapping> 622 </element> 623 <element id="Extension.extension:description.value[x]"> 624 <path value="Extension.extension.value[x]" /> 625 <short value="Value of extension" /> 626 <definition value="Value of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list)." /> 627 <min value="1" /> 628 <max value="1" /> 629 <base> 630 <path value="Extension.value[x]" /> 631 <min value="0" /> 632 <max value="1" /> 633 </base> 634 <type> 635 <code value="string" /> 636 </type> 637 <constraint> 638 <key value="ele-1" /> 639 <severity value="error" /> 640 <human value="All FHIR elements must have a @value or children" /> 641 <expression value="hasValue() or (children().count() > id.count())" /> 642 <xpath value="@value|f:*|h:div" /> 643 <source value="http://hl7.org/fhir/StructureDefinition/Element" /> 644 </constraint> 645 <isModifier value="false" /> 646 <isSummary value="false" /> 647 <mapping> 648 <identity value="rim" /> 649 <map value="N/A" /> 650 </mapping> 651 </element> 652 <element id="Extension.extension:multiplesAllowed"> 653 <path value="Extension.extension" /> 654 <sliceName value="multiplesAllowed" /> 655 <short value="Allow multiple resources" /> 656 <definition value="Indicates whether multiple resources are permitted for this context element." /> 657 <min value="0" /> 658 <max value="1" /> 659 <base> 660 <path value="Element.extension" /> 661 <min value="0" /> 662 <max value="*" /> 663 </base> 664 <type> 665 <code value="Extension" /> 666 </type> 667 <constraint> 668 <key value="ele-1" /> 669 <severity value="error" /> 670 <human value="All FHIR elements must have a @value or children" /> 671 <expression value="hasValue() or (children().count() > id.count())" /> 672 <xpath value="@value|f:*|h:div" /> 673 <source value="http://hl7.org/fhir/StructureDefinition/Element" /> 674 </constraint> 675 <constraint> 676 <key value="ext-1" /> 677 <severity value="error" /> 678 <human value="Must have either extensions or value[x], not both" /> 679 <expression value="extension.exists() != value.exists()" /> 680 <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])" /> 681 <source value="http://hl7.org/fhir/StructureDefinition/Extension" /> 682 </constraint> 683 <isModifier value="false" /> 684 <isSummary value="false" /> 685 </element> 686 <element id="Extension.extension:multiplesAllowed.id"> 687 <path value="Extension.extension.id" /> 688 <representation value="xmlAttr" /> 689 <short value="Unique id for inter-element referencing" /> 690 <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." /> 691 <min value="0" /> 692 <max value="1" /> 693 <base> 694 <path value="Element.id" /> 695 <min value="0" /> 696 <max value="1" /> 697 </base> 698 <type> 699 <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> 700 <valueUrl value="string" /> 701 </extension> 702 <code value="http://hl7.org/fhirpath/System.String" /> 703 </type> 704 <isModifier value="false" /> 705 <isSummary value="false" /> 706 <mapping> 707 <identity value="rim" /> 708 <map value="n/a" /> 709 </mapping> 710 </element> 711 <element id="Extension.extension:multiplesAllowed.extension"> 712 <path value="Extension.extension.extension" /> 713 <slicing> 714 <discriminator> 715 <type value="value" /> 716 <path value="url" /> 717 </discriminator> 718 <description value="Extensions are always sliced by (at least) url" /> 719 <rules value="open" /> 720 </slicing> 721 <short value="Extension" /> 722 <definition value="An Extension" /> 723 <min value="0" /> 724 <max value="0" /> 725 <base> 726 <path value="Element.extension" /> 727 <min value="0" /> 728 <max value="*" /> 729 </base> 730 <type> 731 <code value="Extension" /> 732 </type> 733 <constraint> 734 <key value="ele-1" /> 735 <severity value="error" /> 736 <human value="All FHIR elements must have a @value or children" /> 737 <expression value="hasValue() or (children().count() > id.count())" /> 738 <xpath value="@value|f:*|h:div" /> 739 <source value="http://hl7.org/fhir/StructureDefinition/Element" /> 740 </constraint> 741 <constraint> 742 <key value="ext-1" /> 743 <severity value="error" /> 744 <human value="Must have either extensions or value[x], not both" /> 745 <expression value="extension.exists() != value.exists()" /> 746 <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])" /> 747 <source value="http://hl7.org/fhir/StructureDefinition/Extension" /> 748 </constraint> 749 <isModifier value="false" /> 750 <isSummary value="false" /> 751 </element> 752 <element id="Extension.extension:multiplesAllowed.url"> 753 <path value="Extension.extension.url" /> 754 <representation value="xmlAttr" /> 755 <short value="identifies the meaning of the extension" /> 756 <definition value="Source of the definition for the extension code - a logical name or a URL." /> 757 <comment value="The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension." /> 758 <min value="1" /> 759 <max value="1" /> 760 <base> 761 <path value="Extension.url" /> 762 <min value="1" /> 763 <max value="1" /> 764 </base> 765 <type> 766 <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> 767 <valueUrl value="uri" /> 768 </extension> 769 <code value="http://hl7.org/fhirpath/System.String" /> 770 </type> 771 <fixedUri value="multiplesAllowed" /> 772 <isModifier value="false" /> 773 <isSummary value="false" /> 774 <mapping> 775 <identity value="rim" /> 776 <map value="N/A" /> 777 </mapping> 778 </element> 779 <element id="Extension.extension:multiplesAllowed.value[x]"> 780 <path value="Extension.extension.value[x]" /> 781 <short value="Value of extension" /> 782 <definition value="Value of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list)." /> 783 <min value="0" /> 784 <max value="1" /> 785 <base> 786 <path value="Extension.value[x]" /> 787 <min value="0" /> 788 <max value="1" /> 789 </base> 790 <type> 791 <code value="boolean" /> 792 </type> 793 <constraint> 794 <key value="ele-1" /> 795 <severity value="error" /> 796 <human value="All FHIR elements must have a @value or children" /> 797 <expression value="hasValue() or (children().count() > id.count())" /> 798 <xpath value="@value|f:*|h:div" /> 799 <source value="http://hl7.org/fhir/StructureDefinition/Element" /> 800 </constraint> 801 <isModifier value="false" /> 802 <isSummary value="false" /> 803 <mapping> 804 <identity value="rim" /> 805 <map value="N/A" /> 806 </mapping> 807 </element> 808 <element id="Extension.url"> 809 <path value="Extension.url" /> 810 <representation value="xmlAttr" /> 811 <short value="identifies the meaning of the extension" /> 812 <definition value="Source of the definition for the extension code - a logical name or a URL." /> 813 <comment value="The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension." /> 814 <min value="1" /> 815 <max value="1" /> 816 <base> 817 <path value="Extension.url" /> 818 <min value="1" /> 819 <max value="1" /> 820 </base> 821 <type> 822 <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> 823 <valueUrl value="uri" /> 824 </extension> 825 <code value="http://hl7.org/fhirpath/System.String" /> 826 </type> 827 <fixedUri value="http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-launchContext" /> 828 <isModifier value="false" /> 829 <isSummary value="false" /> 830 <mapping> 831 <identity value="rim" /> 832 <map value="N/A" /> 833 </mapping> 834 </element> 835 <element id="Extension.value[x]"> 836 <path value="Extension.value[x]" /> 837 <short value="Value of extension" /> 838 <definition value="Value of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list)." /> 839 <min value="0" /> 840 <max value="0" /> 841 <base> 842 <path value="Extension.value[x]" /> 843 <min value="0" /> 844 <max value="1" /> 845 </base> 846 <type> 847 <code value="base64Binary" /> 848 </type> 849 <type> 850 <code value="boolean" /> 851 </type> 852 <type> 853 <code value="canonical" /> 854 </type> 855 <type> 856 <code value="code" /> 857 </type> 858 <type> 859 <code value="date" /> 860 </type> 861 <type> 862 <code value="dateTime" /> 863 </type> 864 <type> 865 <code value="decimal" /> 866 </type> 867 <type> 868 <code value="id" /> 869 </type> 870 <type> 871 <code value="instant" /> 872 </type> 873 <type> 874 <code value="integer" /> 875 </type> 876 <type> 877 <code value="markdown" /> 878 </type> 879 <type> 880 <code value="oid" /> 881 </type> 882 <type> 883 <code value="positiveInt" /> 884 </type> 885 <type> 886 <code value="string" /> 887 </type> 888 <type> 889 <code value="time" /> 890 </type> 891 <type> 892 <code value="unsignedInt" /> 893 </type> 894 <type> 895 <code value="uri" /> 896 </type> 897 <type> 898 <code value="url" /> 899 </type> 900 <type> 901 <code value="uuid" /> 902 </type> 903 <type> 904 <code value="Address" /> 905 </type> 906 <type> 907 <code value="Age" /> 908 </type> 909 <type> 910 <code value="Annotation" /> 911 </type> 912 <type> 913 <code value="Attachment" /> 914 </type> 915 <type> 916 <code value="CodeableConcept" /> 917 </type> 918 <type> 919 <code value="Coding" /> 920 </type> 921 <type> 922 <code value="ContactPoint" /> 923 </type> 924 <type> 925 <code value="Count" /> 926 </type> 927 <type> 928 <code value="Distance" /> 929 </type> 930 <type> 931 <code value="Duration" /> 932 </type> 933 <type> 934 <code value="HumanName" /> 935 </type> 936 <type> 937 <code value="Identifier" /> 938 </type> 939 <type> 940 <code value="Money" /> 941 </type> 942 <type> 943 <code value="Period" /> 944 </type> 945 <type> 946 <code value="Quantity" /> 947 </type> 948 <type> 949 <code value="Range" /> 950 </type> 951 <type> 952 <code value="Ratio" /> 953 </type> 954 <type> 955 <code value="Reference" /> 956 </type> 957 <type> 958 <code value="SampledData" /> 959 </type> 960 <type> 961 <code value="Signature" /> 962 </type> 963 <type> 964 <code value="Timing" /> 965 </type> 966 <type> 967 <code value="ContactDetail" /> 968 </type> 969 <type> 970 <code value="Contributor" /> 971 </type> 972 <type> 973 <code value="DataRequirement" /> 974 </type> 975 <type> 976 <code value="Expression" /> 977 </type> 978 <type> 979 <code value="ParameterDefinition" /> 980 </type> 981 <type> 982 <code value="RelatedArtifact" /> 983 </type> 984 <type> 985 <code value="TriggerDefinition" /> 986 </type> 987 <type> 988 <code value="UsageContext" /> 989 </type> 990 <type> 991 <code value="Dosage" /> 992 </type> 993 <type> 994 <code value="Meta" /> 995 </type> 996 <constraint> 997 <key value="ele-1" /> 998 <severity value="error" /> 999 <human value="All FHIR elements must have a @value or children" /> 1000 <expression value="hasValue() or (children().count() > id.count())" /> 1001 <xpath value="@value|f:*|h:div" /> 1002 <source value="http://hl7.org/fhir/StructureDefinition/Element" /> 1003 </constraint> 1004 <isModifier value="false" /> 1005 <isSummary value="false" /> 1006 <mapping> 1007 <identity value="rim" /> 1008 <map value="N/A" /> 1009 </mapping> 1010 </element> 1011 </snapshot> 1012 <differential> 1013 <element id="Extension"> 1014 <path value="Extension" /> 1015 <short value="Context resources needed for Questionnaire" /> 1016 <definition value="Resources that provide context for form processing logic (pre-population, flow-control, drop-down selection, etc.) when creating/displaying/editing a QuestionnaireResponse." /> 1017 <comment value="3 of these launch contexts are aligned with the existing SMART on FHIR "launch" contexts." /> 1018 <constraint> 1019 <key value="sdc-lcext-1" /> 1020 <severity value="error" /> 1021 <human value="Types must be from the specified value set of resource types based on name: patient: Patient; user: Patient, Practitioner, PractitionerRole, Organization, RelatedPerson, Device; encounter: Encounter; location: Location; study: ResearchStudy; clinical: Any allowed clinical resource" /> 1022 <expression value="(extension('name').value.where(code='patient' and system='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext').exists() implies extension('type').all(value = 'Patient')) and (extension('name').value.where(code='user' and system='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext').exists() implies extension('type').all(value='Patient' or value='Practitioner' or value='PractitionerRole' or value='RelatedPerson' or value='Organization' or value='Device')) and (extension('name').value.where(code='encounter' and system='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext').exists() implies extension('type').all(value = 'Encounter')) and (extension('name').value.where(code='location' and system='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext').exists() implies extension('type').all(value = 'Location')) and (extension('name').value.where(code='study' and system='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext').exists() implies extension('type').all(value = 'ResearchStudy'))" /> 1023 <xpath value="(not(f:extension[@url='name' and f:valueCoding[f:code/@value='patient' and f:system/@value='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext']]) or not(f:extension[@url='type' and f:valueCode/@value!='Patient'])) and (not(f:extension[@url='name' and f:valueCoding[f:code/@value='user' and f:system/@value='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext']]) or not(f:extension[@url='type' and f:valueCode/@value!=('Patient','Practitioner','PractitionerRole','RelatedPerson', 'Organization', 'Device')])) and (not(f:extension[@url='name' and f:valueCoding[f:code/@value='encounter' and f:system/@value='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext']]) or not(f:extension[@url='type' and f:valueCode/@value!='Encounter']))) and (not(f:extension[@url='name' and f:valueCoding[f:code/@value='study' and f:system/@value='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext']]) or f:extension[@url='type' and not(f:valueCode/@value!='ResearchStudy'])) and (not(f:extension[@url='name' and f:valueCoding[f:code/@value='location' and f:system/@value='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext']]) or not(f:extension[@url='type' and f:valueCode/@value!='Location']))" /> 1024 <source value="http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-launchContext" /> 1025 </constraint> 1026 </element> 1027 <element id="Extension.extension"> 1028 <path value="Extension.extension" /> 1029 <min value="2" /> 1030 </element> 1031 <element id="Extension.extension:name"> 1032 <path value="Extension.extension" /> 1033 <sliceName value="name" /> 1034 <short value="Variable name" /> 1035 <definition value="The variable name the passed resource will be referenced by within the Questionnaire logic." /> 1036 <min value="1" /> 1037 <max value="1" /> 1038 </element> 1039 <element id="Extension.extension:name.extension"> 1040 <path value="Extension.extension.extension" /> 1041 <max value="0" /> 1042 </element> 1043 <element id="Extension.extension:name.url"> 1044 <path value="Extension.extension.url" /> 1045 <fixedUri value="name" /> 1046 </element> 1047 <element id="Extension.extension:name.value[x]"> 1048 <path value="Extension.extension.value[x]" /> 1049 <min value="1" /> 1050 <type> 1051 <code value="Coding" /> 1052 </type> 1053 <binding> 1054 <strength value="extensible" /> 1055 <description value="Launch context codes for use in defining questionnaires context at launch time (NOTE: the Coding.code will be used for the variable name and that (at present) there is no support for Questionnaires that use multiple launch contexts which share a common code but different code systems. Also, all launch context codes must meet the requirements to be a valid FHIRPath name.)." /> 1056 <valueSet value="http://hl7.org/fhir/uv/sdc/ValueSet/launchContext" /> 1057 </binding> 1058 </element> 1059 <element id="Extension.extension:type"> 1060 <path value="Extension.extension" /> 1061 <sliceName value="type" /> 1062 <short value="Resource type" /> 1063 <definition value="The kind of resource to be provided." /> 1064 <min value="1" /> 1065 <max value="*" /> 1066 </element> 1067 <element id="Extension.extension:type.extension"> 1068 <path value="Extension.extension.extension" /> 1069 <max value="0" /> 1070 </element> 1071 <element id="Extension.extension:type.url"> 1072 <path value="Extension.extension.url" /> 1073 <fixedUri value="type" /> 1074 </element> 1075 <element id="Extension.extension:type.value[x]"> 1076 <path value="Extension.extension.value[x]" /> 1077 <min value="1" /> 1078 <type> 1079 <code value="code" /> 1080 </type> 1081 <binding> 1082 <strength value="required" /> 1083 <valueSet value="http://hl7.org/fhir/ValueSet/resource-types" /> 1084 </binding> 1085 </element> 1086 <element id="Extension.extension:description"> 1087 <path value="Extension.extension" /> 1088 <sliceName value="description" /> 1089 <short value="Explanation of context element" /> 1090 <definition value="Guidance on the resource to be provided and what impact providing it will have on questionnaire behavior." /> 1091 <min value="0" /> 1092 <max value="1" /> 1093 </element> 1094 <element id="Extension.extension:description.extension"> 1095 <path value="Extension.extension.extension" /> 1096 <max value="0" /> 1097 </element> 1098 <element id="Extension.extension:description.url"> 1099 <path value="Extension.extension.url" /> 1100 <fixedUri value="description" /> 1101 </element> 1102 <element id="Extension.extension:description.value[x]"> 1103 <path value="Extension.extension.value[x]" /> 1104 <min value="1" /> 1105 <type> 1106 <code value="string" /> 1107 </type> 1108 </element> 1109 <element id="Extension.extension:multiplesAllowed"> 1110 <path value="Extension.extension" /> 1111 <sliceName value="multiplesAllowed" /> 1112 <short value="Allow multiple resources" /> 1113 <definition value="Indicates whether multiple resources are permitted for this context element." /> 1114 <min value="0" /> 1115 <max value="1" /> 1116 </element> 1117 <element id="Extension.extension:multiplesAllowed.extension"> 1118 <path value="Extension.extension.extension" /> 1119 <max value="0" /> 1120 </element> 1121 <element id="Extension.extension:multiplesAllowed.url"> 1122 <path value="Extension.extension.url" /> 1123 <fixedUri value="multiplesAllowed" /> 1124 </element> 1125 <element id="Extension.extension:multiplesAllowed.value[x]"> 1126 <path value="Extension.extension.value[x]" /> 1127 <type> 1128 <code value="boolean" /> 1129 </type> 1130 </element> 1131 <element id="Extension.url"> 1132 <path value="Extension.url" /> 1133 <fixedUri value="http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-launchContext" /> 1134 </element> 1135 <element id="Extension.value[x]"> 1136 <path value="Extension.value[x]" /> 1137 <max value="0" /> 1138 </element> 1139 </differential> 1140 </StructureDefinition>