Projo FHIR Documentation
0.1.0 - ci-build Switzerland flag

Projo FHIR Documentation - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Search Parameters

Search Parameters

Projo defines exactly ONE custom SearchParameter. The rest of the project relies on HAPI's stock search parameters.

Custom SearchParameter: CommunicationRequest-web-answer-token

Property Value
URL https://projo.evoleen.com/fhir/SearchParameter/CommunicationRequest-web-answer-token
Code web-answer-token
Base CommunicationRequest
Type string
Expression CommunicationRequest.extension.where(url = '…/web-answer-token').value

The web-functions sweeper auto-creates this SearchParameter on first tick. After create/update of the SearchParameter, it triggers a $reindex on CommunicationRequest so existing instances pick up the new index.

Web-functions use this parameter to look up the CommunicationRequest a patient is submitting answers for, given the bearer token carried in the web POST.

Why no other custom SearchParameters

Projo relies on HAPI's stock search parameters. Notably, HAPI does NOT auto-index CommunicationRequest.about (referenced internally as HAPI-0524). This is why the CR↔Task link is carried via Task.output[] instead of relying on ?about= searches.

Common search patterns used by Projo

Inbound idempotency

Communication?identifier=<wamid-system>|<wamid>

Prevents duplicate inbound WhatsApp messages from creating duplicate Communications.

24h window lookup

Communication?recipient=...&status=in-progress,completed&_sort=-sent&_count=1

Fetches the most recent Communication for a recipient within the 24-hour WhatsApp messaging window.

Active CommunicationRequest lookup

CommunicationRequest?recipient=Patient/{id}&status=active

Looks up any active CommunicationRequest targeting a given patient.

Reverse CR subscription (identity resolution)

CommunicationRequest?status=active&category=identity-resolution-required

Used by the identity-resolution-events subscription to surface CRs that require identity resolution.

CR status events subscription

CommunicationRequest?status=completed,revoked&category:not=identity-resolution

Used by the cr-status-events subscription to track terminal state transitions on CommunicationRequests.

CarePlan bootstrap subscription

CarePlan?status=active&_tag:not=careplan-scheduling|scheduled

Used by the careplan-bootstrap subscription to pick up active CarePlans that have not yet been scheduled by Fire Arrow.

Subscription reconciliation by tag

Organization?_tag=managed-subscription|<code>

Each app's sweeper reconciles its own Subscription by _tag search (always indexed in HAPI), rather than by criteria.

Extraction idempotency

Observation?identifier=<extracted-resource-system>|<value>

Prevents duplicate Observations from being created by the extraction pipeline for the same source resource.