http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-behave|4.0.0-ballot
Defines additional capabilities for controlling data entry and calculating values within the questionnaire.
description: Defines additional capabilities for controlling data entry and calculating values within the questionnaire. derivation: constraint name: SDCQuestionnaireBehave type: Questionnaire elements: extension: mustSupport: true array: true index: 0 slicing: slices: entryMode: match: {} schema: {mustSupport: true, array: true, index: 0} min: 0 submissionEndpoint: match: {} schema: {mustSupport: true, array: true, index: 1} min: 0 signatureRequired: match: {} schema: {array: true, index: 2} min: 0 constraint: match: {} schema: {array: true, index: 3} min: 0 library: match: {} schema: {array: true, index: 4} min: 0 launchContext: match: {} schema: {array: true, index: 5} min: 0 variable: match: {} schema: {array: true, index: 6} min: 0 modifierExtension: index: 7 slicing: rules: open ordered: false discriminator: - {path: url, type: value} min: null slices: rendering-criticalExtension: match: {url: null} schema: {mustSupport: true, array: true, index: 8} min: 0 item: constraint: sdc-behave-2: {human: An item cannot have both enableWhen and enableWhenExpression, source: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-behave', severity: error, expression: 'enableWhen.empty() or extension(''http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-enableWhenExpression'').empty()'} sdc-behave-1: {human: An item cannot have both initial.value and initialExpression, source: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-behave', severity: error, expression: 'initial.empty() or extension(''http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-initialExpression'').empty()'} sdc-behave-3: human: For items of type 'quantity', it is best practice to include either a 'unitOption' or 'unitValueSet' extension to provide a list of valid units. source: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-behave severity: warning extension: - {url: 'http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice', valueBoolean: true} expression: (type = 'quantity' implies (extension('http://hl7.org/fhir/StructureDefinition/questionnaire-unitOption').exists() or extension('http://hl7.org/fhir/StructureDefinition/questionnaire-unitValueSet').exists())) and (repeat(item).where(type = 'quantity')).all(extension('http://hl7.org/fhir/StructureDefinition/questionnaire-unitOption').exists() or extension('http://hl7.org/fhir/StructureDefinition/questionnaire-unitValueSet').exists()) index: 9 extensions: answerOptionsToggleExpression: {url: null, min: 0, mustSupport: true, array: true, index: 45} minQuantity: url: null mustSupport: false index: 34 elements: value: mustSupport: false choices: [] index: 36 value[x]: extensions: minQuantityCalculated: {url: null, min: 0, max: 1, index: 37} elements: extension: index: 37 slicing: slices: minQuantityCalculated: match: {} schema: {index: 37} min: 0 max: 1 maxValue: url: null mustSupport: true index: 30 elements: value: mustSupport: false choices: [] index: 32 value[x]: extensions: maxValueCalculated: {url: null, min: 0, max: 1, index: 33} elements: extension: index: 33 slicing: slices: maxValueCalculated: match: {} schema: {index: 33} min: 0 max: 1 disabledDisplay: {url: null, min: 0, max: 1, index: 10} allowedProfile: {url: null, min: 0, array: true, index: 51} candidateExpression: {url: null, min: 0, max: 1, index: 52} maxDecimalPlaces: {url: null, min: 0, max: 1, mustSupport: true, index: 42} unitSupplementalSystem: {url: null, min: 0, max: 1, index: 49} keyboardType: {url: null, min: 0, max: 1, index: 58} itemConstraint: {url: null, min: 0, array: true, index: 54} allowedResource: {url: null, min: 0, mustSupport: true, array: true, index: 50} lookupQuestionnaire: {url: null, min: 0, max: 1, index: 53} unitValueSet: {url: null, min: 0, max: 1, mustSupport: true, index: 47} initialExpression: {url: null, min: 0, max: 1, index: 55} usageMode: {url: null, min: 0, max: 1, mustSupport: true, index: 12} unitOpen: {url: null, min: 0, max: 1, index: 48} minValue: url: null mustSupport: true index: 26 elements: value: mustSupport: false choices: [] index: 28 value[x]: extensions: minValueCalculated: {url: null, min: 0, max: 1, index: 29} elements: extension: index: 29 slicing: slices: minValueCalculated: match: {} schema: {index: 29} min: 0 max: 1 minLength: {url: null, min: 0, max: 1, mustSupport: true, index: 24} answerExpression: {url: null, min: 0, max: 1, mustSupport: true, index: 11} itemMaxOccurs: url: null mustSupport: true index: 19 elements: value: mustSupport: false choices: [] index: 21 value[x]: extensions: itemMaxOccursExpression: {url: null, min: 0, max: 1, mustSupport: true, index: 23} elements: extension: index: 22 slicing: rules: open ordered: false discriminator: - {path: url, type: value} min: null slices: itemMaxOccursExpression: match: {url: null} schema: {mustSupport: true, index: 23} min: 0 max: 1 itemMinOccurs: url: null mustSupport: true index: 14 elements: value: mustSupport: false choices: [] index: 16 value[x]: extensions: itemMinOccursExpression: {url: null, min: 0, max: 1, mustSupport: true, index: 18} elements: extension: index: 17 slicing: rules: open ordered: false discriminator: - {path: url, type: value} min: null slices: itemMinOccursExpression: match: {url: null} schema: {mustSupport: true, index: 18} min: 0 max: 1 mimeType: {url: null, min: 0, mustSupport: true, array: true, index: 43} regex: {url: null, min: 0, max: 1, mustSupport: true, index: 25} enableWhenExpression: {url: null, min: 0, max: 1, mustSupport: true, index: 57} calculatedExpression: {url: null, min: 0, max: 1, index: 56} maxQuantity: url: null mustSupport: false index: 38 elements: value: mustSupport: false choices: [] index: 40 value[x]: extensions: maxQuantityCalculated: {url: null, min: 0, max: 1, index: 41} elements: extension: index: 41 slicing: slices: maxQuantityCalculated: match: {} schema: {index: 41} min: 0 max: 1 maxSize: {url: null, min: 0, max: 1, index: 44} unitOption: {url: null, min: 0, mustSupport: true, array: true, index: 46} itemSignatureRequired: {url: null, min: 0, array: true, index: 13} elements: extension: index: 10 slicing: slices: answerOptionsToggleExpression: match: {} schema: {mustSupport: true, array: true, index: 45} min: 0 minQuantity: match: {} schema: mustSupport: false index: 34 elements: value: mustSupport: false choices: [] index: 36 value[x]: extensions: minQuantityCalculated: {url: null, min: 0, max: 1, index: 37} elements: extension: index: 37 slicing: slices: minQuantityCalculated: match: {} schema: {index: 37} min: 0 max: 1 maxValue: match: {} schema: mustSupport: true index: 30 elements: value: mustSupport: false choices: [] index: 32 value[x]: extensions: maxValueCalculated: {url: null, min: 0, max: 1, index: 33} elements: extension: index: 33 slicing: slices: maxValueCalculated: match: {} schema: {index: 33} min: 0 max: 1 disabledDisplay: match: {} schema: {index: 10} min: 0 max: 1 allowedProfile: match: {} schema: {array: true, index: 51} min: 0 candidateExpression: match: {} schema: {index: 52} min: 0 max: 1 maxDecimalPlaces: match: {} schema: {mustSupport: true, index: 42} min: 0 max: 1 unitSupplementalSystem: match: {} schema: {index: 49} min: 0 max: 1 keyboardType: match: {} schema: {index: 58} min: 0 max: 1 itemConstraint: match: {} schema: {array: true, index: 54} min: 0 allowedResource: match: {} schema: {mustSupport: true, array: true, index: 50} min: 0 lookupQuestionnaire: match: {} schema: {index: 53} min: 0 max: 1 unitValueSet: match: {} schema: {mustSupport: true, index: 47} min: 0 max: 1 initialExpression: match: {} schema: {index: 55} min: 0 max: 1 usageMode: match: {} schema: {mustSupport: true, index: 12} min: 0 max: 1 unitOpen: match: {} schema: {index: 48} min: 0 max: 1 minValue: match: {} schema: mustSupport: true index: 26 elements: value: mustSupport: false choices: [] index: 28 value[x]: extensions: minValueCalculated: {url: null, min: 0, max: 1, index: 29} elements: extension: index: 29 slicing: slices: minValueCalculated: match: {} schema: {index: 29} min: 0 max: 1 minLength: match: {} schema: {mustSupport: true, index: 24} min: 0 max: 1 answerExpression: match: {} schema: {mustSupport: true, index: 11} min: 0 max: 1 itemMaxOccurs: match: {} schema: mustSupport: true index: 19 elements: value: mustSupport: false choices: [] index: 21 value[x]: extensions: itemMaxOccursExpression: {url: null, min: 0, max: 1, mustSupport: true, index: 23} elements: extension: index: 22 slicing: rules: open ordered: false discriminator: - {path: url, type: value} min: null slices: itemMaxOccursExpression: match: {url: null} schema: {mustSupport: true, index: 23} min: 0 max: 1 itemMinOccurs: match: {} schema: mustSupport: true index: 14 elements: value: mustSupport: false choices: [] index: 16 value[x]: extensions: itemMinOccursExpression: {url: null, min: 0, max: 1, mustSupport: true, index: 18} elements: extension: index: 17 slicing: rules: open ordered: false discriminator: - {path: url, type: value} min: null slices: itemMinOccursExpression: match: {url: null} schema: {mustSupport: true, index: 18} min: 0 max: 1 mimeType: match: {} schema: {mustSupport: true, array: true, index: 43} min: 0 regex: match: {} schema: {mustSupport: true, index: 25} min: 0 max: 1 enableWhenExpression: match: {} schema: {mustSupport: true, index: 57} min: 0 max: 1 calculatedExpression: match: {} schema: {index: 56} min: 0 max: 1 maxQuantity: match: {} schema: mustSupport: false index: 38 elements: value: mustSupport: false choices: [] index: 40 value[x]: extensions: maxQuantityCalculated: {url: null, min: 0, max: 1, index: 41} elements: extension: index: 41 slicing: slices: maxQuantityCalculated: match: {} schema: {index: 41} min: 0 max: 1 maxSize: match: {} schema: {index: 44} min: 0 max: 1 unitOption: match: {} schema: {mustSupport: true, array: true, index: 46} min: 0 itemSignatureRequired: match: {} schema: {array: true, index: 13} min: 0 enableWhen: elements: question: {mustSupport: true, index: 59} operator: {mustSupport: true, index: 60} answer: mustSupport: true choices: [] index: 62 enableBehavior: {mustSupport: true, index: 63} required: index: 64 elements: value: extensions: requiredExpression: {url: null, min: 0, max: 1, mustSupport: true, index: 66} elements: extension: index: 65 slicing: rules: open ordered: false discriminator: - {path: url, type: value} min: null slices: requiredExpression: match: {url: null} schema: {mustSupport: true, index: 66} min: 0 max: 1 repeats: elements: value: extensions: repeatsExpression: {url: null, min: 0, max: 1, mustSupport: true, index: 68} elements: extension: index: 67 slicing: rules: open ordered: false discriminator: - {path: url, type: value} min: null slices: repeatsExpression: match: {url: null} schema: {mustSupport: true, index: 68} min: 0 max: 1 readOnly: elements: value: extensions: readOnlyExpression: {url: null, min: 0, max: 1, mustSupport: true, index: 70} elements: extension: index: 69 slicing: rules: open ordered: false discriminator: - {path: url, type: value} min: null slices: readOnlyExpression: match: {url: null} schema: {mustSupport: true, index: 70} min: 0 max: 1 answerValueSet: elements: value: extensions: answerValueSetExpression: {url: null, min: 0, max: 1, mustSupport: true, index: 72} elements: extension: index: 71 slicing: rules: open ordered: false discriminator: - {path: url, type: value} min: null slices: answerValueSetExpression: match: {url: null} schema: {mustSupport: true, index: 72} min: 0 max: 1 answerOption: extensions: optionExclusive: {url: null, min: 0, max: 1, mustSupport: true, index: 74} itemWeight: {url: null, min: 0, max: 1, mustSupport: true, index: 75} elements: extension: index: 73 slicing: rules: open ordered: false discriminator: - {path: url, type: value} min: null slices: optionExclusive: match: {url: null} schema: {mustSupport: true, index: 74} min: 0 max: 1 itemWeight: match: {url: null} schema: {mustSupport: true, index: 75} min: 0 max: 1 extensions: entryMode: {url: null, min: 0, mustSupport: true, array: true, index: 0} submissionEndpoint: {url: null, min: 0, mustSupport: true, array: true, index: 1} signatureRequired: {url: null, min: 0, array: true, index: 2} constraint: {url: null, min: 0, array: true, index: 3} library: {url: null, min: 0, array: true, index: 4} launchContext: {url: null, min: 0, array: true, index: 5} variable: {url: null, min: 0, array: true, index: 6} class: profile kind: resource url: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-behave base: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnairecommon version: 4.0.0-ballot