{
"description": "Asserts that an element within a resource in an implementation guide (such as a Bundle entry, or a contained resource) is valid against a particular profile, without needing a profile on the root resource that enforces the profiles of its parts, or a meta.profile in the instance. This allows tooling to test the validity of the parts of an example.",
"_filename": "StructureDefinition-inner-resource-profile.json",
"package_name": "hl7.fhir.uv.tools.r3",
"date": "2026-10-06T15:55:40+11:00",
"derivation": "constraint",
"publisher": "HL7 International / FHIR Infrastructure",
"fhirVersion": "3.0.2",
"jurisdiction": [ {
"coding": [ {
"code": "001",
"system": "http://unstats.un.org/unsd/methods/m49/m49.htm"
} ]
} ],
"name": "InnerResourceProfile",
"mapping": [ {
"uri": "http://hl7.org/v3",
"name": "RIM Mapping",
"identity": "rim"
} ],
"abstract": false,
"type": "Extension",
"experimental": "false",
"resourceType": "StructureDefinition",
"title": "Inner Resource Profile",
"package_version": "1.3.0",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
"valueInteger": 1
}, {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
"valueCode": "fhir"
}, {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-type-characteristics",
"valueCode": "can-bind"
} ],
"snapshot": {
"element": [ {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() | (children().count() > id.count())"
}, {
"key": "ext-1",
"human": "Must have either extensions or value[x], not both",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension",
"severity": "error",
"expression": "extension.exists() != value.exists()"
} ],
"path": "Extension",
"min": 0,
"definition": "Asserts that an element within the resource is valid against a particular profile, so that tooling can test it without the root resource having a profile that enforces it.",
"short": "An element in the resource that complies with a profile",
"max": "*",
"id": "Extension",
"condition": [ "ele-1" ],
"comment": "The only use cases are for tooling, which is why this extension is defined here. If more general uses come up, a general purpose extension may be defined.",
"base": {
"max": "*",
"min": 0,
"path": "Extension"
}
}, {
"path": "Extension.id",
"min": 0,
"definition": "unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"short": "xml:id (or equivalent in JSON)",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"type": [ {
"code": "string"
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Extension.id",
"base": {
"max": "1",
"min": 0,
"path": "Element.id"
}
}, {
"path": "Extension.extension",
"min": 2,
"definition": "An Extension",
"short": "Extension",
"slicing": {
"rules": "open",
"description": "Extensions are always sliced by (at least) url",
"discriminator": [ {
"path": "url",
"type": "value"
} ]
},
"type": [ {
"code": "Extension"
} ],
"max": "*",
"id": "Extension.extension",
"base": {
"max": "*",
"min": 0,
"path": "Element.extension"
}
}, {
"path": "Extension.extension",
"min": 1,
"definition": "FHIRPath that points to the element within the instance that complies with a particular profile. FHIRPath context is root resource pointed to by ImplementationGuide.definition.resource.reference.",
"short": "FHIRPath to the element",
"type": [ {
"code": "Extension"
} ],
"sliceName": "path",
"max": "1",
"id": "Extension.extension:path",
"base": {
"max": "*",
"min": 0,
"path": "Element.extension"
}
}, {
"path": "Extension.extension.id",
"min": 0,
"definition": "unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"short": "xml:id (or equivalent in JSON)",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"type": [ {
"code": "string"
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Extension.extension:path.id",
"base": {
"max": "1",
"min": 0,
"path": "Element.id"
}
}, {
"path": "Extension.extension.extension",
"min": 0,
"definition": "An Extension",
"short": "Extension",
"slicing": {
"rules": "open",
"description": "Extensions are always sliced by (at least) url",
"discriminator": [ {
"path": "url",
"type": "value"
} ]
},
"type": [ {
"code": "Extension"
} ],
"max": "0",
"id": "Extension.extension:path.extension",
"base": {
"max": "*",
"min": 0,
"path": "Element.extension"
}
}, {
"path": "Extension.extension.url",
"min": 1,
"definition": "Source of the definition for the extension code - a logical name or a URL.",
"short": "identifies the meaning of the extension",
"fixedUri": "path",
"mapping": [ {
"map": "N/A",
"identity": "rim"
} ],
"type": [ {
"code": "uri"
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Extension.extension:path.url",
"comment": "The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.",
"base": {
"max": "1",
"min": 1,
"path": "Extension.url"
}
}, {
"path": "Extension.extension.value[x]",
"min": 1,
"definition": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
"short": "Value of extension",
"mapping": [ {
"map": "N/A",
"identity": "rim"
} ],
"type": [ {
"code": "string"
} ],
"max": "1",
"id": "Extension.extension:path.value[x]",
"base": {
"max": "1",
"min": 0,
"path": "Extension.value[x]"
}
}, {
"path": "Extension.extension",
"min": 1,
"definition": "The profile the specified element complies to.",
"short": "Profile the element complies to",
"type": [ {
"code": "Extension"
} ],
"sliceName": "profile",
"max": "1",
"id": "Extension.extension:profile",
"base": {
"max": "*",
"min": 0,
"path": "Element.extension"
}
}, {
"path": "Extension.extension.id",
"min": 0,
"definition": "unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"short": "xml:id (or equivalent in JSON)",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"type": [ {
"code": "string"
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Extension.extension:profile.id",
"base": {
"max": "1",
"min": 0,
"path": "Element.id"
}
}, {
"path": "Extension.extension.extension",
"min": 0,
"definition": "An Extension",
"short": "Extension",
"slicing": {
"rules": "open",
"description": "Extensions are always sliced by (at least) url",
"discriminator": [ {
"path": "url",
"type": "value"
} ]
},
"type": [ {
"code": "Extension"
} ],
"max": "0",
"id": "Extension.extension:profile.extension",
"base": {
"max": "*",
"min": 0,
"path": "Element.extension"
}
}, {
"path": "Extension.extension.url",
"min": 1,
"definition": "Source of the definition for the extension code - a logical name or a URL.",
"short": "identifies the meaning of the extension",
"fixedUri": "profile",
"mapping": [ {
"map": "N/A",
"identity": "rim"
} ],
"type": [ {
"code": "uri"
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Extension.extension:profile.url",
"comment": "The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.",
"base": {
"max": "1",
"min": 1,
"path": "Extension.url"
}
}, {
"path": "Extension.extension.value[x]",
"min": 1,
"definition": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
"short": "Value of extension",
"mapping": [ {
"map": "N/A",
"identity": "rim"
} ],
"type": [ {
"code": "uri"
} ],
"max": "1",
"id": "Extension.extension:profile.value[x]",
"base": {
"max": "1",
"min": 0,
"path": "Extension.value[x]"
}
}, {
"path": "Extension.url",
"min": 1,
"definition": "Source of the definition for the extension code - a logical name or a URL.",
"short": "identifies the meaning of the extension",
"fixedUri": "http://hl7.org/fhir/tools/StructureDefinition/inner-resource-profile",
"mapping": [ {
"map": "N/A",
"identity": "rim"
} ],
"type": [ {
"code": "uri"
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Extension.url",
"comment": "The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.",
"base": {
"max": "1",
"min": 1,
"path": "Extension.url"
}
}, {
"path": "Extension.value[x]",
"min": 0,
"definition": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
"short": "Value of extension",
"mapping": [ {
"map": "N/A",
"identity": "rim"
} ],
"type": [ {
"code": "base64Binary"
}, {
"code": "boolean"
}, {
"code": "code"
}, {
"code": "date"
}, {
"code": "dateTime"
}, {
"code": "decimal"
}, {
"code": "id"
}, {
"code": "instant"
}, {
"code": "integer"
}, {
"code": "markdown"
}, {
"code": "oid"
}, {
"code": "positiveInt"
}, {
"code": "string"
}, {
"code": "time"
}, {
"code": "unsignedInt"
}, {
"code": "uri"
}, {
"code": "Address"
}, {
"code": "Age"
}, {
"code": "Annotation"
}, {
"code": "Attachment"
}, {
"code": "CodeableConcept"
}, {
"code": "Coding"
}, {
"code": "ContactPoint"
}, {
"code": "Count"
}, {
"code": "Distance"
}, {
"code": "Duration"
}, {
"code": "HumanName"
}, {
"code": "Identifier"
}, {
"code": "Money"
}, {
"code": "Period"
}, {
"code": "Quantity"
}, {
"code": "Range"
}, {
"code": "Ratio"
}, {
"code": "Reference"
}, {
"code": "SampledData"
}, {
"code": "Signature"
}, {
"code": "Timing"
}, {
"code": "Meta"
} ],
"max": "0",
"id": "Extension.value[x]",
"base": {
"max": "1",
"min": 0,
"path": "Extension.value[x]"
}
} ]
},
"status": "active",
"id": "4ca8f148-866c-4298-9f8b-1328839f8c5e",
"kind": "complex-type",
"url": "http://hl7.org/fhir/tools/StructureDefinition/inner-resource-profile",
"identifier": [ {
"value": "urn:oid:2.16.840.1.113883.4.642.40.1.42.91",
"system": "urn:ietf:rfc:3986"
} ],
"context": [ "ImplementationGuide.definition.resource" ],
"version": "1.3.0",
"differential": {
"element": [ {
"id": "Extension",
"max": "*",
"min": 0,
"path": "Extension",
"short": "An element in the resource that complies with a profile",
"comment": "The only use cases are for tooling, which is why this extension is defined here. If more general uses come up, a general purpose extension may be defined.",
"definition": "Asserts that an element within the resource is valid against a particular profile, so that tooling can test it without the root resource having a profile that enforces it."
}, {
"id": "Extension.extension",
"min": 2,
"path": "Extension.extension"
}, {
"id": "Extension.extension:path",
"max": "1",
"min": 1,
"path": "Extension.extension",
"short": "FHIRPath to the element",
"sliceName": "path",
"definition": "FHIRPath that points to the element within the instance that complies with a particular profile. FHIRPath context is root resource pointed to by ImplementationGuide.definition.resource.reference."
}, {
"id": "Extension.extension:path.extension",
"max": "0",
"path": "Extension.extension.extension"
}, {
"id": "Extension.extension:path.url",
"path": "Extension.extension.url",
"fixedUri": "path"
}, {
"id": "Extension.extension:path.value[x]",
"min": 1,
"path": "Extension.extension.value[x]",
"type": [ {
"code": "string"
} ]
}, {
"id": "Extension.extension:profile",
"max": "1",
"min": 1,
"path": "Extension.extension",
"short": "Profile the element complies to",
"sliceName": "profile",
"definition": "The profile the specified element complies to."
}, {
"id": "Extension.extension:profile.extension",
"max": "0",
"path": "Extension.extension.extension"
}, {
"id": "Extension.extension:profile.url",
"path": "Extension.extension.url",
"fixedUri": "profile"
}, {
"id": "Extension.extension:profile.value[x]",
"min": 1,
"path": "Extension.extension.value[x]",
"type": [ {
"code": "uri"
} ]
}, {
"id": "Extension.url",
"path": "Extension.url",
"fixedUri": "http://hl7.org/fhir/tools/StructureDefinition/inner-resource-profile"
}, {
"id": "Extension.value[x]",
"max": "0",
"path": "Extension.value[x]"
} ]
},
"contact": [ {
"telecom": [ {
"value": "http://www.hl7.org/Special/committees/fiwg",
"system": "url"
} ]
} ],
"contextType": "resource",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension"
}