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

Resource Profile: SGHIDocumentReference - Detailed Descriptions

Draft as of 2025-09-04

Definitions for the sghi-documentreference resource profile.

Guidance on how to interpret the contents of this table can be foundhere

0. DocumentReference
Definition

A reference to a document of any kind for any purpose. While the term “document” implies a more narrow focus, for this resource this "document" encompasses any serialized object with a mime-type, it includes formal patient-centric documents (CDA), clinical notes, scanned paper, non-patient specific documents like policy text, as well as a photo, video, or audio recording acquired or used in healthcare. The DocumentReference resource provides metadata about the document so that the document can be discovered and managed. The actual content may be inline base64 encoded data or provided by direct reference.

ShortA reference to a document
Comments

Usually, this is used for documents other than those defined by FHIR.

Control0..*
Is Modifierfalse
Must Supportfalse
Summaryfalse
InvariantsdocRef-1: facilityType SHALL only be present if context is not an encounter (facilityType.empty() or context.where(resolve() is Encounter).empty())
docRef-2: practiceSetting SHALL only be present if context is not present (practiceSetting.empty() or context.where(resolve() is Encounter).empty())
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources (contained.contained.empty())
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource (contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty())
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated (contained.meta.versionId.empty() and contained.meta.lastUpdated.empty())
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label (contained.meta.security.empty())
dom-6: A resource should have narrative for robust management (text.`div`.exists())
2. DocumentReference.implicitRules
Definition

A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.

ShortA set of rules under which this content was created
Comments

Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of its narrative along with other profiles, value sets, etc.

Control0..1
Typeuri
Is Modifiertrue because This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies its meaning or interpretation
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supportfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
4. DocumentReference.contained
Definition

These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.

ShortContained, inline Resources
Comments

This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags in their meta elements, but SHALL NOT have security labels.

Control0..*
This element is affected by the following invariants: dom-2, dom-4, dom-3, dom-5
TypeResource
Is Modifierfalse
Must Supportfalse
Summaryfalse
Alternate Namesinline resources, anonymous resources, contained resources
6. DocumentReference.modifierExtension
Definition

May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

ShortExtensions that cannot be ignored
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control0..*
TypeExtension
Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them
Must Supportfalse
Summarytrue
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
8. DocumentReference.identifier
Definition

Other business identifiers associated with the document, including version independent identifiers.

ShortBusiness identifiers for the document
Comments

The structure and format of this identifier would be consistent with the specification corresponding to the format of the document. (e.g. for a DICOM standard document, a 64-character numeric UID; for an HL7 CDA format, the CDA Document Id root and extension).

NoteThis is a business identifier, not a resource identifier (see discussion)
Control10..*
TypeIdentifier
Is Modifierfalse
Must Supportfalse
Summarytrue
Requirements

Document identifiers usually assigned by the source of the document, or other business identifiers such as XDS DocumentEntry.uniqueId and DocumentEntry.entryUUID. These identifiers are specific to this instance of the document.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
10. DocumentReference.identifier.use
Definition

The purpose of this identifier.

Shortusual | official | temp | secondary | old (If known)
Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

Control0..1
BindingThe codes SHALL be taken from IdentifierUsehttp://hl7.org/fhir/ValueSet/identifier-use|5.0.0
(required to http://hl7.org/fhir/ValueSet/identifier-use)
Typecode
Is Modifiertrue because This is labeled as "Is Modifier" because applications should not mistake a temporary id for a permanent one.
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
12. DocumentReference.identifier.type
Definition

A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.

ShortDescription of identifier
Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

Control0..1
BindingThe codes SHALL be taken from Unless not suitable, these codes SHALL be taken from SGHI Standard Identifier Typeshttp://hl7.org/fhir/ValueSet/identifier-type
(required to https://fhir.slade360.co.ke/fhir/ValueSet/sghi-identifier-types)
TypeCodeableConcept(SGHI CodeableConcept)
Is Modifierfalse
Summarytrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
14. DocumentReference.identifier.system
Definition

Establishes the namespace for the value - that is, an absolute URL that describes a set values that are unique.

ShortThe namespace for the identifier value
Comments

Identifier.system is always case sensitive.

Control10..1
Typeuri
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

ExampleGeneral: http://www.acme.com/identifiers/patient
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
16. DocumentReference.identifier.value
Definition

The portion of the identifier typically relevant to the user and which is unique within the context of the system.

ShortThe value that is unique
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the http://hl7.org/fhir/StructureDefinition/rendered-value). Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Control10..1
This element is affected by the following invariants: ident-1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
ExampleGeneral: 123456
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
18. DocumentReference.identifier.assigner
Definition

Organization that issued/manages the identifier.

ShortOrganization that issued id (may be just text)
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

Control10..1
TypeReference(SGHI Reference)(SGHI Organization, Organization)
Is Modifierfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
20. DocumentReference.basedOn
Definition

A procedure that is fulfilled in whole or in part by the creation of this media.

ShortProcedure that caused this media to be created
Control0..*
TypeReference(SGHI Reference)(SGHI Appointment Profile, SGHI MedicationRequest, SGHI ServiceRequest, Appointment, AppointmentResponse, CarePlan, Claim, CommunicationRequest, Contract, CoverageEligibilityRequest, DeviceRequest, EnrollmentRequest, ImmunizationRecommendation, MedicationRequest, NutritionOrder, RequestOrchestration, ServiceRequest, SupplyRequest, VisionPrescription)
Is Modifierfalse
Must Supportfalse
Summaryfalse
Requirements

Allows tracing of authorization for the event and tracking whether proposals/recommendations were acted upon.

Alternate Namesfulfills
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
22. DocumentReference.status
Definition

The status of this document reference.

Shortcurrent | superseded | entered-in-error
Comments

This is the status of the DocumentReference object, which might be independent from the docStatus element.

This element is labeled as a modifier because the status contains the codes that mark the document or reference as not currently valid.

Control1..1
BindingThe codes SHALL be taken from DocumentReferenceStatushttp://hl7.org/fhir/ValueSet/document-reference-status|5.0.0
(required to http://hl7.org/fhir/ValueSet/document-reference-status|5.0.0)

The status of the document reference.

Typecode
Is Modifiertrue because This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supportfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
24. DocumentReference.docStatus
Definition

The status of the underlying document.

Shortregistered | partial | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | deprecated | unknown
Comments

The document that is pointed to might be in various lifecycle states.

Control10..1
BindingThe codes SHALL be taken from CompositionStatushttp://hl7.org/fhir/ValueSet/composition-status|5.0.0
(required to http://hl7.org/fhir/ValueSet/composition-status|5.0.0)

Status of the underlying document.

Typecode
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supportfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
26. DocumentReference.modality
Definition

Imaging modality used. This may include both acquisition and non-acquisition modalities.

ShortImaging modality used
Control0..*
BindingUnless not suitable, these codes SHALL be taken from Modality .http://dicom.nema.org/medical/dicom/current/output/chtml/part16/sect_CID_33.html
(extensible to http://dicom.nema.org/medical/dicom/current/output/chtml/part16/sect_CID_33.html)

Type of acquired data in the instance.

TypeCodeableConcept(SGHI CodeableConcept)
Is Modifierfalse
Must Supportfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
28. DocumentReference.type
Definition

Specifies the particular kind of document referenced (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the document referenced.

ShortKind of document (LOINC if possible)
Comments

Key metadata element describing the document that describes he exact type of document. Helps humans to assess whether the document is of interest when viewing a list of documents.

Control10..1
BindingThe codes SHALL be taken from The codes SHOULD be taken from FHIRDocumentTypeCodeshttp://hl7.org/fhir/ValueSet/doc-typecodes
(required to http://hl7.org/fhir/ValueSet/doc-typecodes)
TypeCodeableConcept(SGHI CodeableConcept)
Is Modifierfalse
Must Supportfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
30. DocumentReference.category
Definition

A categorization for the type of document referenced - helps for indexing and searching. This may be implied by or derived from the code specified in the DocumentReference.type.

ShortCategorization of document
Comments

Key metadata element describing the the category or classification of the document. This is a broader perspective that groups similar documents based on how they would be used. This is a primary key used in searching.

Control0..*
BindingFor example codes, see ReferencedItemCategoryValueSethttp://hl7.org/fhir/ValueSet/referenced-item-category
(example to http://hl7.org/fhir/ValueSet/referenced-item-category)

High-level kind of document at a macro level.

TypeCodeableConcept(SGHI CodeableConcept)
Is Modifierfalse
Must Supportfalse
Summarytrue
Alternate Namesclass, classCode
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
32. DocumentReference.subject
Definition

Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).

ShortWho/what is the subject of the document
Control10..1
TypeReference(SGHI Reference)(SGHI Patient, Resource)
Is Modifierfalse
Must Supportfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
34. DocumentReference.context
Definition

Describes the clinical encounter or type of care that the document content is associated with.

ShortContext of the document content
Control10..*
This element is affected by the following invariants: docRef-1, docRef-2
TypeReference(SGHI Reference)(SGHI Appointment Profile, SGHI Encounter, SGHI EpisodeOfCare, Appointment, Encounter, EpisodeOfCare)
Is Modifierfalse
Must Supportfalse
Summaryfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
36. DocumentReference.event
Definition

This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the type Code, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act.

ShortMain clinical acts documented
Comments

An event can further specialize the act inherent in the type, such as where it is simply "Procedure Report" and the procedure was a "colonoscopy". If one or more event codes are included, they shall not conflict with the values inherent in the class or type elements as such a conflict would create an ambiguous situation.

Control0..*
BindingFor example codes, see v3 Code System ActCodehttp://terminology.hl7.org/ValueSet/v3-ActCode
(example to http://terminology.hl7.org/ValueSet/v3-ActCode)

This list of codes represents the main clinical acts being documented.

TypeCodeableReference(SGHI CodeableReference)
Is Modifierfalse
Must Supportfalse
Summaryfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
38. DocumentReference.bodySite
Definition

The anatomic structures included in the document.

ShortBody part included
Control0..*
BindingThe codes SHALL be taken from For example codes, see All LOINC Codeshttp://hl7.org/fhir/ValueSet/body-site
(required to https://fhir.slade360.co.ke/fhir/ValueSet/all-loinc-codes)
TypeCodeableReference(SGHI CodeableReference)(BodyStructure)
Is Modifierfalse
Must Supportfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
40. DocumentReference.facilityType
Definition

The kind of facility where the patient was seen.

ShortKind of facility where patient was seen
Control0..1
This element is affected by the following invariants: docRef-1
BindingFor example codes, see FacilityTypeCodeValueSethttp://hl7.org/fhir/ValueSet/c80-facilitycodes
(example to http://hl7.org/fhir/ValueSet/c80-facilitycodes)

XDS Facility Type.

TypeCodeableConcept(SGHI CodeableConcept)
Is Modifierfalse
Must Supportfalse
Summaryfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
42. DocumentReference.practiceSetting
Definition

This property may convey specifics about the practice setting where the content was created, often reflecting the clinical specialty.

ShortAdditional details about where the content was created (e.g. clinical specialty)
Comments

This element should be based on a coarse classification system for the class of specialty practice. Recommend the use of the classification system for Practice Setting, such as that described by the Subject Matter Domain in LOINC.

Control0..1
This element is affected by the following invariants: docRef-2
BindingFor example codes, see PracticeSettingCodeValueSethttp://hl7.org/fhir/ValueSet/c80-practice-codes
(example to http://hl7.org/fhir/ValueSet/c80-practice-codes)

Additional details about where the content was created (e.g. clinical specialty).

TypeCodeableConcept(SGHI CodeableConcept)
Is Modifierfalse
Must Supportfalse
Summaryfalse
Requirements

This is an important piece of metadata that providers often rely upon to quickly sort and/or filter out to find specific content.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
44. DocumentReference.date
Definition

When the document reference was created.

ShortWhen this document reference was created
Comments

Referencing/indexing time is used for tracking, organizing versions and searching.

Control10..1
Typeinstant
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supportfalse
Summarytrue
Alternate Namesindexed
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
46. DocumentReference.author
Definition

Identifies who is responsible for adding the information to the document.

ShortWho and/or what authored the document
Comments

Not necessarily who did the actual data entry (i.e. typist) or who was the source (informant).

Control10..1*
TypeReference(SGHI Reference)(SGHI Organization, SGHI PractitionerRole, SGHI Practitioner, SGHI Patient, Practitioner, PractitionerRole, Organization, Device, Patient, RelatedPerson, CareTeam)
Is Modifierfalse
Must Supportfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
48. DocumentReference.custodian
Definition

Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.

ShortOrganization which maintains the document
Comments

Identifies the logical organization (software system, vendor, or department) to go to find the current version, where to report issues, etc. This is different from the physical location (URL, disk drive, or server) of the document, which is the technical location of the document, which host may be delegated to the management of some other organization.

Control10..1
TypeReference(SGHI Reference)(SGHI Organization, Organization)
Is Modifierfalse
Must Supportfalse
Summaryfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
50. DocumentReference.securityLabel
Definition

A set of Security-Tag codes specifying the level of privacy/security of the Document found at DocumentReference.content.attachment.url. Note that DocumentReference.meta.security contains the security labels of the data elements in DocumentReference, while DocumentReference.securityLabel contains the security labels for the document the reference refers to. The distinction recognizes that the document may contain sensitive information, while the DocumentReference is metadata about the document and thus might not be as sensitive as the document. For example: a psychotherapy episode may contain highly sensitive information, while the metadata may simply indicate that some episode happened.

ShortDocument security-tags
Comments

The confidentiality codes can carry multiple vocabulary items. HL7 has developed an understanding of security and privacy tags that might be desirable in a Document Sharing environment, called HL7 Healthcare Privacy and Security Classification System (HCS). The following specification is recommended but not mandated, as the vocabulary bindings are an administrative domain responsibility. The use of this method is up to the policy domain such as the XDS Affinity Domain or other Trust Domain where all parties including sender and recipients are trusted to appropriately tag and enforce.

In the HL7 Healthcare Privacy and Security Classification (HCS) there are code systems specific to Confidentiality, Sensitivity, Integrity, and Handling Caveats. Some values would come from a local vocabulary as they are related to workflow roles and special projects.

Control0..*
BindingFor example codes, see SecurityLabelExampleshttp://hl7.org/fhir/ValueSet/security-label-examples
(example to http://hl7.org/fhir/ValueSet/security-label-examples)

Example Security Labels from the Healthcare Privacy and Security Classification System.

TypeCodeableConcept(SGHI CodeableConcept)
Is Modifierfalse
Must Supportfalse
Summarytrue
Requirements

Use of the Health Care Privacy/Security Classification (HCS) system of security-tag use is recommended.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
52. DocumentReference.content
Definition

The document and format referenced. If there are multiple content element repetitions, these must all represent the same document in different format, or attachment metadata.

ShortDocument referenced
Comments

content element shall not contain different versions of the same content. For version handling use multiple DocumentReference with .relatesTo.

Control1..*
TypeBackboneElement
Is Modifierfalse
Must Supportfalse
Summarytrue
Requirements

Note that .relatesTo may also include references to other DocumentReference with a transforms relationship to represent the same document in multiple formats.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
54. DocumentReference.content.modifierExtension
Definition

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

ShortExtensions that cannot be ignored even if unrecognized
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control0..*
TypeExtension
Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
Summarytrue
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Alternate Namesextensions, user content, modifiers
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
56. DocumentReference.content.attachment
Definition

The document or URL of the document along with critical metadata to prove content has integrity.

ShortWhere to access the document
Control1..1
TypeAttachment
Is Modifierfalse
Must Supportfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))

Guidance on how to interpret the contents of this table can be foundhere

0. DocumentReference
2. DocumentReference.identifier
NoteThis is a business identifier, not a resource identifier (see discussion)
Control1..?
4. DocumentReference.identifier.use
BindingThe codes SHALL be taken from IdentifierUse
(required to http://hl7.org/fhir/ValueSet/identifier-use)
6. DocumentReference.identifier.type
BindingThe codes SHALL be taken from SGHI Standard Identifier Types
(required to https://fhir.slade360.co.ke/fhir/ValueSet/sghi-identifier-types)
TypeCodeableConcept(SGHI CodeableConcept)
8. DocumentReference.identifier.system
Control1..?
10. DocumentReference.identifier.value
Control1..?
12. DocumentReference.identifier.assigner
Control1..?
TypeReference(SGHI Reference)(SGHI Organization)
14. DocumentReference.basedOn
TypeReference(SGHI Reference)(SGHI Appointment Profile, SGHI MedicationRequest, SGHI ServiceRequest)
16. DocumentReference.docStatus
Control1..?
18. DocumentReference.modality
TypeCodeableConcept(SGHI CodeableConcept)
20. DocumentReference.type
Control1..?
BindingThe codes SHALL be taken from FHIRDocumentTypeCodes
(required to http://hl7.org/fhir/ValueSet/doc-typecodes)
TypeCodeableConcept(SGHI CodeableConcept)
22. DocumentReference.category
TypeCodeableConcept(SGHI CodeableConcept)
24. DocumentReference.subject
Control1..?
TypeReference(SGHI Reference)(SGHI Patient)
26. DocumentReference.context
Control1..?
TypeReference(SGHI Reference)(SGHI Appointment Profile, SGHI Encounter, SGHI EpisodeOfCare)
28. DocumentReference.event
TypeCodeableReference(SGHI CodeableReference)
30. DocumentReference.bodySite
BindingThe codes SHALL be taken from All LOINC Codes
(required to https://fhir.slade360.co.ke/fhir/ValueSet/all-loinc-codes)
TypeCodeableReference(SGHI CodeableReference)(BodyStructure)
32. DocumentReference.facilityType
TypeCodeableConcept(SGHI CodeableConcept)
34. DocumentReference.practiceSetting
TypeCodeableConcept(SGHI CodeableConcept)
36. DocumentReference.date
Control1..?
38. DocumentReference.author
Control1..1
TypeReference(SGHI Reference)(SGHI Organization, SGHI PractitionerRole, SGHI Practitioner, SGHI Patient)
40. DocumentReference.attester
42. DocumentReference.attester.mode
TypeCodeableConcept(SGHI CodeableConcept)
44. DocumentReference.attester.party
TypeReference(SGHI Reference)(SGHI Patient, SGHI Organization, SGHI Practitioner, SGHI PractitionerRole)
46. DocumentReference.custodian
Control1..?
TypeReference(SGHI Reference)(SGHI Organization)
48. DocumentReference.relatesTo
50. DocumentReference.relatesTo.code
TypeCodeableConcept(SGHI CodeableConcept)
52. DocumentReference.relatesTo.target
TypeReference(SGHI Reference)(SGHI DocumentReference Profile.)
54. DocumentReference.securityLabel
TypeCodeableConcept(SGHI CodeableConcept)

Guidance on how to interpret the contents of this table can be foundhere

0. DocumentReference
Definition

A reference to a document of any kind for any purpose. While the term “document” implies a more narrow focus, for this resource this "document" encompasses any serialized object with a mime-type, it includes formal patient-centric documents (CDA), clinical notes, scanned paper, non-patient specific documents like policy text, as well as a photo, video, or audio recording acquired or used in healthcare. The DocumentReference resource provides metadata about the document so that the document can be discovered and managed. The actual content may be inline base64 encoded data or provided by direct reference.

ShortA reference to a document
Comments

Usually, this is used for documents other than those defined by FHIR.

Control0..*
Is Modifierfalse
Must Supportfalse
Summaryfalse
InvariantsdocRef-1: facilityType SHALL only be present if context is not an encounter (facilityType.empty() or context.where(resolve() is Encounter).empty())
docRef-2: practiceSetting SHALL only be present if context is not present (practiceSetting.empty() or context.where(resolve() is Encounter).empty())
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources (contained.contained.empty())
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource (contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty())
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated (contained.meta.versionId.empty() and contained.meta.lastUpdated.empty())
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label (contained.meta.security.empty())
dom-6: A resource should have narrative for robust management (text.`div`.exists())
2. DocumentReference.id
Definition

The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.

ShortLogical id of this artifact
Comments

Within the context of the FHIR RESTful interactions, the resource has an id except for cases like the create and conditional update. Otherwise, the use of the resouce id depends on the given use case.

Control0..1
Typeid
Is Modifierfalse
Must Supportfalse
Summarytrue
4. DocumentReference.meta
Definition

The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

ShortMetadata about the resource
Control0..1
TypeMeta
Is Modifierfalse
Must Supportfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
6. DocumentReference.implicitRules
Definition

A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.

ShortA set of rules under which this content was created
Comments

Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of its narrative along with other profiles, value sets, etc.

Control0..1
Typeuri
Is Modifiertrue because This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies its meaning or interpretation
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supportfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
8. DocumentReference.language
Definition

The base language in which the resource is written.

ShortLanguage of the resource content
Comments

Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).

Control0..1
BindingThe codes SHALL be taken from AllLanguages
(required to http://hl7.org/fhir/ValueSet/all-languages|5.0.0)

IETF language tag for a human language

Typecode
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supportfalse
Summaryfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
10. DocumentReference.text
Definition

A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.

ShortText summary of the resource, for human interpretation
Comments

Contained resources do not have a narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.

Control0..1
This element is affected by the following invariants: dom-6
TypeNarrative
Is Modifierfalse
Must Supportfalse
Summaryfalse
Alternate Namesnarrative, html, xhtml, display
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
12. DocumentReference.contained
Definition

These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.

ShortContained, inline Resources
Comments

This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags in their meta elements, but SHALL NOT have security labels.

Control0..*
This element is affected by the following invariants: dom-2, dom-4, dom-3, dom-5
TypeResource
Is Modifierfalse
Must Supportfalse
Summaryfalse
Alternate Namesinline resources, anonymous resources, contained resources
14. DocumentReference.extension
Definition

May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

ShortAdditional content defined by implementations
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control0..*
TypeExtension
Is Modifierfalse
Must Supportfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
16. DocumentReference.modifierExtension
Definition

May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

ShortExtensions that cannot be ignored
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control0..*
TypeExtension
Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them
Must Supportfalse
Summarytrue
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
18. DocumentReference.identifier
Definition

Other business identifiers associated with the document, including version independent identifiers.

ShortBusiness identifiers for the document
Comments

The structure and format of this identifier would be consistent with the specification corresponding to the format of the document. (e.g. for a DICOM standard document, a 64-character numeric UID; for an HL7 CDA format, the CDA Document Id root and extension).

NoteThis is a business identifier, not a resource identifier (see discussion)
Control1..*
TypeIdentifier
Is Modifierfalse
Must Supportfalse
Summarytrue
Requirements

Document identifiers usually assigned by the source of the document, or other business identifiers such as XDS DocumentEntry.uniqueId and DocumentEntry.entryUUID. These identifiers are specific to this instance of the document.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
20. DocumentReference.identifier.id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
This element is affected by the following invariants: ele-1
Typeid
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
22. DocumentReference.identifier.extension
Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

ShortAdditional content defined by implementations
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control0..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on DocumentReference.identifier.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • value @ url
  • 24. DocumentReference.identifier.use
    Definition

    The purpose of this identifier.

    Shortusual | official | temp | secondary | old (If known)
    Comments

    Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

    Control0..1
    BindingThe codes SHALL be taken from IdentifierUse
    (required to http://hl7.org/fhir/ValueSet/identifier-use)
    Typecode
    Is Modifiertrue because This is labeled as "Is Modifier" because applications should not mistake a temporary id for a permanent one.
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    Requirements

    Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    26. DocumentReference.identifier.type
    Definition

    A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.

    ShortDescription of identifier
    Comments

    This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

    Control0..1
    BindingThe codes SHALL be taken from SGHI Standard Identifier Types
    (required to https://fhir.slade360.co.ke/fhir/ValueSet/sghi-identifier-types)
    TypeCodeableConcept(SGHI CodeableConcept)
    Is Modifierfalse
    Summarytrue
    Requirements

    Allows users to make use of identifiers when the identifier system is not known.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    28. DocumentReference.identifier.system
    Definition

    Establishes the namespace for the value - that is, an absolute URL that describes a set values that are unique.

    ShortThe namespace for the identifier value
    Comments

    Identifier.system is always case sensitive.

    Control1..1
    Typeuri
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    Requirements

    There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

    ExampleGeneral: http://www.acme.com/identifiers/patient
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    30. DocumentReference.identifier.value
    Definition

    The portion of the identifier typically relevant to the user and which is unique within the context of the system.

    ShortThe value that is unique
    Comments

    If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the http://hl7.org/fhir/StructureDefinition/rendered-value). Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

    Control1..1
    This element is affected by the following invariants: ident-1
    Typestring
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    ExampleGeneral: 123456
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    32. DocumentReference.identifier.period
    Definition

    Time period during which identifier is/was valid for use.

    ShortTime period when id is/was valid for use
    Control0..1
    TypePeriod
    Is Modifierfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    34. DocumentReference.identifier.assigner
    Definition

    Organization that issued/manages the identifier.

    ShortOrganization that issued id (may be just text)
    Comments

    The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

    Control1..1
    TypeReference(SGHI Reference)(SGHI Organization)
    Is Modifierfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    36. DocumentReference.version
    Definition

    An explicitly assigned identifer of a variation of the content in the DocumentReference.

    ShortAn explicitly assigned identifer of a variation of the content in the DocumentReference
    Comments

    While each resource, including the DocumentReference itself, has its own version identifier, this is a formal identifier for the logical version of the DocumentReference as a whole. It would remain constant if the resources were moved to a new server, and all got new individual resource versions, for example.

    NoteThis is a business version Id, not a resource version Id (see discussion)
    Control0..1
    Typestring
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    38. DocumentReference.basedOn
    Definition

    A procedure that is fulfilled in whole or in part by the creation of this media.

    ShortProcedure that caused this media to be created
    Control0..*
    TypeReference(SGHI Reference)(SGHI Appointment Profile, SGHI MedicationRequest, SGHI ServiceRequest)
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Requirements

    Allows tracing of authorization for the event and tracking whether proposals/recommendations were acted upon.

    Alternate Namesfulfills
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    40. DocumentReference.status
    Definition

    The status of this document reference.

    Shortcurrent | superseded | entered-in-error
    Comments

    This is the status of the DocumentReference object, which might be independent from the docStatus element.

    This element is labeled as a modifier because the status contains the codes that mark the document or reference as not currently valid.

    Control1..1
    BindingThe codes SHALL be taken from DocumentReferenceStatus
    (required to http://hl7.org/fhir/ValueSet/document-reference-status|5.0.0)

    The status of the document reference.

    Typecode
    Is Modifiertrue because This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    42. DocumentReference.docStatus
    Definition

    The status of the underlying document.

    Shortregistered | partial | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | deprecated | unknown
    Comments

    The document that is pointed to might be in various lifecycle states.

    Control1..1
    BindingThe codes SHALL be taken from CompositionStatus
    (required to http://hl7.org/fhir/ValueSet/composition-status|5.0.0)

    Status of the underlying document.

    Typecode
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    44. DocumentReference.modality
    Definition

    Imaging modality used. This may include both acquisition and non-acquisition modalities.

    ShortImaging modality used
    Control0..*
    BindingUnless not suitable, these codes SHALL be taken from Modality .
    (extensible to http://dicom.nema.org/medical/dicom/current/output/chtml/part16/sect_CID_33.html)

    Type of acquired data in the instance.

    TypeCodeableConcept(SGHI CodeableConcept)
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    46. DocumentReference.type
    Definition

    Specifies the particular kind of document referenced (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the document referenced.

    ShortKind of document (LOINC if possible)
    Comments

    Key metadata element describing the document that describes he exact type of document. Helps humans to assess whether the document is of interest when viewing a list of documents.

    Control1..1
    BindingThe codes SHALL be taken from FHIRDocumentTypeCodes
    (required to http://hl7.org/fhir/ValueSet/doc-typecodes)
    TypeCodeableConcept(SGHI CodeableConcept)
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    48. DocumentReference.category
    Definition

    A categorization for the type of document referenced - helps for indexing and searching. This may be implied by or derived from the code specified in the DocumentReference.type.

    ShortCategorization of document
    Comments

    Key metadata element describing the the category or classification of the document. This is a broader perspective that groups similar documents based on how they would be used. This is a primary key used in searching.

    Control0..*
    BindingFor example codes, see ReferencedItemCategoryValueSet
    (example to http://hl7.org/fhir/ValueSet/referenced-item-category)

    High-level kind of document at a macro level.

    TypeCodeableConcept(SGHI CodeableConcept)
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Alternate Namesclass, classCode
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    50. DocumentReference.subject
    Definition

    Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).

    ShortWho/what is the subject of the document
    Control1..1
    TypeReference(SGHI Reference)(SGHI Patient)
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    52. DocumentReference.context
    Definition

    Describes the clinical encounter or type of care that the document content is associated with.

    ShortContext of the document content
    Control1..*
    This element is affected by the following invariants: docRef-1, docRef-2
    TypeReference(SGHI Reference)(SGHI Appointment Profile, SGHI Encounter, SGHI EpisodeOfCare)
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    54. DocumentReference.event
    Definition

    This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the type Code, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act.

    ShortMain clinical acts documented
    Comments

    An event can further specialize the act inherent in the type, such as where it is simply "Procedure Report" and the procedure was a "colonoscopy". If one or more event codes are included, they shall not conflict with the values inherent in the class or type elements as such a conflict would create an ambiguous situation.

    Control0..*
    BindingFor example codes, see v3 Code System ActCode
    (example to http://terminology.hl7.org/ValueSet/v3-ActCode)

    This list of codes represents the main clinical acts being documented.

    TypeCodeableReference(SGHI CodeableReference)
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    56. DocumentReference.bodySite
    Definition

    The anatomic structures included in the document.

    ShortBody part included
    Control0..*
    BindingThe codes SHALL be taken from All LOINC Codes
    (required to https://fhir.slade360.co.ke/fhir/ValueSet/all-loinc-codes)
    TypeCodeableReference(SGHI CodeableReference)(BodyStructure)
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    58. DocumentReference.facilityType
    Definition

    The kind of facility where the patient was seen.

    ShortKind of facility where patient was seen
    Control0..1
    This element is affected by the following invariants: docRef-1
    BindingFor example codes, see FacilityTypeCodeValueSet
    (example to http://hl7.org/fhir/ValueSet/c80-facilitycodes)

    XDS Facility Type.

    TypeCodeableConcept(SGHI CodeableConcept)
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    60. DocumentReference.practiceSetting
    Definition

    This property may convey specifics about the practice setting where the content was created, often reflecting the clinical specialty.

    ShortAdditional details about where the content was created (e.g. clinical specialty)
    Comments

    This element should be based on a coarse classification system for the class of specialty practice. Recommend the use of the classification system for Practice Setting, such as that described by the Subject Matter Domain in LOINC.

    Control0..1
    This element is affected by the following invariants: docRef-2
    BindingFor example codes, see PracticeSettingCodeValueSet
    (example to http://hl7.org/fhir/ValueSet/c80-practice-codes)

    Additional details about where the content was created (e.g. clinical specialty).

    TypeCodeableConcept(SGHI CodeableConcept)
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Requirements

    This is an important piece of metadata that providers often rely upon to quickly sort and/or filter out to find specific content.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    62. DocumentReference.period
    Definition

    The time period over which the service that is described by the document was provided.

    ShortTime of service that is being documented
    Control0..1
    TypePeriod
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    64. DocumentReference.date
    Definition

    When the document reference was created.

    ShortWhen this document reference was created
    Comments

    Referencing/indexing time is used for tracking, organizing versions and searching.

    Control1..1
    Typeinstant
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summarytrue
    Alternate Namesindexed
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    66. DocumentReference.author
    Definition

    Identifies who is responsible for adding the information to the document.

    ShortWho and/or what authored the document
    Comments

    Not necessarily who did the actual data entry (i.e. typist) or who was the source (informant).

    Control1..1
    TypeReference(SGHI Reference)(SGHI Organization, SGHI PractitionerRole, SGHI Practitioner, SGHI Patient)
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    68. DocumentReference.attester
    Definition

    A participant who has authenticated the accuracy of the document.

    ShortAttests to accuracy of the document
    Comments

    Only list each attester once.

    Control0..*
    TypeBackboneElement
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Requirements

    Identifies responsibility for the accuracy of the document content.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    70. DocumentReference.attester.id
    Definition

    Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

    ShortUnique id for inter-element referencing
    Control0..1
    This element is affected by the following invariants: ele-1
    Typestring
    Is Modifierfalse
    XML FormatIn the XML format, this property is represented as an attribute.
    Summaryfalse
    72. DocumentReference.attester.extension
    Definition

    May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

    ShortAdditional content defined by implementations
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifierfalse
    Summaryfalse
    Alternate Namesextensions, user content
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    74. DocumentReference.attester.modifierExtension
    Definition

    May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

    Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

    ShortExtensions that cannot be ignored even if unrecognized
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
    Summarytrue
    Requirements

    Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

    Alternate Namesextensions, user content, modifiers
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    76. DocumentReference.attester.mode
    Definition

    The type of attestation the authenticator offers.

    Shortpersonal | professional | legal | official
    Control1..1
    BindingThe codes SHOULD be taken from CompositionAttestationMode
    (preferred to http://hl7.org/fhir/ValueSet/composition-attestation-mode)

    The way in which a person authenticated a document.

    TypeCodeableConcept(SGHI CodeableConcept)
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Requirements

    Indicates the level of authority of the attestation.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    78. DocumentReference.attester.time
    Definition

    When the document was attested by the party.

    ShortWhen the document was attested
    Control0..1
    TypedateTime
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summaryfalse
    Requirements

    Identifies when the information in the document was deemed accurate. (Things may have changed since then.).

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    80. DocumentReference.attester.party
    Definition

    Who attested the document in the specified way.

    ShortWho attested the document
    Control0..1
    TypeReference(SGHI Reference)(SGHI Patient, SGHI Organization, SGHI Practitioner, SGHI PractitionerRole)
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Requirements

    Identifies who has taken on the responsibility for accuracy of the document content.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    82. DocumentReference.custodian
    Definition

    Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.

    ShortOrganization which maintains the document
    Comments

    Identifies the logical organization (software system, vendor, or department) to go to find the current version, where to report issues, etc. This is different from the physical location (URL, disk drive, or server) of the document, which is the technical location of the document, which host may be delegated to the management of some other organization.

    Control1..1
    TypeReference(SGHI Reference)(SGHI Organization)
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    84. DocumentReference.relatesTo
    Definition

    Relationships that this document has with other document references that already exist.

    ShortRelationships to other documents
    Comments

    This element is labeled as a modifier because documents that append to other documents are incomplete on their own.

    Control0..*
    TypeBackboneElement
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    86. DocumentReference.relatesTo.id
    Definition

    Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

    ShortUnique id for inter-element referencing
    Control0..1
    This element is affected by the following invariants: ele-1
    Typestring
    Is Modifierfalse
    XML FormatIn the XML format, this property is represented as an attribute.
    Summaryfalse
    88. DocumentReference.relatesTo.extension
    Definition

    May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

    ShortAdditional content defined by implementations
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifierfalse
    Summaryfalse
    Alternate Namesextensions, user content
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    90. DocumentReference.relatesTo.modifierExtension
    Definition

    May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

    Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

    ShortExtensions that cannot be ignored even if unrecognized
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
    Summarytrue
    Requirements

    Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

    Alternate Namesextensions, user content, modifiers
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    92. DocumentReference.relatesTo.code
    Definition

    The type of relationship that this document has with anther document.

    ShortThe relationship type with another document
    Comments

    If this document appends another document, then the document cannot be fully understood without also accessing the referenced document.

    Control1..1
    BindingUnless not suitable, these codes SHALL be taken from DocumentRelationshipType
    (extensible to http://hl7.org/fhir/ValueSet/document-relationship-type)

    The type of relationship between the documents.

    TypeCodeableConcept(SGHI CodeableConcept)
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    94. DocumentReference.relatesTo.target
    Definition

    The target document of this relationship.

    ShortTarget of the relationship
    Control1..1
    TypeReference(SGHI Reference)(SGHI DocumentReference Profile.)
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    96. DocumentReference.description
    Definition

    Human-readable description of the source document.

    ShortHuman-readable description
    Comments

    What the document is about, a terse summary of the document.

    Control0..1
    Typemarkdown
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summarytrue
    Requirements

    Helps humans to assess whether the document is of interest.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    98. DocumentReference.securityLabel
    Definition

    A set of Security-Tag codes specifying the level of privacy/security of the Document found at DocumentReference.content.attachment.url. Note that DocumentReference.meta.security contains the security labels of the data elements in DocumentReference, while DocumentReference.securityLabel contains the security labels for the document the reference refers to. The distinction recognizes that the document may contain sensitive information, while the DocumentReference is metadata about the document and thus might not be as sensitive as the document. For example: a psychotherapy episode may contain highly sensitive information, while the metadata may simply indicate that some episode happened.

    ShortDocument security-tags
    Comments

    The confidentiality codes can carry multiple vocabulary items. HL7 has developed an understanding of security and privacy tags that might be desirable in a Document Sharing environment, called HL7 Healthcare Privacy and Security Classification System (HCS). The following specification is recommended but not mandated, as the vocabulary bindings are an administrative domain responsibility. The use of this method is up to the policy domain such as the XDS Affinity Domain or other Trust Domain where all parties including sender and recipients are trusted to appropriately tag and enforce.

    In the HL7 Healthcare Privacy and Security Classification (HCS) there are code systems specific to Confidentiality, Sensitivity, Integrity, and Handling Caveats. Some values would come from a local vocabulary as they are related to workflow roles and special projects.

    Control0..*
    BindingFor example codes, see SecurityLabelExamples
    (example to http://hl7.org/fhir/ValueSet/security-label-examples)

    Example Security Labels from the Healthcare Privacy and Security Classification System.

    TypeCodeableConcept(SGHI CodeableConcept)
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Requirements

    Use of the Health Care Privacy/Security Classification (HCS) system of security-tag use is recommended.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    100. DocumentReference.content
    Definition

    The document and format referenced. If there are multiple content element repetitions, these must all represent the same document in different format, or attachment metadata.

    ShortDocument referenced
    Comments

    content element shall not contain different versions of the same content. For version handling use multiple DocumentReference with .relatesTo.

    Control1..*
    TypeBackboneElement
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Requirements

    Note that .relatesTo may also include references to other DocumentReference with a transforms relationship to represent the same document in multiple formats.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    102. DocumentReference.content.id
    Definition

    Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

    ShortUnique id for inter-element referencing
    Control0..1
    This element is affected by the following invariants: ele-1
    Typestring
    Is Modifierfalse
    XML FormatIn the XML format, this property is represented as an attribute.
    Summaryfalse
    104. DocumentReference.content.extension
    Definition

    May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

    ShortAdditional content defined by implementations
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifierfalse
    Summaryfalse
    Alternate Namesextensions, user content
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    106. DocumentReference.content.modifierExtension
    Definition

    May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

    Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

    ShortExtensions that cannot be ignored even if unrecognized
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
    Summarytrue
    Requirements

    Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

    Alternate Namesextensions, user content, modifiers
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    108. DocumentReference.content.attachment
    Definition

    The document or URL of the document along with critical metadata to prove content has integrity.

    ShortWhere to access the document
    Control1..1
    TypeAttachment
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    110. DocumentReference.content.profile
    Definition

    An identifier of the document constraints, encoding, structure, and template that the document conforms to beyond the base format indicated in the mimeType.

    ShortContent profile rules for the document
    Comments

    Note that IHE often issues URNs for formatCode codes, not all documents can be identified by a URI.

    For FHIR content, .profile should indicate the structureDefinition profile canonical URI(s) that the content complies with.

    Control0..*
    TypeBackboneElement
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Alternate Namesformat, formatCode
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    112. DocumentReference.content.profile.id
    Definition

    Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

    ShortUnique id for inter-element referencing
    Control0..1
    This element is affected by the following invariants: ele-1
    Typestring
    Is Modifierfalse
    XML FormatIn the XML format, this property is represented as an attribute.
    Summaryfalse
    114. DocumentReference.content.profile.extension
    Definition

    May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

    ShortAdditional content defined by implementations
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifierfalse
    Summaryfalse
    Alternate Namesextensions, user content
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    116. DocumentReference.content.profile.modifierExtension
    Definition

    May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

    Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

    ShortExtensions that cannot be ignored even if unrecognized
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
    Summarytrue
    Requirements

    Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

    Alternate Namesextensions, user content, modifiers
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    118. DocumentReference.content.profile.value[x]
    Definition

    Code|uri|canonical.

    ShortCode|uri|canonical
    Control1..1
    BindingThe codes SHOULD be taken from HL7 ValueSet of Format Codes for use with Document Sharing
    (preferred to http://terminology.hl7.org/ValueSet/v3-HL7FormatCodes)

    Document Format Codes.

    TypeChoice of: Coding, uri, canonical
    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))