XMLWordPrintableJSON

    • Type: Change Request
    • Resolution: Not Persuasive with Modification
    • Priority: Medium
    • Structured Data Capture (SDC) (FHIR)
    • current
    • FHIR Infrastructure
    • Populate Questionnaire
    • Hide

      Will add a section to the notes for the operation talking about strategies for 'updating' data using population - i.e. where there's a partially populated Questionnaire and a desire to update it with pre-existing data:

      • The fact that sometimes users might have wiped (and need to know the data might come back)
      • The fact that users might have changed data (and need to know the data might be reverted)
      • Possibility of re-running the $populate operation and either automatically merging the new answers into the prior QuestionnaireResponse or displaying the candidate changes and allowing the user to click to propagate them into the previously partially filled response.
      • Also note that it's possible to start a 'new' QuestionnaireResponse using answers from a previous QuestionnaireResponse - either defaulting answers to prior answers or displaying prior answers and making it a single user-click to propagate prior answers to new QuestionnaireResponse.
      • What elements are appropriate to populate/revert may vary from item to item and behavior about whether it's appropriate to revert may be driven by where the data came from, whether the data is newer and other considerations.
      • For now, no 'standard' mechanism defined for doing this.
      Show
      Will add a section to the notes for the operation talking about strategies for 'updating' data using population - i.e. where there's a partially populated Questionnaire and a desire to update it with pre-existing data: The fact that sometimes users might have wiped (and need to know the data might come back) The fact that users might have changed data (and need to know the data might be reverted) Possibility of re-running the $populate operation and either automatically merging the new answers into the prior QuestionnaireResponse or displaying the candidate changes and allowing the user to click to propagate them into the previously partially filled response. Also note that it's possible to start a 'new' QuestionnaireResponse using answers from a previous QuestionnaireResponse - either defaulting answers to prior answers or displaying prior answers and making it a single user-click to propagate prior answers to new QuestionnaireResponse. What elements are appropriate to populate/revert may vary from item to item and behavior about whether it's appropriate to revert may be driven by where the data came from, whether the data is newer and other considerations. For now, no 'standard' mechanism defined for doing this.
    • Brian Postlethwaite/Stoyan Halkaliev: 6-0-0
    • Clarification
    • Non-substantive

      Problem

      QuestionnaireResponse had been created by $populate operation. A user had added some answers and saved QuestionnaireResponse.

      Then Questionnaire got changes. This changes introduced a new field and this new field has a population rules.

      Now the user open the QuestionnaireResponse to edit.
      The new field will be empty since there is no way to partially populate some fields to existing QuestionnaireResponse.

      If the user starts from scratch with $populate operation, all data entered to the QuestionnaireResponse will be missed.

      There is no way to partially populate missing filed for the existing QuestionnaireResponse.

      Proposed solution

      Add /QuestionnaireResponse/<id>/$populate-missing operation that will merge the existing QuestionnaireResponse and a new populated version of it. The existing answers have higher priority over populated. Populated answers used only for missing at the QuestionnaireResponse answers.

      Alternative solution

      We can treat this scenario as an edge case and force Questionnaire author to support any kind of merge on a population level. If it will be possible to specify any kind of launchContext, not just a set of restricted resource defined by https://build.fhir.org/ig/HL7/sdc/ValueSet-launchContext.html The Questionnaire author may require an existing QuestionnaireResponse to be in the launchContext. Then with fhirpath or cql expression the questionnaire author defines the logic of the merge. 

            Assignee:
            Unassigned
            Reporter:
            ilyabeda
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: