Searching for Data
This section contains information about methods for searching for data in the CDR.
In addition to implementing most of the FHIR Search specification, Smile CDR implements the following extensions:
An additional search parameter called _source
can be used to search for resources based on information about the system or request that created the resource. See Storing Source Information.
Date searches can be performed relative to "now" using the %now
parameter value. For example, to search for Procedures with a date later than now, you can search for /Procedure?date=ge%now
.
Note the '%' would need to be URL escaped so the actual URL will be /Procedure?date=ge%25now
The way this works is Smile substitutes %now
with the current date and time in the standard FHIR format yyyy-MM-ddTHH:mm:ss
before submitting it to the FHIR Storage module.
Similarly date searches can be performed relative to 'today' using the '%today' parameter value. '%today' works the same as '%now' except that it searches as a 'date' type as opposed to a 'dateTime' type.
Smile CDR does not currently support the _containedType
FHIR Search parameter, or the _contained=both
directive. See Index Contained for information on indexing contained resources.
Smile CDR searches may not correctly process :[type]
modifiers if the resource indicated by the modified search parameter is a contained resource. For example, consider the following search.
http://localhost:8000/Observation
Suppose Observation/A
has a reference to Device/B
, which in turn has a reference to Organization/C
, and Organization/C
has the name "HealthOrg". In this case, Observation/A
will not be included in the search result, because the subject
search parameter is restricted to Patient
resources. However, if Observation/D
has a reference to #contained-device
, which also refers to Organization/C
, then Observation/D
will be included in the search result, because we can not apply the type restriction to contained resources.