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
| Official URL: https://projo.evoleen.com/fhir/StructureDefinition/identity-resolution-reason | Version: 0.1.0 | |||
| Draft as of 2024-01-01 | Computable Name: IdentityResolutionReason | |||
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. |
||||
Reason code stamped on a reverse CommunicationRequest (category=identity-resolution-required) explaining why the sidecar could not attach an inbound message to an existing identity. Set by the sidecar. Codes: no-match (no existing identity matches sender's phone or BSUID), multiple-matches (more than one identity matches), non-conversational-only (matches exist but none of a conversational type — walk Person.link), no-active-cr (identity matched but no active CommunicationRequest to attach to), unresolved-receiver (receiver Organization unknown — upsert stub). Read by the orchestrator to decide its response (create identity, refuse, walk Person.link, reattach, upsert stub Organization).
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)
CommunicationRequest
Usage info
Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.
This structure is derived from Extension
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Extension | Identity Resolution Reason | |
![]() ![]() |
0..0 | Extension | ||
![]() ![]() |
1..1 | uri | "https://projo.evoleen.com/fhir/StructureDefinition/identity-resolution-reason" | |
![]() ![]() |
0..1 | code | Value of extension Binding: Projo Identity Resolution Reason Value Set (required) | |
Documentation for this format | ||||
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Extension | Identity Resolution Reason | |
![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() |
0..0 | Extension Slice: Unordered, Open by value:url | ||
![]() ![]() |
1..1 | uri | "https://projo.evoleen.com/fhir/StructureDefinition/identity-resolution-reason" | |
![]() ![]() |
0..1 | code | Value of extension Binding: Projo Identity Resolution Reason Value Set (required) | |
Documentation for this format | ||||
This structure is derived from Extension
Summary
Simple Extension with the type code: Reason code stamped on a reverse CommunicationRequest (category=identity-resolution-required) explaining why the sidecar could not attach an inbound message to an existing identity. Set by the sidecar. Codes: no-match (no existing identity matches sender's phone or BSUID), multiple-matches (more than one identity matches), non-conversational-only (matches exist but none of a conversational type — walk Person.link), no-active-cr (identity matched but no active CommunicationRequest to attach to), unresolved-receiver (receiver Organization unknown — upsert stub). Read by the orchestrator to decide its response (create identity, refuse, walk Person.link, reattach, upsert stub Organization).
Differential View
This structure is derived from Extension
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Extension | Identity Resolution Reason | |
![]() ![]() |
0..0 | Extension | ||
![]() ![]() |
1..1 | uri | "https://projo.evoleen.com/fhir/StructureDefinition/identity-resolution-reason" | |
![]() ![]() |
0..1 | code | Value of extension Binding: Projo Identity Resolution Reason Value Set (required) | |
Documentation for this format | ||||
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Extension | Identity Resolution Reason | |
![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() |
0..0 | Extension Slice: Unordered, Open by value:url | ||
![]() ![]() |
1..1 | uri | "https://projo.evoleen.com/fhir/StructureDefinition/identity-resolution-reason" | |
![]() ![]() |
0..1 | code | Value of extension Binding: Projo Identity Resolution Reason Value Set (required) | |
Documentation for this format | ||||
This structure is derived from Extension
Summary
Simple Extension with the type code: Reason code stamped on a reverse CommunicationRequest (category=identity-resolution-required) explaining why the sidecar could not attach an inbound message to an existing identity. Set by the sidecar. Codes: no-match (no existing identity matches sender's phone or BSUID), multiple-matches (more than one identity matches), non-conversational-only (matches exist but none of a conversational type — walk Person.link), no-active-cr (identity matched but no active CommunicationRequest to attach to), unresolved-receiver (receiver Organization unknown — upsert stub). Read by the orchestrator to decide its response (create identity, refuse, walk Person.link, reattach, upsert stub Organization).
Other representations of profile: CSV, Excel, Schematron
| Path | Status | Usage | ValueSet | Version | Source |
| Extension.value[x] | Base | required | Projo Identity Resolution Reason Value Set | 📦0.1.0 | This IG |
| 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()
|