SGHI FHIR Profile Implementation Guide
0.1.0 - ci-build

SGHI FHIR Profile Implementation Guide, published by Kathurima Kimathi. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/savannahghi/sil_fhir_profile_ig/ and changes regularly. See the Directory of published versions

## Data Type Profile: SGHI ContactPoint

Official URL: https://fhir.slade360.co.ke/fhir/StructureDefinition/contact-point | Version: 0.1.0
Draft as of 2026-05-21 | Computable Name: SGHIContactPoint

A custom contact point with stricter cardinality

Usages:

- Use this DataType Profile: SGHI Location, SGHI Patient, SGHI Practitioner and SGHI PractitionerRole

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

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

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
ContactPoint | C | 0..* | ContactPoint | Details of a Technology mediated contact point (phone, fax, email, etc.) Constraints: cpt-2
system | Σ C | 1..1 | code | phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point.
value | Σ C | 1..1 | string | The actual contact point details
use | ?!Σ | 0..1 | code | home | work | temp | old | mobile - purpose of this contact point Binding: ContactPointUse (required): Use of contact point.
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
ContactPoint.system | Base | required | ContactPointSystem | 📍5.0.0 | FHIR Std.
ContactPoint.use | Base | required | ContactPointUse | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cpt-2 | error | ContactPoint | A system is required if a value is provided. | `value.empty() or system.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`

This structure is derived from ContactPoint

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
ContactPoint |  | 0..* | ContactPoint | Details of a Technology mediated contact point (phone, fax, email, etc.)
system |  | 1..1 | code | phone | fax | email | pager | url | sms | other
value |  | 1..1 | string | The actual contact point details
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
ContactPoint | C | 0..* | ContactPoint | Details of a Technology mediated contact point (phone, fax, email, etc.) Constraints: cpt-2
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
system | Σ C | 1..1 | code | phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point.
value | Σ C | 1..1 | string | The actual contact point details
use | ?!Σ | 0..1 | code | home | work | temp | old | mobile - purpose of this contact point Binding: ContactPointUse (required): Use of contact point.
rank | Σ | 0..1 | positiveInt | Specify preferred order of use (1 = highest)
period | Σ | 0..1 | Period | Time period when the contact point was/is in use
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
ContactPoint.system | Base | required | ContactPointSystem | 📍5.0.0 | FHIR Std.
ContactPoint.use | Base | required | ContactPointUse | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cpt-2 | error | ContactPoint | A system is required if a value is provided. | `value.empty() or system.exists()`
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()`

This structure is derived from ContactPoint

Summary

Mandatory: 2 elements

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
ContactPoint | C | 0..* | ContactPoint | Details of a Technology mediated contact point (phone, fax, email, etc.) Constraints: cpt-2
system | Σ C | 1..1 | code | phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point.
value | Σ C | 1..1 | string | The actual contact point details
use | ?!Σ | 0..1 | code | home | work | temp | old | mobile - purpose of this contact point Binding: ContactPointUse (required): Use of contact point.
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
ContactPoint.system | Base | required | ContactPointSystem | 📍5.0.0 | FHIR Std.
ContactPoint.use | Base | required | ContactPointUse | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cpt-2 | error | ContactPoint | A system is required if a value is provided. | `value.empty() or system.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`

Differential View

This structure is derived from ContactPoint

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
ContactPoint |  | 0..* | ContactPoint | Details of a Technology mediated contact point (phone, fax, email, etc.)
system |  | 1..1 | code | phone | fax | email | pager | url | sms | other
value |  | 1..1 | string | The actual contact point details
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
ContactPoint | C | 0..* | ContactPoint | Details of a Technology mediated contact point (phone, fax, email, etc.) Constraints: cpt-2
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
system | Σ C | 1..1 | code | phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point.
value | Σ C | 1..1 | string | The actual contact point details
use | ?!Σ | 0..1 | code | home | work | temp | old | mobile - purpose of this contact point Binding: ContactPointUse (required): Use of contact point.
rank | Σ | 0..1 | positiveInt | Specify preferred order of use (1 = highest)
period | Σ | 0..1 | Period | Time period when the contact point was/is in use
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
ContactPoint.system | Base | required | ContactPointSystem | 📍5.0.0 | FHIR Std.
ContactPoint.use | Base | required | ContactPointUse | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cpt-2 | error | ContactPoint | A system is required if a value is provided. | `value.empty() or system.exists()`
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()`

This structure is derived from ContactPoint

Summary

Mandatory: 2 elements

Other representations of profile: CSV, Excel, Schematron