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

Extension: WhatsApp Phone Number ID (Experimental)

Official URL: https://projo.evoleen.com/fhir/StructureDefinition/wa-phone-number-id Version: 0.1.0
Draft as of 2024-01-01 Computable Name: WaPhoneNumberId

Copyright/Legal: Copyright (c) Projo. Licensed under CC0-1.0 (public domain dedication). FHIR(R) is the registered trademark of HL7 and is used with permission. This IG references WhatsApp(R), a trademark of Meta Platforms, Inc., for descriptive purposes only.

Cached Meta Phone Number ID for the Organization's WhatsApp number. Set by two writers: (1) the orchestrator's upsertOrganizationFromInboundBusinessPhone on the unresolved-receiver path (from the reverse CR's inbound-business-phone-id extension); (2) the sidecar's ensureWhatsAppPhoneNumberId on the first outbound dispatch — queries Meta Graph API GET /{WABA-ID}/phone_numbers, matches by normalized E.164 digits, caches back to Organization. Read by the sidecar on every outbound dispatch to skip the Graph API lookup. No active refresh — if the cached value becomes stale (e.g. Meta rotates the phone-number-id), WhatsApp sends fail and an operator must clear the extension.

Documentation-only artifact. Projo's runtime extensions, code systems, identifier systems and search parameter are TypeScript constants and bootstrap-time resources, NOT deployed StructureDefinitions. This StructureDefinition exists to document the contract; the source of truth is src/functions/src/lib/fhir/types.ts and docs/FHIR_EXTENSIONS.md.

Context of Use

    This extension may be used on the following element(s)

Usage info

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Extension Content

Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.

This structure is derived from Extension

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension 0..* Extension WhatsApp Phone Number ID
... extension 0..0 Extension
... url 1..1 uri "https://projo.evoleen.com/fhir/StructureDefinition/wa-phone-number-id"
... value[x] 1..1 string Value of extension

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension 0..* Extension WhatsApp Phone Number ID
... id 0..1 string Unique id for inter-element referencing
... extension 0..0 Extension
Slice: Unordered, Open by value:url
... url 1..1 uri "https://projo.evoleen.com/fhir/StructureDefinition/wa-phone-number-id"

doco Documentation for this format

This structure is derived from Extension

Summary

Simple Extension with the type string: Cached Meta Phone Number ID for the Organization's WhatsApp number. Set by two writers: (1) the orchestrator's upsertOrganizationFromInboundBusinessPhone on the unresolved-receiver path (from the reverse CR's inbound-business-phone-id extension); (2) the sidecar's ensureWhatsAppPhoneNumberId on the first outbound dispatch — queries Meta Graph API GET /{WABA-ID}/phone_numbers, matches by normalized E.164 digits, caches back to Organization. Read by the sidecar on every outbound dispatch to skip the Graph API lookup. No active refresh — if the cached value becomes stale (e.g. Meta rotates the phone-number-id), WhatsApp sends fail and an operator must clear the extension.

Differential View

This structure is derived from Extension

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension 0..* Extension WhatsApp Phone Number ID
... extension 0..0 Extension
... url 1..1 uri "https://projo.evoleen.com/fhir/StructureDefinition/wa-phone-number-id"
... value[x] 1..1 string Value of extension

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension 0..* Extension WhatsApp Phone Number ID
... id 0..1 string Unique id for inter-element referencing
... extension 0..0 Extension
Slice: Unordered, Open by value:url
... url 1..1 uri "https://projo.evoleen.com/fhir/StructureDefinition/wa-phone-number-id"

doco Documentation for this format

This structure is derived from Extension

Summary

Simple Extension with the type string: Cached Meta Phone Number ID for the Organization's WhatsApp number. Set by two writers: (1) the orchestrator's upsertOrganizationFromInboundBusinessPhone on the unresolved-receiver path (from the reverse CR's inbound-business-phone-id extension); (2) the sidecar's ensureWhatsAppPhoneNumberId on the first outbound dispatch — queries Meta Graph API GET /{WABA-ID}/phone_numbers, matches by normalized E.164 digits, caches back to Organization. Read by the sidecar on every outbound dispatch to skip the Graph API lookup. No active refresh — if the cached value becomes stale (e.g. Meta rotates the phone-number-id), WhatsApp sends fail and an operator must clear the extension.

 

Other representations of profile: CSV, Excel, Schematron

Constraints

Id Grade Path(s) Description Expression
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()