Profiles


This section provides details on the FHIR profiles including the data structure and constraints for the API payload.

The base FHIR specification (this specification) describes a set of base resources, frameworks and APIs that are used in many different contexts in healthcare. However, there is wide variability between jurisdictions and across the healthcare ecosystem around practices, requirements, regulations, education and what actions are feasible and/or beneficial.

For this reason, the FHIR specification is a "platform specification" - it creates a common platform or foundation on which a variety of different solutions are implemented. As a consequence, this specification usually requires further adaptation to particular contexts of use, which is called profiling.

Profiling specifies:

  • Which resource elements are or are not used, and what additional elements are added that are not part of the base specification
  • Which API features are used, and how
  • Which terminologies are used in particular elements (i.e. SNOMED CT, LOINC, etc)
  • Descriptions of how the Resource elements and API features map to local requirements and/or implementations

Profiling allows FHIR base resources to be authored in a structured manner, independent of the serialization format (i.e. XML/JSON). The profiles can be published in a repository to drive validation and code generation.

One of the actions that is commonly done when profiling a resource is to change the binding of a coded element to some other ValueSet than the one in the specification. For example, in the RCM Patient profile, the Patient.communication.language element is bound to a different ValueSet (i.e. rcm-languages) that contains Singapore's four common languages: English, Chinese, Malay and Tamil. This Patient profile, bundled together with the CarePlan profile, will be used to create the patient information via the "Create Patient" API. The beauty of profiling is such that if there is a fifth language, say "Bengali", this can be added to the rcm-languages ValueSet without having to make any changes to the "Create Patient" API.

Below describes the profiles used in this project: