How to add Chained parameters on search operation to FHIRServer?
I'm helping our client to pass a Chinese CHIMA FHIR certification, which requires to search encounter by subject(Patient) name.
I noticed that in FHIR specification, chained parameters were included, as below:
In order to save a client from performing a series of search operations, reference parameters may be "chained" by appending them with a period (
.) followed by the name of a search parameter defined for the target resource. This can be done recursively, following a logical path through a graph of related resources, separated by
.. For instance, given that the resource DiagnosticReport has a search parameter named subject, which is usually a reference to a Patient resource, and the Patient resource includes a parameter namewhich searches on patient name, then the search
is a request to return all the lab reports that have a subject whose name includes "peter". Because the Diagnostic Report subject can be one of a set of different resources, it's necessary to limit the search to a particular type:
This request returns all the lab reports that have a subject which is a patient, whose name includes "peter".
Advanced Search Note: Where a chained parameter searches a resource reference that may have more than one type of resource as its target, the parameter chain may end up referring to search parameters with the same name on more than one kind of resource at once. Servers SHOULD reject a search where the logical id refers to more than one matching resource across different types. For example, the client has to specify the type explicitly using the syntax in the second example above.
I wonder whether this feature has already be included in our FHIRServer demo? If not, how can I add such a feature to the existing demo? Thanks.
Another thinking is to add the display value of encounter.subject as a search parameter to pass this certification, so I tried to add a search parameter to HS.FHIR.Repository.Resource.Encounter as following:
<publisher value="Health Level Seven International (Patient Administration)"/>
<description value="Role of participant in encounter"/>
and add the corresponding property to HS.Local.FHIR.Repository.Search.Encounter as following:
Property subjectName As list Of HS.FHIR.Model.Datatype.StringPrimitive;
Unfortunately it is not working. Can you guys share with us some experience? Thanks.