2nd DSTU Draft For Comment

This page is part of the FHIR Specification (v0.4.0: DSTU 2 Draft). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

Questionnaire.profile.json

Raw JSON (canonical form)

Profile for questionnaire

{
  "resourceType": "Profile",
  "id": "Questionnaire",
  "meta": {
    "lastUpdated": "2015-02-23T09:07:27.665+11:00"
  },
  "text": {
    "status": "generated",
    "div": "<div>!-- Snipped for Brevity --></div>"
  },
  "url": "http://hl7.org/fhir/Profile/Questionnaire",
  "name": "Questionnaire",
  "publisher": "HL7 FHIR Project (Patient Care)",
  "contact": [
    {
      "telecom": [
        {
          "system": "url",
          "value": "http://hl7.org/fhir"
        }
      ]
    },
    {
      "telecom": [
        {
          "system": "url",
          "value": "http://www.hl7.org/Special/committees/patientcare/index.cfm"
        }
      ]
    }
  ],
  "description": "Base Profile for Questionnaire Resource",
  "status": "draft",
  "date": "2015-02-23T09:07:27+11:00",
  "mapping": [
    {
      "identity": "rim",
      "uri": "http://hl7.org/v3",
      "name": "RIM"
    }
  ],
  "type": "Questionnaire",
  "snapshot": {
    "element": [
      {
        "path": "Questionnaire",
        "short": "A structured set of questions",
        "definition": "A structured set of questions intended to guide the collection of answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions.",
        "requirements": "To support structured, hierarchical registration of data gathered using digital forms and other questionnaires.",
        "synonym": [
          "Form",
          "CRF",
          "Survey"
        ],
        "min": 1,
        "max": "1",
        "constraint": [
          {
            "key": "que-2",
            "name": "UniqueLinkIds",
            "severity": "error",
            "human": "The link ids for groups and questions must be unique within the questionnaire",
            "xpath": "count(descendant::f:linkId/@value)=count(distinct-values(descendant::f:linkId/@value))"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "Observation[moodCode=DEF]"
          }
        ]
      },
      {
        "path": "Questionnaire.id",
        "short": "Logical id of this artefact",
        "definition": "The logical id of the resource, as used in the url for the resoure. Once assigned, this value never changes.",
        "comments": "The only time that a resource does not have an id is when it is being submitted to the server using a create operation. Bundles always have an id, though it is usually a generated UUID.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "id"
          }
        ]
      },
      {
        "path": "Questionnaire.meta",
        "short": "Metadata about the resource",
        "definition": "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "Meta"
          }
        ]
      },
      {
        "path": "Questionnaire.implicitRules",
        "short": "A set of rules under which this content was created",
        "definition": "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content.",
        "comments": "Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element as much as possible.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "uri"
          }
        ],
        "isModifier": true
      },
      {
        "path": "Questionnaire.language",
        "short": "Language of the resource content",
        "definition": "The base language in which the resource is written.",
        "comments": "Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies  to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource\n\nNot all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "code"
          }
        ],
        "binding": {
          "name": "Language",
          "isExtensible": false,
          "conformance": "required",
          "description": "A human language",
          "referenceUri": "http://tools.ietf.org/html/bcp47"
        }
      },
      {
        "path": "Questionnaire.text",
        "short": "Text summary of the resource, for human interpretation",
        "definition": "A human-readable narrative that contains a summary of the resource, and may be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.",
        "comments": "Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative.",
        "synonym": [
          "narrative",
          "html",
          "xhtml",
          "display"
        ],
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "Narrative"
          }
        ],
        "condition": [
          "dom-1"
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "Act.text?"
          }
        ]
      },
      {
        "path": "Questionnaire.contained",
        "short": "Contained, inline Resources",
        "definition": "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.",
        "comments": "This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again.",
        "synonym": [
          "inline resources",
          "anonymous resources",
          "contained resources"
        ],
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Resource"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "path": "Questionnaire.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 resource. In order 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 is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comments": "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.",
        "synonym": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Extension"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "path": "Questionnaire.modifierExtension",
        "short": "Extensions that cannot be ignored",
        "definition": "May be used to represent additional information that is not part of the basic definition of the resource, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order 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 is allowed to 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.",
        "comments": "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.",
        "synonym": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Extension"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "path": "Questionnaire.identifier",
        "short": "External Ids for this questionnaire",
        "definition": "This records identifiers associated with this question set that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).",
        "requirements": "Need to allow connection to a wider workflow.",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Identifier"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": ".id[use=BUS]"
          }
        ]
      },
      {
        "path": "Questionnaire.version",
        "short": "Logical id for this version of Questionnaire",
        "definition": "The version number assigned by the publisher for business reasons.  It may remain the same when the resource is updated.",
        "requirements": "In some cases, separate resource instances might be created for each version (if an older version can be maintained once a new version exists).",
        "synonym": [
          "N/A - MIF rather than RIM level"
        ],
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": ".id[use=VER]"
          }
        ]
      },
      {
        "path": "Questionnaire.status",
        "short": "draft | published | retired",
        "definition": "The lifecycle status of the questionnaire as a whole.",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "code"
          }
        ],
        "isModifier": true,
        "isSummary": true,
        "binding": {
          "name": "QuestionnaireStatus",
          "isExtensible": false,
          "conformance": "required",
          "description": "Lifecycle status of the questionnaire",
          "referenceReference": {
            "reference": "http://hl7.org/fhir/vs/questionnaire-status"
          }
        },
        "mapping": [
          {
            "identity": "rim",
            "map": ".statusCode (also whether there's a revisionControlAct - and possibly mood to distinguish \"in-progress\" from \"published)"
          }
        ]
      },
      {
        "path": "Questionnaire.date",
        "short": "Date this version was authored",
        "definition": "The date that this questionnaire was last changed.",
        "synonym": [
          "Date Created",
          "Date published",
          "Date Issued",
          "Date updated"
        ],
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "dateTime"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": ".participation[typeCode=AUT].time"
          }
        ]
      },
      {
        "path": "Questionnaire.publisher",
        "short": "Organization/individual who designed the questionnaire",
        "definition": "Organization or person responsible for developing and maintaining the questionnaire.",
        "requirements": "Conveys responsibility for the questions and their organization and also helps evaluate the questionnaire's \"authority\".",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": ".participation[typeCode=AUT].role"
          }
        ]
      },
      {
        "path": "Questionnaire.telecom",
        "short": "Contact information of the publisher",
        "definition": "Contact details to assist a user in finding and communicating with the publisher.",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "ContactPoint"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": ".participation[typeCode=AUT].role.telecom"
          }
        ]
      },
      {
        "path": "Questionnaire.group",
        "name": "group",
        "short": "Grouped questions",
        "definition": "A collection of related questions (or further groupings of questions).",
        "comments": "The Questionnaire itself has one \"root\" group with the actual contents of the Questionnaire.  Information on this root group applies to the questionnaire as a whole.",
        "requirements": "Need to be able to logically group answers to grouped questions.",
        "synonym": [
          "Section"
        ],
        "min": 1,
        "max": "1",
        "constraint": [
          {
            "key": "que-1",
            "name": "GroupHaveSubOrQuestions",
            "severity": "error",
            "human": "Groups may either contain questions or groups but not both",
            "xpath": "not(exists(f:group) and exists(f:question))"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".outboundRelationship[typeCode=COMP].target[classCode=DOCSECT, moodCode=EVN]"
          }
        ]
      },
      {
        "path": "Questionnaire.group.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "xml:id (or equivalent in JSON)",
        "definition": "unique id for the element within a resource (for internal references).",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "id"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "path": "Questionnaire.group.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. In order 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 is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comments": "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.",
        "synonym": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Extension"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "path": "Questionnaire.group.modifierExtension",
        "short": "Extensions that cannot be ignored",
        "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 that contains it. Usually modifier elements provide negation or qualification. In order 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 is allowed to 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.",
        "comments": "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.",
        "synonym": [
          "extensions",
          "user content",
          "modifiers"
        ],
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Extension"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "path": "Questionnaire.group.linkId",
        "short": "To link questionnaire with questionnaire answers",
        "definition": "An identifier that is unique within the questionnaire allowing linkage to the equivalent group in a QuestionnaireAnswers resource.",
        "comments": "May be omitted if there is no expectation to link answers back to a questionnaire.  This *can* be a meaningful id (e.g. a LOINC code) but is not intended to have any meaning.  GUIDs or sequential numbers are appropriate here.",
        "requirements": "[[[QuestionnaireAnswers]]] does not require omitted groups to be included and may have some groups that repeat, so linkage based on position alone is not sufficient.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".id"
          }
        ]
      },
      {
        "path": "Questionnaire.group.title",
        "short": "Name to be displayed for group",
        "definition": "The human-readable name for this section of the questionnaire.",
        "comments": "The title of the \"root\" group is the title for the questionnaire.",
        "requirements": "When including text for the questionnaire with the answers, sections may have a section header.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".title"
          }
        ]
      },
      {
        "path": "Questionnaire.group.concept",
        "short": "Concept that represents this section on a questionnaire",
        "definition": "Identifies a how this group of questions is known in a particular terminology such as LOINC.",
        "comments": "The code(s) for the \"root\" group apply to the questionnaire as a whole.",
        "requirements": "Allows linking of groups of questions (and complete questionnaires) to formal terminologies.",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Coding"
          }
        ],
        "binding": {
          "name": "QuestionnaireGroupConcept",
          "isExtensible": true,
          "conformance": "preferred",
          "description": "Codes for questionnaires and groupings of questionnaire questions"
        },
        "mapping": [
          {
            "identity": "rim",
            "map": ".code"
          }
        ]
      },
      {
        "path": "Questionnaire.group.text",
        "short": "Additional text for the group",
        "definition": "Additional text for the group, used for display purposes.",
        "comments": "Common extensions are defined for more specialized types of display text.",
        "requirements": "When including text for the questionnaire, each section may contain additional explanations are background text.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".text"
          }
        ]
      },
      {
        "path": "Questionnaire.group.required",
        "short": "Must group be included in data results?",
        "definition": "If true, indicates that the group must be present and have required questions within it answered.  If false, the group may be skipped when answering the questionnaire.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "boolean"
          }
        ],
        "defaultValueBoolean": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "Not supported - MIF/templating layer"
          }
        ]
      },
      {
        "path": "Questionnaire.group.repeats",
        "short": "Whether the group may repeat",
        "definition": "Whether the group may occur multiple times in the instance, containing multiple sets of answers.",
        "requirements": "Groups may be used to create set of (related) questions that can be repeated to give multiple answers to such a set.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "boolean"
          }
        ],
        "defaultValueBoolean": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "Not supported - MIF/templating layer"
          }
        ]
      },
      {
        "path": "Questionnaire.group.group",
        "short": "Nested questionnaire group",
        "definition": "A sub-group within a group. The ordering of groups within this group is relevant.",
        "requirements": "Reports can consist of complex nested groups.",
        "min": 0,
        "max": "*",
        "nameReference": "group",
        "condition": [
          "que-1"
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".outboundRelationship[typeCode=COMP].target[classCode=DOCSECT, moodCode=EVN]"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question",
        "short": "Questions in this group",
        "definition": "Set of questions within this group. The order of questions within the group is relevant.",
        "requirements": "Must register answers to questions.",
        "synonym": [
          "Responses",
          "Contents"
        ],
        "min": 0,
        "max": "*",
        "condition": [
          "que-1"
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".outboundRelationship[typeCode=COMP].target[classCode=OBS, moodCode=EVN or DEF]"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "xml:id (or equivalent in JSON)",
        "definition": "unique id for the element within a resource (for internal references).",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "id"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.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. In order 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 is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comments": "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.",
        "synonym": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Extension"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.modifierExtension",
        "short": "Extensions that cannot be ignored",
        "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 that contains it. Usually modifier elements provide negation or qualification. In order 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 is allowed to 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.",
        "comments": "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.",
        "synonym": [
          "extensions",
          "user content",
          "modifiers"
        ],
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Extension"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.linkId",
        "short": "To link questionnaire with questionnaire answers",
        "definition": "An identifier that is unique within the questionnaire allowing linkage to the equivalent group in a [[[QuestionnaireAnswers]]] resource.",
        "comments": "May be omitted if there is no expectation to link answers back to a questionnaire.  This *can* be a meaningful id (e.g. a LOINC code) but is not intended to have any meaning.  GUIDs or sequential numbers are appropriate here.",
        "requirements": "[[[QuestionnaireAnswers]]] does not require omitted groups to be included and may have some groups that repeat, so linkage based on position alone is not sufficient.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".id"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.concept",
        "short": "Concept that represents this question on a questionnaire",
        "definition": "Identifies a how this question is known in a particular terminology such as LOINC.",
        "requirements": "Allows linking of questions (and their answers) to formal terminologies.",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Coding"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".code"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.text",
        "short": "Text of the question as it is shown to the user",
        "definition": "The actual question as shown to the user to prompt them for an answer.",
        "comments": "Common extensions are defined for more specialized types of display text.",
        "requirements": "When including text for the questionnaire, each question may contain its actual question display text.",
        "synonym": [
          "Question"
        ],
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".code.display"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.type",
        "short": "boolean | decimal | integer | date | dateTime +",
        "definition": "The expected format of the answer, e.g. the type of input (string, integer) or whether a (multiple) choice is expected.",
        "comments": "Additional constraints on the type of answer can be conveyed by extensions.",
        "requirements": "Defines the format in which the user is to be prompted for the answer.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "code"
          }
        ],
        "binding": {
          "name": "AnswerFormat",
          "isExtensible": false,
          "conformance": "required",
          "description": "The expected format of an answer",
          "referenceReference": {
            "reference": "http://hl7.org/fhir/vs/answer-format"
          }
        },
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A - MIF rather than RIM level"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.required",
        "short": "Must question be answered in data results?",
        "definition": "If true, indicates that the question must be answered and have required groups within it also present.  If false, the question and any contained groups may be skipped when answering the questionnaire.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "boolean"
          }
        ],
        "defaultValueBoolean": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "Not supported - MIF/templating layer"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.repeats",
        "short": "Can question  have multiple answers?",
        "definition": "If true, the question may have more than one answer.",
        "comments": "Whether the question itself will be displayed for each answer is a rendering choice typically based on whether there are nested groups.",
        "requirements": "Used for \"check all that apply\" types of questions or \"list your top 3\", etc.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "boolean"
          }
        ],
        "defaultValueBoolean": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "Not supported - MIF/templating layer"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.options",
        "short": "Valueset containing the possible options",
        "definition": "Reference to a valueset containing the possible options.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "Reference",
            "profile": "http://hl7.org/fhir/Profile/ValueSet"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "Not supported - MIF/templating layer to capture value set"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.group",
        "short": "Nested questionnaire group",
        "definition": "Nested group, containing nested question for this question. The order of groups within the question is relevant.",
        "requirements": "It is useful to have \"sub-questions\", questions which normally appear when certain answers are given and which collect additional details.",
        "min": 0,
        "max": "*",
        "nameReference": "group",
        "mapping": [
          {
            "identity": "rim",
            "map": ".outboundRelationship[typeCode=COMP].target[classCode=DOCSECT, moodCode=EVN]"
          }
        ]
      }
    ]
  },
  "differential": {
    "element": [
      {
        "path": "Questionnaire",
        "short": "A structured set of questions",
        "definition": "A structured set of questions intended to guide the collection of answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions.",
        "requirements": "To support structured, hierarchical registration of data gathered using digital forms and other questionnaires.",
        "synonym": [
          "Form",
          "CRF",
          "Survey"
        ],
        "min": 1,
        "max": "1",
        "constraint": [
          {
            "key": "que-2",
            "name": "UniqueLinkIds",
            "severity": "error",
            "human": "The link ids for groups and questions must be unique within the questionnaire",
            "xpath": "count(descendant::f:linkId/@value)=count(distinct-values(descendant::f:linkId/@value))"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "Observation[moodCode=DEF]"
          }
        ]
      },
      {
        "path": "Questionnaire.identifier",
        "short": "External Ids for this questionnaire",
        "definition": "This records identifiers associated with this question set that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).",
        "requirements": "Need to allow connection to a wider workflow.",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Identifier"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": ".id[use=BUS]"
          }
        ]
      },
      {
        "path": "Questionnaire.version",
        "short": "Logical id for this version of Questionnaire",
        "definition": "The version number assigned by the publisher for business reasons.  It may remain the same when the resource is updated.",
        "requirements": "In some cases, separate resource instances might be created for each version (if an older version can be maintained once a new version exists).",
        "synonym": [
          "N/A - MIF rather than RIM level"
        ],
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": ".id[use=VER]"
          }
        ]
      },
      {
        "path": "Questionnaire.status",
        "short": "draft | published | retired",
        "definition": "The lifecycle status of the questionnaire as a whole.",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "code"
          }
        ],
        "isModifier": true,
        "isSummary": true,
        "binding": {
          "name": "QuestionnaireStatus",
          "isExtensible": false,
          "conformance": "required",
          "description": "Lifecycle status of the questionnaire",
          "referenceReference": {
            "reference": "http://hl7.org/fhir/vs/questionnaire-status"
          }
        },
        "mapping": [
          {
            "identity": "rim",
            "map": ".statusCode (also whether there's a revisionControlAct - and possibly mood to distinguish \"in-progress\" from \"published)"
          }
        ]
      },
      {
        "path": "Questionnaire.date",
        "short": "Date this version was authored",
        "definition": "The date that this questionnaire was last changed.",
        "synonym": [
          "Date Created",
          "Date published",
          "Date Issued",
          "Date updated"
        ],
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "dateTime"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": ".participation[typeCode=AUT].time"
          }
        ]
      },
      {
        "path": "Questionnaire.publisher",
        "short": "Organization/individual who designed the questionnaire",
        "definition": "Organization or person responsible for developing and maintaining the questionnaire.",
        "requirements": "Conveys responsibility for the questions and their organization and also helps evaluate the questionnaire's \"authority\".",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": ".participation[typeCode=AUT].role"
          }
        ]
      },
      {
        "path": "Questionnaire.telecom",
        "short": "Contact information of the publisher",
        "definition": "Contact details to assist a user in finding and communicating with the publisher.",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "ContactPoint"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": ".participation[typeCode=AUT].role.telecom"
          }
        ]
      },
      {
        "path": "Questionnaire.group",
        "name": "group",
        "short": "Grouped questions",
        "definition": "A collection of related questions (or further groupings of questions).",
        "comments": "The Questionnaire itself has one \"root\" group with the actual contents of the Questionnaire.  Information on this root group applies to the questionnaire as a whole.",
        "requirements": "Need to be able to logically group answers to grouped questions.",
        "synonym": [
          "Section"
        ],
        "min": 1,
        "max": "1",
        "constraint": [
          {
            "key": "que-1",
            "name": "GroupHaveSubOrQuestions",
            "severity": "error",
            "human": "Groups may either contain questions or groups but not both",
            "xpath": "not(exists(f:group) and exists(f:question))"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".outboundRelationship[typeCode=COMP].target[classCode=DOCSECT, moodCode=EVN]"
          }
        ]
      },
      {
        "path": "Questionnaire.group.linkId",
        "short": "To link questionnaire with questionnaire answers",
        "definition": "An identifier that is unique within the questionnaire allowing linkage to the equivalent group in a QuestionnaireAnswers resource.",
        "comments": "May be omitted if there is no expectation to link answers back to a questionnaire.  This *can* be a meaningful id (e.g. a LOINC code) but is not intended to have any meaning.  GUIDs or sequential numbers are appropriate here.",
        "requirements": "[[[QuestionnaireAnswers]]] does not require omitted groups to be included and may have some groups that repeat, so linkage based on position alone is not sufficient.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".id"
          }
        ]
      },
      {
        "path": "Questionnaire.group.title",
        "short": "Name to be displayed for group",
        "definition": "The human-readable name for this section of the questionnaire.",
        "comments": "The title of the \"root\" group is the title for the questionnaire.",
        "requirements": "When including text for the questionnaire with the answers, sections may have a section header.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".title"
          }
        ]
      },
      {
        "path": "Questionnaire.group.concept",
        "short": "Concept that represents this section on a questionnaire",
        "definition": "Identifies a how this group of questions is known in a particular terminology such as LOINC.",
        "comments": "The code(s) for the \"root\" group apply to the questionnaire as a whole.",
        "requirements": "Allows linking of groups of questions (and complete questionnaires) to formal terminologies.",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Coding"
          }
        ],
        "binding": {
          "name": "QuestionnaireGroupConcept",
          "isExtensible": true,
          "conformance": "preferred",
          "description": "Codes for questionnaires and groupings of questionnaire questions"
        },
        "mapping": [
          {
            "identity": "rim",
            "map": ".code"
          }
        ]
      },
      {
        "path": "Questionnaire.group.text",
        "short": "Additional text for the group",
        "definition": "Additional text for the group, used for display purposes.",
        "comments": "Common extensions are defined for more specialized types of display text.",
        "requirements": "When including text for the questionnaire, each section may contain additional explanations are background text.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".text"
          }
        ]
      },
      {
        "path": "Questionnaire.group.required",
        "short": "Must group be included in data results?",
        "definition": "If true, indicates that the group must be present and have required questions within it answered.  If false, the group may be skipped when answering the questionnaire.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "boolean"
          }
        ],
        "defaultValueBoolean": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "Not supported - MIF/templating layer"
          }
        ]
      },
      {
        "path": "Questionnaire.group.repeats",
        "short": "Whether the group may repeat",
        "definition": "Whether the group may occur multiple times in the instance, containing multiple sets of answers.",
        "requirements": "Groups may be used to create set of (related) questions that can be repeated to give multiple answers to such a set.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "boolean"
          }
        ],
        "defaultValueBoolean": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "Not supported - MIF/templating layer"
          }
        ]
      },
      {
        "path": "Questionnaire.group.group",
        "short": "Nested questionnaire group",
        "definition": "A sub-group within a group. The ordering of groups within this group is relevant.",
        "requirements": "Reports can consist of complex nested groups.",
        "min": 0,
        "max": "*",
        "nameReference": "group",
        "condition": [
          "que-1"
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".outboundRelationship[typeCode=COMP].target[classCode=DOCSECT, moodCode=EVN]"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question",
        "short": "Questions in this group",
        "definition": "Set of questions within this group. The order of questions within the group is relevant.",
        "requirements": "Must register answers to questions.",
        "synonym": [
          "Responses",
          "Contents"
        ],
        "min": 0,
        "max": "*",
        "condition": [
          "que-1"
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".outboundRelationship[typeCode=COMP].target[classCode=OBS, moodCode=EVN or DEF]"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.linkId",
        "short": "To link questionnaire with questionnaire answers",
        "definition": "An identifier that is unique within the questionnaire allowing linkage to the equivalent group in a [[[QuestionnaireAnswers]]] resource.",
        "comments": "May be omitted if there is no expectation to link answers back to a questionnaire.  This *can* be a meaningful id (e.g. a LOINC code) but is not intended to have any meaning.  GUIDs or sequential numbers are appropriate here.",
        "requirements": "[[[QuestionnaireAnswers]]] does not require omitted groups to be included and may have some groups that repeat, so linkage based on position alone is not sufficient.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".id"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.concept",
        "short": "Concept that represents this question on a questionnaire",
        "definition": "Identifies a how this question is known in a particular terminology such as LOINC.",
        "requirements": "Allows linking of questions (and their answers) to formal terminologies.",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Coding"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".code"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.text",
        "short": "Text of the question as it is shown to the user",
        "definition": "The actual question as shown to the user to prompt them for an answer.",
        "comments": "Common extensions are defined for more specialized types of display text.",
        "requirements": "When including text for the questionnaire, each question may contain its actual question display text.",
        "synonym": [
          "Question"
        ],
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": ".code.display"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.type",
        "short": "boolean | decimal | integer | date | dateTime +",
        "definition": "The expected format of the answer, e.g. the type of input (string, integer) or whether a (multiple) choice is expected.",
        "comments": "Additional constraints on the type of answer can be conveyed by extensions.",
        "requirements": "Defines the format in which the user is to be prompted for the answer.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "code"
          }
        ],
        "binding": {
          "name": "AnswerFormat",
          "isExtensible": false,
          "conformance": "required",
          "description": "The expected format of an answer",
          "referenceReference": {
            "reference": "http://hl7.org/fhir/vs/answer-format"
          }
        },
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A - MIF rather than RIM level"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.required",
        "short": "Must question be answered in data results?",
        "definition": "If true, indicates that the question must be answered and have required groups within it also present.  If false, the question and any contained groups may be skipped when answering the questionnaire.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "boolean"
          }
        ],
        "defaultValueBoolean": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "Not supported - MIF/templating layer"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.repeats",
        "short": "Can question  have multiple answers?",
        "definition": "If true, the question may have more than one answer.",
        "comments": "Whether the question itself will be displayed for each answer is a rendering choice typically based on whether there are nested groups.",
        "requirements": "Used for \"check all that apply\" types of questions or \"list your top 3\", etc.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "boolean"
          }
        ],
        "defaultValueBoolean": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "Not supported - MIF/templating layer"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.options",
        "short": "Valueset containing the possible options",
        "definition": "Reference to a valueset containing the possible options.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "Reference",
            "profile": "http://hl7.org/fhir/Profile/ValueSet"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "Not supported - MIF/templating layer to capture value set"
          }
        ]
      },
      {
        "path": "Questionnaire.group.question.group",
        "short": "Nested questionnaire group",
        "definition": "Nested group, containing nested question for this question. The order of groups within the question is relevant.",
        "requirements": "It is useful to have \"sub-questions\", questions which normally appear when certain answers are given and which collect additional details.",
        "min": 0,
        "max": "*",
        "nameReference": "group",
        "mapping": [
          {
            "identity": "rim",
            "map": ".outboundRelationship[typeCode=COMP].target[classCode=DOCSECT, moodCode=EVN]"
          }
        ]
      }
    ]
  }
}

Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.