IPTp-SP Digital Support System Implementation Guide
0.1.0 - ci-build Kenya flag

IPTp-SP Digital Support System Implementation Guide, published by IPTp-SP Digital Support System Implementation Team. 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/daviemukungi/IPTp-FHIR-implementationIG/ and changes regularly. See the Directory of published versions

Resource Profile: IPTpEnrollment - Detailed Descriptions

Draft as of 2026-06-30

Definitions for the iptp-enrollment resource profile.

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

0. EpisodeOfCare
Definition

An association between a patient and an organization / healthcare provider(s) during which time encounters may occur. The managing organization assumes a level of responsibility for the patient during this time.

ShortAn association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility
Control0..*
Is Modifierfalse
Summaryfalse
Alternate NamesCase Program Problem
Invariantsdom-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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(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. EpisodeOfCare.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 it's 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 it's meaning or interpretation
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
4. EpisodeOfCare.extension
Definition

An Extension


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 manageable, 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.

ShortExtensionAdditional 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.

Control20..*
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 EpisodeOfCare.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • value @ url
  • 6. EpisodeOfCare.extension:messagingStatus
    Slice NamemessagingStatus
    Definition

    Current SMS messaging status for the patient (ACTIVE / STOPPED)

    ShortIPTp Messaging Status
    Control1..1
    This element is affected by the following invariants: ele-1
    TypeExtension(IPTp Messaging Status) (Extension Type: CodeableConcept)
    Is Modifierfalse
    Must Supporttrue
    Summaryfalse
    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())
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    8. EpisodeOfCare.extension:gestationalAgeBand
    Slice NamegestationalAgeBand
    Definition

    Derived gestational age band at enrollment (EARLY 13–20 or MID 21–27)

    ShortIPTp Gestational Age Band
    Control1..1
    This element is affected by the following invariants: ele-1
    TypeExtension(IPTp Gestational Age Band) (Extension Type: CodeableConcept)
    Is Modifierfalse
    Must Supporttrue
    Summaryfalse
    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())
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    10. EpisodeOfCare.extension:chpFollowupFlag
    Slice NamechpFollowupFlag
    Definition

    Indicates whether a Community Health Promoter follow-up has been triggered

    ShortIPTp CHP Follow-up Flag
    Control0..1
    This element is affected by the following invariants: ele-1
    TypeExtension(IPTp CHP Follow-up Flag) (Extension Type: boolean)
    Is Modifierfalse
    Must Supporttrue
    Summaryfalse
    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())
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    12. EpisodeOfCare.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 manageable, 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
    Summaryfalse
    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())
    14. EpisodeOfCare.status
    Definition

    planned | waitlist | active | onhold | finished | cancelled.

    Shortactive | finished | cancelled (use 'cancelled' for STOP)planned | waitlist | active | onhold | finished | cancelled | entered-in-error
    Comments

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

    Control1..1
    BindingThe codes SHALL be taken from EpisodeOfCareStatushttp://hl7.org/fhir/ValueSet/episode-of-care-status|4.0.1
    (required to http://hl7.org/fhir/ValueSet/episode-of-care-status)
    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 Supporttrue
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    16. EpisodeOfCare.type
    Definition

    A classification of the type of episode of care; e.g. specialist referral, disease management, type of funded care.

    ShortIPTp enrollment typeType/class - e.g. specialist referral, disease management
    Comments

    The type can be very important in processing as this could be used in determining if the EpisodeOfCare is relevant to specific government reporting, or other types of classifications.

    Control10..*
    BindingFor example codes, see EpisodeOfCareTypehttp://hl7.org/fhir/ValueSet/episodeofcare-type|4.0.1
    (example to http://hl7.org/fhir/ValueSet/episodeofcare-type|4.0.1)

    The type of the episode of care.

    TypeCodeableConcept
    Is Modifierfalse
    Must Supporttrue
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    18. EpisodeOfCare.diagnosis
    Definition

    The list of diagnosis relevant to this episode of care.

    ShortThe list of diagnosis relevant to this episode of care
    Control0..*
    TypeBackboneElement
    Is Modifierfalse
    Must Supporttrue
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    20. EpisodeOfCare.diagnosis.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 manageable, 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())
    22. EpisodeOfCare.diagnosis.condition
    Definition

    A list of conditions/problems/diagnoses that this episode of care is intended to be providing care for.

    ShortReference to pregnancy conditionConditions/problems/diagnoses this episode of care is for
    Control1..1
    TypeReference(Condition)
    Is Modifierfalse
    Must Supporttrue
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    24. EpisodeOfCare.patient
    Definition

    The patient who is the focus of this episode of care.

    ShortThe patient who is the focus of this episode of care
    Control1..1
    TypeReference(IPTp Enrolled Patient, Patient)
    Is Modifierfalse
    Must Supporttrue
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    26. EpisodeOfCare.managingOrganization
    Definition

    The organization that has assumed the specific responsibilities for the specified duration.

    ShortOrganization that assumes care
    Control0..1
    TypeReference(Organization)
    Is Modifierfalse
    Must Supporttrue
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    28. EpisodeOfCare.period
    Definition

    The interval during which the managing organization assumes the defined responsibility.

    ShortInterval during responsibility is assumed
    Control10..1
    TypePeriod
    Is Modifierfalse
    Must Supporttrue
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    30. EpisodeOfCare.period.start
    Definition

    The start of the period. The boundary is inclusive.

    ShortDate of enrollment (must be 13–27 weeks GA)Starting time with inclusive boundary
    Comments

    If the low element is missing, the meaning is that the low boundary is not known.

    Control10..1
    This element is affected by the following invariants: per-1
    TypedateTime
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supporttrue
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    32. EpisodeOfCare.careManager
    Definition

    The practitioner that is the care manager/care coordinator for this patient.

    ShortCare manager/care coordinator for the patient
    Control0..1
    TypeReference(IPTp ANC Provider, Practitioner, PractitionerRole)
    Is Modifierfalse
    Must Supporttrue
    Summaryfalse
    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. EpisodeOfCare
    2. EpisodeOfCare.extension
    Control2..?
    SlicingThis element introduces a set of slices on EpisodeOfCare.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
    • value @ url
    • 4. EpisodeOfCare.extension:messagingStatus
      Slice NamemessagingStatus
      Control1..1
      TypeExtension(IPTp Messaging Status) (Extension Type: CodeableConcept)
      Must Supporttrue
      6. EpisodeOfCare.extension:gestationalAgeBand
      Slice NamegestationalAgeBand
      Control1..1
      TypeExtension(IPTp Gestational Age Band) (Extension Type: CodeableConcept)
      Must Supporttrue
      8. EpisodeOfCare.extension:chpFollowupFlag
      Slice NamechpFollowupFlag
      Control0..1
      TypeExtension(IPTp CHP Follow-up Flag) (Extension Type: boolean)
      Must Supporttrue
      10. EpisodeOfCare.status
      Shortactive | finished | cancelled (use 'cancelled' for STOP)
      BindingThe codes SHALL be taken from EpisodeOfCareStatus
      (required to http://hl7.org/fhir/ValueSet/episode-of-care-status)
      Must Supporttrue
      12. EpisodeOfCare.type
      ShortIPTp enrollment type
      Control1..?
      Must Supporttrue
      14. EpisodeOfCare.diagnosis
      Must Supporttrue
      16. EpisodeOfCare.diagnosis.condition
      ShortReference to pregnancy condition
      Must Supporttrue
      18. EpisodeOfCare.patient
      TypeReference(IPTp Enrolled Patient)
      Must Supporttrue
      20. EpisodeOfCare.managingOrganization
      Must Supporttrue
      22. EpisodeOfCare.period
      Control1..?
      Must Supporttrue
      24. EpisodeOfCare.period.start
      ShortDate of enrollment (must be 13–27 weeks GA)
      Control1..?
      Must Supporttrue
      26. EpisodeOfCare.careManager
      TypeReference(IPTp ANC Provider)
      Must Supporttrue

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

      0. EpisodeOfCare
      Definition

      An association between a patient and an organization / healthcare provider(s) during which time encounters may occur. The managing organization assumes a level of responsibility for the patient during this time.

      ShortAn association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility
      Control0..*
      Is Modifierfalse
      Summaryfalse
      Alternate NamesCase Program Problem
      Invariantsdom-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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(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. EpisodeOfCare.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

      The only time that a resource does not have an id is when it is being submitted to the server using a create operation.

      Control0..1
      Typeid
      Is Modifierfalse
      Summarytrue
      4. EpisodeOfCare.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
      Summarytrue
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      6. EpisodeOfCare.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 it's 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 it's meaning or interpretation
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Summarytrue
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      8. EpisodeOfCare.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 SHOULD be taken from CommonLanguages
      (preferred to http://hl7.org/fhir/ValueSet/languages|4.0.1)

      A human language.

      Additional BindingsPurpose
      AllLanguagesMax Binding
      Typecode
      Is Modifierfalse
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Summaryfalse
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      10. EpisodeOfCare.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 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
      TypeNarrative
      Is Modifierfalse
      Summaryfalse
      Alternate Namesnarrative, html, xhtml, display
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      12. EpisodeOfCare.contained
      Definition

      These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.

      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..*
      TypeResource
      Is Modifierfalse
      Summaryfalse
      Alternate Namesinline resources, anonymous resources, contained resources
      14. EpisodeOfCare.extension
      Definition

      An Extension

      ShortExtension
      Control2..*
      TypeExtension
      Is Modifierfalse
      Summaryfalse
      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 EpisodeOfCare.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
      • value @ url
      • 16. EpisodeOfCare.extension:messagingStatus
        Slice NamemessagingStatus
        Definition

        Current SMS messaging status for the patient (ACTIVE / STOPPED)

        ShortIPTp Messaging Status
        Control1..1
        This element is affected by the following invariants: ele-1
        TypeExtension(IPTp Messaging Status) (Extension Type: CodeableConcept)
        Is Modifierfalse
        Must Supporttrue
        Summaryfalse
        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. EpisodeOfCare.extension:gestationalAgeBand
        Slice NamegestationalAgeBand
        Definition

        Derived gestational age band at enrollment (EARLY 13–20 or MID 21–27)

        ShortIPTp Gestational Age Band
        Control1..1
        This element is affected by the following invariants: ele-1
        TypeExtension(IPTp Gestational Age Band) (Extension Type: CodeableConcept)
        Is Modifierfalse
        Must Supporttrue
        Summaryfalse
        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())
        20. EpisodeOfCare.extension:chpFollowupFlag
        Slice NamechpFollowupFlag
        Definition

        Indicates whether a Community Health Promoter follow-up has been triggered

        ShortIPTp CHP Follow-up Flag
        Control0..1
        This element is affected by the following invariants: ele-1
        TypeExtension(IPTp CHP Follow-up Flag) (Extension Type: boolean)
        Is Modifierfalse
        Must Supporttrue
        Summaryfalse
        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())
        22. EpisodeOfCare.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 manageable, 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
        Summaryfalse
        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())
        24. EpisodeOfCare.identifier
        Definition

        The EpisodeOfCare may be known by different identifiers for different contexts of use, such as when an external agency is tracking the Episode for funding purposes.

        ShortBusiness Identifier(s) relevant for this EpisodeOfCare
        NoteThis is a business identifier, not a resource identifier (see discussion)
        Control0..*
        TypeIdentifier
        Is Modifierfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        26. EpisodeOfCare.status
        Definition

        planned | waitlist | active | onhold | finished | cancelled.

        Shortactive | finished | cancelled (use 'cancelled' for STOP)
        Comments

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

        Control1..1
        BindingThe codes SHALL be taken from EpisodeOfCareStatus
        (required to http://hl7.org/fhir/ValueSet/episode-of-care-status)
        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 Supporttrue
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        28. EpisodeOfCare.statusHistory
        Definition

        The history of statuses that the EpisodeOfCare has been through (without requiring processing the history of the resource).

        ShortPast list of status codes (the current status may be included to cover the start date of the status)
        Control0..*
        TypeBackboneElement
        Is Modifierfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        30. EpisodeOfCare.statusHistory.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
        Typestring
        Is Modifierfalse
        XML FormatIn the XML format, this property is represented as an attribute.
        Summaryfalse
        32. EpisodeOfCare.statusHistory.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 manageable, 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())
        34. EpisodeOfCare.statusHistory.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 manageable, 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())
        36. EpisodeOfCare.statusHistory.status
        Definition

        planned | waitlist | active | onhold | finished | cancelled.

        Shortplanned | waitlist | active | onhold | finished | cancelled | entered-in-error
        Control1..1
        BindingThe codes SHALL be taken from EpisodeOfCareStatus
        (required to http://hl7.org/fhir/ValueSet/episode-of-care-status|4.0.1)

        The status of the episode of care.

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

        The period during this EpisodeOfCare that the specific status applied.

        ShortDuration the EpisodeOfCare was in the specified status
        Control1..1
        TypePeriod
        Is Modifierfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        40. EpisodeOfCare.type
        Definition

        A classification of the type of episode of care; e.g. specialist referral, disease management, type of funded care.

        ShortIPTp enrollment type
        Comments

        The type can be very important in processing as this could be used in determining if the EpisodeOfCare is relevant to specific government reporting, or other types of classifications.

        Control1..*
        BindingFor example codes, see EpisodeOfCareType
        (example to http://hl7.org/fhir/ValueSet/episodeofcare-type|4.0.1)

        The type of the episode of care.

        TypeCodeableConcept
        Is Modifierfalse
        Must Supporttrue
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        42. EpisodeOfCare.diagnosis
        Definition

        The list of diagnosis relevant to this episode of care.

        ShortThe list of diagnosis relevant to this episode of care
        Control0..*
        TypeBackboneElement
        Is Modifierfalse
        Must Supporttrue
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        44. EpisodeOfCare.diagnosis.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
        Typestring
        Is Modifierfalse
        XML FormatIn the XML format, this property is represented as an attribute.
        Summaryfalse
        46. EpisodeOfCare.diagnosis.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 manageable, 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())
        48. EpisodeOfCare.diagnosis.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 manageable, 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())
        50. EpisodeOfCare.diagnosis.condition
        Definition

        A list of conditions/problems/diagnoses that this episode of care is intended to be providing care for.

        ShortReference to pregnancy condition
        Control1..1
        TypeReference(Condition)
        Is Modifierfalse
        Must Supporttrue
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        52. EpisodeOfCare.diagnosis.role
        Definition

        Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge …).

        ShortRole that this diagnosis has within the episode of care (e.g. admission, billing, discharge …)
        Control0..1
        BindingThe codes SHOULD be taken from DiagnosisRole
        (preferred to http://hl7.org/fhir/ValueSet/diagnosis-role|4.0.1)

        The type of diagnosis this condition represents.

        TypeCodeableConcept
        Is Modifierfalse
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        54. EpisodeOfCare.diagnosis.rank
        Definition

        Ranking of the diagnosis (for each role type).

        ShortRanking of the diagnosis (for each role type)
        Control0..1
        TypepositiveInt
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        56. EpisodeOfCare.patient
        Definition

        The patient who is the focus of this episode of care.

        ShortThe patient who is the focus of this episode of care
        Control1..1
        TypeReference(IPTp Enrolled Patient)
        Is Modifierfalse
        Must Supporttrue
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        58. EpisodeOfCare.managingOrganization
        Definition

        The organization that has assumed the specific responsibilities for the specified duration.

        ShortOrganization that assumes care
        Control0..1
        TypeReference(Organization)
        Is Modifierfalse
        Must Supporttrue
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        60. EpisodeOfCare.period
        Definition

        The interval during which the managing organization assumes the defined responsibility.

        ShortInterval during responsibility is assumed
        Control1..1
        TypePeriod
        Is Modifierfalse
        Must Supporttrue
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        62. EpisodeOfCare.period.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
        Typestring
        Is Modifierfalse
        XML FormatIn the XML format, this property is represented as an attribute.
        Summaryfalse
        64. EpisodeOfCare.period.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 manageable, 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 EpisodeOfCare.period.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
        • value @ url
        • 66. EpisodeOfCare.period.start
          Definition

          The start of the period. The boundary is inclusive.

          ShortDate of enrollment (must be 13–27 weeks GA)
          Comments

          If the low element is missing, the meaning is that the low boundary is not known.

          Control1..1
          This element is affected by the following invariants: per-1
          TypedateTime
          Is Modifierfalse
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          Must Supporttrue
          Summarytrue
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          68. EpisodeOfCare.period.end
          Definition

          The end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time.

          ShortEnd time with inclusive boundary, if not ongoing
          Comments

          The high value includes any matching date/time. i.e. 2012-02-03T10:00:00 is in a period that has an end value of 2012-02-03.

          Control0..1
          This element is affected by the following invariants: per-1
          TypedateTime
          Is Modifierfalse
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          Summarytrue
          Meaning if MissingIf the end of the period is missing, it means that the period is ongoing
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          70. EpisodeOfCare.referralRequest
          Definition

          Referral Request(s) that are fulfilled by this EpisodeOfCare, incoming referrals.

          ShortOriginating Referral Request(s)
          Control0..*
          TypeReference(ServiceRequest)
          Is Modifierfalse
          Summaryfalse
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          72. EpisodeOfCare.careManager
          Definition

          The practitioner that is the care manager/care coordinator for this patient.

          ShortCare manager/care coordinator for the patient
          Control0..1
          TypeReference(IPTp ANC Provider)
          Is Modifierfalse
          Must Supporttrue
          Summaryfalse
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          74. EpisodeOfCare.team
          Definition

          The list of practitioners that may be facilitating this episode of care for specific purposes.

          ShortOther practitioners facilitating this episode of care
          Control0..*
          TypeReference(CareTeam)
          Is Modifierfalse
          Summaryfalse
          Alternate NamesCareTeam
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          76. EpisodeOfCare.account
          Definition

          The set of accounts that may be used for billing for this EpisodeOfCare.

          ShortThe set of accounts that may be used for billing for this EpisodeOfCare
          Comments

          The billing system may choose to allocate billable items associated with the EpisodeOfCare to different referenced Accounts based on internal business rules.

          Control0..*
          TypeReference(Account)
          Is Modifierfalse
          Summaryfalse
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))