The formal definitions for the elements in the profile resource. Also available as an XML file.
Profile |
Definition | A Resource Profile - a statement of use of FHIR. It may include constraints on Resources, Data Types, Terminology Binding Statements and Extension Definitions |
Control | 1..1 |
Aliases | Template |
Comments | Often called a clinical template |
Profile.name |
Definition | A free text natural language name identifying the Profile |
Control | 1..1 |
Type | string |
Comments | Not expected to be globally unique |
Profile.version |
Definition | The official version of this profile - for external version specific references. This has an arbitrary value managed by the profile author manually |
Control | 0..1 |
Type | string |
Requirements | The resource version id will change for technical reasons, whereas the stated version number needs to be under the author's control |
Profile.author |
Definition | Details of the author who accepts responsibility for publishing the profile |
Control | 1..1 |
Requirements | Helps establish the "authority/credibility" of the profile. May also allow for contact |
Comments | Usually an organization, but may be an individual |
Profile.author.name |
Definition | The name of the individual or organization with primary responsibility for the content of the profile |
Control | 1..1 |
Type | string |
Profile.author.reference |
Definition | Reference to the author to assist a user in finding and communicating with the author |
Control | 0..* |
Type | uri |
Comments | May be a web site, an email address, a telephone number (tel:), etc. |
Profile.description |
Definition | A free text natural language description of the profile and its use |
Control | 1..1 |
Type | string |
Comments | This field can be used for things such as why the profile was written, comments about misuse, instructions for clinical use and interpretation, literature references, examples from the paper world, etc. It is *not* a rendering of the profile as conveyed in Profile.text |
Profile.code |
Definition | A set of terms from external terminologies that may be used to assist with indexing and searching of templates. |
Control | 0..* |
Type | Coding |
Requirements | Assist in searching for appropriate profiles |
Profile.status |
Definition | Indicates where the profile exists in its overall life-cycle |
Control | 1..1 |
Must Understand | true |
Requirements | Allows filtering of profiles that are appropriate for use vs. not |
Profile.status.code |
Definition | A coded value for the position of the profile within its life-cycle |
Control | 1..1 |
Type | code from ResourceProfileStatus |
Must Understand | true |
Profile.status.date |
Definition | The date that the current value for status was applied to the profile |
Control | 1..1 |
Type | dateTime |
Profile.status.comment |
Definition | Additional commentary related to the profile's status |
Control | 0..1 |
Type | string |
Profile.import |
Definition | Other profiles that define extensions and bindings that are used in this profile |
Control | 0..* |
Profile.import.uri |
Definition | The identifier for the profile, ideally the URL it can be retrieved from |
Control | 1..1 |
Type | uri |
Comments | Any resource definitions from these other profiles are not imported |
Profile.import.prefix |
Definition | The short label used for display of the profile when uniquely identifying imported extensions |
Control | 0..1 |
Type | string |
Comments | Profile instances are always conveyed using full URIs - the prefix is solely for use by entry and rendering tools |
Profile.bundle |
Definition | If this profile describes a bundle, the first resource in the bundle (usually a Message or a Document) |
Control | 0..1 |
Type | code from ResourceType |
Profile.resource |
Definition | A constraint statement about what contents a resource or data type may have |
Control | 0..* |
To Do | Consider adding elements to support capturing events |
Profile.resource.type |
Definition | The Resource or Data type being described |
Control | 1..1 |
Type | code from FHIRContentType |
Profile.resource.profile |
Definition | Reference to a resource profile that includes the constraint statement that applies to this resource |
Control | 0..1 |
Type | uri |
Profile.resource.name |
Definition | The name of this resource constraint statement (to refer to it from other resource constraints) |
Control | 0..1 |
Type | string |
Comments | This field is the target for a resource.profile |
Profile.resource.purpose |
Definition | Human summary: why describe this resource? |
Control | 0..1 |
Type | string |
Profile.resource.element |
Definition | Captures constraints on each element within the resource |
Control | 0..* |
Profile.resource.element.path |
Definition | The path identifies the element and is expressed as a "."-separated list of ancestor elements, beginning with the name of the resource |
Control | 1..1 |
Type | string |
Profile.resource.element.name |
Definition | A unique name referring to a specific set of constraints applied to this element |
Control | 0..1 |
Type | string |
Comments | The name must be unique within the profile and all imported profiles within the context of the constrained resource element. (Though to avoid confusion, uniqueness across all elements is recommended.) |
Profile.resource.element.definition |
Definition | Definition of the content of the element to provide a more specific definition than that contained for the element in the base resource |
Control | 1..1 |
Comments | The definition must be a proper constraint on the definition of the base resource |
Profile.resource.element.definition.short |
Definition | A concise definition that is shown in the concise XML format that summarizes profiles |
Control | 1..1 |
Type | string |
Comments | May change the term to provide language more appropriate to the context of the profile or to reflect slicing |
Profile.resource.element.definition.formal |
Definition | The definition must be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource |
Control | 1..1 |
Type | string |
Requirements | To allow a user to clarify the usage of an element in a particular context |
Comments | It is easy for a different definition to change the meaning of an element and this can have nasty downstream consequences. Please be careful when providing definitions |
Profile.resource.element.definition.comments |
Definition | Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc. |
Control | 0..1 |
Type | string |
Comments | If it is possible to capture usage rules using invariants, that mechanism should be used in preference to this element |
Profile.resource.element.definition.requirements |
Definition | Explains why this element is needed and why it's been constrained as it has |
Control | 0..1 |
Type | string |
Profile.resource.element.definition.synonym |
Definition | Identifies additional names by which this element might also be known |
Control | 0..* |
Type | string |
Requirements | Allows for better easier recognition of the element by multiple communities, including international communities |
Profile.resource.element.definition.min |
Definition | The minimum number of times this element must appear in the instance |
Control | 1..1 |
Type | integer |
Profile.resource.element.definition.max |
Definition | The maximum number of times this element is permitted to appear in the instance |
Control | 1..1 |
Type | string |
Profile.resource.element.definition.type |
Definition | The data type or resource that the value of this element is permitted to be |
Control | 0..* |
Requirements | The Type of the element can be left blank, in which case the type is inherited from the resource. The type can only be listed in this field if it is an allowed option in the base resource |
Profile.resource.element.definition.type.code |
Definition | Data type or Resource |
Control | 1..1 |
Type | code from DataType |
Profile.resource.element.definition.type.profile |
Definition | Identifies a profile that must hold for resources or datatypes referenced as the type of this element |
Control | 0..1 |
Type | uri |
Comments | The reference might be a simple name in the form #[name], which is a reference to another named constraint in a resource - where the resource contains more than one constraint, or a URL which is a reference to a resource Profile |
Profile.resource.element.definition.nameReference |
Definition | Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element |
Control | 0..1 |
Type | string |
Comments | If child components of this element are defined, they act as constraints on the referenced slice |
Profile.resource.element.definition.value[x] |
Definition | Specifies a value that must hold for this element in the instance |
Control | 0..1 |
Type | * |
Comments | To specify a fixed value for a complex data type, include the child elements for the type and specify fixed values for each property independently |
Profile.resource.element.definition.maxLength |
Definition | Indicates the shortest length that must be supported by conformant instances without truncation |
Control | 0..1 |
Type | integer |
Comments | If not specified, there is no conformance expectation for length support |
To Do | Need to flesh this out more - leverage v2 approach |
Profile.resource.element.definition.condition |
Definition | A reference to an invariant that may make additional statements about the cardinality in the instance |
Control | 0..* |
Type | id |
Profile.resource.element.definition.constraint |
Definition | Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance |
Control | 0..* |
Comments | Constraints should be declared on the "context" element - the lowest element in the hierarchy that is common to all nodes referenced by the constraint |
Profile.resource.element.definition.constraint.id |
Definition | Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality |
Control | 1..1 |
Type | id |
Profile.resource.element.definition.constraint.name |
Definition | Used to label the constraint in OCL or in short displays incapable of displaying the full human description |
Control | 0..1 |
Type | string |
Profile.resource.element.definition.constraint.severity |
Definition | Identifies the impact constraint violation has on the conformance of the instance |
Control | 1..1 |
Type | code from ConstraintSeverity |
Comments | This allows constraints to be asserted as "shall" (error) and "should" (warning) |
Profile.resource.element.definition.constraint.human |
Definition | This is the text that describes the constraint in messages identifying that the constraint has been violated |
Control | 1..1 |
Type | string |
Comments | Should be expressed in business terms as much as possible |
Profile.resource.element.definition.constraint.xpath |
Definition | XPath expression of constraint |
Control | 1..1 |
Type | string |
Requirements | Used in Schematron tests of the validity of the resource |
Comments | Elements must use "f" as the namespace prefix and must not use any other prefixes |
Profile.resource.element.definition.constraint.ocl |
Definition | OCL expression of constraint |
Control | 0..1 |
Type | string |
Profile.resource.element.definition.mustSupport |
Definition | If true, conformant resource authors must be capable of providing a value for the element and resource consumers must be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported |
Control | 0..1 |
Type | boolean |
Requirements | Allows a profile to set expectations for system capabilities beyond merely respecting cardinality constraints |
Comments | "Something useful" is context dependent. Key test is what would a reasonable observer expect of a system that explicitly claims to "support" this element |
Profile.resource.element.definition.mustUnderstand |
Definition | If true, the element cannot be ignored by systems unless they recognize the element and a pre-determination has been made that it is not relevant to their particular system |
Control | 0..1 |
Type | boolean |
Requirements | Allows elements to be introduced into a specification that can't safely be ignored by applications that don't recognize them |
Comments | MustUnderstand elements can be ignored by applications that recognize the element and know that the element is not relevant in the context of their system. |
Profile.resource.element.definition.binding |
Definition | Identifies the set of codes that applies to this element if a data type supporting codes is used |
Control | 0..1 |
Type | string |
Profile.resource.element.definition.mapping |
Definition | Identifies a concept from an external specification that roughly corresponds to this element |
Control | 0..* |
Requirements | Provides guidance to implementers familiar with or converting content from other specifications |
Comments | Mappings are not necessarily specific enough for safe translation |
Profile.resource.element.definition.mapping.target |
Definition | The name of the specification is mapping is being expressed to |
Control | 1..1 |
Type | string |
Comments | HL7 will provide guidelines for the name strings to use for common specifications |
Profile.resource.element.definition.mapping.map |
Definition | Expresses what part of the target specification corresponds to this element |
Control | 0..1 |
Type | string |
Comments | For most mappings, the syntax is undefined. Syntax will be provided for mappings to the RIM. Multiple mappings may be possible and may include constraints on other resource elements that identify when a particular mapping applies |
Profile.resource.element.bundled |
Definition | Whether the Resource that is the value for this element is included in the bundle, if the profile is specifying a bundle |
Control | 0..1 |
Type | boolean |
Comments | If context includes bundling |
Profile.resource.element.closed |
Definition | Indicates whether the set of slices defined is "exhaustive". I.e. Have all the possible variants for the repeating element been defined? If true, then no new slices can be created off the base element in derived profiles - though existing slices can be further sliced if they are defined as repeating elements |
Control | 0..1 |
Type | boolean |
Profile.resource.searchParam |
Definition | Defines additional search parameters for implementations to support and/or make use of |
Control | 0..* |
RIM Mapping | N/A |
Profile.resource.searchParam.name |
Definition | Corresponds to the name of the standard or custom search parameter |
Control | 1..1 |
Type | string |
Comments | Parameter names cannot overlap with standard parameter names, and standard parameters cannot be redefined |
RIM Mapping | N/A |
Profile.resource.searchParam.type |
Definition | The type of value a search parameter refers to, and how the content is interpreted |
Control | 1..1 |
Type | code from SearchParamType |
RIM Mapping | N/A |
Profile.resource.searchParam.repeats |
Definition | Whether multiple uses of the parameter are allowed in searches, and if they are, how the multiple values are understood |
Control | 1..1 |
Type | code from SearchRepeatBehavior |
RIM Mapping | N/A |
Profile.resource.searchParam.documentation |
Definition | For standard parameters, provides additional information on how the parameter is used in this solution. For custom parameters, provides a description of what the parameter does |
Control | 1..1 |
Type | string |
RIM Mapping | N/A |
Profile.extensionDefn |
Definition | An extension defined as part of the profile |
Control | 0..* |
Profile.extensionDefn.id |
Definition | A unique code (within the profile) used to identify the extension |
Control | 1..1 |
Type | id |
Comments | Matches the portion of a reference to an extension after the # in the a url to the profile |
Profile.extensionDefn.contextType |
Definition | Identifies the type of context to which the extension applies |
Control | 1..1 |
Type | code from ExtensionContext |
Profile.extensionDefn.context |
Definition | Identifies the types of resource or data type elements to which the extension can be applied |
Control | 1..* |
Type | string |
Profile.extensionDefn.definition |
Definition | Definition of the extension and its content |
Control | 1..1 |
Type | @Profile.resource.element.definition |
Profile.binding |
Definition | Defines a linkage between a vocabulary binding name used in the profile (or expected to be used in profile importing this one) and a value set or code list |
Control | 0..* |
Profile.binding.name |
Definition | The name to be associated with this set of codes |
Control | 1..1 |
Type | string |
Comments | Must be unique within the profile. If the same name as an imported profile, will override the imported binding (and must be a proper constraint on the imported binding) |
Profile.binding.definition |
Definition | Describes the intended use of this particular set of codes |
Control | 0..1 |
Type | string |
Profile.binding.type |
Definition | Identifies how the set of codes for this binding is being defined |
Control | 1..1 |
Type | code from BindingType |
Profile.binding.isExtensible |
Definition | If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone |
Control | 1..1 |
Type | boolean |
Comments | When the binding use used for elements with a type of "code" (rather than Coding or CodableConcept), the binding is treated as non-extensible regardless of the value of this property |
Profile.binding.conformance |
Definition | Indicates the degree of conformance expectations associated with this binding |
Control | 1..1 |
Type | code from BindingConformance |
Profile.binding.reference |
Definition | Points to the value set or external definition that identifies the set of codes to be used |
Control | 0..1 |
Type | uri |
Comments | For value sets, this should point to a ValueSet resource. The reference may be version-specific or not |
Profile.binding.concept |
Definition | Identifies the codes forming the code list for the binding |
Control | 0..* |
Profile.binding.concept.code |
Definition | Identifies the code referenced or being defined as part of the binding |
Control | 1..1 |
Type | string |
Profile.binding.concept.system |
Definition | Identifies the system in which the referenced code is defined |
Control | 0..1 |
Type | uri |
Comments | If no system is specified, then the id for the profile is combined with the binding name to determine an implicit system uri |
Profile.binding.concept.display |
Definition | Identifies the text to be displayed to the user for this code. If none provided, then the code itself is displayed |
Control | 0..1 |
Type | string |
Profile.binding.concept.definition |
Definition | A free-text description of the meaning of this code |
Control | 1..1 |
Type | string |
Comments | Definition should not overlap with that of any other concepts in the code list |
Profile.extension |
Definition | See Extensions |
Control | 0..* |
Type | Extension |
Profile.text |
Definition | Text summary of resource (for human interpretation) |
Control | 1..1 |
Type | Narrative |