-
Notifications
You must be signed in to change notification settings - Fork 65
Description
Hi!
I'm working on a CDS service that will provide so-called "CarePlan templates". What this means is:
- A patient has a CarePlan, which describes his or her entire interaction with my country's healthcare system.
- When using different services, this patient may be put on individual "sub-plans". An example would be if the patient is diagnosed with heart disease, at which point some heart disease-related protocol is activated for him, containing some predefined set of steps.
- Some of these steps may be conditional, i.e. the sub-plan may contain forks. My CDS will be used at these forks to read the relevant patient data (most often some fresh measurement data), calculate which path to take next, and return the next steps in the plan. In practice this means that our medical professionals define a complete PlanDefinition for the entire sub-plan, out of which fragments are handed out to the patient in question, one piece at a time, depending on measurement results.
Hopefully my use-case is clear. What I am wondering is: when returning a "plan fragment", say, "perform steps A, B and C and then call decision support", what would actually be a good way to encode this action of calling the CDS? We are naturally using CDS hooks. Is there some obvious resource to do this in? Usually, for other actions, we only return ActivityDefinitions, since the actions will be further "enriched" by the calling service before the actions get turned into more precise FHIR resources.
The simplest way would be to just have an ActivityDefinition with a code containing the hook name. However, we also need to pass in the "fork ID" so the CDS knows which fork we are at. Creating one hook per fork seems a bit counterproductive, I'd rather have one hook, e.g. evaluate-template-fork
and a parameter forkId
with some unique string. Where would I put this parameter in a CDS hook call?