Projo FHIR Documentation
0.1.0 - ci-build
Projo FHIR Documentation - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Projo defines extensions under two namespaces:
| Namespace | Used for |
|---|---|
https://projo.evoleen.com/fhir/StructureDefinition/ |
Projo-owned orchestration extensions (hardcoded) |
https://firearrow.io/fhir/StructureDefinition/ |
Transport-shared extensions (configurable via EXTENSION_BASE_URL; default firearrow.io) |
The firearrow.io namespace is reserved by the Fire Arrow FHIR server. Projo
writes into it at runtime because the orchestrator and sidecar share the same
FHIR server and must agree on transport-layer URLs; the base is overridable for
test environments that run against a different Fire Arrow deployment.
This page is the catalog. Each extension also has a dedicated artifact page linked from the Artifacts menu of this IG.
| URL | Value type | Description |
|---|---|---|
https://projo.evoleen.com/fhir/StructureDefinition/delivery-time |
valueDateTime |
Stamps the actual delivery instant of the outbound communication referenced by the Task. This is the only active Task extension; all other Task state lives on Task.businessStatus and Task.output. |
| URL | Value type | Description |
|---|---|---|
https://projo.evoleen.com/fhir/StructureDefinition/last-used-messaging-channel |
valueCode |
The messaging channel the patient last used to send an inbound (a communication-medium code). Stamped at Patient creation and updated on channel change. Read by buildOutboundCR to default the next outbound CR's medium (precedence: override > last-used > default). |
https://projo.evoleen.com/fhir/StructureDefinition/opted-out |
valueDateTime |
Timestamp marking that the patient opted out via a STOP command. Read by the opt-out guards to suppress plan application / re-engagement. |
| URL | Value type | Description |
|---|---|---|
https://projo.evoleen.com/fhir/StructureDefinition/web-answer-token |
valueString |
SHA-256 hash of the bearer token used to access the web answer channel. Set by the orchestrator when a CommunicationRequest is routed to the web channel (ADR 0011). The plaintext token is never stored. |
https://projo.evoleen.com/fhir/StructureDefinition/next-reminder-timestamp |
valueDateTime |
Orchestrator-owned reminder schedule. The orchestrator writes the next planned reminder time; the sidecar reads it and fires the reminder when due. |
| URL | Value type | Description |
|---|---|---|
https://firearrow.io/fhir/StructureDefinition/last-inbound-message-timestamp |
valueDateTime |
Sidecar transport stamp. Updated by the sidecar on every inbound message addressed to the CommunicationRequest's conversation. |
https://firearrow.io/fhir/StructureDefinition/web-answer-link |
valueUrl |
Web answer hosting URL. Populated when a CommunicationRequest is answered via the web channel. |
https://firearrow.io/fhir/StructureDefinition/inbound-sender-bsuid |
valueString |
Reverse CommunicationRequest: sender BSUID (WhatsApp business-scoped user id). |
https://firearrow.io/fhir/StructureDefinition/inbound-sender-profile-name |
valueString |
Reverse CommunicationRequest: sender profile name as reported by WhatsApp. |
https://firearrow.io/fhir/StructureDefinition/inbound-business-phone |
valueString |
Reverse CommunicationRequest: receiving business phone number (E.164). |
https://firearrow.io/fhir/StructureDefinition/inbound-business-phone-id |
valueString |
Reverse CommunicationRequest: receiving Meta Phone Number ID. |
https://firearrow.io/fhir/StructureDefinition/inbound-message-timestamp |
valueDateTime |
Reverse CommunicationRequest: original inbound event time. |
https://firearrow.io/fhir/StructureDefinition/identity-resolution-reason |
valueCode |
Reverse CommunicationRequest: reason code from the identity-resolution-reason code system. |
https://firearrow.io/fhir/StructureDefinition/waba-account-id (on CommunicationRequest) |
valueString |
Reverse CommunicationRequest: WABA account ID that received the inbound message. |
| URL | Namespace | Value type | Description |
|---|---|---|---|
https://projo.evoleen.com/fhir/StructureDefinition/plan-slot |
projo | Complex (repeating) | Two fields: kind (code, from plan-slot-kind code system) + planDefinition (canonical). Declares which PlanDefinition the organization is enrolled in for a given slot. ADR 0002 (plan slots), ADR 0007 (multi-slot). |
https://projo.evoleen.com/fhir/StructureDefinition/default-plan |
projo | valueCanonical |
Legacy / read-fallback. The pre-ADR-0007 single-slot default plan. Retained for read-back of older organizations; new writes use plan-slot. |
https://projo.evoleen.com/fhir/StructureDefinition/preferred-language |
projo | valueString |
Organization's preferred patient-facing language, ISO 639-1 code. |
https://firearrow.io/fhir/StructureDefinition/wa-phone-number-id |
firearrow | valueString |
Cached Meta Phone Number ID for outbound messaging. Refreshed by the sidecar. |
https://firearrow.io/fhir/StructureDefinition/waba-account-id |
firearrow | valueString |
WABA account ID for the organization. Multi-WABA support (issue #238). |
https://firearrow.io/fhir/StructureDefinition/waba-template-invitation |
firearrow | valueString |
Per-organization WhatsApp template name override for invitations. |
https://firearrow.io/fhir/StructureDefinition/waba-template-reminder |
firearrow | valueString |
Per-organization WhatsApp template name override for reminders. |
https://firearrow.io/fhir/StructureDefinition/waba-template-web-invitation |
firearrow | valueString |
Per-organization WhatsApp template name override for web-channel invitations. |
https://firearrow.io/fhir/StructureDefinition/waba-template-web-reminder |
firearrow | valueString |
Per-organization WhatsApp template name override for web-channel reminders. |
| URL | Value type | Description |
|---|---|---|
https://projo.evoleen.com/fhir/StructureDefinition/extraction-writeback |
Complex | Declares how extracted resources are written back to the subject. Two fields: target (code, from extraction-writeback-target code system: subject) + mode (code, from extraction-writeback-mode code system: fill-if-empty). ADR 0010. |
The following extensions are no longer written by current code but may still be present on older resources. They are documented for historical context and for migration tooling that must read them.
| URL | Value type | Description |
|---|---|---|
https://firearrow.io/fhir/StructureDefinition/wa-conversation-status |
valueCode |
WhatsApp conversation window status. Replaced by Task.businessStatus. |
https://firearrow.io/fhir/StructureDefinition/wa-current-link-id |
valueString |
Current web answer link id. Replaced by the web channel extensions. |
https://firearrow.io/fhir/StructureDefinition/wa-last-outbound-message-id |
valueString |
Last outbound WhatsApp message id (wamid). Superseded by Communication linkage. |
https://firearrow.io/fhir/StructureDefinition/wa-last-inbound-message-id |
valueString |
Last inbound WhatsApp message id (wamid). Superseded by Communication linkage. |
https://firearrow.io/fhir/StructureDefinition/wa-last-activity-timestamp |
valueDateTime |
Last WhatsApp activity timestamp. Replaced by last-inbound-message-timestamp on the CommunicationRequest. |
https://firearrow.io/fhir/StructureDefinition/wa-last-reminder-timestamp |
valueDateTime |
Last reminder sent timestamp. Replaced by next-reminder-timestamp on the CommunicationRequest. |
https://firearrow.io/fhir/StructureDefinition/wa-attempt-count |
valueInteger |
Outbound delivery attempt counter. Replaced by Task retry logic. |
https://firearrow.io/fhir/StructureDefinition/wa-error-code |
valueString |
Last WhatsApp API error code. Replaced by Task.status = failed + Task.statusReason. |
https://firearrow.io/fhir/StructureDefinition/wa-error-detail |
valueString |
Last WhatsApp API error detail. Replaced by Task.status = failed + Task.statusReason. |
| URL | Value type | Description |
|---|---|---|
https://firearrow.io/fhir/StructureDefinition/wa-last-user-message-ts |
valueDateTime |
Last inbound message timestamp from the patient. Replaced by the sidecar stamping last-inbound-message-timestamp on the CommunicationRequest. |
https://firearrow.io/fhir/StructureDefinition/wa-last-sender-phone-number-id |
valueString |
Last sender's Meta Phone Number ID. Replaced by inbound-business-phone-id on the reverse CommunicationRequest. |