This page is part of the FHIR Specification (v0.4.0: DSTU 2 Draft). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R3 R2
This resource maintained by the FHIR Management Group Work Group
A Resource Profile - a statement of use of one or more FHIR Resources. It may include constraints on Resources and Data Types, Terminology Binding Statements and Extension Definitions.
The Profile resource describes a set of rules about how a resource is used to meet a general use case, so that the rules can be shared and published through repositories of profile definitions, compared with each other, and used as the basis for code, report and UI generation.
Profile resources have a metadata section that describes the profile, and supports registry searching and they define and describe how a Resource or Data Type is used.
Note that as part of the specification itself, a full set of profiles for all resources and data types is published. A FHIR RESTful server serving the profile resource is also a profile repository. HL7 hosts one for public registration of FHIR profiles at (yet to be done).
Implementers should be familiar with with the background and concepts described in Profiling FHIR before working with this resource.
The profile resource has a set of metadata that is mostly shared with the Value Set, Conformance and other infrastructure resources. The metadata describes the profile, and helps find the profile when registered in profile repositories.
url | The identifier that is used to identify this profile when it is referenced in a specification, model, design or an instance. This URL is where the profile can be accessed |
identifier | Other identifiers that are used to identify this profile |
version |
The identifier that is used to identify this version of the profile when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. Note that there may be multiple resource versions of the profile that have this same identifier. The resource will have updates that create new versions for technical reasons, whereas the stated version number needs to be under the author's control |
name | A free text natural language name identifying the Profile |
publisher | Details of the individual or organization who accepts responsibility for publishing the profile. This helps establish the "authority/credibility" of the profile. |
telecom | Contact details to assist a user in finding and communicating with the publisher |
description | A free text natural language description of the profile and its use |
requirements | The Scope and Usage that this profile was created to meet |
code | A set of terms from external terminologies that may be used to assist with indexing and searching of profiles |
status | The status of the profile allows filtering of profiles that are appropriate for use vs. not. See the Status Codes |
experimental | This profile was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage |
date | The date that this version of the profile was published |
fhirVersion | The version of the FHIR specification on which this profile is based. It is not necessary to specify the version, as most profiles are valid across multiple versions, and the validity of a profile against a particular version of FHIR can easily be checked by tooling. |
Notes:
This resource is referenced by ConceptMap, Conformance and OperationDefinition
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Profile | I | DomainResource | Resource Profile Parameter names must be unique within structure | |
url | 1..1 | uri | Literal URL used to reference this profile | |
identifier | Σ | 0..1 | Identifier | Additional identifier for the profile |
version | Σ | 0..1 | string | Logical id for this version of the profile |
name | Σ | 1..1 | string | Informal name for this profile |
publisher | Σ | 0..1 | string | Name of the publisher (Organization or individual) |
contact | Σ | 0..* | Element | Contact details of the publisher |
name | Σ | 0..1 | string | Name of a individual to contact |
telecom | Σ | 0..* | ContactPoint | Contact details for individual or publisher |
description | Σ | 0..1 | string | Natural language description of the profile |
code | Σ | 0..* | Coding | Assist with indexing and finding |
status | M Σ | 1..1 | code | draft | active | retired ResourceProfileStatus (Required) |
experimental | Σ | 0..1 | boolean | If for testing purposes, not real usage |
date | Σ | 0..1 | dateTime | Date for this version of the profile |
requirements | 0..1 | string | Scope and Usage this profile is for | |
fhirVersion | Σ | 0..1 | id | FHIR Version this profile targets |
mapping | I | 0..* | Element | External specification that the content is mapped to Must have at a name or a uri (or both) |
identity | 1..1 | id | Internal id when this mapping is used | |
uri | I | 0..1 | uri | Identifies what this mapping refers to |
name | I | 0..1 | string | Names what this mapping refers to |
comments | 0..1 | string | Versions, Issues, Scope limitations etc | |
type | 1..1 | code | The Resource or Data Type being described FHIRDefinedType (Required) | |
base | 0..1 | uri | Structure that this set of constraints applies to | |
snapshot | I | 0..1 | Element | Snapshot view of the structure Element paths must be unique - or not (LM) If a structure is a snapshot, then each element definition must have a formal definition, and cardinalities |
element | 0..* | ElementDefinition | Definition of elements in the resource (if no profile) | |
differential | 0..1 | see snapshot | Differential view of the structure |
UML Diagram
XML Template
<Profile xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <url value="[uri]"/><!-- 1..1 Literal URL used to reference this profile --> <identifier><!-- 0..1 Identifier Additional identifier for the profile --></identifier> <version value="[string]"/><!-- 0..1 Logical id for this version of the profile --> <name value="[string]"/><!-- 1..1 Informal name for this profile --> <publisher value="[string]"/><!-- 0..1 Name of the publisher (Organization or individual) --> <contact> <!-- 0..* Contact details of the publisher --> <name value="[string]"/><!-- 0..1 Name of a individual to contact --> <telecom><!-- 0..* ContactPoint Contact details for individual or publisher --></telecom> </contact> <description value="[string]"/><!-- 0..1 Natural language description of the profile --> <code><!-- 0..* Coding Assist with indexing and finding --></code> <status value="[code]"/><!-- 1..1 draft | active | retired --> <experimental value="[boolean]"/><!-- 0..1 If for testing purposes, not real usage --> <date value="[dateTime]"/><!-- 0..1 Date for this version of the profile --> <requirements value="[string]"/><!-- 0..1 Scope and Usage this profile is for --> <fhirVersion value="[id]"/><!-- 0..1 FHIR Version this profile targets --> <mapping> <!-- 0..* External specification that the content is mapped to --> <identity value="[id]"/><!-- 1..1 Internal id when this mapping is used --> <uri value="[uri]"/><!-- 0..1 Identifies what this mapping refers to --> <name value="[string]"/><!-- 0..1 Names what this mapping refers to --> <comments value="[string]"/><!-- 0..1 Versions, Issues, Scope limitations etc --> </mapping> <type value="[code]"/><!-- 1..1 The Resource or Data Type being described --> <base value="[uri]"/><!-- 0..1 Structure that this set of constraints applies to --> <snapshot> <!-- 0..1 Snapshot view of the structure --> <element><!-- 0..* ElementDefinition Definition of elements in the resource (if no profile) --></element> </snapshot> <differential><!-- 0..1 Content as for Profile.snapshot Differential view of the structure --></differential> </Profile>
JSON Template
{ "resourceType" : "Profile", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "url" : "<uri>", // R! Literal URL used to reference this profile "identifier" : { Identifier }, // Additional identifier for the profile "version" : "<string>", // Logical id for this version of the profile "name" : "<string>", // R! Informal name for this profile "publisher" : "<string>", // Name of the publisher (Organization or individual) "contact" : [{ // Contact details of the publisher "name" : "<string>", // Name of a individual to contact "telecom" : [{ ContactPoint }] // Contact details for individual or publisher }], "description" : "<string>", // Natural language description of the profile "code" : [{ Coding }], // Assist with indexing and finding "status" : "<code>", // R! draft | active | retired "experimental" : <boolean>, // If for testing purposes, not real usage "date" : "<dateTime>", // Date for this version of the profile "requirements" : "<string>", // Scope and Usage this profile is for "fhirVersion" : "<id>", // FHIR Version this profile targets "mapping" : [{ // External specification that the content is mapped to "identity" : "<id>", // R! Internal id when this mapping is used "uri" : "<uri>", // C? Identifies what this mapping refers to "name" : "<string>", // C? Names what this mapping refers to "comments" : "<string>" // Versions, Issues, Scope limitations etc }], "type" : "<code>", // R! The Resource or Data Type being described "base" : "<uri>", // Structure that this set of constraints applies to "snapshot" : { // Snapshot view of the structure "element" : [{ ElementDefinition }] // Definition of elements in the resource (if no profile) }, "differential" : { Content as for Profile.snapshot } // Differential view of the structure }
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Profile | I | DomainResource | Resource Profile Parameter names must be unique within structure | |
url | 1..1 | uri | Literal URL used to reference this profile | |
identifier | Σ | 0..1 | Identifier | Additional identifier for the profile |
version | Σ | 0..1 | string | Logical id for this version of the profile |
name | Σ | 1..1 | string | Informal name for this profile |
publisher | Σ | 0..1 | string | Name of the publisher (Organization or individual) |
contact | Σ | 0..* | Element | Contact details of the publisher |
name | Σ | 0..1 | string | Name of a individual to contact |
telecom | Σ | 0..* | ContactPoint | Contact details for individual or publisher |
description | Σ | 0..1 | string | Natural language description of the profile |
code | Σ | 0..* | Coding | Assist with indexing and finding |
status | M Σ | 1..1 | code | draft | active | retired ResourceProfileStatus (Required) |
experimental | Σ | 0..1 | boolean | If for testing purposes, not real usage |
date | Σ | 0..1 | dateTime | Date for this version of the profile |
requirements | 0..1 | string | Scope and Usage this profile is for | |
fhirVersion | Σ | 0..1 | id | FHIR Version this profile targets |
mapping | I | 0..* | Element | External specification that the content is mapped to Must have at a name or a uri (or both) |
identity | 1..1 | id | Internal id when this mapping is used | |
uri | I | 0..1 | uri | Identifies what this mapping refers to |
name | I | 0..1 | string | Names what this mapping refers to |
comments | 0..1 | string | Versions, Issues, Scope limitations etc | |
type | 1..1 | code | The Resource or Data Type being described FHIRDefinedType (Required) | |
base | 0..1 | uri | Structure that this set of constraints applies to | |
snapshot | I | 0..1 | Element | Snapshot view of the structure Element paths must be unique - or not (LM) If a structure is a snapshot, then each element definition must have a formal definition, and cardinalities |
element | 0..* | ElementDefinition | Definition of elements in the resource (if no profile) | |
differential | 0..1 | see snapshot | Differential view of the structure |
XML Template
<Profile xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <url value="[uri]"/><!-- 1..1 Literal URL used to reference this profile --> <identifier><!-- 0..1 Identifier Additional identifier for the profile --></identifier> <version value="[string]"/><!-- 0..1 Logical id for this version of the profile --> <name value="[string]"/><!-- 1..1 Informal name for this profile --> <publisher value="[string]"/><!-- 0..1 Name of the publisher (Organization or individual) --> <contact> <!-- 0..* Contact details of the publisher --> <name value="[string]"/><!-- 0..1 Name of a individual to contact --> <telecom><!-- 0..* ContactPoint Contact details for individual or publisher --></telecom> </contact> <description value="[string]"/><!-- 0..1 Natural language description of the profile --> <code><!-- 0..* Coding Assist with indexing and finding --></code> <status value="[code]"/><!-- 1..1 draft | active | retired --> <experimental value="[boolean]"/><!-- 0..1 If for testing purposes, not real usage --> <date value="[dateTime]"/><!-- 0..1 Date for this version of the profile --> <requirements value="[string]"/><!-- 0..1 Scope and Usage this profile is for --> <fhirVersion value="[id]"/><!-- 0..1 FHIR Version this profile targets --> <mapping> <!-- 0..* External specification that the content is mapped to --> <identity value="[id]"/><!-- 1..1 Internal id when this mapping is used --> <uri value="[uri]"/><!-- 0..1 Identifies what this mapping refers to --> <name value="[string]"/><!-- 0..1 Names what this mapping refers to --> <comments value="[string]"/><!-- 0..1 Versions, Issues, Scope limitations etc --> </mapping> <type value="[code]"/><!-- 1..1 The Resource or Data Type being described --> <base value="[uri]"/><!-- 0..1 Structure that this set of constraints applies to --> <snapshot> <!-- 0..1 Snapshot view of the structure --> <element><!-- 0..* ElementDefinition Definition of elements in the resource (if no profile) --></element> </snapshot> <differential><!-- 0..1 Content as for Profile.snapshot Differential view of the structure --></differential> </Profile>
JSON Template
{ "resourceType" : "Profile", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "url" : "<uri>", // R! Literal URL used to reference this profile "identifier" : { Identifier }, // Additional identifier for the profile "version" : "<string>", // Logical id for this version of the profile "name" : "<string>", // R! Informal name for this profile "publisher" : "<string>", // Name of the publisher (Organization or individual) "contact" : [{ // Contact details of the publisher "name" : "<string>", // Name of a individual to contact "telecom" : [{ ContactPoint }] // Contact details for individual or publisher }], "description" : "<string>", // Natural language description of the profile "code" : [{ Coding }], // Assist with indexing and finding "status" : "<code>", // R! draft | active | retired "experimental" : <boolean>, // If for testing purposes, not real usage "date" : "<dateTime>", // Date for this version of the profile "requirements" : "<string>", // Scope and Usage this profile is for "fhirVersion" : "<id>", // FHIR Version this profile targets "mapping" : [{ // External specification that the content is mapped to "identity" : "<id>", // R! Internal id when this mapping is used "uri" : "<uri>", // C? Identifies what this mapping refers to "name" : "<string>", // C? Names what this mapping refers to "comments" : "<string>" // Versions, Issues, Scope limitations etc }], "type" : "<code>", // R! The Resource or Data Type being described "base" : "<uri>", // Structure that this set of constraints applies to "snapshot" : { // Snapshot view of the structure "element" : [{ ElementDefinition }] // Definition of elements in the resource (if no profile) }, "differential" : { Content as for Profile.snapshot } // Differential view of the structure }
Alternate definitions: Schema/Schematron, Resource Profile (XML, JSON), Questionnaire
Path | Definition | Type | Reference |
---|---|---|---|
Profile.status | The lifecycle status of a Resource Profile | Fixed | http://hl7.org/fhir/resource-profile-status |
Profile.type | Either a resource or a data type | Fixed | http://hl7.org/fhir/valueset/defined-types |
Profiles are able to map resource elements to concepts in other definition systems. Generally these are used to map the elements to local implementation models, data paths, and concepts. However they are also used to map to other standards and published terminologies. These are the standard URIs used for common targets of the mapping:
http://loinc.org | LOINC code for the element |
http://snomed.info | SNOMED CT code for the element |
http://hl7.org/v3 | RIM mapping |
http://hl7.org/v2 | v2 mapping |
http://nema.org/dicom | DICOM tag mapping |
http://w3.org/vcard | vCard equivalent field |
http://ihe.net/xds | XDS metadata equivalent |
If a profile is unambiguous, then the FHIR profile tooling (ref to be provided when the tooling exists) is able to generate reference implementation based object models that express the profiled model natively, where the object interface does not include prohibited elements, treats declared extensions as primary properties and slices lists according to the profile. This eases the burden on an implementer, though this object model can only be used with a sub-set of the possible resources.
The tooling is also able to generate bi-directional transforms between the normal XML format and an XML representation of this profiled object model and schema for this profiled XML representation. This XML form has extensions promoted into the primary XML form by using the extension code as the XML name and sliced lists are renamed to use the Profile.resource.element.name as the XML element name. Profiles are only suitable for this use if they ensure that there are no clashing extension names when the extension definition spaces are ignored and that the sliced list names are appropriate.
Implementations are allowed to exchange this profiled XML format. Implementations that do so are not fully conformant to FHIR; instead they can claim to be conformant to "Profiled FHIR". Implementations should consider carefully before adopting this approach; while it will reduce the amount of work required to initially implement particular profiles, it will increase the amount of work required to exchange this data with other communities or to re-use tooling and applications that are also used in other contexts. This cost should particularly be considered in light of the fact that the previously discussed tooling allows applications to be written as though they are dealing with "Profiled FHIR" instances when they are in fact sending and receiving fully conformant FHIR instances.
Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
Name | Type | Description | Paths |
code | token | A code for the profile | Profile.code |
date | date | The profile publication date | Profile.date |
description | string | Text search in the description of the profile | Profile.description |
identifier | token | The identifier of the profile | Profile.identifier |
name | string | Name of the profile | Profile.name |
publisher | string | Name of the publisher of the profile | Profile.publisher |
status | token | The current status of the profile | Profile.status |
type | token | Type of resource that is constrained in the profile | Profile.type |
url | token | Literal URL used to reference this profile | Profile.url |
valueset | reference | A vocabulary binding code | Profile.snapshot.element.binding.reference[x] (ValueSet) |
version | token | The version identifier of the profile | Profile.version |