DeviceFeatures
FHIR Profile
The extension DeviceFeatures defines certain features of the breast implant used during surgery.
The extension contains 7 slices:
- texture
- coating
- coatingother
- shape
- fill
- fillother
- weight
This extension is used for FHIR Profile ImplantDevice, accessible via DeviceFeatures.
This profile is based on the FHIR version R4 specifications for extensions, see also Extensibility.
DeviceFeatures (Extension) | I | | Extension | Element idShort description Features of device Definition Optional Extension Element - found in all resources.
Data type Extension Constraints- ele-1: All FHIR elements must have a @value or children
hasValue() or (children().count() > id.count()) - ext-1: Must have either extensions or value[x], not both
extension.exists() != value.exists()
Mappings |
id | | 0..1 | string | There are no (further) constraints on this element Element idShort description Unique id for inter-element referencing Definition Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Data type string Mappings |
extension | I | 0..* | Extension | There are no (further) constraints on this element Element idShort description Additional content defined by implementations Alternate names extensions, user content Definition May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Comments There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
Data type Extension Sliced: Unordered, Open, by url(Value) Extensions are always sliced by (at least) url Constraints- ele-1: All FHIR elements must have a @value or children
hasValue() or (children().count() > id.count()) - ext-1: Must have either extensions or value[x], not both
extension.exists() != value.exists()
Mappings |
url | | 1..1 | uriFixed Value | Element idShort description identifies the meaning of the extension Definition Source of the definition for the extension code - a logical name or a URL.
Comments 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.
Data type uri Fixed value http://mrdm.nl/profiles/fhir/r4/dbir/StructureDefinition/DeviceFeatures Mappings |
value[x] | | 1..1 | | Element idShort description Value of extension Definition Each coding element represent a DICA variable:
- texture
- coating
- coatingother
- fill
- fillother
- shape
- weight
Constraints- ele-1: All FHIR elements must have a @value or children
hasValue() or (children().count() > id.count())
Mappings |
valueCodeableConcept | | | CodeableConcept | Data type CodeableConcept |
id | | 0..1 | string | There are no (further) constraints on this element Element idShort description Unique id for inter-element referencing Definition Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Data type string Mappings |
extension | I | 0..* | Extension | There are no (further) constraints on this element Element idExtension.value[x].extension Short description Additional content defined by implementations Alternate names extensions, user content Definition May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Comments There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
Data type Extension Sliced: Unordered, Open, by url(Value) Extensions are always sliced by (at least) url Constraints- ele-1: All FHIR elements must have a @value or children
hasValue() or (children().count() > id.count()) - ext-1: Must have either extensions or value[x], not both
extension.exists() != value.exists()
Mappings |
coding | Σ | 1..* | Coding | There are no (further) constraints on this element Element idExtension.value[x].coding Short description Code defined by a terminology system Definition A reference to a code defined by a terminology system.
Requirements Allows for alternative encodings within a code system, and translations to other code systems.
Comments Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.
Data type Coding Constraints- ele-1: All FHIR elements must have a @value or children
hasValue() or (children().count() > id.count())
Mappings- v2: C*E.1-8, C*E.10-22
- rim: union(., ./translation)
- orim: fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding
|
id | | 0..1 | string | There are no (further) constraints on this element Element idExtension.value[x].coding.id Short description Unique id for inter-element referencing Definition Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Data type string Mappings |
extension | I | 0..* | Extension | There are no (further) constraints on this element Element idExtension.value[x].coding.extension Short description Additional content defined by implementations Alternate names extensions, user content Definition May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Comments There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
Data type Extension Sliced: Unordered, Open, by url(Value) Extensions are always sliced by (at least) url Constraints- ele-1: All FHIR elements must have a @value or children
hasValue() or (children().count() > id.count()) - ext-1: Must have either extensions or value[x], not both
extension.exists() != value.exists()
Mappings |
system | Σ | 1..1 | uri | There are no (further) constraints on this element Element idExtension.value[x].coding.system Short description Identity of the terminology system Definition The identification of the code system that defines the meaning of the symbol in the code.
Requirements Need to be unambiguous about the source of the definition of the symbol.
Comments The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.
Data type uri Constraints- ele-1: All FHIR elements must have a @value or children
hasValue() or (children().count() > id.count())
Mappings- v2: C*E.3
- rim: ./codeSystem
- orim: fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem
|
version | Σ | 0..1 | string | There are no (further) constraints on this element Element idExtension.value[x].coding.version Short description Version of the system - if relevant Definition The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.
Comments Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.
Data type string Constraints- ele-1: All FHIR elements must have a @value or children
hasValue() or (children().count() > id.count())
Mappings- v2: C*E.7
- rim: ./codeSystemVersion
- orim: fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion
|
code | Σ | 0..1 | code | There are no (further) constraints on this element Element idExtension.value[x].coding.code Short description Symbol in syntax defined by the system Definition A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).
Requirements Need to refer to a particular code in the system.
Data type code Constraints- ele-1: All FHIR elements must have a @value or children
hasValue() or (children().count() > id.count())
Mappings- v2: C*E.1
- rim: ./code
- orim: fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code
|
display | Σ | 0..1 | string | There are no (further) constraints on this element Element idExtension.value[x].coding.display Short description Representation defined by the system Definition A representation of the meaning of the code in the system, following the rules of the system.
Requirements Need to be able to carry a human-readable meaning of the code for readers that do not know the system.
Data type string Constraints- ele-1: All FHIR elements must have a @value or children
hasValue() or (children().count() > id.count())
Mappings- v2: C*E.2 - but note this is not well followed
- rim: CV.displayName
- orim: fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName
|
userSelected | Σ | 0..1 | boolean | There are no (further) constraints on this element Element idExtension.value[x].coding.userSelected Short description If this coding was chosen directly by the user Definition Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).
Requirements This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.
Comments Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.
Data type boolean Constraints- ele-1: All FHIR elements must have a @value or children
hasValue() or (children().count() > id.count())
Mappings- v2: Sometimes implied by being first
- rim: CD.codingRationale
- orim: fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\#true a [ fhir:source "true"; fhir:target dt:CDCoding.codingRationale\#O ]
|
text | Σ | 0..1 | string | There are no (further) constraints on this element Element idShort description Plain text representation of the concept Definition A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.
Requirements The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.
Comments Very often the text is the same as a displayName of one of the codings.
Data type string Constraints- ele-1: All FHIR elements must have a @value or children
hasValue() or (children().count() > id.count())
Mappings- v2: C*E.9. But note many systems use C*E.2 for this
- rim: ./originalText[mediaType/code="text/plain"]/data
- orim: fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText
|
Mapping
Here is a list of the exact mapping for this FHIR Profile. The mapping includes the DICA variable and corresponding FHIR data element. In case of a DICA option set, the relation between the DICA options and available values within the FHIR data element are defined.
DICA variable |
FHIR Data Element |
DICA OptionSet |
Value DICA OptionSet |
FHIR ValueSet/Code/System |
texture |
extension.deviceFeatures.texture |
105 |
identical to ValueSet |
Implant Texture |
coating |
extension.deviceFeatures.coating |
139 |
identical to ValueSet |
Implant Coating |
coatingother |
extension.deviceFeatures.coating |
n/a |
n/a |
n/a |
fill |
extension.deviceFeatures.fill |
106 |
identical to ValueSet |
Implant Fill |
fillother |
extension.deviceFeatures.fill |
n/a |
n/a |
n/a |
shape |
extension.deviceFeatures.shape |
107 |
identical to ValueSet |
Implant Shape |
maxweightvol |
extension.deviceFeatures.weight |
n/a |
n/a |
n/a |
Each slice consists of an valueCodeableConcept. The element has a generic structure, as shown below
"valueCodeableConcept": {
"coding": [
{
"system": "URL",
"code": "code",
"display": "display value"
}
]
}
Each coding element represent a feature of the Device. The system URL within the coding elements are set with the following base URL: http://mrdm.nl/profiles/fhir/r4/dbir/StructureDefinition/DeviceFeatures.
This leads to the following system URLs:
The code for texture, coating, fill, and shape variable are set by the following ValueSets:
An example of a fill variable with value 1. The display value is optional, the code value is required.
"valueCodeableConcept": {
"coding": [
{
"system": "http://mrdm.nl/profiles/fhir/r4/dbir/StructureDefinition/DeviceFeatures/fill",
"code": "2",
"display": "Saline"
}
]
}
For variables coatingother and fillother, a code is not applicable as they are represented by string values. For these variables, use the ***display""" value instead.
An example that uses fillother variable. The display value is required, the code value is not applicable.
"valueCodeableConcept": {
"coding": [
{
"system": "http://mrdm.nl/profiles/fhir/r4/dbir/StructureDefinition/DeviceFeatures/fillother",
"display": "Other fill solution"
}
]
}
Constraints
Constraints can refer to the cardinality of an element, required value or type of value.
The following constraints apply:
- The extension element must use url "http://mrdm.nl/profiles/fhir/r4/dbir/StructureDefinition/DeviceFeatures".
- Each coding element should adhere to the above-mentioned URL listed
- Each coding element should abide by the code available in the corresponding ValueSet, except for variables fillother and coatingother
Example Implant Device with extension DeviceFeatures using fill and coating variables
{
"resourceType":"Device",
"id":"example-1-dbir-device",
"meta":{
"profile":[
"http://mrdm.nl/profiles/fhir/r4/dbir/StructureDefinition/ImplantDevice"
]
},
"identifier":[
{
"system":"urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2.10.1.3",
"value":"12345678901234",
"type":{
"coding":[
{
"system":"http://terminology.hl7.org/CodeSystem/v2-0203",
"code":"GTIN",
"display":"Global Trade Item Number"
}
]
}
}
],
"udiCarrier":{
"deviceIdentifier":"12345678901234-20251231-LOT123456-SN1234567890",
"carrierHRF":"(01)12345678901234",
"entryType":"barcode"
},
"status":"active",
"manufacturer":"32",
"expirationDate":"2025-12-31",
"lotNumber":"LOT123456",
"serialNumber":"SN1234567890",
"type":{
"coding":[
{
"system":"http://snomed.info/sct",
"code":"2282003",
"display":"Breast prosthesis"
}
]
},
"owner":{
"reference":"Organization/1"
},
"extension": [
{
"url": "http://mrdm.nl/profiles/fhir/r4/dbir/StructureDefinition/DeviceFeatures",
"valueCodeableConcept": {
"coding": [
{
"system": "http://mrdm.nl/profiles/fhir/r4/dbir/StructureDefinition/DeviceFeatures/fill",
"code": "4",
"display": "Air"
}
],
}
}
]
}
Example Implant Device with extension DeviceFeatures using coatingother and fillother variables
{
"resourceType":"Device",
"id":"example-2-dbir-device",
"meta":{
"profile":[
"http://mrdm.nl/profiles/fhir/r4/dbir/StructureDefinition/ImplantDevice"
]
},
"identifier":[
{
"system":"urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2.10.1.3",
"value":"12345678901236",
"type":{
"coding":[
{
"system":"http://terminology.hl7.org/CodeSystem/v2-0404",
"code":"GTIN",
"display":"Global Trade Item Number"
}
]
}
}
],
"udiCarrier":{
"deviceIdentifier":"12345678901234-20251231-LOT123456-SN1234567897",
"carrierHRF":"(01)12345678901239",
"entryType": "barcode"
},
"status":"active",
"manufacturer":"other manufacturer",
"expirationDate":"2025-12-31",
"lotNumber":"LOT123456",
"serialNumber":"SN1234567890",
"type":{
"coding":[
{
"system":"http://snomed.info/sct",
"code":"2282003",
"display":"Breast prosthesis"
}
]
},
"extension": [
{
"url": "http://mrdm.nl/profiles/fhir/r4/dbir/StructureDefinition/DeviceFeatures",
"valueCodeableConcept": {
"coding": [
{
"system": "http://mrdm.nl/profiles/fhir/r4/dbir/StructureDefinition/DeviceFeatures/coatingother",
"display": "Another coating"
},
{
"system": "http://mrdm.nl/profiles/fhir/r4/dbir/StructureDefinition/DeviceFeatures/fillother",
"display": "Another fill"
},
],
}
}
]
}