What is a Global Profile? - UP-Manila-SILab/ph-core GitHub Wiki

In the context of the FHIR IG Publisher, a global profile refers to a default profile that is applied to all instances of a specific resource type within an Implementation Guide (IG), unless a more specific profile is explicitly assigned.

What is a Global Profile?

In the ImplementationGuide resource, the global element allows you to define default profiles for specific FHIR resource types. This means:

  • If a resource of that type appears in your IG and does not have an explicitly assigned profile, the global profile will be assumed.
  • This helps ensure consistency and simplifies validation across the IG.

Structure of a Global Profile Entry

Each entry in the global list includes:

  • type: The FHIR resource type (e.g., Patient, Observation).
  • profile: A canonical URL pointing to the StructureDefinition that defines the profile to be used for that resource type.

Example

"global": [
  {
    "type": "Patient",
    "profile": "http://example.org/fhir/StructureDefinition/my-patient-profile"
  },
  {
    "type": "Observation",
    "profile": "http://example.org/fhir/StructureDefinition/my-observation-profile"
  }
]

This means:

  • All Patient resources in the IG must conform to my-patient-profile.
  • All Observation resources must conform to my-observation-profile, unless otherwise specified.

Why Use Global Profiles?

  • Simplifies validation: Tools like the IG Publisher and FHIR validators can automatically apply these profiles during validation.
  • Reduces redundancy: You don't need to specify the profile for every instance of a resource.
  • Improves clarity: Makes the IG's expectations more transparent to implementers.

This feature is supported across multiple FHIR versions, including R4 and R5 1(https://build.fhir.org/implementationguide.html)(https://build.fhir.org/implementationguide.html) 2(https://www.hl7.org/fhir/R4/implementationguide.html)(https://www.hl7.org/fhir/R4/implementationguide.html).

Would you like help setting up a global profile in your IG configuration or ImplementationGuide resource?