{ "description": "Specifies a type parameter for the type it is on (for use with logical models). This can also be used to narrow the binding - that usually means, bind to a concrete class in a descendent of this type", "_filename": "StructureDefinition-type-parameter.json", "package_name": "hl7.fhir.uv.tools", "date": "2024-10-27T07:27:27+11:00", "derivation": "constraint", "publisher": "HL7 International / FHIR Infrastructure", "fhirVersion": "5.0.0", "jurisdiction": [ { "coding": [ { "code": "001", "system": "http://unstats.un.org/unsd/methods/m49/m49.htm" } ] } ], "name": "TypeParameter", "mapping": [ { "uri": "http://hl7.org/v3", "name": "RIM Mapping", "identity": "rim" } ], "abstract": false, "type": "Extension", "experimental": "false", "resourceType": "StructureDefinition", "title": "Type Parameter Extension", "package_version": "0.3.0", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm", "valueInteger": 2 }, { "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", "source": "http://hl7.org/fhir/StructureDefinition/Element", "severity": "error", "expression": "hasValue() or (children().count() > id.count())" }, { "key": "ext-1", "human": "Must have either extensions or value[x], not both", "source": "http://hl7.org/fhir/StructureDefinition/Extension", "severity": "error", "expression": "extension.exists() != value.exists()" } ], "path": "Extension", "min": 0, "definition": "type-parameters applied to bindable elements.", "isModifier": false, "short": "Indicates that this repeating element is represented as an object in json and the named one of the two sub-elements is the key for the other one", "max": "*", "id": "Extension", "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.", "isModifier": false, "short": "Unique id for inter-element referencing", "mapping": [ { "map": "n/a", "identity": "rim" } ], "type": [ { "code": "http://hl7.org/fhirpath/System.String", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type", "valueUrl": "id" } ] } ], "representation": [ "xmlAttr" ], "max": "1", "id": "Extension.id", "condition": [ "ele-1" ], "base": { "max": "1", "min": 0, "path": "Element.id" }, "isSummary": false }, { "constraint": [ { "key": "ele-1", "human": "All FHIR elements must have a @value or children", "source": "http://hl7.org/fhir/StructureDefinition/Element", "severity": "error", "expression": "hasValue() or (children().count() > id.count())" }, { "key": "ext-1", "human": "Must have either extensions or value[x], not both", "source": "http://hl7.org/fhir/StructureDefinition/Extension", "severity": "error", "expression": "extension.exists() != value.exists()" } ], "path": "Extension.extension", "min": 2, "definition": "An Extension", "isModifier": false, "short": "Extension", "slicing": { "rules": "closed", "description": "Extensions are always sliced by (at least) url", "discriminator": [ { "path": "url", "type": "value" } ] }, "type": [ { "code": "Extension" } ], "max": "2", "id": "Extension.extension", "base": { "max": "*", "min": 0, "path": "Element.extension" }, "isSummary": false }, { "constraint": [ { "key": "ele-1", "human": "All FHIR elements must have a @value or children", "source": "http://hl7.org/fhir/StructureDefinition/Element", "severity": "error", "expression": "hasValue() or (children().count() > id.count())" }, { "key": "ext-1", "human": "Must have either extensions or value[x], not both", "source": "http://hl7.org/fhir/StructureDefinition/Extension", "severity": "error", "expression": "extension.exists() != value.exists()" } ], "path": "Extension.extension", "min": 1, "definition": "The name used for this type parameter", "isModifier": false, "short": "Name used for this type parameter", "type": [ { "code": "Extension" } ], "sliceName": "name", "max": "1", "id": "Extension.extension:name", "base": { "max": "*", "min": 0, "path": "Element.extension" }, "isSummary": false }, { "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.", "isModifier": false, "short": "Unique id for inter-element referencing", "mapping": [ { "map": "n/a", "identity": "rim" } ], "type": [ { "code": "http://hl7.org/fhirpath/System.String", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type", "valueUrl": "id" } ] } ], "representation": [ "xmlAttr" ], "max": "1", "id": "Extension.extension:name.id", "condition": [ "ele-1" ], "base": { "max": "1", "min": 0, "path": "Element.id" }, "isSummary": false }, { "constraint": [ { "key": "ele-1", "human": "All FHIR elements must have a @value or children", "source": "http://hl7.org/fhir/StructureDefinition/Element", "severity": "error", "expression": "hasValue() or (children().count() > id.count())" }, { "key": "ext-1", "human": "Must have either extensions or value[x], not both", "source": "http://hl7.org/fhir/StructureDefinition/Extension", "severity": "error", "expression": "extension.exists() != value.exists()" } ], "path": "Extension.extension.extension", "min": 0, "definition": "An Extension", "isModifier": false, "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:name.extension", "base": { "max": "*", "min": 0, "path": "Element.extension" }, "isSummary": false }, { "path": "Extension.extension.url", "min": 1, "definition": "Source of the definition for the extension code - a logical name or a URL.", "isModifier": false, "short": "identifies the meaning of the extension", "fixedUri": "name", "mapping": [ { "map": "N/A", "identity": "rim" } ], "type": [ { "code": "uri" } ], "representation": [ "xmlAttr" ], "max": "1", "id": "Extension.extension:name.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" }, "isSummary": false }, { "constraint": [ { "key": "ele-1", "human": "All FHIR elements must have a @value or children", "source": "http://hl7.org/fhir/StructureDefinition/Element", "severity": "error", "expression": "hasValue() or (children().count() > id.count())" } ], "path": "Extension.extension.value[x]", "min": 1, "definition": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R5/extensibility.html) for a list).", "isModifier": false, "short": "Value of extension", "mapping": [ { "map": "N/A", "identity": "rim" } ], "type": [ { "code": "code" } ], "max": "1", "id": "Extension.extension:name.value[x]", "condition": [ "ext-1" ], "base": { "max": "1", "min": 0, "path": "Extension.value[x]" }, "isSummary": false }, { "constraint": [ { "key": "ele-1", "human": "All FHIR elements must have a @value or children", "source": "http://hl7.org/fhir/StructureDefinition/Element", "severity": "error", "expression": "hasValue() or (children().count() > id.count())" }, { "key": "ext-1", "human": "Must have either extensions or value[x], not both", "source": "http://hl7.org/fhir/StructureDefinition/Extension", "severity": "error", "expression": "extension.exists() != value.exists()" } ], "path": "Extension.extension", "min": 1, "definition": "An Extension", "isModifier": false, "short": "The base type for the parameter (use http://hl7.org/fhir/StructureDefinition/Base for any type)", "type": [ { "code": "Extension" } ], "sliceName": "type", "max": "1", "id": "Extension.extension:type", "base": { "max": "*", "min": 0, "path": "Element.extension" }, "isSummary": false }, { "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.", "isModifier": false, "short": "Unique id for inter-element referencing", "mapping": [ { "map": "n/a", "identity": "rim" } ], "type": [ { "code": "http://hl7.org/fhirpath/System.String", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type", "valueUrl": "id" } ] } ], "representation": [ "xmlAttr" ], "max": "1", "id": "Extension.extension:type.id", "condition": [ "ele-1" ], "base": { "max": "1", "min": 0, "path": "Element.id" }, "isSummary": false }, { "constraint": [ { "key": "ele-1", "human": "All FHIR elements must have a @value or children", "source": "http://hl7.org/fhir/StructureDefinition/Element", "severity": "error", "expression": "hasValue() or (children().count() > id.count())" }, { "key": "ext-1", "human": "Must have either extensions or value[x], not both", "source": "http://hl7.org/fhir/StructureDefinition/Extension", "severity": "error", "expression": "extension.exists() != value.exists()" } ], "path": "Extension.extension.extension", "min": 0, "definition": "An Extension", "isModifier": false, "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:type.extension", "base": { "max": "*", "min": 0, "path": "Element.extension" }, "isSummary": false }, { "path": "Extension.extension.url", "min": 1, "definition": "Source of the definition for the extension code - a logical name or a URL.", "isModifier": false, "short": "identifies the meaning of the extension", "fixedUri": "type", "mapping": [ { "map": "N/A", "identity": "rim" } ], "type": [ { "code": "uri" } ], "representation": [ "xmlAttr" ], "max": "1", "id": "Extension.extension:type.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" }, "isSummary": false }, { "constraint": [ { "key": "ele-1", "human": "All FHIR elements must have a @value or children", "source": "http://hl7.org/fhir/StructureDefinition/Element", "severity": "error", "expression": "hasValue() or (children().count() > id.count())" } ], "path": "Extension.extension.value[x]", "min": 1, "definition": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R5/extensibility.html) for a list).", "isModifier": false, "short": "Value of extension", "mapping": [ { "map": "N/A", "identity": "rim" } ], "type": [ { "code": "uri" } ], "max": "1", "id": "Extension.extension:type.value[x]", "condition": [ "ext-1" ], "base": { "max": "1", "min": 0, "path": "Extension.value[x]" }, "isSummary": false }, { "path": "Extension.url", "min": 1, "definition": "Source of the definition for the extension code - a logical name or a URL.", "isModifier": false, "short": "identifies the meaning of the extension", "fixedUri": "http://hl7.org/fhir/tools/StructureDefinition/type-parameter", "mapping": [ { "map": "N/A", "identity": "rim" } ], "type": [ { "code": "http://hl7.org/fhirpath/System.String", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type", "valueUrl": "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" }, "isSummary": false }, { "constraint": [ { "key": "ele-1", "human": "All FHIR elements must have a @value or children", "source": "http://hl7.org/fhir/StructureDefinition/Element", "severity": "error", "expression": "hasValue() or (children().count() > id.count())" } ], "path": "Extension.value[x]", "min": 0, "definition": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R5/extensibility.html) for a list).", "isModifier": false, "short": "Value of extension", "mapping": [ { "map": "N/A", "identity": "rim" } ], "type": [ { "code": "base64Binary" }, { "code": "boolean" }, { "code": "canonical" }, { "code": "code" }, { "code": "date" }, { "code": "dateTime" }, { "code": "decimal" }, { "code": "id" }, { "code": "instant" }, { "code": "integer" }, { "code": "integer64" }, { "code": "markdown" }, { "code": "oid" }, { "code": "positiveInt" }, { "code": "string" }, { "code": "time" }, { "code": "unsignedInt" }, { "code": "uri" }, { "code": "url" }, { "code": "uuid" }, { "code": "Address" }, { "code": "Age" }, { "code": "Annotation" }, { "code": "Attachment" }, { "code": "CodeableConcept" }, { "code": "CodeableReference" }, { "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": "RatioRange" }, { "code": "Reference" }, { "code": "SampledData" }, { "code": "Signature" }, { "code": "Timing" }, { "code": "ContactDetail" }, { "code": "DataRequirement" }, { "code": "Expression" }, { "code": "ParameterDefinition" }, { "code": "RelatedArtifact" }, { "code": "TriggerDefinition" }, { "code": "UsageContext" }, { "code": "Availability" }, { "code": "ExtendedContactDetail" }, { "code": "Dosage" }, { "code": "Meta" } ], "max": "0", "id": "Extension.value[x]", "condition": [ "ext-1" ], "base": { "max": "1", "min": 0, "path": "Extension.value[x]" }, "isSummary": false } ] }, "status": "active", "id": "09d2a66f-687b-4207-9e46-db6045cb628e", "kind": "complex-type", "url": "http://hl7.org/fhir/tools/StructureDefinition/type-parameter", "identifier": [ { "value": "urn:oid:2.16.840.1.113883.4.642.40.1.42.50", "system": "urn:ietf:rfc:3986" } ], "context": [ { "type": "element", "expression": "StructureDefinition" } ], "version": "0.3.0", "differential": { "element": [ { "id": "Extension", "max": "*", "min": 0, "path": "Extension", "short": "Indicates that this repeating element is represented as an object in json and the named one of the two sub-elements is the key for the other one", "definition": "type-parameters applied to bindable elements." }, { "id": "Extension.extension", "max": "2", "min": 2, "path": "Extension.extension", "slicing": { "rules": "closed", "description": "Extensions are sliced by url", "discriminator": [ { "path": "url", "type": "value" } ] } }, { "id": "Extension.extension:name", "max": "1", "min": 1, "path": "Extension.extension", "type": [ { "code": "Extension" } ], "short": "Name used for this type parameter", "sliceName": "name", "definition": "The name used for this type parameter" }, { "id": "Extension.extension:name.extension", "max": "0", "path": "Extension.extension.extension" }, { "id": "Extension.extension:name.url", "path": "Extension.extension.url", "type": [ { "code": "uri" } ], "fixedUri": "name" }, { "id": "Extension.extension:name.value[x]", "min": 1, "path": "Extension.extension.value[x]", "type": [ { "code": "code" } ] }, { "id": "Extension.extension:type", "max": "1", "min": 1, "path": "Extension.extension", "type": [ { "code": "Extension" } ], "short": "The base type for the parameter (use http://hl7.org/fhir/StructureDefinition/Base for any type)", "sliceName": "type" }, { "id": "Extension.extension:type.extension", "max": "0", "path": "Extension.extension.extension" }, { "id": "Extension.extension:type.url", "path": "Extension.extension.url", "type": [ { "code": "uri" } ], "fixedUri": "type" }, { "id": "Extension.extension:type.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/type-parameter" }, { "id": "Extension.value[x]", "max": "0", "path": "Extension.value[x]" } ] }, "contact": [ { "telecom": [ { "value": "http://www.hl7.org/Special/committees/fiwg", "system": "url" } ] } ], "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension" }