Limitations

Vertical Bar | searches

Due to changes to how Amazon API Gateway processes special characters against REST, FHIR Search no longer supports plain text pipe character (|) for any GET request URL query string, and therefore must be URL-encoded.
When using FHIR search syntax, for example, on a Patient.identifier, the user should specify the search with %7C:
<1upServerEndpoint>/Patient?identifier=<system>%7C<idvalue>

Alternative 1: FHIR Post Search Query

Alternatively, FHIR server supports plain text pipe character (|) conventionally to spec through POST search queries.
The following curlscript, for instance, is valid to use FHIR search syntax on a Patient.identifier, where the system/idvalue pair is instead passed in the request body:
curl -X POST -H '<1upServerEndpoint>/Patient/_search' -d 'identifier=<system>|<idvalue>'

Alternative 2: Chaining Conditions

Optionally, additional filtering on the same search can be done by chaining conditions in the request body. This curlscript also searches by when the Patient resource was last changed:
curl -X POST -H '<1upServerEndpoint>/Patient/_search' -d 'identifier=<system>|<idvalue>' -d '_lastUpdated=gt2019'
​
​
​