### ----------------------------------------------------
### -- FHIR
### -- Licenses: Artistic-2.0
### -- Authors: Hugh Simpson
### -- File: t/resources/structureDefinition/Questionnaire.json
### ----------------------------------------------------
### -- Chunk 15 of 18
 when the content is officially approved for usage.",
      "comment" : "The 'date' element may be more recent than the approval date because of minor changes or editorial corrections.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Questionnaire.approvalDate",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "date"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.approvalDate"
      },
      {
        "identity" : "rim",
        "map" : ".outboundRelationship[typeCode=\"SUBJ\"].act[classCode=CACT;moodCode=EVN;code=\"approval\"].effectiveTime"
      },
      {
        "identity" : "objimpl",
        "map" : "no-gen-base"
      }]
    },
    {
      "id" : "Questionnaire.lastReviewDate",
      "path" : "Questionnaire.lastReviewDate",
      "short" : "When the questionnaire was last reviewed",
      "definition" : "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.",
      "comment" : "If specified, this date follows the original approval date.",
      "requirements" : "Gives a sense of how \"current\" the content is.  Resources that have not been reviewed in a long time may have a risk of being less appropriate/relevant.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Questionnaire.lastReviewDate",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "date"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.lastReviewDate"
      },
      {
        "identity" : "rim",
        "map" : ".outboundRelationship[typeCode=\"SUBJ\"; subsetCode=\"RECENT\"].act[classCode=CACT;moodCode=EVN;code=\"review\"].effectiveTime"
      },
      {
        "identity" : "objimpl",
        "map" : "no-gen-base"
      }]
    },
    {
      "id" : "Questionnaire.effectivePeriod",
      "path" : "Questionnaire.effectivePeriod",
      "short" : "When the questionnaire is expected to be used",
      "definition" : "The period during which the questionnaire content was or is planned to be in active use.",
      "comment" : "The effective period for a questionnaire  determines when the content is applicable for usage and is independent of publication and review dates. For example, a measure intended to be used for the year 2016 might be published in 2015.",
      "requirements" : "Allows establishing a transition before a resource comes into effect and also allows for a sunsetting  process when new versions of the questionnaire are or are expected to be used instead.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Questionnaire.effectivePeriod",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "Period"
      }],
      "isModifier" : false,
      "isSummary" : true,
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.effectivePeriod"
      },
      {
        "identity" : "rim",
        "map" : "N/A (to add?)"
      },
      {
        "identity" : "objimpl",
        "map" : "no-gen-base"
      }]
    },
    {
      "id" : "Questionnaire.code",
      "path" : "Questionnaire.code",
      "short" : "Concept that represents the overall questionnaire",
      "definition" : "An identifier for this question or group of questions in a particular terminology such as LOINC.",
      "requirements" : "Allows linking of the complete Questionnaire resources to formal terminologies.  It's common for \"panels\" of questions to be identified by a code.",
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "Questionnaire.code",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Coding"
      }],
      "isModifier" : false,
      "isSummary" : true,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "QuestionnaireConcept"
        }],
        "strength" : "example",
        "description" : "Codes for questionnaires, groups and individual questions.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/questionnaire-questions"
      },
      "mapping" : [{
        "identity" : "rim",
        "map" : ".code"
      }]
    },
    {
      "id" : "Questionnaire.item",
      "path" : "Questionnaire.item",
      "short" : "Questions and sections within the Questionnaire",
      "definition" : "A particular question, question grouping or display text that is part of the questionnaire.",
      "comment" : "The content of the questionnaire is constructed from an ordered, hierarchical collection of items.",
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "Questionnaire.item",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "BackboneElement"
      }],
      "condition" : ["que-3"],
      "constraint" : [{
        "key" : "ele-1",
        "severity" : "error",
        "human" : "All FHIR elements must have a @value or children",
        "expression" : "hasValue() or (children().count() > id.count())",
        "xpath" : "@value|f:*|h:div",
        "source" : "Element"
      },
      {
        "key" : "que-9",
        "severity" : "error",
        "human" : "Read-only can't be specified for \"display\" items",
        "expression" : "type!='display' or readOnly.empty()",
        "xpath" : "not(f:type/@value=('group', 'display') and f:*[starts-with(local-name(.), 'initial')])"
      },
      {
        "key" : "que-8",
        "severity" : "error",
        "human" : "Initial values can't be specified for groups or display items",
        "expression" : "(type!='group' and type!='display') or initial.empty()",
        "xpath" : "not(f:type/@value=('group', 'display') and f:*[starts-with(local-name(.), 'initial')])"
      },
      {
        "key" : "que-6",
        "severity" : "error",
        "human" : "Required and repeat aren't permitted for display items",
        "expression" : "type!='display' or (required.empty() and repeats.empty())",
        "xpath" : "not(f:type/@value='display' and (f:required or f:repeats))"
      },
      {
        "key" : "que-5",
        "severity" : "error",
        "human" : "Only 'choice' and 'open-choice' items can have answerValueSet",
        "expression" : "(type ='choice' or type = 'open-choice' or type = 'decimal' or type = 'integer' or type = 'date' or type = 'dateTime' or type = 'time' or type = 'string' or type = 'quantity') or (answerValueSet.empty() and answerOption.empty())",
        "xpath" : "f:type/@value=('choice','open-choice','decimal','integer','date','dateTime','time','string','quantity',') or not(f:answerOption or f:answerValueSet)"
      },
      {
        "key" : "que-4",
        "severity" : "error",
        "human" : "A question cannot have both answerOption and answerValueSet",
        "expression" : "answerOption.empty() or answerValueSet.empty()",
        "xpath" : "not(f:answerValueSet and f:answerOption)"
      },
      {
        "key" : "que-3",
        "severity" : "error",
        "human" : "Display items cannot have a \"code\" asserted",
        "expression" : "type!='display' or code.empty()",
        "xpath" : "not(f:type/@value='display' and f:code)"
      },
      {
        "key" : "que-10",
        "severity" : "error",
        "human" : "Maximum length can only be declared for simple question types",
        "expression" : "(type in ('boolean' | 'decimal' | 'integer' | 'string' | 'text' | 'url' | 'open-choice')) or maxLength.empty()",
        "xpath" : "f:type/@value=('boolean', 'decimal', 'integer', 'open-choice', 'string', 'text', 'url') or not(f:maxLength)"
      },
      {
        "key" : "que-1",
        "severity" : "error",
        "human" : "Group items must have nested items, display items cannot have nested items",
        "expression" : "(type='group' implies item.empty().not()) and (type.trace('type')='display' implies item.trace('item').empty())",
        "xpath" : "not((f:type/@value='group' and not(f:item)) or (f:type/@value='display' and f:item))"
      },
      {
        "key" : "que-13",
        "severity" : "error",
        "human" : "Can only have multiple initial values for repeating items",
        "expression" : "repeats=true or initial.count() <= 1",
        "xpath" : "f:repeats/@value='true' or count(f:initial)<=1"
      },
      {
        "key" : "que-11",
        "severity" : "error",
        "human" : "If one or more answerOption is present, initial[x] must be missing",
        "expression" : "answerOption.empty() or initial.empty()",
        "xpath" : "not(f:answerOption) or not(count(f:*[starts-with(local-name(.), 'initial')]))"
      },
      {
        "key" : "que-12",
        "severity" : "error",
        "human" : "If there are more than one enableWhen, enableBehavior must be specified",
        "expression" : "enableWhen.count() > 2 implies enableBehavior.exists()",
        "xpath" : "not(f:answerOption) or not(count(f:*[starts-with(local-name(.), 'initial')]))"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : ".outboundRelationship[typeCode=COMP].target[classCode=OBS, moodCode=DEF]"
      }]
    },
    {
      "id" : "Questionnaire.item.id",
      "path" : "Questionnaire.item.id",
      "representation" : ["xmlAttr"],
      "short" : "Unique id for inter-element referencing",
      "definition" : "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Element.id",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "Questionnaire.item.extension",
      "path" : "Questionnaire.item.extension",
      "short" : "Additional content defined by implementations",
      "definition" : "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 manageable, 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.",
      "comment" : "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.",
      "alias" : ["extensions",
      "user content"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "Element.extension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "Questionnaire.item.modifierExtension",
      "path" : "Questionnaire.item.modifierExtension",
      "short" : "Extensions that cannot be ignored even if unrecognized",
      "definition" : "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, 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. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
      "comment" : "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.",
      "requirements" : "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
      "alias" : ["extensions",
      "user content",
      "modifiers"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "BackboneElement.modifierExtension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : true,
      "isModifierReason" : "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
      "isSummary" : true,
      "mapping" : [{
        "identity" : "rim",
        "map" : "N/A"
      }]
    },
    {
      "id" : "Questionnaire.item.linkId",
      "path" : "Questionnaire.item.linkId",
      "short" : "Unique id for item in questionnaire",
      "definition" : "An identifier that is unique within the Questionnaire allowing linkage to the equivalent item in a QuestionnaireResponse resource.",
      "comment" : "This ''can'' be a meaningful identifier (e.g. a LOINC code) but is not intended to have any meaning.  GUIDs or sequential numbers are appropriate here.",
      "requirements" : "[QuestionnaireResponse](questionnaireresponse.html#) does not require omitted items to be included and may have some items that repeat, so linkage based on position alone is not sufficient.",
      "min" : 1,
      "max" : "1",
      "base" : {
        "path" : "Questionnaire.item.linkId",
        "min" : 1,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : ".id"
      }]
    },
    {
      "id" : "Questionnaire.item.definition",
      "path" : "Questionnaire.item.definition",
      "short" : "ElementDefinition - details for the item",
      "definition" : "This element is a URI that refers to an [ElementDefinition](elementdefinition.html) that provides information about this item, including information that might otherwise be included in the instance of the Questionnaire resource. A detailed description of the construction of the URI is shown in Comments, below. If this element is present then the following element values MAY be derived from the Element Definition if the corresponding elements of this Questionnaire resource instance have no value:\n\n* code (ElementDefinition.code) \n* type (ElementDefinition.type) \n* required (ElementDefinition.min) \n* repeats (ElementDefinition.max) \n* maxLength (ElementDefinition.maxLength) \n* answerValueSet (ElementDefinition.binding)\n* options (ElementDefinition.binding).",
      "comment" : "The uri refers to an ElementDefinition in a [StructureDefinition](structuredefinition.html#) and always starts with the [canonical URL](references.html#canonical) for the target resource. When referring to a StructureDefinition, a fragment identifier is used to specify the element definition by its id [Element.id](element-definitions.html#Element.id). E.g. http://hl7.org/fhir/StructureDefinition/Observation#Observation.value[x]. In the absence of a fragment identifier, the first/root element definition in the target is the matching element definition.",
      "requirements" : "A common pattern is to define a set of data elements and then build multiple questionnaires for different circumstances to gather the data. This element provides traceability to the common definition and allows the content for the question to come from the underlying definition.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Questionnaire.item.definition",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "uri"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : ".outboundRelationship[typeCode=INST].target[classCode=OBS, moodCode=DEF]"
      }]
    },
    {
      "id" : "Questionnaire.item.code",
      "path" : "Questionnaire.item.code",
      "short" : "Corresponding concept for this item in a terminology",
      "definition" : "A terminology code that corresponds to this group or question (e.g. a code from LOINC, which defines many questions and answers).",
      "comment" : "The value may come from the ElementDefinition referred to by .definition.",
      "requirements" : "Allows linking of groups of questions to formal terminologies.",
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "Questionnaire.item.code",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Coding"
      }],
      "condition" : ["que-3"],
      "isModifier" : false,
      "isSummary" : false,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "QuestionnaireConcept"
        }],
        "strength" : "example",
        "description" : "Codes for questionnaires, groups and individual questions.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/questionnaire-questions"
      },
      "mapping" : [{
        "identity" : "rim",
        "map" : ".code"
      }]
    },
    {
      "id" : "Questionnaire.item.prefix",
      "path" : "Questionnaire.item.prefix",
      "short" : "E.g. \"1(a)\", \"2.5.3\"",
      "definition" : "A short label for a particular group, question or set of display text within the questionnaire used for reference by the individual completing the questionnaire.",
      "comment" : "These are generally unique within a questionnaire, though this is not guaranteed. Some questionnaires may have multiple questions with the same label with logic to control which gets exposed.  Typically, these won't be used for \"display\" items, though such use is not prohibited.  Systems SHOULD NOT generate their own prefixes if prefixes are defined for any items within a Questionnaire.",
      "requirements" : "Separating the label from the question text allows improved rendering.  Also, instructions will often refer to specific prefixes, so there's a need for the questionnaire design to have control over what labels are used.",
      "alias" : ["label"],
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Questionnaire.item.prefix",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "Not supported"
      }]
    },
    {
      "id" : "Questionnaire.item.text",
      "path" : "Questionnaire.item.text",
      "short" : "Primary text for the item",
      "definition" : "The name of a section, the text of a question or text content for a display item.",
      "comment" : "When using this element to represent the name of a section, use group type item and also make sure to limit the text element to a short string suitable for display as a section heading.  Group item instructions should be included as a display type item within the group.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Questionnaire.item.text",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : ".text"
      }]
    },
    {
      "id" : "Questionnaire.item.type",
      "path" : "Questionnaire.item.type",
      "short" : "group | display | boolean | decimal | integer | date | dateTime +",
      "definition" : "The type of questionnaire item this is - whether text for display, a grouping of other items or a particular type of data to be captured (string, integer, coded choice, etc.).",
      "comment" : "Additional constraints on the type of answer can be conveyed by extensions. The value may come from the ElementDefinition referred to by .definition.",
      "requirements" : "Defines the format in which the user is to be prompted for the answer.",
      "min" : 1,
      "max" : "1",
      "base" : {
        "path" : "Questionnaire.item.type",
        "min" : 1,
        "max" : "1"
      },
      "type" : [{
        "code" : "code"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "QuestionnaireItemType"
        }],
        "strength" : "required",
        "description" : "Distinguishes groups from questions and display text and indicates data type for questions.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/item-type|4.0.0"
      },
      "mapping" : [{
        "identity" : "rim",
        "map" : "N/A - MIF rather than RIM level"
      }]
    },
    {
      "id" : "Questionnaire.item.enableWhen",
      "path" : "Questionnaire.item.enableWhen",
      "short" : "Only allow data when",
      "definition" : "A constraint indicating that this item should only be enabled (displayed/allow answers to be captured) when the specified condition is true.",
      "comment" : "If multiple repetitions of this extension are present, the item should be enabled when the condition for *any* of the repetitions is true.  I.e. treat \"enableWhen\"s as being joined by an \"or\" clause.  This element is a modifier because if enableWhen is present for an item, \"required\" is ignored unless one of the enableWhen conditions is met. When an item is disabled, all of its descendants are disabled, regardless of what their own enableWhen logic might evaluate to.",
      "requirements" : "Allows questionnaires to adapt based on answers to other questions. E.g. If physical gender is specified as a male, no need to capture pregnancy history.  Also allows conditional display of instructions or groups of questions.",
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "Questionnaire.item.enableWhen",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "BackboneElement"
      }],
      "constraint" : [{
        "key" : "ele-1",
        "severity" : "error",
        "human" : "All FHIR elements must have a @value or children",
        "expression" : "hasValue() or (children().count() > id.count())",
        "xpath" : "@value|f:*|h:div",
        "source" : "Element"
      },
      {
        "key" : "que-7",
        "severity" : "error",
        "human" : "If the operator is 'exists', the value must be a boolean",
        "expression" : "operator = 'exists' implies (answer is Boolean)",
        "xpath" : "f:operator/@value != 'exists' or exists(f:answerBoolean)"
      }],
      "isModifier" : true,
      "isModifierReason" : "If enableWhen is present and the condition evaluates to false, then the Questionnaire behaves as though the elements weren't actually present",
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "N/A - MIF rather than RIM level"
      }]
    },
    {
      "id" : "Questionnaire.item.enableWhen.id",
      "path" : "Questionnaire.item.enableWhen.id",
      "representation" : ["xmlAttr"],
      "short" : "Unique id for inter-element referencing",
      "definition" : "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Element.id",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "Questionnaire.item.enableWhen.extension",
      "path" : "Questionnaire.item.enableWhen.extension",
      "short" : "Additional content defined by implementations",
      "definition" : "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 manageable, 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.",
      "comment" : "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.",
      "alias" : ["extensions",
      "user content"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "Element.extension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "Questionnaire.item.enableWhen.modifierExtension",
      "path" : "Questionnaire.item.enableWhen.modifierExtension",
      "short" : "Extensions that cannot be ignored even if unrecognized",
      "definition" : "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, 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. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
      "comment" : "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.",
      "requirements" : "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
      "alias" : ["extensions",
      "user content",
      "modifiers"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "BackboneElement.modifierExtension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : true,
      "isModifierReason" : "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
      "isSummary" : true,
      "mapping" : [{
        "identity" : "rim",
        "map" : "N/A"
      }]
    },
    {
      "id" : "Questionnaire.item.enableWhen.question",
      "path" : "Questionnaire.item.enableWhen.question",
      "short" : "Question that determines whether item is enabled",
      "definition" : "The linkId for the question whose answer (or lack of answer) governs whether this item is enabled.",
      "comment" : "If multiple question occurrences are present for the same question (same linkId), then this refers to the nearest question occurrence reachable by tracing first the \"ancestor\" axis and then the \"preceding\" axis and then the \"following\" axis.",
      "min" : 1,
      "max" : "1",
      "base" : {
        "path" : "Questionnaire.item.enableWhen.question",
        "min" : 1,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "N/A - MIF rather than RIM level"
      }]
    },
    {
      "id" : "Questionnaire.item.enableWhen.operator",
      "path" : "Questionnaire.item.enableWhen.operator",
      "short" : "exists | = | != | > | < | >= | <=",
      "definition" : "Specifies the criteria by which the question is enabled.",
      "min" : 1,
      "max" : "1",
      "base" : {
        "path" : "Questionnaire.item.enableWhen.operator",
        "min" : 1,
        "max" : "1"
      },
      "type" : [{
        "code" : "code"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "QuestionnaireItemOperator"
        }],
        "strength" : "required",
        "description" : "The criteria by which a question is enabled.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/questionnaire-enable-operator|4.0.0"
      },
      "mapping" : [{
        "identity" : "rim",
        "map" : "N/A - MIF rather than RIM level"
      }]
    },
    {
      "id" : "Questionnaire.item.enableWhen.answer[x]",
      "path" : "Questionnaire.item.enableWhen.answer[x]",
      "short" : "Value for question comparison based on operator",
      "definition" : "A value that the referenced question is tested using the specified operator in order for the item to be enabled.",
      "min" : 1,
      "max" : "1",
      "base" : {
        "path" : "Questionnaire.item.enableWhen.answer[x]",
        "min" : 1,
        "max" : "1"
      },
      "type" : [{
        "code" : "boolean"
      },
      {
        "code" : "decimal"
      },
      {
        "code" : "integer"
      },
      {
        "code" : "date"
      },
      {
        "code" : "dateTime"
      },
      {
        "code" : "time"
      },
      {
        "code" : "string"
      },
      {
        "code" : "Coding"
      },
      {
        "code" : "Quantity"
      },
      {
        "code" : "Reference",
        "targetProfile" : ["http://hl7.org/fhir/StructureDefinition/Resource"]
      }],
      "condition" : ["que-7"],
      "isModifier" : false,
      "isSummary" : false,
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "QuestionnaireQuestionOption3"
        }],
        "strength" : "example",
        "description" : "Allowed values to answer questions.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/questionnaire-answers"
      },
      "mapping" : [{
        "identity" : "rim",
        "map" : "N/A - MIF rather than RIM level"
      }]
    },
    {
      "id" : "Questionnaire.item.enableBehavior",
      "path" : "Questionnaire.item.enableBehavior",
      "short" : "all | any",
      "definition" : "Controls how multiple enableWhen values are interpreted -  whether all or any must be true.",
      "comment" : "This element must be specified if more than one enableWhen value is provided.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Questionnaire.item.enableBehavior",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "code"
      }],
      "condition" : ["que-12"],
      "isModifier" : false,
      "isSummary" :