{ "description": "An expression that returns a boolean value for whether to enable the item. If the expression does not resolve to a boolean, it is considered an error in the design of the Questionnaire. Form renderer behavior is undefined. Some tools may attempt to force the value to be a boolean (e.g. is it a non-empty collection, non-null, non-zero - if so, then true). Systems SHOULD present a warning to the user if a non-boolean valued expression result does not trigger an all-out error.", "_filename": "StructureDefinition-sdc-questionnaire-enableWhenExpression.json", "package_name": "hl7.fhir.uv.sdc", "date": "2024-12-17T01:55:34+00:00", "derivation": "constraint", "publisher": "HL7 International / FHIR Infrastructure", "fhirVersion": "4.0.1", "jurisdiction": [ { "coding": [ { "code": "001", "system": "http://unstats.un.org/unsd/methods/m49/m49.htm", "display": "World" } ] } ], "name": "EnableWhenExpressionExtension", "mapping": [ { "uri": "http://hl7.org/v3", "name": "RIM Mapping", "identity": "rim" } ], "abstract": false, "type": "Extension", "experimental": "false", "resourceType": "StructureDefinition", "title": "Enable when expression", "package_version": "4.0.0-ballot", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg", "valueCode": "fhir" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm", "valueInteger": 4, "_valueInteger": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom", "valueCanonical": "http://hl7.org/fhir/uv/sdc/ImplementationGuide/hl7.fhir.uv.sdc" } ] } }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", "valueCode": "trial-use", "_valueCode": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom", "valueCanonical": "http://hl7.org/fhir/uv/sdc/ImplementationGuide/hl7.fhir.uv.sdc" } ] } } ], "snapshot": { "element": [ { "constraint": [ { "key": "ele-1", "human": "All FHIR elements must have a @value or children", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element", "severity": "error", "expression": "hasValue() or (children().count() > id.count())" }, { "key": "ext-1", "human": "Must have either extensions or value[x], not both", "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])", "source": "http://hl7.org/fhir/StructureDefinition/Extension", "severity": "error", "expression": "extension.exists() != value.exists()" } ], "path": "Extension", "min": 0, "definition": "An expression that returns a boolean value for whether to enable the item.", "isModifier": false, "short": "Expression for when to enable the item", "max": "1", "id": "Extension", "condition": [ "ele-1" ], "comment": "This is only permitted when the containing item does NOT have any enableWhen elements.\r\n\r\nIf the expression involves comparisons between elements that have different precisions but are otherwise equal, FHIRPath will resolve the expression to an empty set, which will in turn evaluate to false (meaning the item won't be enabled). If this is not the desired behavior, the author should add a `.allTrue()` to the end of the expression, which will result in an indeterminate outcome because of precision differences being handled as 'true' and the item being enabled. Questionnaires SHOULD be designed to take into account challenges around varying precision to minimize non-deterministic situations by setting constraints around expected precision, etc.\r\n\r\nIf the expression evaluates to something other than a boolean true or false, the Form Filler SHOULD still display the form, and if it does so, SHOULD treat the element as 'enabled' and display a warning to the user that the questionnaire logic was faulty and it's possible that the item shouldn't be enabled.", "base": { "max": "*", "min": 0, "path": "Extension" } }, { "path": "Extension.id", "min": 0, "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", "isModifier": false, "short": "Unique id for inter-element referencing", "mapping": [ { "map": "n/a", "identity": "rim" } ], "type": [ { "code": "http://hl7.org/fhirpath/System.String", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type", "valueUrl": "string" } ] } ], "representation": [ "xmlAttr" ], "max": "1", "id": "Extension.id", "base": { "max": "1", "min": 0, "path": "Element.id" }, "isSummary": false }, { "constraint": [ { "key": "ele-1", "human": "All FHIR elements must have a @value or children", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element", "severity": "error", "expression": "hasValue() or (children().count() > id.count())" }, { "key": "ext-1", "human": "Must have either extensions or value[x], not both", "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", "source": "http://hl7.org/fhir/StructureDefinition/Extension", "severity": "error", "expression": "extension.exists() != value.exists()" } ], "path": "Extension.extension", "min": 0, "definition": "An Extension", "isModifier": false, "short": "Extension", "slicing": { "rules": "open", "description": "Extensions are always sliced by (at least) url", "discriminator": [ { "path": "url", "type": "value" } ] }, "type": [ { "code": "Extension" } ], "max": "0", "id": "Extension.extension", "base": { "max": "*", "min": 0, "path": "Element.extension" }, "isSummary": false }, { "path": "Extension.url", "min": 1, "definition": "Source of the definition for the extension code - a logical name or a URL.", "isModifier": false, "short": "identifies the meaning of the extension", "fixedUri": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-enableWhenExpression", "mapping": [ { "map": "N/A", "identity": "rim" } ], "type": [ { "code": "http://hl7.org/fhirpath/System.String", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type", "valueUrl": "uri" } ] } ], "representation": [ "xmlAttr" ], "max": "1", "id": "Extension.url", "comment": "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.", "base": { "max": "1", "min": 1, "path": "Extension.url" }, "isSummary": false }, { "constraint": [ { "key": "ele-1", "human": "All FHIR elements must have a @value or children", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element", "severity": "error", "expression": "hasValue() or (children().count() > id.count())" }, { "key": "sdc-inv1", "human": "FHIR query language not allowed.", "xpath": "not(f:language/@value='application/x-fhir-query')", "source": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-enableWhenExpression", "severity": "error", "expression": "language!='application/x-fhir-query'" } ], "path": "Extension.value[x]", "min": 0, "definition": "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).", "isModifier": false, "short": "Value of extension", "mapping": [ { "map": "N/A", "identity": "rim" } ], "type": [ { "code": "Expression" } ], "max": "1", "id": "Extension.value[x]", "base": { "max": "1", "min": 0, "path": "Extension.value[x]" }, "isSummary": false } ] }, "status": "active", "id": "a209ffbb-1549-46ba-a019-850e67ee715c", "kind": "complex-type", "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-enableWhenExpression", "identifier": [ { "value": "urn:oid:2.16.840.1.113883.4.642.40.17.42.22", "system": "urn:ietf:rfc:3986" } ], "context": [ { "type": "element", "expression": "Questionnaire.item" }, { "type": "element", "expression": "ElementDefinition" } ], "version": "4.0.0-ballot", "differential": { "element": [ { "id": "Extension", "max": "1", "path": "Extension", "short": "Expression for when to enable the item", "comment": "This is only permitted when the containing item does NOT have any enableWhen elements.\r\n\r\nIf the expression involves comparisons between elements that have different precisions but are otherwise equal, FHIRPath will resolve the expression to an empty set, which will in turn evaluate to false (meaning the item won't be enabled). If this is not the desired behavior, the author should add a `.allTrue()` to the end of the expression, which will result in an indeterminate outcome because of precision differences being handled as 'true' and the item being enabled. Questionnaires SHOULD be designed to take into account challenges around varying precision to minimize non-deterministic situations by setting constraints around expected precision, etc.\r\n\r\nIf the expression evaluates to something other than a boolean true or false, the Form Filler SHOULD still display the form, and if it does so, SHOULD treat the element as 'enabled' and display a warning to the user that the questionnaire logic was faulty and it's possible that the item shouldn't be enabled.", "definition": "An expression that returns a boolean value for whether to enable the item." }, { "id": "Extension.extension", "max": "0", "path": "Extension.extension" }, { "id": "Extension.url", "path": "Extension.url", "fixedUri": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-enableWhenExpression" }, { "id": "Extension.value[x]", "path": "Extension.value[x]", "type": [ { "code": "Expression" } ], "constraint": [ { "key": "sdc-inv1", "human": "FHIR query language not allowed.", "xpath": "not(f:language/@value='application/x-fhir-query')", "source": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-enableWhenExpression", "severity": "error", "expression": "language!='application/x-fhir-query'" } ] } ] }, "contact": [ { "name": "HL7 International / FHIR Infrastructure", "telecom": [ { "value": "http://www.hl7.org/Special/committees/fiwg", "system": "url" } ] }, { "telecom": [ { "value": "http://www.hl7.org/Special/committees/fiwg", "system": "url" } ] } ], "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension" }