DSTU2 FHIR Release 3 (STU)

This page is part of the FHIR Specification (v1.0.2: DSTU (v3.0.2: STU 2). 3). 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: R3 R2 R3 R2

Operation-questionnaire-populate.xml

FHIR Infrastructure Work Group Maturity Level : N/A Ballot Status : Informative Compartments : Not linked to any defined compartments

Raw XML ( canonical form )

Jump past Narrative

Operation Definition


  
  
    
    
      
      
      
        Generates a 
           instance  based on a specified 
          , filling in answers to questions where possible based on information provided as part

<OperationDefinition xmlns="http://hl7.org/fhir">
  <id value="Questionnaire-populate"/> 
  <text> 
    <status value="generated"/> 
    <div xmlns="http://www.w3.org/1999/xhtml">
      <h2> Populate Questionnaire</h2> 
      <p> OPERATION: Populate Questionnaire</p> 
      <p> The official URL for this operation definition is: </p> 
      <pre> http://hl7.org/fhir/OperationDefinition/Questionnaire-populate</pre> 
      <div> 
        <p> Generates a 
          <a href="questionnaireresponse.html">QuestionnaireResponse</a>  instance  based on a specified 
          <a href="questionnaire.html">Questionnaire</a> , filling in answers to questions where possible based on information provided as part
           of the operation or already known by the server about the subject of the 
          .  If the operation is not called at the instance level, one and only one of the identifier,

          <a href="questionnaire.html">Questionnaire</a> .
        </p> 

        <p> If the operation is not called at the instance level, one and only one of the identifier,
           questionnaire or questionnaireRef 'in' parameters must be provided. If called at the instance
           level, these parameters will be ignored. The response will contain a 
           instance based on the specified 
           and/or an 
           resource with errors or warnings.  The 
           instance will be populated with an unanswered set of questions following the group and

           level, these parameters will be ignored.</p> 

        <p> The response will contain a 
          <a href="questionnaireresponse.html">QuestionnaireResponse</a>  instance based on the specified 
          <a href="questionnaire.html">Questionnaire</a>  and/or an 
          <a href="operationoutcome.html">OperationOutcome</a>  resource with errors or warnings.
        </p> 


        <p> The 
          <a href="questionnaireresponse.html">QuestionnaireResponse</a>  instance will be populated with an unanswered set of questions following the group and
           question structure of the specified 
          .  If  
           parameters were specified or the 
           parameter was set to true, some of the questions may have answers filled in as well.

          <a href="questionnaire.html">Questionnaire</a> .  If  
          <em> content</em>  parameters were specified or the 
          <em> local</em>  parameter was set to true, some of the questions may have answers filled in as well.
            In the case of repeating questions or groups, typically only one repetition will be provided
           unless answer values exist that would support populating multiple repetitions.  Population
           of the 
           with appropriate data is dependent on the questions and/or groups in the 
           having metadata that allows the server to recognize the questions.  This might be through
           
          , through extensions such as the 
           extension or through use of the 
           resource.  Regardless of the mechanism used to link the questions in a questionnaire
           to a &quot;known&quot; mappable concept, solutions using this operation should ensure
           that the details of the question and associated linkage element are sufficiently similar
           as to safely allow auto-population; i.e. the question text and context must be sufficiently
           the same, the value set for the question must fall within the value set for the mapped
           element, the data types must be the same or convertible, etc.
        

           unless answer values exist that would support populating multiple repetitions.
        </p> 

      
      
      
      
      
        
          
            
          
          
            
          
          
            
          
          
            
          
          
            
          
          
            
          
        
        
          
          
          
          
          
          
            
              A logical questionnaire identifier (i.e. ''Questionnaire.identifier''). The server must
                 know the questionnaire or be able to retrieve it from other known repositories.

        <p> Population of the 
          <a href="questionnaireresponse.html">QuestionnaireResponse</a>  with appropriate data is dependent on the questions and/or groups in the 
          <a href="questionnaire.html">Questionnaire</a>  having metadata that allows the server to recognize the questions, e.g. through Questionnaire.item.
          definition or through use of the 
          <a href="conceptmap.html">ConceptMap</a>  resource.
        </p> 

            
          
        
        
          
          
          
          
          
          
            
              The 
                 is provided directly as part of the request. Servers may choose not to accept questionnaires

        <p> Regardless of the mechanism used to link the questions in a questionnaire to a &quot;known&quot;
           mappable concept, solutions using this operation should ensure that the details of the
           question and associated linkage element are sufficiently similar as to safely allow auto-population;
           i.e. the question text and context must be sufficiently the same, the value set for the
           question must fall within the value set for the mapped element, the data types must be
           the same or convertible, etc.</p> 

      </div> 
      <p> URL: [base]/Questionnaire/$populate</p> 
      <p> URL: [base]/Questionnaire/[id]/$populate</p> 
      <p> Parameters</p> 
      <table class="grid">
        <tr> 
          <td> 
            <b> Use</b> 
          </td> 
          <td> 
            <b> Name</b> 
          </td> 
          <td> 
            <b> Cardinality</b> 
          </td> 
          <td> 
            <b> Type</b> 
          </td> 
          <td> 
            <b> Binding</b> 
          </td> 
          <td> 
            <b> Documentation</b> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> identifier</td> 
          <td> 0..1</td> 
          <td> uri</td> 
          <td/>  
          <td> 
            <div> 
              <p> A logical questionnaire identifier (i.e. ''Questionnaire.identifier''). The server must

                 know the questionnaire or be able to retrieve it from other known repositories.</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> questionnaire</td> 
          <td> 0..1</td> 
          <td> Questionnaire</td> 
          <td/>  
          <td> 
            <div> 
              <p> The 
                <a href="questionnaire.html">Questionnaire</a>  is provided directly as part of the request. Servers may choose not to accept questionnaires
                 in this fashion
              

              </p> 

            
          
        
        
          
          
          
          
          
          
            
              The 
                 is provided as a resource reference. Servers may choose not to accept questionnaires

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> questionnaireRef</td> 
          <td> 0..1</td> 
          <td> Reference</td> 
          <td/>  
          <td> 
            <div> 
              <p> The 
                <a href="questionnaire.html">Questionnaire</a>  is provided as a resource reference. Servers may choose not to accept questionnaires
                 in this fashion or may fail if they cannot resolve or access the referenced questionnaire.
              

              </p> 

            
          
        
        
          
          
          
          
          
          
            
              The resource that is to be the 
                . The 
                 instance will reference the provided subject.  In addition, if the 
                 parameter is set to true, server information about the specified subject will be used

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> subject</td> 
          <td> 1..1</td> 
          <td> Reference</td> 
          <td/>  
          <td> 
            <div> 
              <p> The resource that is to be the 
                <em> QuestionnaireResponse.subject</em> . The 
                <a href="questionnaireresponse.html">QuestionnaireResponse</a>  instance will reference the provided subject.  In addition, if the 
                <em> local</em>  parameter is set to true, server information about the specified subject will be used
                 to populate the instance.
              

              </p> 

            
          
        
        
          
          
          
          
          
          
            
              Resources containing information to be used to help populate the 
                .  These may be FHIR resources or may be binaries containing FHIR documents, CDA documents

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> content</td> 
          <td> 0..*</td> 
          <td> Reference</td> 
          <td/>  
          <td> 
            <div> 
              <p> Resources containing information to be used to help populate the 
                <a href="questionnaireresponse.html">QuestionnaireResponse</a> .  These may be FHIR resources or may be binaries containing FHIR documents, CDA documents
                 or other source materials.  Servers may not support all possible source materials and
                 may ignore materials they do not recognize.  (They MAY provide warnings if ignoring submitted
                 resources.)
              

              </p> 

            
          
        
        
          
          
          
          
          
          
            
              If specified and set to 'true' (and the server is capable), the server should use what

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> local</td> 
          <td> 0..1</td> 
          <td> boolean</td> 
          <td/>  
          <td> 
            <div> 
              <p> If specified and set to 'true' (and the server is capable), the server should use what
                 resources and other knowledge it has about the referenced subject when pre-populating
                 answers to questions.

                 answers to questions.</p> 


            
          
        
        
          
          
          
          
          
          
            
              

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> questionnaire</td> 
          <td> 1..1</td> 
          <td> QuestionnaireResponse</td> 
          <td/>  
          <td> 
            <div> 
              <p> The partially (or fully)-populated set of answers for the specified Questionnaire</p> 

            
          
        
      
      
        While it is theoretically possible for a 
           instance to be completely auto-populated and submitted without human review, the intention

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> issues</td> 
          <td> 0..1</td> 
          <td> OperationOutcome</td> 
          <td/>  
          <td> 
            <div> 
              <p> A list of hints and warnings about problems encountered while populating the questionnaire.
                 These might be show to the user as an advisory note. Note: if the questionnaire cannot
                 be populated at all, then the operation should fail, and an OperationOutcome is returned
                 directly with the failure, rather than using this parameter</p> 

            </div> 
          </td> 
        </tr> 
      </table> 
      <div> 
        <p> While it is theoretically possible for a 
          <a href="questionnaireresponse.html">QuestionnaireResponse</a>  instance to be completely auto-populated and submitted without human review, the intention
           of this transaction is merely to reduce redundant data entry.  A client 
           ensure that a human submitter has an opportunity to review the auto-populated answers

          <strong> SHOULD</strong>  ensure that a human submitter has an opportunity to review the auto-populated answers
           to confirm correctness as well as to complete or expand on information provided by the
           auto-population process.  Complex form designs with conditional logic or tight constraints
           on cardinalities may be challenging to auto-populate.  A server MAY choose to traverse
           the questionnaire as if it were a human respondent, answering only those questions that
           are enabled based on previously answered questions.  However, doing so may result in minimal
           population.  Alternatively, systems may choose to populate all known answers, independent
           of dependencies and other constraints.  This may cause questions to be answered that should
           not be answered.  It will be up to the client to appropriately prune the final populated
           questionnaire once human review has taken place.  Invoking this operation with the ''content''
           parameter may involve the disclosure of personally identifiable healthcare information
           to the system which is performing the population process.  No such disclosures should
           be made unless the system on which the operation is being invoked is a &quot;trusted&quot;
           system and appropriate agreements are in place to protect the confidentiality of any information
           shared with that system.
        

           auto-population process.
        </p> 

      
    
  
  
  
  
  
  
  
    
      
      
    
    
      
      
    
  
  
  Generates a [[[QuestionnaireResponse]]] instance  based on a specified [[[Questionnaire]]],
   filling in answers to questions where possible based on information provided as part of
   the operation or already known by the server about the subject of the [[[Questionnaire]]].
    If the operation is not called at the instance level, one and only one of the identifier,

        <p> When creating an &quot;empty&quot; questionnaire, the general algorithm is to create a
           QuestionnaireResponse with one item for every item in the source Questionnaire, including
           items with &quot;enableWhen&quot;, &quot;display&quot; items, etc.  If a question has
           a default, the default answer should be populated.  And the QuestionnaireResponse should
           point back to the originating Questionnaire.  Repeating items will typically only include
           a single repetition.  Other extensions and/or elements may also be populated if the system
           is aware of appropriate values.</p> 

        <p> Complex form designs with conditional logic or tight constraints on cardinalities may

           be challenging to auto-populate.  A server MAY choose to traverse the questionnaire as
           if it were a human respondent, answering only those questions that are enabled based on
           previously answered questions.  However, doing so may result in minimal population.  Alternatively,
           systems may choose to populate all known answers, independent of dependencies and other
           constraints.  This may cause questions to be answered that should not be answered.  It
           will be up to the client to appropriately prune the final populated questionnaire once
           human review has taken place.</p> 

        <p> Invoking this operation with the ''content'' parameter may involve the disclosure of personally

           identifiable healthcare information to the system which is performing the population process.
            No such disclosures should be made unless the system on which the operation is being
           invoked is a &quot;trusted&quot; system and appropriate agreements are in place to protect
           the confidentiality of any information shared with that system.</p> 

      </div> 
    </div> 
  </text> 
  <url value="http://hl7.org/fhir/OperationDefinition/Questionnaire-populate"/> 
  <name value="Populate Questionnaire"/> 
  <status value="draft"/> 
  <kind value="operation"/> 
  <date value="2019-10-24T11:53:00+11:00"/> 
  <publisher value="HL7 (FHIR Project)"/> 
  <contact> 
    <telecom> 
      <system value="url"/> 
      <value value="http://hl7.org/fhir"/> 
    </telecom> 
    <telecom> 
      <system value="email"/> 
      <value value="fhir@lists.hl7.org"/> 
    </telecom> 
  </contact> 
  <description value="Generates a [QuestionnaireResponse](questionnaireresponse.html) instance  based on a specified

   [Questionnaire](questionnaire.html), filling in answers to questions where possible based
   on information provided as part of the operation or already known by the server about
   the subject of the [Questionnaire](questionnaire.html).

If the operation is not called at the instance level, one and only one of the identifier,

   questionnaire or questionnaireRef 'in' parameters must be provided. If called at the instance
   level, these parameters will be ignored. The response will contain a [[[QuestionnaireResponse]]]
   instance based on the specified [[[Questionnaire]]] and/or an [[[OperationOutcome]]] resource
   with errors or warnings.  The [[[QuestionnaireResponse]]] instance will be populated with

   level, these parameters will be ignored.

The response will contain a [QuestionnaireResponse](questionnaireresponse.html) instance
   based on the specified [Questionnaire](questionnaire.html) and/or an [OperationOutcome](operationout
  come.html) resource with errors or warnings.

The [QuestionnaireResponse](questionnaireresponse.html) instance will be populated with

   an unanswered set of questions following the group and question structure of the specified
   [[[Questionnaire]]].  If  *content* parameters were specified or the *local* parameter
   was set to true, some of the questions may have answers filled in as well.  In the case
   of repeating questions or groups, typically only one repetition will be provided unless
   answer values exist that would support populating multiple repetitions.  Population of
   the [[[QuestionnaireResponse]]] with appropriate data is dependent on the questions and/or
   groups in the [[[Questionnaire]]] having metadata that allows the server to recognize
   the questions.  This might be through *Questionnaire.group.question.code*, through extensions
   such as the [[[http://hl7.org/fhir/StructureDefinition/questionnaire-deReference]]] extension
   or through use of the [[[ConceptMap]]] resource.  Regardless of the mechanism used to
   link the questions in a questionnaire to a &quot;known&quot; mappable concept, solutions
   using this operation should ensure that the details of the question and associated linkage
   element are sufficiently similar as to safely allow auto-population; i.e. the question
   text and context must be sufficiently the same, the value set for the question must fall
   within the value set for the mapped element, the data types must be the same or convertible,
   etc.
  
  While it is theoretically possible for a [[[QuestionnaireResponse]]] instance to be completely
   auto-populated and submitted without human review, the intention of this transaction is
   merely to reduce redundant data entry.  A client **SHOULD** ensure that a human submitter
   has an opportunity to review the auto-populated answers to confirm correctness as well
   as to complete or expand on information provided by the auto-population process.  Complex
   form designs with conditional logic or tight constraints on cardinalities may be challenging
   to auto-populate.  A server MAY choose to traverse the questionnaire as if it were a human
   respondent, answering only those questions that are enabled based on previously answered
   questions.  However, doing so may result in minimal population.  Alternatively, systems
   may choose to populate all known answers, independent of dependencies and other constraints.
    This may cause questions to be answered that should not be answered.  It will be up to
   the client to appropriately prune the final populated questionnaire once human review
   has taken place.  Invoking this operation with the ''content'' parameter may involve the
   disclosure of personally identifiable healthcare information to the system which is performing
   the population process.  No such disclosures should be made unless the system on which
   the operation is being invoked is a &quot;trusted&quot; system and appropriate agreements
   are in place to protect the confidentiality of any information shared with that system.
  
  
  
  
    
    
    
    
    A logical questionnaire identifier (i.e. ''Questionnaire.identifier''). The server must
     know the questionnaire or be able to retrieve it from other known repositories.
    
  
  
    
    
    
    
    The [[[Questionnaire]]] is provided directly as part of the request. Servers may choose
     not to accept questionnaires in this fashion
    
  
  
    
    
    
    
    The [[[Questionnaire]]] is provided as a resource reference. Servers may choose not to
     accept questionnaires in this fashion or may fail if they cannot resolve or access the
     referenced questionnaire.
    
    
      
    
  
  
    
    
    
    
    The resource that is to be the *QuestionnaireResponse.subject*. The [[[QuestionnaireResponse]]]
     instance will reference the provided subject.  In addition, if the *local* parameter is
     set to true, server information about the specified subject will be used to populate the
     instance.
    
  
  
    
    
    
    
    Resources containing information to be used to help populate the [[[QuestionnaireResponse]]].
      These may be FHIR resources or may be binaries containing FHIR documents, CDA documents
     or other source materials.  Servers may not support all possible source materials and
     may ignore materials they do not recognize.  (They MAY provide warnings if ignoring submitted
     resources.)
    
  
  
    
    
    
    
    If specified and set to 'true' (and the server is capable), the server should use what

   [Questionnaire](questionnaire.html).  If  *content* parameters were specified or the *local*
   parameter was set to true, some of the questions may have answers filled in as well. 
   In the case of repeating questions or groups, typically only one repetition will be provided
   unless answer values exist that would support populating multiple repetitions.

Population of the [QuestionnaireResponse](questionnaireresponse.html) with appropriate
   data is dependent on the questions and/or groups in the [Questionnaire](questionnaire.html)
   having metadata that allows the server to recognize the questions, e.g. through Questionnaire.item.d
  efinition or through use of the [ConceptMap](conceptmap.html) resource.

Regardless of the mechanism used to link the questions in a questionnaire to a &quot;known&quot;
   mappable concept, solutions using this operation should ensure that the details of the
   question and associated linkage element are sufficiently similar as to safely allow auto-population;
   i.e. the question text and context must be sufficiently the same, the value set for the
   question must fall within the value set for the mapped element, the data types must be
   the same or convertible, etc."/> 
  <code value="populate"/> 
  <comment value="While it is theoretically possible for a [QuestionnaireResponse](questionnaireresponse.html)

   instance to be completely auto-populated and submitted without human review, the intention
   of this transaction is merely to reduce redundant data entry.  A client **SHOULD** ensure
   that a human submitter has an opportunity to review the auto-populated answers to confirm
   correctness as well as to complete or expand on information provided by the auto-population
   process.

When creating an &quot;empty&quot; questionnaire, the general algorithm is to create a
   QuestionnaireResponse with one item for every item in the source Questionnaire, including
   items with &quot;enableWhen&quot;, &quot;display&quot; items, etc.  If a question has
   a default, the default answer should be populated.  And the QuestionnaireResponse should
   point back to the originating Questionnaire.  Repeating items will typically only include
   a single repetition.  Other extensions and/or elements may also be populated if the system
   is aware of appropriate values.

Complex form designs with conditional logic or tight constraints on cardinalities may
   be challenging to auto-populate.  A server MAY choose to traverse the questionnaire as
   if it were a human respondent, answering only those questions that are enabled based on
   previously answered questions.  However, doing so may result in minimal population.  Alternatively,
   systems may choose to populate all known answers, independent of dependencies and other
   constraints.  This may cause questions to be answered that should not be answered.  It
   will be up to the client to appropriately prune the final populated questionnaire once
   human review has taken place.

Invoking this operation with the ''content'' parameter may involve the disclosure of personally
   identifiable healthcare information to the system which is performing the population process.
    No such disclosures should be made unless the system on which the operation is being
   invoked is a &quot;trusted&quot; system and appropriate agreements are in place to protect
   the confidentiality of any information shared with that system."/> 
  <resource value="Questionnaire"/> 
  <system value="false"/> 
  <type value="true"/> 
  <instance value="true"/> 
  <parameter> 
    <name value="identifier"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="A logical questionnaire identifier (i.e. ''Questionnaire.identifier''). The server must

     know the questionnaire or be able to retrieve it from other known repositories."/> 
    <type value="uri"/> 
  </parameter> 
  <parameter> 
    <name value="questionnaire"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="The [Questionnaire](questionnaire.html) is provided directly as part of the request. Servers

     may choose not to accept questionnaires in this fashion"/> 
    <type value="Questionnaire"/> 
  </parameter> 
  <parameter> 
    <name value="questionnaireRef"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="The [Questionnaire](questionnaire.html) is provided as a resource reference. Servers may

     choose not to accept questionnaires in this fashion or may fail if they cannot resolve
     or access the referenced questionnaire."/> 
    <type value="Reference"/> 
    <profile> 
      <reference value="http://hl7.org/fhir/StructureDefinition/Questionnaire"/> 
    </profile> 
  </parameter> 
  <parameter> 
    <name value="subject"/> 
    <use value="in"/> 
    <min value="1"/> 
    <max value="1"/> 
    <documentation value="The resource that is to be the *QuestionnaireResponse.subject*. The [QuestionnaireResponse](question

    naireresponse.html) instance will reference the provided subject.  In addition, if the
     *local* parameter is set to true, server information about the specified subject will
     be used to populate the instance."/> 
    <type value="Reference"/> 
  </parameter> 
  <parameter> 
    <name value="content"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="*"/> 
    <documentation value="Resources containing information to be used to help populate the [QuestionnaireResponse](questionnai

    reresponse.html).  These may be FHIR resources or may be binaries containing FHIR documents,
     CDA documents or other source materials.  Servers may not support all possible source
     materials and may ignore materials they do not recognize.  (They MAY provide warnings
     if ignoring submitted resources.)"/> 
    <type value="Reference"/> 
  </parameter> 
  <parameter> 
    <name value="local"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="If specified and set to 'true' (and the server is capable), the server should use what
     resources and other knowledge it has about the referenced subject when pre-populating
     answers to questions.
    
  
  
    
    
    
    
    
    
  

     answers to questions."/> 
    <type value="boolean"/> 
  </parameter> 
  <parameter> 
    <name value="questionnaire"/> 
    <use value="out"/> 
    <min value="1"/> 
    <max value="1"/> 
    <documentation value="The partially (or fully)-populated set of answers for the specified Questionnaire"/> 
    <type value="QuestionnaireResponse"/> 
  </parameter> 
  <parameter> 
    <name value="issues"/> 
    <use value="out"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="A list of hints and warnings about problems encountered while populating the questionnaire.

     These might be show to the user as an advisory note. Note: if the questionnaire cannot
     be populated at all, then the operation should fail, and an OperationOutcome is returned
     directly with the failure, rather than using this parameter"/> 
    <type value="OperationOutcome"/> 
  </parameter> 


</

OperationDefinition

>



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.