FHIR Chat · Question Answered · cds hooks

Stream: cds hooks

Topic: Question Answered


view this post on Zulip Grahame Grieve (Feb 15 2018 at 20:20):

is anyone else interested in defining a hook to use to indicate that the patient has answered a question while filling out a Questionniare to create a QuestionnaireResponse? This would allow some knowledge source to vary the next question(s) based on existing answers.

view this post on Zulip Lloyd McKenzie (Feb 15 2018 at 20:35):

I think the varying needs to be expressed in the Questionnaire design. Having the Questionnaire design change on the fly would be quite problematic.

view this post on Zulip Grahame Grieve (Feb 15 2018 at 20:37):

of course, it's easier if you can do that. but there's all sorts of sophisticated algorithms for doing this that it makes no sense to try and figre out a general purpose computing langauge/infrastructure for. There's lots of work in production based on AI/big data analysis where you figure what the next question is based on the answer to the existing questions

view this post on Zulip Brian Postlethwaite (Feb 15 2018 at 21:00):

This sounds like custom transitions between sections, which I agree we don't really cover

view this post on Zulip Brian Postlethwaite (Feb 15 2018 at 21:00):

And I don't know that cds hooks is the right way to do it, but I don't have a better suggestion either.

view this post on Zulip Kevin Olbrich (Feb 15 2018 at 21:05):

We do fairly complex questionnaires for Providers, but the way we do it is to use a cds-hook to identify when it's appropriate to start the questionnaire and return a card with a smart-app link to the actual form. Then we return the results of that interaction back to the EHR

view this post on Zulip Grahame Grieve (Feb 15 2018 at 21:36):

right. you can outsource the entire interaction to a different app. But this means that you can't integrate with the data source either

view this post on Zulip Lloyd McKenzie (Feb 15 2018 at 21:40):

I'd tend to treat this as component questionnaires. At least then you have an immutable object to reference that defines the questions.

view this post on Zulip Kevin Olbrich (Feb 15 2018 at 21:40):

What do you mean by 'integrate with the data source'? We can still make FHIR calls to the EHR as needed.

view this post on Zulip Grahame Grieve (Feb 15 2018 at 21:45):

Lloyd, don't understand your point. Kevin, yes, you can. Right now, with such limited access to EHR logic as is implemented, that's not enough for many people

view this post on Zulip Malcolm Pradhan (Feb 15 2018 at 22:32):

I'm interested to see how cds-hooks may work for this, particularly issues around the granularity of the hook. Rather than a general event we trigger business logic based on the specific questionnaire items that are involved in the expressions so the business logic is not triggered every time any item is modified. We limit the output of the business logic to hiding/showing question groups and setting calculated items such as a BMI, not dynamically creating new questions.
We found that providing a general "hook" any time a user changed anything on the questionnaire slowed performance on larger questionnaires, but that may be implementation specific, we just starting with React/Redux at the time.

view this post on Zulip Lloyd McKenzie (Feb 15 2018 at 22:37):

Rather than having a hook indicate what questions are to be answered in a single large questionnaire, I'd rather have it indicate what questionnaires are to be answered in a set of small interrelated questionnaires. Otherwise it becomes too hard to validate that the questionnaire response is complete.

view this post on Zulip Grahame Grieve (Feb 15 2018 at 22:49):

you're making a lot of assumptions about who does what.

view this post on Zulip Grahame Grieve (Feb 15 2018 at 22:53):

what i imagined was that each time the user answered a question, the cds-hook would be invoked, which would return the next question, or an indication that the questionnaire was now complete, and a set of recommended actions.

The output would be both the questions and the answers

view this post on Zulip Kevin Olbrich (Feb 15 2018 at 22:57):

Yeah, I can see how that workflow and hook might be useful.

view this post on Zulip Lloyd McKenzie (Feb 15 2018 at 23:54):

So there'd be a new Questionnaire instance and a QuestionnaireResponse every time you answered a Question - and there'd be no "authoritative" Questionnaire - just a custom one the CDS system made up on the fly?

view this post on Zulip Grahame Grieve (Feb 16 2018 at 00:10):

don't know what you think that 'authoritative' means. I was thinking of adding questions on the fly, not making up new questionnaires all the time

view this post on Zulip Lloyd McKenzie (Feb 16 2018 at 01:01):

If there's a new question in the instance, that's a new Questionnaire. In order to validate the QuestionnaireResponse (or have any idea how to render it to allow adjustment), you need to point to the Questionnaire it was created against. If the Questionnaire is created on the fly, then you have a different Questionnaire instance for each QuestionnaireResponse.

view this post on Zulip Malcolm Pradhan (Feb 16 2018 at 01:17):

This sounds like Questionnaire is being used to implement a chatbot. I'm not sure how dialog-based systems are regarded wrt medical record. I guess the current model comes from the traditional hospital form that went through an approval process to be included as part of the medical record, so there is a governance process around the questionnaire and its use.

view this post on Zulip Grahame Grieve (Feb 16 2018 at 01:22):

"If there's a new question in the instance, that's a new Questionnaire".. because....?

view this post on Zulip Grahame Grieve (Feb 16 2018 at 01:23):

"you have a different Questionnaire instance for each QuestionnaireResponse" - yes

view this post on Zulip Lloyd McKenzie (Feb 16 2018 at 02:36):

At minimum it's a new Questionnaire version - and the QuestionnaireResponse would have to point to the specific version

view this post on Zulip Lloyd McKenzie (Feb 16 2018 at 02:36):

If you have a different Questionnaire instances for each QuestionnaireResponse, how can you know that the data from multiple QuestionnaireResponses are comparable?

view this post on Zulip Grahame Grieve (Feb 16 2018 at 03:07):

by the item.definition, if at all

view this post on Zulip Lloyd McKenzie (Feb 16 2018 at 03:12):

That sort of defeats the purpose of using a Questionnaire, I think?

view this post on Zulip Grahame Grieve (Feb 16 2018 at 03:14):

depends what your purpose is

view this post on Zulip Lloyd McKenzie (Feb 16 2018 at 03:59):

What would you do with the answers to a completely custom questionnaire?

view this post on Zulip Grahame Grieve (Feb 16 2018 at 04:12):

store them, display them, use item.definition

view this post on Zulip Chris Moesel (Feb 16 2018 at 14:00):

I'm a little late to the party, and probably saying something everyone already knows, but I will call out that the cqif-Questionnaire defined in Clinical Reasoning allows for callouts to CQL logic to determine if a question should be asked or not. This already provides a lot more flexibility than core Questionnaire since CQL can support arbitrary algorithms (w/ some limitations, of course -- it's not C). That said, it doesn't really support a potential meandering path of questions in a dynamically defined order.

view this post on Zulip Chris Moesel (Feb 16 2018 at 14:00):

http://hl7.org/fhir/STU3/cqif/cqif-questionnaire-definitions.html#cqif-questionnaire.Questionnaire.item.extension:condition

view this post on Zulip Grahame Grieve (Feb 16 2018 at 19:55):

yes, for those doing CQL, this is useful, and a little step along the path, but it's not a workable replacement for a cds-hook for several reasons


Last updated: Apr 12 2022 at 19:14 UTC