FHIR Chat · adaptive questiionnaire outline · questionnaire

Stream: questionnaire

Topic: adaptive questiionnaire outline


view this post on Zulip Eric Haas (Aug 05 2018 at 16:20):

here in Argonaut Questionnaire Land we have been working on an outline and sharing with the ONC PRO project. Here is a draft proposal for the adapative q using a stateless model.

view this post on Zulip Eric Haas (Aug 05 2018 at 16:24):

https://docs.google.com/presentation/d/1avLKB_OVtwh_jg88si4JuTEEBpsbimGV4LY5rxMrh6I/edit?usp=sharing

view this post on Zulip Eric Haas (Aug 05 2018 at 16:25):

I'm thinking passing the QR back and forth makes more sense than repeating the data in Parameter? ... thoughts

view this post on Zulip Lloyd McKenzie (Aug 05 2018 at 23:56):

We need to agree on how the 'custom' QuestionnaireResponse points to the canonical URL of the official Questionnaire. If we can do that, I think we can ditch Parameters entirely and just pass a QuestionnaireResponse that points to a contained Questionnaire which references the canonical URL. First time around, the Questionnaire would be empty and the response would have no answers. Thereafter, you'd alternate with one more question, then one more answer until such time as the QuestionnaireResponse comes back marked as 'complete' and the contained Questionnaire having no more questions.

view this post on Zulip Eric Haas (Aug 06 2018 at 00:21):

I was thinking an extension "questionnaire" on item.

view this post on Zulip Eric Haas (Aug 06 2018 at 00:22):

you need the scoring option parameter too and that is not part of QR.

view this post on Zulip Eric Haas (Aug 06 2018 at 00:23):

I think the end would be when there are no Q returned just a score

view this post on Zulip Eric Haas (Aug 06 2018 at 00:24):

The contained Questionnaire is built by the client.

view this post on Zulip Eric Haas (Aug 06 2018 at 00:24):

The server is just pumping out questionnaires and scores.

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:24):

The contained Questionnaire should be built by the server - it's passing back the next question

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:24):

It's not multiple questionnaires

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:24):

It's one questionnaire that gets built up over the course of the questions

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:25):

One QuestionnaireResponse can only be for a single Questionnaire.

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:25):

The scores would be included as items in the QuestionnaireResponse

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:26):

(if they're exposed - otherwise they'll just be extensions)

view this post on Zulip Eric Haas (Aug 06 2018 at 00:27):

reporting scores is not part of Questionnaire its a separate observation right?

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:30):

Scores can be reported inside a QuestionnaireResponse

view this post on Zulip Eric Haas (Aug 06 2018 at 00:30):

The server needs to know which answer corresponds to which question - right. To me is easier for me to think of them as separate Questionnaires, which they could even store them as. I want to limit the scope of the service to a Black Box.

view this post on Zulip Eric Haas (Aug 06 2018 at 00:31):

not the decimal score, but the calculated scores from the answers.

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:31):

not sure what you mean

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:31):

The QuestionnaireResponse can only point to one Questionnaire. All of the questions have to be from a single Questionnaire.

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:31):

That Questionnaire is generated by the black box

view this post on Zulip Eric Haas (Aug 06 2018 at 00:33):

yes I know. that is why you make up a contained Q. but the service needs an identifier to know from where it came, and you can't assume it coming from a single FHIR questtionnaire.

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:33):

Each question has a definition - that tells you where it came from.

view this post on Zulip Eric Haas (Aug 06 2018 at 00:33):

that Is why I proposed an extension on the QR.item that would link to the services Question identifier

view this post on Zulip Eric Haas (Aug 06 2018 at 00:33):

?

view this post on Zulip Eric Haas (Aug 06 2018 at 00:34):

where did definition come from

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:34):

QuestionnaireResponse.item has a linkId that links to the Questionnaire.item. The Questionnaire.item has a definition that can point to the source

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:35):

The Questionnaire.item.definition points to a shared question definition that defines the meaning, type, allowed values, etc. for the question/group/etc.

view this post on Zulip Eric Haas (Aug 06 2018 at 00:36):

the service calculates the score and the logic based on the priors Q-A pairs. The client needs to provide the Answers and an identifier back to the question. That is the way it works now.

view this post on Zulip Eric Haas (Aug 06 2018 at 00:36):

All the service wants is an identifier.

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:39):

Answers by themselves are useless - you have to have the Questionnaire for the linkIds to mean anything.

view this post on Zulip Eric Haas (Aug 06 2018 at 00:39):

Regarding the scoring issue - that is something the service calculates. either for the whole adaptive Q, or for each Question, or an intermediate cumulative score. These are not part of QR right? They are represented as Observations.

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:39):

The scores should be in the QuestionnaireResponse

view this post on Zulip Eric Haas (Aug 06 2018 at 00:39):

Lloyd McKenzie: Answers by themselves are useless - you have to have the Questionnaire for the linkIds to mean anything.

Eric Haas: Regarding the scoring issue - that is something the service calculates. either for the whole adaptive Q, or for each Question, or an intermediate cumulative score. These are not part of QR right? They are represented as Observations.

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:40):

If you were doing a standard (non-dynamic) form they would be, so not sure why a dynamic form would be any different.

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:40):

(they would be in the QuestionnaireResponse, not Observations) - though you could of course extract the scores and other information from the QuestionnaireResponse into Observations after the fact if you wished.

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:41):

You ought to be able to do the whole thing just passing a single resource (QuestionnaireResponse with contained Questionnaire) back and forth.

view this post on Zulip Eric Haas (Aug 06 2018 at 00:42):

5:39 PM
The scores should be in the QuestionnaireResponse - That is news to me ...there is no place for calculated scores in QR is there?

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:42):

SDC is defining extensions to define the calculations and can put the answers into the QuestionnaireResponse.item values

view this post on Zulip Eric Haas (Aug 06 2018 at 00:43):

SDC is defining extensions to define the calculations and can put the answers into the QuestionnaireResponse:

Argonaut is not defining logic or calculations and for now will use Observations to record the scores. But I think that is not a big deal for now.

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:44):

If we didn't want to expose the values as items in the questionnaire, we could put extensions on the QuestionnaireResponse items for this purpose if there was a need to share the calculated values (e.g. if the calculation wasn't public)

view this post on Zulip Eric Haas (Aug 06 2018 at 00:50):

and I think is good discussion whether the service updates QR or the Client. Will bring up on next Argocall, but I think we still will need an extension on Q.item for the service to Identify each question separately. The contained questionnaire is made on the fly from a bank of Questions on their side so pointing the URL is useless.

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:53):

What you actually have is a single base Questionnaire which corresponds to the black box. It defines the "instrument". The fact that multiple responses for different patients over time are all tied to that one "instrument" is what makes the results comparable - even though they'll have answered different subsets of questions - an perhaps totally custom questions. You also have a Questionnaire that is created on the fly. The 'definition' for each item has meaning within the black box.

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 00:54):

We need the URL from the black box. Not sure if that can/should be the URL of the contained Questionnaire or not...

view this post on Zulip Eric Haas (Aug 06 2018 at 01:02):

I read the Q.item.definition and the type is Reference(ElementDefinition). How exactly does that tie in to a question? Please give a concrete example because I am lost. My black box is looking for a GUUID for Question 'foo' associate with answer "bar" how does this FHIR reference help?

view this post on Zulip Eric Haas (Aug 06 2018 at 01:04):

.and my black box has lots of Adaptive Qs to choose from. So the black box is not the 'instrument" right? there are several each corresponding to each set of questions?

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 01:07):

When I refer to the black box, I'm referring to a particular adaptive questionnaire. If you have one service that manages multiple questionnaires that's fine, but you're going to need to have a distinct URL for each adaptive questionnaire.

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 01:09):

In FHIR, QuestionnaireResponse points to the particular question within a Questionnaire using linkId. The Questionnaire then defines the common meaning of the question with a reference to an element definition. That's done by uri. (If you're working with STU 3, then you may need to do some creative implementation to align with R4)

view this post on Zulip Eric Haas (Aug 06 2018 at 01:30):

Yes by black box I am referring to everything behind the operation endpoint. Still unclear on the use of Q.item.definition. If have a adaptiveQ with url = 'foo' it has three questions: identified by q1 = "foo1",q2 = "foo2" and q3 ="foo3'. So we know that linkId links to the contained Q, what would go into Q.item.definition for q1? assuming the adaptiveQ is not represented as a FHIR Questionnaire.

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 01:45):

Some URI that corresponds to that particular question notion within the adaptive questionnaire black box

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 01:46):

(such that answers that have the same definition are comparable)

view this post on Zulip Eric Haas (Aug 06 2018 at 02:05):

OK I am beginning to see it. That is one deep and nonintuitive element and I don't know how to make it easier to understand. I also think we will be stretching the definition a bit in this use case

view this post on Zulip Eric Haas (Aug 06 2018 at 02:18):

also the guidance in R3 ( Q trumps ED) is the opposite in R4 (ED trumps Q) is that intentional?

view this post on Zulip Eric Haas (Aug 06 2018 at 02:19):

Thanks for the feedback was very helpful - will see what the group feedback is.... I'll mock up an example

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 02:39):

I don't think the intention is that ED trumps Q in R4. Where did you see language that suggested that?

view this post on Zulip Eric Haas (Aug 06 2018 at 03:15):

here is an updated outline based on above with QR directly written to by the server:

view this post on Zulip Eric Haas (Aug 06 2018 at 03:15):

https://docs.google.com/presentation/d/12aStsVDmz_qTeIjUFYWYv8643FyULov0BcjpKpuPLvo/edit?usp=sharing

view this post on Zulip Eric Haas (Aug 06 2018 at 03:16):

from the definition of item.definition in R4:"This element is a URI that refers to an ElementDefinition 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 SHALL be inferred from the Element Definition rather than from the corresponding elements of this Questionnaire resource instance:"

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 03:39):

@Grahame Grieve When did we agree to that? I don't think it's wise to say that you should ignore the information in the Questionnaire. I'm fine with a SHALL saying they must be aligned, but having the Questionnaire express question text in French when the definition element says the same thing in English is totally reasonable...

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 04:09):

On slide 6, rather than a boolean, just set the status of the QuestionnaireResponse to completed.

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 04:10):

Also, you might think about the situation where the questionnaire gets submitted but the answers are invalid. In that case, I presume you'd send back an OperationOutcome?

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 04:11):

On the initial request, I think you'd submit a blank QuestionnaireResponse with an empty Questionnaire with just the canonical URL - that way you're always passing the same argument to the black box.

view this post on Zulip Eric Haas (Aug 06 2018 at 04:58):

OK that makes sense

view this post on Zulip Grahame Grieve (Aug 06 2018 at 06:48):

I definitely edited based on a task where we said that you would default those elements from the definition, but that they would not override. I must have missed that text

view this post on Zulip Lloyd McKenzie (Aug 06 2018 at 14:31):

So we can/should just change it back?

view this post on Zulip Grahame Grieve (Aug 06 2018 at 20:29):

yes I'll fix it


Last updated: Apr 12 2022 at 19:14 UTC