DataRequirement interpretation


Hi everyone,

We are implementing a CDS system, using FHIR as data model. We would like to use the DataRequirement type to ask for additional information to evaluate a knowledge module, but we are having some difficulties to understand some of its elements. In particular:

  • mustSupport: this element is of “String” type, however we don’t know what is the format to indicate the specific structure the data that is being required should support.
  • codeFilter.path: the same as before. Moreover, could we specify filters to nested elements.

Can anyone help us with this issue? Examples of use would be appreciated!

Thanks in advance.



mustSupport is expected to be the name of an element, or a path to an element on the data type, and it indicates that the knowledge module will use that element as part of it’s evaluation. So, for example on a Patient DataRequirement, mustSupport of “gender” would indicate that the knowledge module uses gender to perform it’s calculations.

For the various path elements, the same approach is taken, it’s just the name of the element, or a path to an element. For paths, use dot invocation to traverse through an element.

There is a nuance here that we are still working through, whether the filter paths should use a search parameter name, or should be expressed in terms of the elements of the data type. Right now, the examples in the spec use the names of elements of the data type, which means that implementations have to determine how those names map to search parameters in order to provide indexed access. We’re actively seeking implementation feedback on that aspect.

I hope this helps


Thank you for your response, Bryn.

Sorry, but we still have some doubts in regard to the “codeFilter” element.
I have been searching some examples from the FHIR specification, and I’ve tried to follow the “path” in the resource object. I attach below an image with an example and the specification of the resource “MedicationRequest” that is being addressed in this example. Could you please try to explain me over this example how to traverse throw the elements? What is the element “code” from the path refering to?

Thanks in advance for your help.