{
"resourceType": "Bundle", "id": "types", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "type": "collection", "entry": [ { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Element", "resource": { "resourceType": "StructureDefinition", "id": "Element", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Element", "name": "Element", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": true, "type": "Element", "snapshot": { "element": [ { "id": "Element", "path": "Element", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div" } ] }, { "id": "Element.id", "path": "Element.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "code": "string" } ] }, { "id": "Element.extension", "path": "Element.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "type": [ { "code": "Extension" } ] } ] }, "differential": { "element": [ { "id": "Element", "path": "Element", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div" } ] }, { "id": "Element.id", "path": "Element.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "code": "string" } ] }, { "id": "Element.extension", "path": "Element.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "type": [ { "code": "Extension" } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/BackboneElement", "resource": { "resourceType": "StructureDefinition", "id": "BackboneElement", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/BackboneElement", "name": "BackboneElement", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": true, "type": "BackboneElement", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "BackboneElement", "path": "BackboneElement", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "BackboneElement.id", "path": "BackboneElement.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "BackboneElement.extension", "path": "BackboneElement.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "BackboneElement.modifierExtension", "path": "BackboneElement.modifierExtension", "comment": "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.", "min": 0, "max": "*", "type": [ { "code": "Extension" } ], "isModifier": true, "isSummary": true } ] }, "differential": { "element": [ { "id": "BackboneElement", "path": "BackboneElement", "min": 0, "max": "*" }, { "id": "BackboneElement.modifierExtension", "path": "BackboneElement.modifierExtension", "comment": "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.", "min": 0, "max": "*", "type": [ { "code": "Extension" } ], "isModifier": true, "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/base64Binary", "resource": { "resourceType": "StructureDefinition", "id": "base64Binary", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/base64Binary", "name": "base64Binary", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "base64Binary", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "base64Binary", "path": "base64Binary", "comment": "A stream of bytes, base64 encoded", "min": 0, "max": "*", "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "base64Binary.id", "path": "base64Binary.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "base64Binary.extension", "path": "base64Binary.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "base64Binary.value", "path": "base64Binary.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:base64Binary" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:base64Binary" } ] } } ] } ] }, "differential": { "element": [ { "id": "base64Binary", "path": "base64Binary", "comment": "A stream of bytes, base64 encoded", "min": 0, "max": "*" }, { "id": "base64Binary.value", "path": "base64Binary.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:base64Binary" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:base64Binary" } ] } } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/boolean", "resource": { "resourceType": "StructureDefinition", "id": "boolean", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/boolean", "name": "boolean", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "boolean", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "boolean", "path": "boolean", "min": 0, "max": "*", "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "boolean.id", "path": "boolean.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "boolean.extension", "path": "boolean.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "boolean.value", "path": "boolean.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "boolean" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:boolean" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:boolean" } ] } } ] } ] }, "differential": { "element": [ { "id": "boolean", "path": "boolean", "min": 0, "max": "*" }, { "id": "boolean.value", "path": "boolean.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "boolean" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:boolean" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:boolean" } ] } } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/code", "resource": { "resourceType": "StructureDefinition", "id": "code", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/code", "name": "code", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "code", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/string", "derivation": "specialization", "snapshot": { "element": [ { "id": "code", "path": "code", "min": 0, "max": "*", "base": { "path": "code", "min": 0, "max": "*" }, "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "code.id", "path": "code.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "code.extension", "path": "code.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "code.value", "path": "code.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "string.value", "min": 0, "max": "1" }, "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "[^\\s]+([\\s]?[^\\s]+)*" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:token" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:token" } ] } } ] } ] }, "differential": { "element": [ { "id": "code", "path": "code", "min": 0, "max": "*" }, { "id": "code.value", "path": "code.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "[^\\s]+([\\s]?[^\\s]+)*" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:token" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:token" } ] } } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/date", "resource": { "resourceType": "StructureDefinition", "id": "date", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/date", "name": "date", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "date", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "date", "path": "date", "min": 0, "max": "*", "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "date.id", "path": "date.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "date.extension", "path": "date.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "date.value", "path": "date.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "-?[0-9]{4}(-(0[1-9]|1[0-2])(-(0[0-9]|[1-2][0-9]|3[0-1]))?)?" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:gYear OR xsd:gYearMonth OR xsd:date" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:gYear OR xsd:gYearMonth OR xsd:date" } ] } } ] } ] }, "differential": { "element": [ { "id": "date", "path": "date", "min": 0, "max": "*" }, { "id": "date.value", "path": "date.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "-?[0-9]{4}(-(0[1-9]|1[0-2])(-(0[0-9]|[1-2][0-9]|3[0-1]))?)?" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:gYear OR xsd:gYearMonth OR xsd:date" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:gYear OR xsd:gYearMonth OR xsd:date" } ] } } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/dateTime", "resource": { "resourceType": "StructureDefinition", "id": "dateTime", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/dateTime", "name": "dateTime", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "dateTime", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "dateTime", "path": "dateTime", "min": 0, "max": "*", "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "dateTime.id", "path": "dateTime.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "dateTime.extension", "path": "dateTime.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "dateTime.value", "path": "dateTime.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "-?[0-9]{4}(-(0[1-9]|1[0-2])(-(0[0-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:gYear OR xsd:gYearMonth OR xsd:date OR xsd:dateTime" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:gYear OR xsd:gYearMonth OR xsd:date OR xsd:dateTime" } ] } } ] } ] }, "differential": { "element": [ { "id": "dateTime", "path": "dateTime", "min": 0, "max": "*" }, { "id": "dateTime.value", "path": "dateTime.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "-?[0-9]{4}(-(0[1-9]|1[0-2])(-(0[0-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:gYear OR xsd:gYearMonth OR xsd:date OR xsd:dateTime" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:gYear OR xsd:gYearMonth OR xsd:date OR xsd:dateTime" } ] } } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/decimal", "resource": { "resourceType": "StructureDefinition", "id": "decimal", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/decimal", "name": "decimal", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "decimal", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "decimal", "path": "decimal", "comment": "Do not use a IEEE type floating point type, instead use something that works like a true decimal, with inbuilt precision (e.g. Java BigInteger)", "min": 0, "max": "*", "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "decimal.id", "path": "decimal.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "decimal.extension", "path": "decimal.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "decimal.value", "path": "decimal.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "-?([0]|([1-9][0-9]*))(\\.[0-9]+)?" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "number" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:decimal" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:decimal" } ] } } ] } ] }, "differential": { "element": [ { "id": "decimal", "path": "decimal", "comment": "Do not use a IEEE type floating point type, instead use something that works like a true decimal, with inbuilt precision (e.g. Java BigInteger)", "min": 0, "max": "*" }, { "id": "decimal.value", "path": "decimal.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "-?([0]|([1-9][0-9]*))(\\.[0-9]+)?" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "number" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:decimal" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:decimal" } ] } } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/id", "resource": { "resourceType": "StructureDefinition", "id": "id", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/id", "name": "id", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "id", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/string", "derivation": "specialization", "snapshot": { "element": [ { "id": "id", "path": "id", "comment": "RFC 4122", "min": 0, "max": "*", "base": { "path": "id", "min": 0, "max": "*" }, "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "id.id", "path": "id.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "id.extension", "path": "id.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "id.value", "path": "id.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "string.value", "min": 0, "max": "1" }, "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "[A-Za-z0-9\\-\\.]{1,64}" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:string" } ] } } ] } ] }, "differential": { "element": [ { "id": "id", "path": "id", "comment": "RFC 4122", "min": 0, "max": "*" }, { "id": "id.value", "path": "id.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "[A-Za-z0-9\\-\\.]{1,64}" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:string" } ] } } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/instant", "resource": { "resourceType": "StructureDefinition", "id": "instant", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/instant", "name": "instant", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "instant", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "instant", "path": "instant", "comment": "Note: This is intended for precisely observed times, typically system logs etc., and not human-reported times - for them, see date and dateTime below. Time zone is always required", "min": 0, "max": "*", "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "instant.id", "path": "instant.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "instant.extension", "path": "instant.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "instant.value", "path": "instant.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:dateTime" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:dateTime" } ] } } ] } ] }, "differential": { "element": [ { "id": "instant", "path": "instant", "comment": "Note: This is intended for precisely observed times, typically system logs etc., and not human-reported times - for them, see date and dateTime below. Time zone is always required", "min": 0, "max": "*" }, { "id": "instant.value", "path": "instant.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:dateTime" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:dateTime" } ] } } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/integer", "resource": { "resourceType": "StructureDefinition", "id": "integer", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/integer", "name": "integer", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "integer", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "integer", "path": "integer", "comment": "32 bit number; for values larger than this, use decimal", "min": 0, "max": "*", "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "integer.id", "path": "integer.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "integer.extension", "path": "integer.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "integer.value", "path": "integer.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "-?([0]|([1-9][0-9]*))" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "number" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:int" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:int" } ] } } ], "minValueInteger": -2147483648, "maxValueInteger": 2147483647 } ] }, "differential": { "element": [ { "id": "integer", "path": "integer", "comment": "32 bit number; for values larger than this, use decimal", "min": 0, "max": "*" }, { "id": "integer.value", "path": "integer.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "-?([0]|([1-9][0-9]*))" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "number" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:int" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:int" } ] } } ], "minValueInteger": -2147483648, "maxValueInteger": 2147483647 } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/markdown", "resource": { "resourceType": "StructureDefinition", "id": "markdown", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/markdown", "name": "markdown", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "markdown", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/string", "derivation": "specialization", "snapshot": { "element": [ { "id": "markdown", "path": "markdown", "comment": "Systems are not required to have markdown support, and there is considerable variation in markdown syntax, so the text should be readable without markdown processing. The preferred markdown syntax is described here: http://daringfireball.net/projects/markdown/syntax (and tests here: http://daringfireball.net/projects/downloads/MarkdownTest_1.0.zip)", "min": 0, "max": "*", "base": { "path": "markdown", "min": 0, "max": "*" }, "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "markdown.id", "path": "markdown.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "markdown.extension", "path": "markdown.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "markdown.value", "path": "markdown.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "string.value", "min": 0, "max": "1" }, "type": [ { "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:string" } ] } } ] } ] }, "differential": { "element": [ { "id": "markdown", "path": "markdown", "comment": "Systems are not required to have markdown support, and there is considerable variation in markdown syntax, so the text should be readable without markdown processing. The preferred markdown syntax is described here: http://daringfireball.net/projects/markdown/syntax (and tests here: http://daringfireball.net/projects/downloads/MarkdownTest_1.0.zip)", "min": 0, "max": "*" }, { "id": "markdown.value", "path": "markdown.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:string" } ] } } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/oid", "resource": { "resourceType": "StructureDefinition", "id": "oid", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/oid", "name": "oid", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "oid", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/uri", "derivation": "specialization", "snapshot": { "element": [ { "id": "oid", "path": "oid", "comment": "RFC 3001. See also ISO/IEC 8824:1990 €", "min": 0, "max": "*", "base": { "path": "oid", "min": 0, "max": "*" }, "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "oid.id", "path": "oid.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "oid.extension", "path": "oid.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "oid.value", "path": "oid.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "uri.value", "min": 0, "max": "1" }, "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "urn:oid:(0|[1-9][0-9]*)(\\.(0|[1-9][0-9]*))*" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:anyURI" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:string" } ] } } ] } ] }, "differential": { "element": [ { "id": "oid", "path": "oid", "comment": "RFC 3001. See also ISO/IEC 8824:1990 €", "min": 0, "max": "*" }, { "id": "oid.value", "path": "oid.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "urn:oid:(0|[1-9][0-9]*)(\\.(0|[1-9][0-9]*))*" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:anyURI" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:string" } ] } } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/positiveInt", "resource": { "resourceType": "StructureDefinition", "id": "positiveInt", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/positiveInt", "name": "positiveInt", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "positiveInt", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/integer", "derivation": "specialization", "snapshot": { "element": [ { "id": "positiveInt", "path": "positiveInt", "min": 0, "max": "*", "base": { "path": "positiveInt", "min": 0, "max": "*" }, "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "positiveInt.id", "path": "positiveInt.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "positiveInt.extension", "path": "positiveInt.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "positiveInt.value", "path": "positiveInt.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "integer.value", "min": 0, "max": "1" }, "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "[1-9][0-9]*" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "number" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:positiveInteger" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:positiveInteger" } ] } } ] } ] }, "differential": { "element": [ { "id": "positiveInt", "path": "positiveInt", "min": 0, "max": "*" }, { "id": "positiveInt.value", "path": "positiveInt.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "[1-9][0-9]*" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "number" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:positiveInteger" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:positiveInteger" } ] } } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/string", "resource": { "resourceType": "StructureDefinition", "id": "string", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/string", "name": "string", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "string", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "string", "path": "string", "comment": "Note that FHIR strings may not exceed 1MB in size", "min": 0, "max": "*", "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "string.id", "path": "string.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "string.extension", "path": "string.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "string.value", "path": "string.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:string" } ] } } ], "maxLength": 1048576 } ] }, "differential": { "element": [ { "id": "string", "path": "string", "comment": "Note that FHIR strings may not exceed 1MB in size", "min": 0, "max": "*" }, { "id": "string.value", "path": "string.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:string" } ] } } ], "maxLength": 1048576 } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/time", "resource": { "resourceType": "StructureDefinition", "id": "time", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/time", "name": "time", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "time", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "time", "path": "time", "min": 0, "max": "*", "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "time.id", "path": "time.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "time.extension", "path": "time.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "time.value", "path": "time.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:time" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:time" } ] } } ] } ] }, "differential": { "element": [ { "id": "time", "path": "time", "min": 0, "max": "*" }, { "id": "time.value", "path": "time.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:time" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:time" } ] } } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/unsignedInt", "resource": { "resourceType": "StructureDefinition", "id": "unsignedInt", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/unsignedInt", "name": "unsignedInt", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "unsignedInt", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/integer", "derivation": "specialization", "snapshot": { "element": [ { "id": "unsignedInt", "path": "unsignedInt", "min": 0, "max": "*", "base": { "path": "unsignedInt", "min": 0, "max": "*" }, "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "unsignedInt.id", "path": "unsignedInt.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "unsignedInt.extension", "path": "unsignedInt.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "unsignedInt.value", "path": "unsignedInt.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "integer.value", "min": 0, "max": "1" }, "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "[0]|([1-9][0-9]*)" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "number" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:nonNegativeInteger" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:nonNegativeInteger" } ] } } ] } ] }, "differential": { "element": [ { "id": "unsignedInt", "path": "unsignedInt", "min": 0, "max": "*" }, { "id": "unsignedInt.value", "path": "unsignedInt.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "[0]|([1-9][0-9]*)" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "number" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:nonNegativeInteger" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:nonNegativeInteger" } ] } } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/uri", "resource": { "resourceType": "StructureDefinition", "id": "uri", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/uri", "name": "uri", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "uri", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "uri", "path": "uri", "comment": "see http://en.wikipedia.org/wiki/Uniform_resource_identifier", "min": 0, "max": "*", "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "uri.id", "path": "uri.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "uri.extension", "path": "uri.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "uri.value", "path": "uri.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:anyURI" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:string" } ] } } ] } ] }, "differential": { "element": [ { "id": "uri", "path": "uri", "comment": "see http://en.wikipedia.org/wiki/Uniform_resource_identifier", "min": 0, "max": "*" }, { "id": "uri.value", "path": "uri.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:anyURI" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:string" } ] } } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/uuid", "resource": { "resourceType": "StructureDefinition", "id": "uuid", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/uuid", "name": "uuid", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "uuid", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/uri", "derivation": "specialization", "snapshot": { "element": [ { "id": "uuid", "path": "uuid", "comment": "See The Open Group, CDE 1.1 Remote Procedure Call specification, Appendix A.", "min": 0, "max": "*", "base": { "path": "uuid", "min": 0, "max": "*" }, "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "uuid.id", "path": "uuid.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "uuid.extension", "path": "uuid.extension", "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "uuid.value", "path": "uuid.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "uri.value", "min": 0, "max": "1" }, "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:anyURI" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:string" } ] } } ] } ] }, "differential": { "element": [ { "id": "uuid", "path": "uuid", "comment": "See The Open Group, CDE 1.1 Remote Procedure Call specification, Appendix A.", "min": 0, "max": "*" }, { "id": "uuid.value", "path": "uuid.value", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "type": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-regex", "valueString": "urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" } ], "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xsd:anyURI" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "xsd:string" } ] } } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/xhtml", "resource": { "resourceType": "StructureDefinition", "id": "xhtml", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/xhtml", "name": "xhtml", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "primitive-type", "abstract": false, "type": "xhtml", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "xhtml", "path": "xhtml", "min": 0, "max": "*" }, { "id": "xhtml.id", "path": "xhtml.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "xhtml.extension", "path": "xhtml.extension", "comment": "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.", "min": 0, "max": "0", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "xhtml.value", "path": "xhtml.value", "representation": [ "xhtml" ], "min": 1, "max": "1", "type": [ { "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xhtml:div" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "string" } ] } } ] } ] }, "differential": { "element": [ { "id": "xhtml", "path": "xhtml", "min": 0, "max": "*" }, { "id": "xhtml.extension", "path": "xhtml.extension", "max": "0" }, { "id": "xhtml.value", "path": "xhtml.value", "representation": [ "xhtml" ], "min": 1, "max": "1", "type": [ { "_code": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type", "valueString": "string" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type", "valueString": "xhtml:div" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type", "valueString": "string" } ] } } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Address", "resource": { "resourceType": "StructureDefinition", "id": "Address", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Address", "name": "Address", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "Need to be able to record postal addresses, along with notes about their use.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Address", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Address", "path": "Address", "comment": "Note: address is for postal addresses, not physical locations.", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "Address.id", "path": "Address.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Address.extension", "path": "Address.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Address.use", "path": "Address.use", "comment": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary or old address etc.for a current/permanent one. Applications can assume that an address is current unless it explicitly says that it is temporary or old.", "min": 0, "max": "1", "type": [ { "code": "code" } ], "example": [ { "label": "General", "valueCode": "home" } ], "isModifier": true, "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "AddressUse" } ], "strength": "required", "description": "The use of an address", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/address-use" } } }, { "id": "Address.type", "path": "Address.type", "min": 0, "max": "1", "type": [ { "code": "code" } ], "example": [ { "label": "General", "valueCode": "both" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "AddressType" } ], "strength": "required", "description": "The type of an address (physical / postal)", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/address-type" } } }, { "id": "Address.text", "path": "Address.text", "comment": "Can provide both a text representation and parts.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "example": [ { "label": "General", "valueString": "137 Nowhere Street, Erewhon 9132" } ], "isSummary": true }, { "id": "Address.line", "path": "Address.line", "min": 0, "max": "*", "type": [ { "code": "string" } ], "orderMeaning": "The order in which lines should appear in an address label", "example": [ { "label": "General", "valueString": "137 Nowhere Street" } ], "isSummary": true }, { "id": "Address.city", "path": "Address.city", "min": 0, "max": "1", "type": [ { "code": "string" } ], "example": [ { "label": "General", "valueString": "Erewhon" } ], "isSummary": true }, { "id": "Address.district", "path": "Address.district", "comment": "District is sometimes known as county, but in some regions 'county' is used in place of city (municipality), so county name should be conveyed in city instead.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "example": [ { "label": "General", "valueString": "Madison" } ], "isSummary": true }, { "id": "Address.state", "path": "Address.state", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Address.postalCode", "path": "Address.postalCode", "min": 0, "max": "1", "type": [ { "code": "string" } ], "example": [ { "label": "General", "valueString": "9132" } ], "isSummary": true }, { "id": "Address.country", "path": "Address.country", "comment": "ISO 3166 3 letter codes can be used in place of a full country name.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Address.period", "path": "Address.period", "min": 0, "max": "1", "type": [ { "code": "Period" } ], "example": [ { "label": "General", "valuePeriod": { "start": "2010-03-23", "end": "2010-07-01" } } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Address", "path": "Address", "comment": "Note: address is for postal addresses, not physical locations.", "min": 0, "max": "*" }, { "id": "Address.use", "path": "Address.use", "comment": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary or old address etc.for a current/permanent one. Applications can assume that an address is current unless it explicitly says that it is temporary or old.", "min": 0, "max": "1", "type": [ { "code": "code" } ], "example": [ { "label": "General", "valueCode": "home" } ], "isModifier": true, "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "AddressUse" } ], "strength": "required", "description": "The use of an address", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/address-use" } } }, { "id": "Address.type", "path": "Address.type", "min": 0, "max": "1", "type": [ { "code": "code" } ], "example": [ { "label": "General", "valueCode": "both" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "AddressType" } ], "strength": "required", "description": "The type of an address (physical / postal)", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/address-type" } } }, { "id": "Address.text", "path": "Address.text", "comment": "Can provide both a text representation and parts.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "example": [ { "label": "General", "valueString": "137 Nowhere Street, Erewhon 9132" } ], "isSummary": true }, { "id": "Address.line", "path": "Address.line", "min": 0, "max": "*", "type": [ { "code": "string" } ], "orderMeaning": "The order in which lines should appear in an address label", "example": [ { "label": "General", "valueString": "137 Nowhere Street" } ], "isSummary": true }, { "id": "Address.city", "path": "Address.city", "min": 0, "max": "1", "type": [ { "code": "string" } ], "example": [ { "label": "General", "valueString": "Erewhon" } ], "isSummary": true }, { "id": "Address.district", "path": "Address.district", "comment": "District is sometimes known as county, but in some regions 'county' is used in place of city (municipality), so county name should be conveyed in city instead.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "example": [ { "label": "General", "valueString": "Madison" } ], "isSummary": true }, { "id": "Address.state", "path": "Address.state", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Address.postalCode", "path": "Address.postalCode", "min": 0, "max": "1", "type": [ { "code": "string" } ], "example": [ { "label": "General", "valueString": "9132" } ], "isSummary": true }, { "id": "Address.country", "path": "Address.country", "comment": "ISO 3166 3 letter codes can be used in place of a full country name.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Address.period", "path": "Address.period", "min": 0, "max": "1", "type": [ { "code": "Period" } ], "example": [ { "label": "General", "valuePeriod": { "start": "2010-03-23", "end": "2010-07-01" } } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Age", "resource": { "resourceType": "StructureDefinition", "id": "Age", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Age", "name": "Age", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Age", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Quantity", "derivation": "specialization", "snapshot": { "element": [ { "id": "Age", "path": "Age", "comment": "The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.", "min": 0, "max": "*", "constraint": [ { "key": "qty-3", "severity": "error", "human": "If a code for the unit is present, the system SHALL also be present", "expression": "code.empty() or system.exists()", "xpath": "not(exists(f:code)) or exists(f:system)", "source": "Quantity" }, { "key": "age-1", "severity": "error", "human": "There SHALL be a code if there is a value and it SHALL be an expression of time. If system is present, it SHALL be UCUM. If value is present, it SHALL be positive.", "expression": "(code or value.empty()) and (system.empty() or system = %ucum) and (value.empty() or value > 0)", "xpath": "(f:code or not(f:value)) and (not(exists(f:system)) or f:system/@value='http://unitsofmeasure.org') and (not(f:value/@value) or f:value/@value >=0)" } ] }, { "id": "Age.id", "path": "Age.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Age.extension", "path": "Age.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Age.value", "path": "Age.value", "comment": "The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).", "min": 0, "max": "1", "base": { "path": "Quantity.value", "min": 0, "max": "1" }, "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "Age.comparator", "path": "Age.comparator", "comment": "This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value.", "min": 0, "max": "1", "base": { "path": "Quantity.comparator", "min": 0, "max": "1" }, "type": [ { "code": "code" } ], "meaningWhenMissing": "If there is no comparator, then there is no modification of the value", "isModifier": true, "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "QuantityComparator" } ], "strength": "required", "description": "How the Quantity should be understood and represented.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/quantity-comparator" } } }, { "id": "Age.unit", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "Age.unit", "min": 0, "max": "1", "base": { "path": "Quantity.unit", "min": 0, "max": "1" }, "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Age.system", "path": "Age.system", "min": 0, "max": "1", "base": { "path": "Quantity.system", "min": 0, "max": "1" }, "type": [ { "code": "uri" } ], "condition": [ "qty-3" ], "isSummary": true }, { "id": "Age.code", "path": "Age.code", "comment": "The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.", "min": 0, "max": "1", "base": { "path": "Quantity.code", "min": 0, "max": "1" }, "type": [ { "code": "code" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Age", "path": "Age", "min": 0, "max": "*", "constraint": [ { "key": "age-1", "severity": "error", "human": "There SHALL be a code if there is a value and it SHALL be an expression of time. If system is present, it SHALL be UCUM. If value is present, it SHALL be positive.", "expression": "(code or value.empty()) and (system.empty() or system = %ucum) and (value.empty() or value > 0)", "xpath": "(f:code or not(f:value)) and (not(exists(f:system)) or f:system/@value='http://unitsofmeasure.org') and (not(f:value/@value) or f:value/@value >=0)" } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Annotation", "resource": { "resourceType": "StructureDefinition", "id": "Annotation", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Annotation", "name": "Annotation", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Annotation", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Annotation", "path": "Annotation", "comment": "For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time. This element may need to be included in narrative because of the potential for modifying information. *Annotations SHOULD NOT* be used to communicate \"modifying\" information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible).", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "Annotation.id", "path": "Annotation.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Annotation.extension", "path": "Annotation.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Annotation.author[x]", "path": "Annotation.author[x]", "min": 0, "max": "1", "type": [ { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Practitioner" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Patient" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/RelatedPerson" }, { "code": "string" } ], "isSummary": true }, { "id": "Annotation.time", "path": "Annotation.time", "min": 0, "max": "1", "type": [ { "code": "dateTime" } ], "isSummary": true }, { "id": "Annotation.text", "path": "Annotation.text", "min": 1, "max": "1", "type": [ { "code": "string" } ] } ] }, "differential": { "element": [ { "id": "Annotation", "path": "Annotation", "comment": "For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time. This element may need to be included in narrative because of the potential for modifying information. *Annotations SHOULD NOT* be used to communicate \"modifying\" information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible).", "min": 0, "max": "*" }, { "id": "Annotation.author[x]", "path": "Annotation.author[x]", "min": 0, "max": "1", "type": [ { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Practitioner" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Patient" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/RelatedPerson" }, { "code": "string" } ], "isSummary": true }, { "id": "Annotation.time", "path": "Annotation.time", "min": 0, "max": "1", "type": [ { "code": "dateTime" } ], "isSummary": true }, { "id": "Annotation.text", "path": "Annotation.text", "min": 1, "max": "1", "type": [ { "code": "string" } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Attachment", "resource": { "resourceType": "StructureDefinition", "id": "Attachment", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Attachment", "name": "Attachment", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "Many models need to include data defined in other specifications that is complex and opaque to the healthcare model. This includes documents, media recordings, structured data, etc.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Attachment", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Attachment", "path": "Attachment", "comment": "When providing a summary view (for example with Observation.value[x]) Attachment should be represented with a brief display text such as \"Attachment\".", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" }, { "key": "att-1", "severity": "error", "human": "It the Attachment has data, it SHALL have a contentType", "expression": "data.empty() or contentType.exists()", "xpath": "not(exists(f:data)) or exists(f:contentType)" } ] }, { "id": "Attachment.id", "path": "Attachment.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Attachment.extension", "path": "Attachment.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Attachment.contentType", "path": "Attachment.contentType", "min": 0, "max": "1", "type": [ { "code": "code" } ], "example": [ { "label": "General", "valueCode": "text/plain; charset=UTF-8, image/png" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "MimeType" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "required", "description": "The mime type of an attachment. Any valid mime type is allowed.", "valueSetUri": "http://www.rfc-editor.org/bcp/bcp13.txt" } }, { "id": "Attachment.language", "path": "Attachment.language", "min": 0, "max": "1", "type": [ { "code": "code" } ], "example": [ { "label": "General", "valueCode": "en-AU" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet", "valueReference": { "reference": "http://hl7.org/fhir/ValueSet/all-languages" } }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "Language" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "extensible", "description": "A human language.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/languages" } } }, { "id": "Attachment.data", "path": "Attachment.data", "comment": "The base64-encoded data SHALL be expressed in the same character set as the base resource XML or JSON.", "min": 0, "max": "1", "type": [ { "code": "base64Binary" } ] }, { "id": "Attachment.url", "path": "Attachment.url", "comment": "If both data and url are provided, the url SHALL point to the same content as the data contains. Urls may be relative references or may reference transient locations such as a wrapping envelope using cid: though this has ramifications for using signatures. Relative URLs are interpreted relative to the service url, like a resource reference, rather than relative to the resource itself. If a URL is provided, it SHALL resolve to actual data.", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "example": [ { "label": "General", "valueUri": "http://www.acme.com/logo-small.png" } ], "isSummary": true }, { "id": "Attachment.size", "path": "Attachment.size", "comment": "The number of bytes is redundant if the data is provided as a base64binary, but is useful if the data is provided as a url reference.", "min": 0, "max": "1", "type": [ { "code": "unsignedInt" } ], "isSummary": true }, { "id": "Attachment.hash", "path": "Attachment.hash", "comment": "The hash is calculated on the data prior to base64 encoding, if the data is based64 encoded.", "min": 0, "max": "1", "type": [ { "code": "base64Binary" } ], "isSummary": true }, { "id": "Attachment.title", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "Attachment.title", "min": 0, "max": "1", "type": [ { "code": "string" } ], "example": [ { "label": "General", "valueString": "Official Corporate Logo" } ], "isSummary": true }, { "id": "Attachment.creation", "path": "Attachment.creation", "min": 0, "max": "1", "type": [ { "code": "dateTime" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Attachment", "path": "Attachment", "comment": "When providing a summary view (for example with Observation.value[x]) Attachment should be represented with a brief display text such as \"Attachment\".", "min": 0, "max": "*", "constraint": [ { "key": "att-1", "severity": "error", "human": "It the Attachment has data, it SHALL have a contentType", "expression": "data.empty() or contentType.exists()", "xpath": "not(exists(f:data)) or exists(f:contentType)" } ] }, { "id": "Attachment.contentType", "path": "Attachment.contentType", "min": 0, "max": "1", "type": [ { "code": "code" } ], "example": [ { "label": "General", "valueCode": "text/plain; charset=UTF-8, image/png" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "MimeType" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "required", "description": "The mime type of an attachment. Any valid mime type is allowed.", "valueSetUri": "http://www.rfc-editor.org/bcp/bcp13.txt" } }, { "id": "Attachment.language", "path": "Attachment.language", "min": 0, "max": "1", "type": [ { "code": "code" } ], "example": [ { "label": "General", "valueCode": "en-AU" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet", "valueReference": { "reference": "http://hl7.org/fhir/ValueSet/all-languages" } }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "Language" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "extensible", "description": "A human language.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/languages" } } }, { "id": "Attachment.data", "path": "Attachment.data", "comment": "The base64-encoded data SHALL be expressed in the same character set as the base resource XML or JSON.", "min": 0, "max": "1", "type": [ { "code": "base64Binary" } ] }, { "id": "Attachment.url", "path": "Attachment.url", "comment": "If both data and url are provided, the url SHALL point to the same content as the data contains. Urls may be relative references or may reference transient locations such as a wrapping envelope using cid: though this has ramifications for using signatures. Relative URLs are interpreted relative to the service url, like a resource reference, rather than relative to the resource itself. If a URL is provided, it SHALL resolve to actual data.", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "example": [ { "label": "General", "valueUri": "http://www.acme.com/logo-small.png" } ], "isSummary": true }, { "id": "Attachment.size", "path": "Attachment.size", "comment": "The number of bytes is redundant if the data is provided as a base64binary, but is useful if the data is provided as a url reference.", "min": 0, "max": "1", "type": [ { "code": "unsignedInt" } ], "isSummary": true }, { "id": "Attachment.hash", "path": "Attachment.hash", "comment": "The hash is calculated on the data prior to base64 encoding, if the data is based64 encoded.", "min": 0, "max": "1", "type": [ { "code": "base64Binary" } ], "isSummary": true }, { "id": "Attachment.title", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "Attachment.title", "min": 0, "max": "1", "type": [ { "code": "string" } ], "example": [ { "label": "General", "valueString": "Official Corporate Logo" } ], "isSummary": true }, { "id": "Attachment.creation", "path": "Attachment.creation", "min": 0, "max": "1", "type": [ { "code": "dateTime" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/CodeableConcept", "resource": { "resourceType": "StructureDefinition", "id": "CodeableConcept", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/CodeableConcept", "name": "CodeableConcept", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "This is a common pattern in healthcare - a concept that may be defined by one or more codes from formal definitions including LOINC and SNOMED CT, and/or defined by the provision of text that captures a human sense of the concept.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "CodeableConcept", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "CodeableConcept", "path": "CodeableConcept", "comment": "Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "CodeableConcept.id", "path": "CodeableConcept.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "CodeableConcept.extension", "path": "CodeableConcept.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "CodeableConcept.coding", "path": "CodeableConcept.coding", "comment": "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.", "min": 0, "max": "*", "type": [ { "code": "Coding" } ], "isSummary": true }, { "id": "CodeableConcept.text", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "CodeableConcept.text", "comment": "Very often the text is the same as a displayName of one of the codings.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "CodeableConcept", "path": "CodeableConcept", "comment": "Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.", "min": 0, "max": "*" }, { "id": "CodeableConcept.coding", "path": "CodeableConcept.coding", "comment": "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.", "min": 0, "max": "*", "type": [ { "code": "Coding" } ], "isSummary": true }, { "id": "CodeableConcept.text", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "CodeableConcept.text", "comment": "Very often the text is the same as a displayName of one of the codings.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Coding", "resource": { "resourceType": "StructureDefinition", "id": "Coding", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Coding", "name": "Coding", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "References to codes are very common in healthcare models.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Coding", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Coding", "path": "Coding", "comment": "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.", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "Coding.id", "path": "Coding.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Coding.extension", "path": "Coding.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Coding.system", "path": "Coding.system", "comment": "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 de-reference to some definition that establish the system clearly and unambiguously.", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "isSummary": true }, { "id": "Coding.version", "path": "Coding.version", "comment": "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.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Coding.code", "path": "Coding.code", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isSummary": true }, { "id": "Coding.display", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "Coding.display", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Coding.userSelected", "path": "Coding.userSelected", "comment": "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.", "min": 0, "max": "1", "type": [ { "code": "boolean" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Coding", "path": "Coding", "comment": "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.", "min": 0, "max": "*" }, { "id": "Coding.system", "path": "Coding.system", "comment": "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 de-reference to some definition that establish the system clearly and unambiguously.", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "isSummary": true }, { "id": "Coding.version", "path": "Coding.version", "comment": "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.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Coding.code", "path": "Coding.code", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isSummary": true }, { "id": "Coding.display", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "Coding.display", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Coding.userSelected", "path": "Coding.userSelected", "comment": "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.", "min": 0, "max": "1", "type": [ { "code": "boolean" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/ContactDetail", "resource": { "resourceType": "StructureDefinition", "id": "ContactDetail", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/ContactDetail", "name": "ContactDetail", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "Need to track contact information in the same way across multiple resources.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "ContactDetail", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "ContactDetail", "path": "ContactDetail", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "ContactDetail.id", "path": "ContactDetail.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "ContactDetail.extension", "path": "ContactDetail.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "ContactDetail.name", "path": "ContactDetail.name", "comment": "If there is no named individual, the telecom information is for the organization as a whole.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ContactDetail.telecom", "path": "ContactDetail.telecom", "min": 0, "max": "*", "type": [ { "code": "ContactPoint" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "ContactDetail", "path": "ContactDetail", "min": 0, "max": "*" }, { "id": "ContactDetail.name", "path": "ContactDetail.name", "comment": "If there is no named individual, the telecom information is for the organization as a whole.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ContactDetail.telecom", "path": "ContactDetail.telecom", "min": 0, "max": "*", "type": [ { "code": "ContactPoint" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/ContactPoint", "resource": { "resourceType": "StructureDefinition", "id": "ContactPoint", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/ContactPoint", "name": "ContactPoint", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "Need to track phone, fax, mobile, sms numbers, email addresses, twitter tags, etc.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "ContactPoint", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "ContactPoint", "path": "ContactPoint", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" }, { "key": "cpt-2", "severity": "error", "human": "A system is required if a value is provided.", "expression": "value.empty() or system.exists()", "xpath": "not(exists(f:value)) or exists(f:system)" } ] }, { "id": "ContactPoint.id", "path": "ContactPoint.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "ContactPoint.extension", "path": "ContactPoint.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "ContactPoint.system", "path": "ContactPoint.system", "min": 0, "max": "1", "type": [ { "code": "code" } ], "condition": [ "cpt-2" ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "ContactPointSystem" } ], "strength": "required", "description": "Telecommunications form for contact point", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/contact-point-system" } } }, { "id": "ContactPoint.value", "path": "ContactPoint.value", "comment": "Additional text data such as phone extension numbers, or notes about use of the contact are sometimes included in the value.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ContactPoint.use", "path": "ContactPoint.use", "comment": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary or old contact etc.for a current/permanent one. Applications can assume that a contact is current unless it explicitly says that it is temporary or old.", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isModifier": true, "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "ContactPointUse" } ], "strength": "required", "description": "Use of contact point", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/contact-point-use" } } }, { "id": "ContactPoint.rank", "path": "ContactPoint.rank", "comment": "Note that rank does not necessarily follow the order in which the contacts are represented in the instance.", "min": 0, "max": "1", "type": [ { "code": "positiveInt" } ], "isSummary": true }, { "id": "ContactPoint.period", "path": "ContactPoint.period", "min": 0, "max": "1", "type": [ { "code": "Period" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "ContactPoint", "path": "ContactPoint", "min": 0, "max": "*", "constraint": [ { "key": "cpt-2", "severity": "error", "human": "A system is required if a value is provided.", "expression": "value.empty() or system.exists()", "xpath": "not(exists(f:value)) or exists(f:system)" } ] }, { "id": "ContactPoint.system", "path": "ContactPoint.system", "min": 0, "max": "1", "type": [ { "code": "code" } ], "condition": [ "cpt-2" ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "ContactPointSystem" } ], "strength": "required", "description": "Telecommunications form for contact point", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/contact-point-system" } } }, { "id": "ContactPoint.value", "path": "ContactPoint.value", "comment": "Additional text data such as phone extension numbers, or notes about use of the contact are sometimes included in the value.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ContactPoint.use", "path": "ContactPoint.use", "comment": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary or old contact etc.for a current/permanent one. Applications can assume that a contact is current unless it explicitly says that it is temporary or old.", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isModifier": true, "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "ContactPointUse" } ], "strength": "required", "description": "Use of contact point", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/contact-point-use" } } }, { "id": "ContactPoint.rank", "path": "ContactPoint.rank", "comment": "Note that rank does not necessarily follow the order in which the contacts are represented in the instance.", "min": 0, "max": "1", "type": [ { "code": "positiveInt" } ], "isSummary": true }, { "id": "ContactPoint.period", "path": "ContactPoint.period", "min": 0, "max": "1", "type": [ { "code": "Period" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Contributor", "resource": { "resourceType": "StructureDefinition", "id": "Contributor", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Contributor", "name": "Contributor", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "Need to track contributor information in the same way across multiple resources.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Contributor", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Contributor", "path": "Contributor", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "Contributor.id", "path": "Contributor.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Contributor.extension", "path": "Contributor.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Contributor.type", "path": "Contributor.type", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "ContributorType" } ], "strength": "required", "description": "The type of contributor", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/contributor-type" } } }, { "id": "Contributor.name", "path": "Contributor.name", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Contributor.contact", "path": "Contributor.contact", "min": 0, "max": "*", "type": [ { "code": "ContactDetail" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Contributor", "path": "Contributor", "min": 0, "max": "*" }, { "id": "Contributor.type", "path": "Contributor.type", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "ContributorType" } ], "strength": "required", "description": "The type of contributor", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/contributor-type" } } }, { "id": "Contributor.name", "path": "Contributor.name", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Contributor.contact", "path": "Contributor.contact", "min": 0, "max": "*", "type": [ { "code": "ContactDetail" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Count", "resource": { "resourceType": "StructureDefinition", "id": "Count", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Count", "name": "Count", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "Need to able to capture all sorts of measured values, even if the measured value are not precisely quantified. Values include exact measures such as 3.51g, customary units such as 3 tablets, and currencies such as $100.32USD.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Count", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Quantity", "derivation": "specialization", "snapshot": { "element": [ { "id": "Count", "path": "Count", "comment": "The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.", "min": 0, "max": "*", "constraint": [ { "key": "qty-3", "severity": "error", "human": "If a code for the unit is present, the system SHALL also be present", "expression": "code.empty() or system.exists()", "xpath": "not(exists(f:code)) or exists(f:system)", "source": "Quantity" }, { "key": "cnt-3", "severity": "error", "human": "There SHALL be a code with a value of \"1\" if there is a value and it SHALL be an expression of length. If system is present, it SHALL be UCUM. If present, the value SHALL a whole number.", "expression": "(code or value.empty()) and (system.empty() or system = %ucum) and (code.empty() or code = '1') and (value.empty() or value.toString().contains('.').not())", "xpath": "(f:code or not(f:value)) and (not(exists(f:system)) or (f:system/@value='http://unitsofmeasure.org' and f:code/@value='1')) and not(contains(f:value/@value, '.'))" } ] }, { "id": "Count.id", "path": "Count.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Count.extension", "path": "Count.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Count.value", "path": "Count.value", "comment": "The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).", "min": 0, "max": "1", "base": { "path": "Quantity.value", "min": 0, "max": "1" }, "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "Count.comparator", "path": "Count.comparator", "comment": "This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value.", "min": 0, "max": "1", "base": { "path": "Quantity.comparator", "min": 0, "max": "1" }, "type": [ { "code": "code" } ], "meaningWhenMissing": "If there is no comparator, then there is no modification of the value", "isModifier": true, "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "QuantityComparator" } ], "strength": "required", "description": "How the Quantity should be understood and represented.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/quantity-comparator" } } }, { "id": "Count.unit", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "Count.unit", "min": 0, "max": "1", "base": { "path": "Quantity.unit", "min": 0, "max": "1" }, "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Count.system", "path": "Count.system", "min": 0, "max": "1", "base": { "path": "Quantity.system", "min": 0, "max": "1" }, "type": [ { "code": "uri" } ], "condition": [ "qty-3" ], "isSummary": true }, { "id": "Count.code", "path": "Count.code", "comment": "The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.", "min": 0, "max": "1", "base": { "path": "Quantity.code", "min": 0, "max": "1" }, "type": [ { "code": "code" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Count", "path": "Count", "comment": "The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.", "min": 0, "max": "*", "constraint": [ { "key": "cnt-3", "severity": "error", "human": "There SHALL be a code with a value of \"1\" if there is a value and it SHALL be an expression of length. If system is present, it SHALL be UCUM. If present, the value SHALL a whole number.", "expression": "(code or value.empty()) and (system.empty() or system = %ucum) and (code.empty() or code = '1') and (value.empty() or value.toString().contains('.').not())", "xpath": "(f:code or not(f:value)) and (not(exists(f:system)) or (f:system/@value='http://unitsofmeasure.org' and f:code/@value='1')) and not(contains(f:value/@value, '.'))" } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/DataRequirement", "resource": { "resourceType": "StructureDefinition", "id": "DataRequirement", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/DataRequirement", "name": "DataRequirement", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "DataRequirement", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "DataRequirement", "path": "DataRequirement", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "DataRequirement.id", "path": "DataRequirement.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "DataRequirement.extension", "path": "DataRequirement.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "DataRequirement.type", "path": "DataRequirement.type", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "FHIRAllTypes" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "required", "description": "Either an abstract type, a resource or a data type.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/all-types" } } }, { "id": "DataRequirement.profile", "path": "DataRequirement.profile", "min": 0, "max": "*", "type": [ { "code": "uri" } ], "isSummary": true }, { "id": "DataRequirement.mustSupport", "path": "DataRequirement.mustSupport", "min": 0, "max": "*", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter", "path": "DataRequirement.codeFilter", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.id", "path": "DataRequirement.codeFilter.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "DataRequirement.codeFilter.extension", "path": "DataRequirement.codeFilter.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "DataRequirement.codeFilter.path", "path": "DataRequirement.codeFilter.path", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.valueSet[x]", "path": "DataRequirement.codeFilter.valueSet[x]", "min": 0, "max": "1", "type": [ { "code": "string" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/ValueSet" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.valueCode", "path": "DataRequirement.codeFilter.valueCode", "min": 0, "max": "*", "type": [ { "code": "code" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.valueCoding", "path": "DataRequirement.codeFilter.valueCoding", "min": 0, "max": "*", "type": [ { "code": "Coding" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.valueCodeableConcept", "path": "DataRequirement.codeFilter.valueCodeableConcept", "min": 0, "max": "*", "type": [ { "code": "CodeableConcept" } ], "isSummary": true }, { "id": "DataRequirement.dateFilter", "path": "DataRequirement.dateFilter", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ], "isSummary": true }, { "id": "DataRequirement.dateFilter.id", "path": "DataRequirement.dateFilter.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "DataRequirement.dateFilter.extension", "path": "DataRequirement.dateFilter.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "DataRequirement.dateFilter.path", "path": "DataRequirement.dateFilter.path", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "DataRequirement.dateFilter.value[x]", "path": "DataRequirement.dateFilter.value[x]", "min": 0, "max": "1", "type": [ { "code": "dateTime" }, { "code": "Period" }, { "code": "Duration" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "DataRequirement", "path": "DataRequirement", "min": 0, "max": "*" }, { "id": "DataRequirement.type", "path": "DataRequirement.type", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "FHIRAllTypes" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "required", "description": "Either an abstract type, a resource or a data type.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/all-types" } } }, { "id": "DataRequirement.profile", "path": "DataRequirement.profile", "min": 0, "max": "*", "type": [ { "code": "uri" } ], "isSummary": true }, { "id": "DataRequirement.mustSupport", "path": "DataRequirement.mustSupport", "min": 0, "max": "*", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter", "path": "DataRequirement.codeFilter", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.path", "path": "DataRequirement.codeFilter.path", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.valueSet[x]", "path": "DataRequirement.codeFilter.valueSet[x]", "min": 0, "max": "1", "type": [ { "code": "string" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/ValueSet" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.valueCode", "path": "DataRequirement.codeFilter.valueCode", "min": 0, "max": "*", "type": [ { "code": "code" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.valueCoding", "path": "DataRequirement.codeFilter.valueCoding", "min": 0, "max": "*", "type": [ { "code": "Coding" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.valueCodeableConcept", "path": "DataRequirement.codeFilter.valueCodeableConcept", "min": 0, "max": "*", "type": [ { "code": "CodeableConcept" } ], "isSummary": true }, { "id": "DataRequirement.dateFilter", "path": "DataRequirement.dateFilter", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "isSummary": true }, { "id": "DataRequirement.dateFilter.path", "path": "DataRequirement.dateFilter.path", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "DataRequirement.dateFilter.value[x]", "path": "DataRequirement.dateFilter.value[x]", "min": 0, "max": "1", "type": [ { "code": "dateTime" }, { "code": "Period" }, { "code": "Duration" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Distance", "resource": { "resourceType": "StructureDefinition", "id": "Distance", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Distance", "name": "Distance", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Distance", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Quantity", "derivation": "specialization", "snapshot": { "element": [ { "id": "Distance", "path": "Distance", "comment": "The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.", "min": 0, "max": "*", "constraint": [ { "key": "qty-3", "severity": "error", "human": "If a code for the unit is present, the system SHALL also be present", "expression": "code.empty() or system.exists()", "xpath": "not(exists(f:code)) or exists(f:system)", "source": "Quantity" }, { "key": "dis-1", "severity": "error", "human": "There SHALL be a code if there is a value and it SHALL be an expression of length. If system is present, it SHALL be UCUM.", "expression": "(code or value.empty()) and (system.empty() or system = %ucum)", "xpath": "(f:code or not(f:value)) and (not(exists(f:system)) or f:system/@value='http://unitsofmeasure.org')" } ] }, { "id": "Distance.id", "path": "Distance.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Distance.extension", "path": "Distance.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Distance.value", "path": "Distance.value", "comment": "The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).", "min": 0, "max": "1", "base": { "path": "Quantity.value", "min": 0, "max": "1" }, "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "Distance.comparator", "path": "Distance.comparator", "comment": "This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value.", "min": 0, "max": "1", "base": { "path": "Quantity.comparator", "min": 0, "max": "1" }, "type": [ { "code": "code" } ], "meaningWhenMissing": "If there is no comparator, then there is no modification of the value", "isModifier": true, "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "QuantityComparator" } ], "strength": "required", "description": "How the Quantity should be understood and represented.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/quantity-comparator" } } }, { "id": "Distance.unit", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "Distance.unit", "min": 0, "max": "1", "base": { "path": "Quantity.unit", "min": 0, "max": "1" }, "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Distance.system", "path": "Distance.system", "min": 0, "max": "1", "base": { "path": "Quantity.system", "min": 0, "max": "1" }, "type": [ { "code": "uri" } ], "condition": [ "qty-3" ], "isSummary": true }, { "id": "Distance.code", "path": "Distance.code", "comment": "The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.", "min": 0, "max": "1", "base": { "path": "Quantity.code", "min": 0, "max": "1" }, "type": [ { "code": "code" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Distance", "path": "Distance", "min": 0, "max": "*", "constraint": [ { "key": "dis-1", "severity": "error", "human": "There SHALL be a code if there is a value and it SHALL be an expression of length. If system is present, it SHALL be UCUM.", "expression": "(code or value.empty()) and (system.empty() or system = %ucum)", "xpath": "(f:code or not(f:value)) and (not(exists(f:system)) or f:system/@value='http://unitsofmeasure.org')" } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Dosage", "resource": { "resourceType": "StructureDefinition", "id": "Dosage", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Dosage", "name": "Dosage", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Dosage", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Dosage", "path": "Dosage", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "Dosage.id", "path": "Dosage.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Dosage.extension", "path": "Dosage.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Dosage.sequence", "path": "Dosage.sequence", "min": 0, "max": "1", "type": [ { "code": "integer" } ], "isSummary": true }, { "id": "Dosage.text", "path": "Dosage.text", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Dosage.additionalInstruction", "path": "Dosage.additionalInstruction", "min": 0, "max": "*", "type": [ { "code": "CodeableConcept" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "AdditionalInstruction" } ], "strength": "example", "description": "A coded concept identifying additional instructions such as \"take with water\" or \"avoid operating heavy machinery\".", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/additional-instruction-codes" } } }, { "id": "Dosage.patientInstruction", "path": "Dosage.patientInstruction", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Dosage.timing", "path": "Dosage.timing", "comment": "This attribute may not always be populated while the Dosage.text is expected to be populated. If both are populated, then the Dosage.text should reflect the content of the Dosage.timing.", "min": 0, "max": "1", "type": [ { "code": "Timing" } ], "isSummary": true }, { "id": "Dosage.asNeeded[x]", "path": "Dosage.asNeeded[x]", "comment": "Can express \"as needed\" without a reason by setting the Boolean = True. In this case the CodeableConcept is not populated. Or you can express \"as needed\" with a reason by including the CodeableConcept. In this case the Boolean is assumed to be True. If you set the Boolean to False, then the dose is given according to the schedule and is not \"prn\" or \"as needed\".", "min": 0, "max": "1", "type": [ { "code": "boolean" }, { "code": "CodeableConcept" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "MedicationAsNeededReason" } ], "strength": "example", "description": "A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example \"pain\", \"30 minutes prior to sexual intercourse\", \"on flare-up\" etc.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/medication-as-needed-reason" } } }, { "id": "Dosage.site", "path": "Dosage.site", "comment": "If the use case requires attributes from the BodySite resource (e.g. to identify and track separately) then use the standard extension [body-site-instance](extension-body-site-instance.html). May be a summary code, or a reference to a very precise definition of the location, or both.", "min": 0, "max": "1", "type": [ { "code": "CodeableConcept" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "MedicationAdministrationSite" } ], "strength": "example", "description": "A coded concept describing the site location the medicine enters into or onto the body.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/approach-site-codes" } } }, { "id": "Dosage.route", "path": "Dosage.route", "min": 0, "max": "1", "type": [ { "code": "CodeableConcept" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "RouteOfAdministration" } ], "strength": "example", "description": "A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/route-codes" } } }, { "id": "Dosage.method", "path": "Dosage.method", "comment": "Terminologies used often pre-coordinate this term with the route and or form of administration.", "min": 0, "max": "1", "type": [ { "code": "CodeableConcept" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "MedicationAdministrationMethod" } ], "strength": "example", "description": "A coded concept describing the technique by which the medicine is administered.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/administration-method-codes" } } }, { "id": "Dosage.dose[x]", "path": "Dosage.dose[x]", "comment": "Note that this specifies the quantity of the specified medication, not the quantity for each active ingredient(s). Each ingredient amount can be communicated in the Medication resource. For example, if one wants to communicate that a tablet was 375 mg, where the dose was one tablet, you can use the Medication resource to document that the tablet was comprised of 375 mg of drug XYZ. Alternatively if the dose was 375 mg, then you may only need to use the Medication resource to indicate this was a tablet. If the example were an IV such as dopamine and you wanted to communicate that 400mg of dopamine was mixed in 500 ml of some IV solution, then this would all be communicated in the Medication resource. If the administration is not intended to be instantaneous (rate is present or timing has a duration), this can be specified to convey the total amount to be administered over the period of time as indicated by the schedule e.g. 500 ml in dose, with timing used to convey that this should be done over 4 hours.", "min": 0, "max": "1", "type": [ { "code": "Range" }, { "code": "Quantity", "profile": "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" } ], "isSummary": true }, { "id": "Dosage.maxDosePerPeriod", "path": "Dosage.maxDosePerPeriod", "comment": "This is intended for use as an adjunct to the dosage when there is an upper cap. For example \"2 tablets every 4 hours to a maximum of 8/day\".", "min": 0, "max": "1", "type": [ { "code": "Ratio" } ], "isSummary": true }, { "id": "Dosage.maxDosePerAdministration", "path": "Dosage.maxDosePerAdministration", "comment": "This is intended for use as an adjunct to the dosage when there is an upper cap. For example, a body surface area related dose with a maximum amount, such as 1.5 mg/m2 (maximum 2 mg) IV over 5 – 10 minutes would have doseQuantity of 1.5 mg/m2 and maxDosePerAdministration of 2 mg.", "min": 0, "max": "1", "type": [ { "code": "Quantity", "profile": "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" } ], "isSummary": true }, { "id": "Dosage.maxDosePerLifetime", "path": "Dosage.maxDosePerLifetime", "min": 0, "max": "1", "type": [ { "code": "Quantity", "profile": "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" } ], "isSummary": true }, { "id": "Dosage.rate[x]", "path": "Dosage.rate[x]", "comment": "It is possible to supply both a rate and a doseQuantity to provide full details about how the medication is to be administered and supplied. If the rate is intended to change over time, depending on local rules/regulations, each change should be captured as a new version of the MedicationRequest with an updated rate, or captured with a new MedicationRequest with the new rate.", "min": 0, "max": "1", "type": [ { "code": "Ratio" }, { "code": "Range" }, { "code": "Quantity", "profile": "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Dosage", "path": "Dosage", "min": 0, "max": "*" }, { "id": "Dosage.sequence", "path": "Dosage.sequence", "min": 0, "max": "1", "type": [ { "code": "integer" } ], "isSummary": true }, { "id": "Dosage.text", "path": "Dosage.text", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Dosage.additionalInstruction", "path": "Dosage.additionalInstruction", "min": 0, "max": "*", "type": [ { "code": "CodeableConcept" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "AdditionalInstruction" } ], "strength": "example", "description": "A coded concept identifying additional instructions such as \"take with water\" or \"avoid operating heavy machinery\".", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/additional-instruction-codes" } } }, { "id": "Dosage.patientInstruction", "path": "Dosage.patientInstruction", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Dosage.timing", "path": "Dosage.timing", "comment": "This attribute may not always be populated while the Dosage.text is expected to be populated. If both are populated, then the Dosage.text should reflect the content of the Dosage.timing.", "min": 0, "max": "1", "type": [ { "code": "Timing" } ], "isSummary": true }, { "id": "Dosage.asNeeded[x]", "path": "Dosage.asNeeded[x]", "comment": "Can express \"as needed\" without a reason by setting the Boolean = True. In this case the CodeableConcept is not populated. Or you can express \"as needed\" with a reason by including the CodeableConcept. In this case the Boolean is assumed to be True. If you set the Boolean to False, then the dose is given according to the schedule and is not \"prn\" or \"as needed\".", "min": 0, "max": "1", "type": [ { "code": "boolean" }, { "code": "CodeableConcept" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "MedicationAsNeededReason" } ], "strength": "example", "description": "A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example \"pain\", \"30 minutes prior to sexual intercourse\", \"on flare-up\" etc.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/medication-as-needed-reason" } } }, { "id": "Dosage.site", "path": "Dosage.site", "comment": "If the use case requires attributes from the BodySite resource (e.g. to identify and track separately) then use the standard extension [body-site-instance](extension-body-site-instance.html). May be a summary code, or a reference to a very precise definition of the location, or both.", "min": 0, "max": "1", "type": [ { "code": "CodeableConcept" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "MedicationAdministrationSite" } ], "strength": "example", "description": "A coded concept describing the site location the medicine enters into or onto the body.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/approach-site-codes" } } }, { "id": "Dosage.route", "path": "Dosage.route", "min": 0, "max": "1", "type": [ { "code": "CodeableConcept" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "RouteOfAdministration" } ], "strength": "example", "description": "A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/route-codes" } } }, { "id": "Dosage.method", "path": "Dosage.method", "comment": "Terminologies used often pre-coordinate this term with the route and or form of administration.", "min": 0, "max": "1", "type": [ { "code": "CodeableConcept" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "MedicationAdministrationMethod" } ], "strength": "example", "description": "A coded concept describing the technique by which the medicine is administered.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/administration-method-codes" } } }, { "id": "Dosage.dose[x]", "path": "Dosage.dose[x]", "comment": "Note that this specifies the quantity of the specified medication, not the quantity for each active ingredient(s). Each ingredient amount can be communicated in the Medication resource. For example, if one wants to communicate that a tablet was 375 mg, where the dose was one tablet, you can use the Medication resource to document that the tablet was comprised of 375 mg of drug XYZ. Alternatively if the dose was 375 mg, then you may only need to use the Medication resource to indicate this was a tablet. If the example were an IV such as dopamine and you wanted to communicate that 400mg of dopamine was mixed in 500 ml of some IV solution, then this would all be communicated in the Medication resource. If the administration is not intended to be instantaneous (rate is present or timing has a duration), this can be specified to convey the total amount to be administered over the period of time as indicated by the schedule e.g. 500 ml in dose, with timing used to convey that this should be done over 4 hours.", "min": 0, "max": "1", "type": [ { "code": "Range" }, { "code": "Quantity", "profile": "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" } ], "isSummary": true }, { "id": "Dosage.maxDosePerPeriod", "path": "Dosage.maxDosePerPeriod", "comment": "This is intended for use as an adjunct to the dosage when there is an upper cap. For example \"2 tablets every 4 hours to a maximum of 8/day\".", "min": 0, "max": "1", "type": [ { "code": "Ratio" } ], "isSummary": true }, { "id": "Dosage.maxDosePerAdministration", "path": "Dosage.maxDosePerAdministration", "comment": "This is intended for use as an adjunct to the dosage when there is an upper cap. For example, a body surface area related dose with a maximum amount, such as 1.5 mg/m2 (maximum 2 mg) IV over 5 – 10 minutes would have doseQuantity of 1.5 mg/m2 and maxDosePerAdministration of 2 mg.", "min": 0, "max": "1", "type": [ { "code": "Quantity", "profile": "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" } ], "isSummary": true }, { "id": "Dosage.maxDosePerLifetime", "path": "Dosage.maxDosePerLifetime", "min": 0, "max": "1", "type": [ { "code": "Quantity", "profile": "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" } ], "isSummary": true }, { "id": "Dosage.rate[x]", "path": "Dosage.rate[x]", "comment": "It is possible to supply both a rate and a doseQuantity to provide full details about how the medication is to be administered and supplied. If the rate is intended to change over time, depending on local rules/regulations, each change should be captured as a new version of the MedicationRequest with an updated rate, or captured with a new MedicationRequest with the new rate.", "min": 0, "max": "1", "type": [ { "code": "Ratio" }, { "code": "Range" }, { "code": "Quantity", "profile": "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Duration", "resource": { "resourceType": "StructureDefinition", "id": "Duration", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Duration", "name": "Duration", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Duration", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Quantity", "derivation": "specialization", "snapshot": { "element": [ { "id": "Duration", "path": "Duration", "comment": "The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.", "min": 0, "max": "*", "constraint": [ { "key": "qty-3", "severity": "error", "human": "If a code for the unit is present, the system SHALL also be present", "expression": "code.empty() or system.exists()", "xpath": "not(exists(f:code)) or exists(f:system)", "source": "Quantity" }, { "key": "drt-1", "severity": "error", "human": "There SHALL be a code if there is a value and it SHALL be an expression of time. If system is present, it SHALL be UCUM.", "expression": "code.exists() implies ((system = %ucum) and value.exists())", "xpath": "(f:code or not(f:value)) and (not(exists(f:system)) or f:system/@value='http://unitsofmeasure.org')" } ] }, { "id": "Duration.id", "path": "Duration.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Duration.extension", "path": "Duration.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Duration.value", "path": "Duration.value", "comment": "The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).", "min": 0, "max": "1", "base": { "path": "Quantity.value", "min": 0, "max": "1" }, "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "Duration.comparator", "path": "Duration.comparator", "comment": "This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value.", "min": 0, "max": "1", "base": { "path": "Quantity.comparator", "min": 0, "max": "1" }, "type": [ { "code": "code" } ], "meaningWhenMissing": "If there is no comparator, then there is no modification of the value", "isModifier": true, "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "QuantityComparator" } ], "strength": "required", "description": "How the Quantity should be understood and represented.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/quantity-comparator" } } }, { "id": "Duration.unit", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "Duration.unit", "min": 0, "max": "1", "base": { "path": "Quantity.unit", "min": 0, "max": "1" }, "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Duration.system", "path": "Duration.system", "min": 0, "max": "1", "base": { "path": "Quantity.system", "min": 0, "max": "1" }, "type": [ { "code": "uri" } ], "condition": [ "qty-3" ], "isSummary": true }, { "id": "Duration.code", "path": "Duration.code", "comment": "The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.", "min": 0, "max": "1", "base": { "path": "Quantity.code", "min": 0, "max": "1" }, "type": [ { "code": "code" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Duration", "path": "Duration", "min": 0, "max": "*", "constraint": [ { "key": "drt-1", "severity": "error", "human": "There SHALL be a code if there is a value and it SHALL be an expression of time. If system is present, it SHALL be UCUM.", "expression": "code.exists() implies ((system = %ucum) and value.exists())", "xpath": "(f:code or not(f:value)) and (not(exists(f:system)) or f:system/@value='http://unitsofmeasure.org')" } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/ElementDefinition", "resource": { "resourceType": "StructureDefinition", "id": "ElementDefinition", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/ElementDefinition", "name": "ElementDefinition", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "ElementDefinition", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "ElementDefinition", "path": "ElementDefinition", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" }, { "key": "eld-2", "severity": "error", "human": "Min <= Max", "expression": "min.empty() or max.empty() or (max = '*') or (min <= max.toInteger())", "xpath": "not(exists(f:min)) or not(exists(f:max)) or (not(f:max/@value) and not(f:min/@value)) or (f:max/@value = '*') or (number(f:max/@value) >= f:min/@value)" }, { "key": "eld-5", "severity": "error", "human": "if the element definition has a contentReference, it cannot have type, defaultValue, fixed, pattern, example, minValue, maxValue, maxLength, or binding", "expression": "contentReference.empty() or (type.empty() and defaultValue.empty() and fixed.empty() and pattern.empty() and example.empty() and minValue.empty() and maxValue.empty() and maxLength.empty() and binding.empty())", "xpath": "not(exists(f:contentReference) and (exists(f:type) or exists(f:*[starts-with(local-name(.), 'value')]) or exists(f:*[starts-with(local-name(.), 'defaultValue')]) or exists(f:*[starts-with(local-name(.), 'fixed')]) or exists(f:*[starts-with(local-name(.), 'pattern')]) or exists(f:*[starts-with(local-name(.), 'example')]) or exists(f:*[starts-with(local-name(.), 'f:minValue')]) or exists(f:*[starts-with(local-name(.), 'f:maxValue')]) or exists(f:maxLength) or exists(f:binding)))" }, { "key": "eld-7", "severity": "error", "human": "Pattern may only be specified if there is one type", "expression": "pattern.empty() or (type.count() <= 1)", "xpath": "not(exists(f:*[starts-with(local-name(.), 'pattern')])) or (count(f:type)<=1)" }, { "key": "eld-6", "severity": "error", "human": "Fixed value may only be specified if there is one type", "expression": "fixed.empty() or (type.count() <= 1)", "xpath": "not(exists(f:*[starts-with(local-name(.), 'fixed')])) or (count(f:type)<=1)" }, { "key": "eld-11", "severity": "error", "human": "Binding can only be present for coded elements, string, and uri", "expression": "binding.empty() or type.code.empty() or type.select((code = 'code') or (code = 'Coding') or (code='CodeableConcept') or (code = 'Quantity') or (code = 'Extension') or (code = 'string') or (code = 'uri')).exists()", "xpath": "not(exists(f:binding)) or (count(f:type/f:code) = 0) or f:type/f:code/@value=('code','Coding','CodeableConcept','Quantity','Extension', 'string', 'uri')" }, { "key": "eld-8", "severity": "error", "human": "Pattern and value are mutually exclusive", "expression": "pattern.empty() or fixed.empty()", "xpath": "not(exists(f:*[starts-with(local-name(.), 'pattern')])) or not(exists(f:*[starts-with(local-name(.), 'fixed')]))" }, { "key": "eld-14", "severity": "error", "human": "Constraints must be unique by key", "expression": "constraint.select(key).isDistinct()", "xpath": "count(f:constraint) = count(distinct-values(f:constraint/f:key/@value))" }, { "key": "eld-13", "severity": "error", "human": "Types must be unique by the combination of code and profile", "expression": "type.select(code&profile&targetProfile).isDistinct()", "xpath": "not(exists(for $type in f:type return $type/preceding-sibling::f:type[f:code/@value=$type/f:code/@value and f:profile/@value = $type/f:profile/@value]))" }, { "key": "eld-16", "severity": "error", "human": "sliceName must be a proper token", "expression": "sliceName.empty() or sliceName.matches('^[a-zA-Z0-9\\\\-\\\\_]+$')", "xpath": "not(exists(f:sliceName/@value)) or matches(f:sliceName/@value, '^[a-zA-Z0-9\\\\-\\\\_]+$')" }, { "key": "eld-15", "severity": "error", "human": "default value and meaningWhenMissing are mutually exclusive", "expression": "defaultValue.empty() or meaningWhenMissing.empty()", "xpath": "not(exists(f:*[starts-with(local-name(.), 'fixed')])) or not(exists(f:meaningWhenMissing))" } ] }, { "id": "ElementDefinition.id", "path": "ElementDefinition.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "ElementDefinition.extension", "path": "ElementDefinition.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "ElementDefinition.path", "path": "ElementDefinition.path", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.representation", "path": "ElementDefinition.representation", "comment": "In resources, this is rarely used except for special cases where the representation deviates from the normal, and can only be done in the base standard (and profiles must reproduce what the base standard does). This element is used quite commonly in Logical models when the logical models represent a specific serialization format (e.g. CDA, v2 etc).", "min": 0, "max": "*", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "PropertyRepresentation" } ], "strength": "required", "description": "How a property is represented when serialized.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/property-representation" } } }, { "id": "ElementDefinition.sliceName", "path": "ElementDefinition.sliceName", "comment": "The name SHALL be unique within the structure within the context of the constrained resource element. (Though to avoid confusion, uniqueness across all elements is recommended.).", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.label", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.label", "comment": "See also the extension (http://hl7.org/fhir/StructureDefinition/elementdefinition-question)[extension-elementdefinition-question.html].", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.code", "path": "ElementDefinition.code", "comment": "The concept SHALL be properly aligned with the data element definition and other constraints, as defined in the code system, including relationships, of any code listed here. Where multiple codes exist in a terminology that could correspond to the data element, the most granular code(s) should be selected, so long as they are not more restrictive than the data element itself. The mappings may be used to provide more or less granular or structured equivalences in the code system.", "min": 0, "max": "*", "type": [ { "code": "Coding" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "ElementDefinitionCode" } ], "strength": "example", "description": "Codes that indicate the meaning of a data element.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/observation-codes" } } }, { "id": "ElementDefinition.slicing", "path": "ElementDefinition.slicing", "comment": "The first element in the sequence, the one that carries the slicing, is the definition that applies to all the slices. This is based on the unconstrained element, but can apply any constraints as appropriate. This may include the common constraints on the children of the element.", "min": 0, "max": "1", "type": [ { "code": "Element" } ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" }, { "key": "eld-1", "severity": "error", "human": "If there are no discriminators, there must be a definition", "expression": "discriminator.exists() or description.exists()", "xpath": "(f:discriminator) or (f:description)" } ], "isSummary": true }, { "id": "ElementDefinition.slicing.id", "path": "ElementDefinition.slicing.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "ElementDefinition.slicing.extension", "path": "ElementDefinition.slicing.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "ElementDefinition.slicing.discriminator", "path": "ElementDefinition.slicing.discriminator", "comment": "If there is no discriminator, the content is hard to process, so this should be avoided. If the base element has a cardinality of ..1, and there is a choice of types, the discriminator must be \"@type\".", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ], "isSummary": true }, { "id": "ElementDefinition.slicing.discriminator.id", "path": "ElementDefinition.slicing.discriminator.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "ElementDefinition.slicing.discriminator.extension", "path": "ElementDefinition.slicing.discriminator.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "ElementDefinition.slicing.discriminator.type", "path": "ElementDefinition.slicing.discriminator.type", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "DiscriminatorType" } ], "strength": "required", "description": "How an element value is interpreted when discrimination is evaluated", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/discriminator-type" } } }, { "id": "ElementDefinition.slicing.discriminator.path", "path": "ElementDefinition.slicing.discriminator.path", "comment": "The only FHIRPath functions that are allowed are resolve(), and extension(url).", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.slicing.description", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.slicing.description", "comment": "If it's really not possible to differentiate them, the design should be re-evaluated to make the content usable.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "condition": [ "eld-1" ], "isSummary": true }, { "id": "ElementDefinition.slicing.ordered", "path": "ElementDefinition.slicing.ordered", "comment": "Order should only be required when it is a pressing concern for presentation. Profile authors should consider making the order a feature of the rules about the narrative, not the rules about the data - requiring ordered data makes the profile much less re-usable.", "min": 0, "max": "1", "type": [ { "code": "boolean" } ], "defaultValueBoolean": false, "isSummary": true }, { "id": "ElementDefinition.slicing.rules", "path": "ElementDefinition.slicing.rules", "comment": "Allowing additional elements makes for a much for flexible template - it's open for use in wider contexts, but also means that the content of the resource is not closed, and applications have to decide how to handle content not described by the profile.", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "SlicingRules" } ], "strength": "required", "description": "How slices are interpreted when evaluating an instance.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/resource-slicing-rules" } } }, { "id": "ElementDefinition.short", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.short", "comment": "May change the term to provide language more appropriate to the context of the profile or to reflect slicing.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.definition", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.definition", "comment": "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.", "min": 0, "max": "1", "type": [ { "code": "markdown" } ], "isSummary": true }, { "id": "ElementDefinition.comment", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.comment", "comment": "If it is possible to capture usage rules using constraints, that mechanism should be used in preference to this element.", "min": 0, "max": "1", "type": [ { "code": "markdown" } ], "isSummary": true }, { "id": "ElementDefinition.requirements", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.requirements", "comment": "This element does not describe the usage of the element (that's done in comments), rather it's for traceability of *why* the element is either needed or why the constraints exist as they do. This may be used to point to source materials or specifications that drove the structure of this data element.", "min": 0, "max": "1", "type": [ { "code": "markdown" } ], "isSummary": true }, { "id": "ElementDefinition.alias", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.alias", "min": 0, "max": "*", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.min", "path": "ElementDefinition.min", "min": 0, "max": "1", "type": [ { "code": "unsignedInt" } ], "condition": [ "eld-2" ], "isSummary": true }, { "id": "ElementDefinition.max", "path": "ElementDefinition.max", "min": 0, "max": "1", "type": [ { "code": "string" } ], "condition": [ "eld-3", "eld-2" ], "constraint": [ { "key": "eld-3", "severity": "error", "human": "Max SHALL be a number or \"*\"", "expression": "empty() or ($this = '*') or (toInteger() >= 0)", "xpath": "@value='*' or (normalize-space(@value)!='' and normalize-space(translate(@value, '0123456789',''))='')" } ], "isSummary": true }, { "id": "ElementDefinition.base", "path": "ElementDefinition.base", "comment": "The base information does not carry any information that could not be determined from the path and related profiles, but making this determination requires both that the related profiles are available, and that the algorithm to determine them be available. So they are deformalised into this location for tooling convenience, and to ensure that the base information is available without dependencies.", "min": 0, "max": "1", "type": [ { "code": "Element" } ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ], "isSummary": true }, { "id": "ElementDefinition.base.id", "path": "ElementDefinition.base.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "ElementDefinition.base.extension", "path": "ElementDefinition.base.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "ElementDefinition.base.path", "path": "ElementDefinition.base.path", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.base.min", "path": "ElementDefinition.base.min", "comment": "This is provided for consistency with max, and may affect code generation of mandatory elements of the base resource are generated differently (some reference implementations have done this).", "min": 1, "max": "1", "type": [ { "code": "unsignedInt" } ], "isSummary": true }, { "id": "ElementDefinition.base.max", "path": "ElementDefinition.base.max", "comment": "This is provided to code generation, since the serialization representation in JSON differs depending on whether the base element has max > 1. Also, some forms of code generation may differ.", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.contentReference", "path": "ElementDefinition.contentReference", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "condition": [ "eld-5" ], "isSummary": true }, { "id": "ElementDefinition.type", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name", "valueString": "TypeRef" } ], "path": "ElementDefinition.type", "comment": "The Type of the element can be left blank in a differential constraint, in which case the type is inherited from the resource. Abstract types are not permitted to appear as a type when multiple types are listed. (I.e. Abstract types cannot be part of a choice).", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "condition": [ "eld-13" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" }, { "key": "eld-4", "severity": "error", "human": "Aggregation may only be specified if one of the allowed types for the element is a resource", "expression": "aggregation.empty() or (code = 'Reference')", "xpath": "not(exists(f:aggregation)) or exists(f:code[@value = 'Reference'])" } ], "isSummary": true }, { "id": "ElementDefinition.type.id", "path": "ElementDefinition.type.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "ElementDefinition.type.extension", "path": "ElementDefinition.type.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "ElementDefinition.type.code", "path": "ElementDefinition.type.code", "comment": "If the element is a reference to another resource, this element contains \"Reference\", and the targetProfile element defines what resources can be referenced. The targetProfile may be a reference to the general definition of a resource (e.g. http://hl7.org/fhir/StructureDefinition/Patient). There would be one pair of type/code for each allowed target resource type.", "min": 1, "max": "1", "type": [ { "code": "uri" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "FHIRDefinedTypeExt" } ], "strength": "extensible", "description": "Either a resource or a data type, including logical model types", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/defined-types" } } }, { "id": "ElementDefinition.type.profile", "path": "ElementDefinition.type.profile", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "isSummary": true }, { "id": "ElementDefinition.type.targetProfile", "path": "ElementDefinition.type.targetProfile", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "isSummary": true }, { "id": "ElementDefinition.type.aggregation", "path": "ElementDefinition.type.aggregation", "min": 0, "max": "*", "type": [ { "code": "code" } ], "condition": [ "eld-4" ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "AggregationMode" } ], "strength": "required", "description": "How resource references can be aggregated.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/resource-aggregation-mode" } } }, { "id": "ElementDefinition.type.versioning", "path": "ElementDefinition.type.versioning", "comment": "The base specification never makes a rule as to which form is allowed, but implementation guides may do this.", "min": 0, "max": "1", "type": [ { "code": "code" } ], "defaultValueCode": "either", "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "ReferenceVersionRules" } ], "strength": "required", "description": "Whether a reference needs to be version specific or version independent, or whether either can be used", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/reference-version-rules" } } }, { "id": "ElementDefinition.defaultValue[x]", "path": "ElementDefinition.defaultValue[x]", "comment": "Default values can only be specified on a resource, data type, or extension definition, and never in a profile that applies to one of these. Specifying a default value means that the property can never been unknown - it must always have a value. Further, the default value can never be changed. For these reasons, default values are (and should be) used extremely sparingly.", "min": 0, "max": "1", "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" } ], "condition": [ "eld-15" ], "isSummary": true }, { "id": "ElementDefinition.meaningWhenMissing", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.meaningWhenMissing", "comment": "Implicit meanings for missing values can only be specified on a resource, data type, or extension definition, and never in a profile that applies to one of these. An implicit meaning for a missing value can never be changed, and specifying one has the consequence that constraining its use in profiles eliminates use cases as possibilities, not merely moving them out of scope.", "min": 0, "max": "1", "type": [ { "code": "markdown" } ], "condition": [ "eld-15" ], "isSummary": true }, { "id": "ElementDefinition.orderMeaning", "path": "ElementDefinition.orderMeaning", "comment": "This element can only be asserted on repeating elements and can only be introduced when defining resources or data types. It can be further refined profiled elements but if absent in the base type, a profile cannot assert meaning.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.fixed[x]", "path": "ElementDefinition.fixed[x]", "comment": "This is not recommended for Coding and CodeableConcept since these often have highly contextual properties such as version or display.", "min": 0, "max": "1", "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" } ], "condition": [ "eld-5", "eld-6", "eld-8" ], "isSummary": true }, { "id": "ElementDefinition.pattern[x]", "path": "ElementDefinition.pattern[x]", "comment": "Mostly used for fixing values of CodeableConcept. At present, pattern[x] is not recommended as a basis for slicing while issues related to this are investigated during the STU period.", "min": 0, "max": "1", "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" } ], "condition": [ "eld-5", "eld-7", "eld-8" ], "isSummary": true }, { "id": "ElementDefinition.example", "path": "ElementDefinition.example", "comment": "Examples will most commonly be present for data where it's not implicitly obvious from either the data type or value set what the values might be. (I.e. Example values for dates or quantities would generally be unnecessary.) If the example value is fully populated, the publication tool can generate an instance automatically.", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ], "isSummary": true }, { "id": "ElementDefinition.example.id", "path": "ElementDefinition.example.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "ElementDefinition.example.extension", "path": "ElementDefinition.example.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "ElementDefinition.example.label", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.example.label", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.example.value[x]", "path": "ElementDefinition.example.value[x]", "min": 1, "max": "1", "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" } ], "isSummary": true }, { "id": "ElementDefinition.minValue[x]", "path": "ElementDefinition.minValue[x]", "comment": "Except for date/date/instant, the type of the minValue[x] SHALL be the same as the specified type of the element. For the date/dateTime/instant values, the type of minValue[x] SHALL be either the same, or a a [Duration](datatypes.html#duration) which specifies a relative time limit to the current time. The duration value is positive, and is subtracted from the current clock to determine the minimum allowable value. A minimum value for a Quantity is interpreted as an canonical minimum - e.g. you cannot provide 100mg if the minimum value is 10g.", "min": 0, "max": "1", "type": [ { "code": "date" }, { "code": "dateTime" }, { "code": "instant" }, { "code": "time" }, { "code": "decimal" }, { "code": "integer" }, { "code": "positiveInt" }, { "code": "unsignedInt" }, { "code": "Quantity" } ], "isSummary": true }, { "id": "ElementDefinition.maxValue[x]", "path": "ElementDefinition.maxValue[x]", "comment": "Except for date/date/instant, the type of the maxValue[x] SHALL be the same as the specified type of the element. For the date/dateTime/instant values, the type of maxValue[x] SHALL be either the same, or a a [Duration](datatypes.html#duration) which specifies a relative time limit to the current time. The duration value is positive, and is added to the current clock to determine the maximum allowable value. A maximum value for a Quantity is interpreted as an canonical maximum - e.g. you cannot provide 10g if the maximum value is 50mg.", "min": 0, "max": "1", "type": [ { "code": "date" }, { "code": "dateTime" }, { "code": "instant" }, { "code": "time" }, { "code": "decimal" }, { "code": "integer" }, { "code": "positiveInt" }, { "code": "unsignedInt" }, { "code": "Quantity" } ], "isSummary": true }, { "id": "ElementDefinition.maxLength", "path": "ElementDefinition.maxLength", "comment": "Receivers are not required to reject instances that exceed the maximum length. The full length could be stored. In some cases, data might be truncated, though truncation should be undertaken with care and an understanding of the consequences of doing so. If not specified, there is no conformance expectation for length support.", "min": 0, "max": "1", "type": [ { "code": "integer" } ], "isSummary": true }, { "id": "ElementDefinition.condition", "path": "ElementDefinition.condition", "min": 0, "max": "*", "type": [ { "code": "id" } ], "isSummary": true }, { "id": "ElementDefinition.constraint", "path": "ElementDefinition.constraint", "comment": "Constraints should be declared on the \"context\" element - the lowest element in the hierarchy that is common to all nodes referenced by the constraint.", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ], "isSummary": true }, { "id": "ElementDefinition.constraint.id", "path": "ElementDefinition.constraint.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "ElementDefinition.constraint.extension", "path": "ElementDefinition.constraint.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "ElementDefinition.constraint.key", "path": "ElementDefinition.constraint.key", "min": 1, "max": "1", "type": [ { "code": "id" } ], "condition": [ "eld-14" ], "isSummary": true }, { "id": "ElementDefinition.constraint.requirements", "path": "ElementDefinition.constraint.requirements", "comment": "To be used if the reason for the constraint may not be intuitive to all implementers.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.constraint.severity", "path": "ElementDefinition.constraint.severity", "comment": "This allows constraints to be asserted as \"shall\" (error) and \"should\" (warning).", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "ConstraintSeverity" } ], "strength": "required", "description": "SHALL applications comply with this constraint?", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/constraint-severity" } } }, { "id": "ElementDefinition.constraint.human", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.constraint.human", "comment": "Should be expressed in business terms as much as possible.", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.constraint.expression", "path": "ElementDefinition.constraint.expression", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.constraint.xpath", "path": "ElementDefinition.constraint.xpath", "comment": "Elements SHALL use \"f\" as the namespace prefix for the FHIR namespace, and \"x\" for the xhtml namespace, and SHALL NOT use any other prefixes. \n\nNote: we are considering deprecating the xpath element. Implementer feedback is welcome.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.constraint.source", "path": "ElementDefinition.constraint.source", "comment": "This is used when, e.g. rendering, where it is not useful to present inherited constraints when rendering the snapshot.", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "isSummary": true }, { "id": "ElementDefinition.mustSupport", "path": "ElementDefinition.mustSupport", "comment": "\"Something useful\" is context dependent and impossible to describe in the base FHIR specification. For this reason, tue mustSupport flag is never set to true by the FHIR specification itself - it is only set to true in profiles. \n\nThis is done in [Resource Profiles](profiling.html#mustsupport), where the profile labels an element as mustSupport=true. When a profile does this, it SHALL also make clear exactly what kind of \"support\" is required, as this can mean many things.\n\nNote that an element that has the property IsModifier is not necessarily a \"key\" element (e.g. one of the important elements to make use of the resource), nor is it automatically mustSupport - however both of these things are more likely to be true for IsModifier elements than for other elements.", "min": 0, "max": "1", "type": [ { "code": "boolean" } ], "defaultValueBoolean": false, "isSummary": true }, { "id": "ElementDefinition.isModifier", "path": "ElementDefinition.isModifier", "comment": "Only the definition of an element can set IsModifier true - either the specification itself or where an extension is originally defined. Once set, it cannot be changed in derived profiles. An element/extension that has isModifier=true SHOULD also have a minimum cardinality of 1, so that there is no lack of clarity about what to do if it is missing. If it can be missing, the definition SHALL make the meaning of a missing element clear.", "min": 0, "max": "1", "type": [ { "code": "boolean" } ], "defaultValueBoolean": false, "isSummary": true }, { "id": "ElementDefinition.isSummary", "path": "ElementDefinition.isSummary", "comment": "Some resources include a set of simple metadata, and some very large data. This element is used to reduce the quantity of data returned in searches. Note that servers may pre-cache summarized resources for optimal performance, so servers may not support per-profile use of the isSummary flag. When a request is made with _summary=true, serailisers only include elements marked as 'isSummary = true'. Other than Attachment.data, all data type properties are included in the summary form. Modifier elements or elements with minimum cardinality = 1 must be marked as summary elements.", "min": 0, "max": "1", "type": [ { "code": "boolean" } ], "defaultValueBoolean": false, "isSummary": true }, { "id": "ElementDefinition.binding", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name", "valueString": "ElementDefinitionBinding" } ], "path": "ElementDefinition.binding", "comment": "For a CodeableConcept, when no codes are allowed - only text, use a binding of strength \"required\" with a description explaining that no coded values are allowed and what sort of information to put in the \"text\" element.", "min": 0, "max": "1", "type": [ { "code": "Element" } ], "condition": [ "eld-11" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" }, { "key": "eld-10", "severity": "error", "human": "provide either a reference or a description (or both)", "expression": "valueSet.exists() or description.exists()", "xpath": "(exists(f:valueSetUri) or exists(f:valueSetReference)) or exists(f:description)" }, { "key": "eld-12", "severity": "error", "human": "ValueSet as a URI SHALL start with http:// or https:// or urn:", "expression": "valueSet.is(uri).not() or valueSet.as(uri).startsWith('http:') or valueSet.as(uri).startsWith('https') or valueSet.as(uri).startsWith('urn:')", "xpath": "not(exists(f:valueSetUri)) or (starts-with(string(f:valueSetUri/@value), 'http:') or starts-with(string(f:valueSetUri/@value), 'https:') or starts-with(string(f:valueSetUri/@value), 'urn:'))" } ], "isSummary": true }, { "id": "ElementDefinition.binding.id", "path": "ElementDefinition.binding.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "ElementDefinition.binding.extension", "path": "ElementDefinition.binding.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "ElementDefinition.binding.strength", "path": "ElementDefinition.binding.strength", "comment": "For further discussion, see [Using Terminologies](terminologies.html).", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "BindingStrength" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "required", "description": "Indication of the degree of conformance expectations associated with a binding.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/binding-strength" } } }, { "id": "ElementDefinition.binding.description", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.binding.description", "min": 0, "max": "1", "type": [ { "code": "string" } ], "condition": [ "eld-10" ], "isSummary": true }, { "id": "ElementDefinition.binding.valueSet[x]", "path": "ElementDefinition.binding.valueSet[x]", "comment": "For value sets with a referenceResource, the display can contain the value set description. The reference may be version-specific or not.", "min": 0, "max": "1", "type": [ { "code": "uri" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/ValueSet" } ], "condition": [ "eld-10", "eld-12" ], "isSummary": true }, { "id": "ElementDefinition.mapping", "path": "ElementDefinition.mapping", "comment": "Mappings are not necessarily specific enough for safe translation.", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ], "isSummary": true }, { "id": "ElementDefinition.mapping.id", "path": "ElementDefinition.mapping.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "ElementDefinition.mapping.extension", "path": "ElementDefinition.mapping.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "ElementDefinition.mapping.identity", "path": "ElementDefinition.mapping.identity", "min": 1, "max": "1", "type": [ { "code": "id" } ], "isSummary": true }, { "id": "ElementDefinition.mapping.language", "path": "ElementDefinition.mapping.language", "comment": "If omitted, then there can be no expectation of computational interpretation of the mapping.", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "MimeType" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "required", "description": "The mime type of an attachment. Any valid mime type is allowed.", "valueSetUri": "http://www.rfc-editor.org/bcp/bcp13.txt" } }, { "id": "ElementDefinition.mapping.map", "path": "ElementDefinition.mapping.map", "comment": "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.", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.mapping.comment", "path": "ElementDefinition.mapping.comment", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "ElementDefinition", "path": "ElementDefinition", "min": 0, "max": "*", "constraint": [ { "key": "eld-2", "severity": "error", "human": "Min <= Max", "expression": "min.empty() or max.empty() or (max = '*') or (min <= max.toInteger())", "xpath": "not(exists(f:min)) or not(exists(f:max)) or (not(f:max/@value) and not(f:min/@value)) or (f:max/@value = '*') or (number(f:max/@value) >= f:min/@value)" }, { "key": "eld-5", "severity": "error", "human": "if the element definition has a contentReference, it cannot have type, defaultValue, fixed, pattern, example, minValue, maxValue, maxLength, or binding", "expression": "contentReference.empty() or (type.empty() and defaultValue.empty() and fixed.empty() and pattern.empty() and example.empty() and minValue.empty() and maxValue.empty() and maxLength.empty() and binding.empty())", "xpath": "not(exists(f:contentReference) and (exists(f:type) or exists(f:*[starts-with(local-name(.), 'value')]) or exists(f:*[starts-with(local-name(.), 'defaultValue')]) or exists(f:*[starts-with(local-name(.), 'fixed')]) or exists(f:*[starts-with(local-name(.), 'pattern')]) or exists(f:*[starts-with(local-name(.), 'example')]) or exists(f:*[starts-with(local-name(.), 'f:minValue')]) or exists(f:*[starts-with(local-name(.), 'f:maxValue')]) or exists(f:maxLength) or exists(f:binding)))" }, { "key": "eld-7", "severity": "error", "human": "Pattern may only be specified if there is one type", "expression": "pattern.empty() or (type.count() <= 1)", "xpath": "not(exists(f:*[starts-with(local-name(.), 'pattern')])) or (count(f:type)<=1)" }, { "key": "eld-6", "severity": "error", "human": "Fixed value may only be specified if there is one type", "expression": "fixed.empty() or (type.count() <= 1)", "xpath": "not(exists(f:*[starts-with(local-name(.), 'fixed')])) or (count(f:type)<=1)" }, { "key": "eld-11", "severity": "error", "human": "Binding can only be present for coded elements, string, and uri", "expression": "binding.empty() or type.code.empty() or type.select((code = 'code') or (code = 'Coding') or (code='CodeableConcept') or (code = 'Quantity') or (code = 'Extension') or (code = 'string') or (code = 'uri')).exists()", "xpath": "not(exists(f:binding)) or (count(f:type/f:code) = 0) or f:type/f:code/@value=('code','Coding','CodeableConcept','Quantity','Extension', 'string', 'uri')" }, { "key": "eld-8", "severity": "error", "human": "Pattern and value are mutually exclusive", "expression": "pattern.empty() or fixed.empty()", "xpath": "not(exists(f:*[starts-with(local-name(.), 'pattern')])) or not(exists(f:*[starts-with(local-name(.), 'fixed')]))" }, { "key": "eld-14", "severity": "error", "human": "Constraints must be unique by key", "expression": "constraint.select(key).isDistinct()", "xpath": "count(f:constraint) = count(distinct-values(f:constraint/f:key/@value))" }, { "key": "eld-13", "severity": "error", "human": "Types must be unique by the combination of code and profile", "expression": "type.select(code&profile&targetProfile).isDistinct()", "xpath": "not(exists(for $type in f:type return $type/preceding-sibling::f:type[f:code/@value=$type/f:code/@value and f:profile/@value = $type/f:profile/@value]))" }, { "key": "eld-16", "severity": "error", "human": "sliceName must be a proper token", "expression": "sliceName.empty() or sliceName.matches('^[a-zA-Z0-9\\\\-\\\\_]+$')", "xpath": "not(exists(f:sliceName/@value)) or matches(f:sliceName/@value, '^[a-zA-Z0-9\\\\-\\\\_]+$')" }, { "key": "eld-15", "severity": "error", "human": "default value and meaningWhenMissing are mutually exclusive", "expression": "defaultValue.empty() or meaningWhenMissing.empty()", "xpath": "not(exists(f:*[starts-with(local-name(.), 'fixed')])) or not(exists(f:meaningWhenMissing))" } ] }, { "id": "ElementDefinition.path", "path": "ElementDefinition.path", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.representation", "path": "ElementDefinition.representation", "comment": "In resources, this is rarely used except for special cases where the representation deviates from the normal, and can only be done in the base standard (and profiles must reproduce what the base standard does). This element is used quite commonly in Logical models when the logical models represent a specific serialization format (e.g. CDA, v2 etc).", "min": 0, "max": "*", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "PropertyRepresentation" } ], "strength": "required", "description": "How a property is represented when serialized.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/property-representation" } } }, { "id": "ElementDefinition.sliceName", "path": "ElementDefinition.sliceName", "comment": "The name SHALL be unique within the structure within the context of the constrained resource element. (Though to avoid confusion, uniqueness across all elements is recommended.).", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.label", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.label", "comment": "See also the extension (http://hl7.org/fhir/StructureDefinition/elementdefinition-question)[extension-elementdefinition-question.html].", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.code", "path": "ElementDefinition.code", "comment": "The concept SHALL be properly aligned with the data element definition and other constraints, as defined in the code system, including relationships, of any code listed here. Where multiple codes exist in a terminology that could correspond to the data element, the most granular code(s) should be selected, so long as they are not more restrictive than the data element itself. The mappings may be used to provide more or less granular or structured equivalences in the code system.", "min": 0, "max": "*", "type": [ { "code": "Coding" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "ElementDefinitionCode" } ], "strength": "example", "description": "Codes that indicate the meaning of a data element.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/observation-codes" } } }, { "id": "ElementDefinition.slicing", "path": "ElementDefinition.slicing", "comment": "The first element in the sequence, the one that carries the slicing, is the definition that applies to all the slices. This is based on the unconstrained element, but can apply any constraints as appropriate. This may include the common constraints on the children of the element.", "min": 0, "max": "1", "type": [ { "code": "Element" } ], "constraint": [ { "key": "eld-1", "severity": "error", "human": "If there are no discriminators, there must be a definition", "expression": "discriminator.exists() or description.exists()", "xpath": "(f:discriminator) or (f:description)" } ], "isSummary": true }, { "id": "ElementDefinition.slicing.discriminator", "path": "ElementDefinition.slicing.discriminator", "comment": "If there is no discriminator, the content is hard to process, so this should be avoided. If the base element has a cardinality of ..1, and there is a choice of types, the discriminator must be \"@type\".", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "isSummary": true }, { "id": "ElementDefinition.slicing.discriminator.type", "path": "ElementDefinition.slicing.discriminator.type", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "DiscriminatorType" } ], "strength": "required", "description": "How an element value is interpreted when discrimination is evaluated", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/discriminator-type" } } }, { "id": "ElementDefinition.slicing.discriminator.path", "path": "ElementDefinition.slicing.discriminator.path", "comment": "The only FHIRPath functions that are allowed are resolve(), and extension(url).", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.slicing.description", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.slicing.description", "comment": "If it's really not possible to differentiate them, the design should be re-evaluated to make the content usable.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "condition": [ "eld-1" ], "isSummary": true }, { "id": "ElementDefinition.slicing.ordered", "path": "ElementDefinition.slicing.ordered", "comment": "Order should only be required when it is a pressing concern for presentation. Profile authors should consider making the order a feature of the rules about the narrative, not the rules about the data - requiring ordered data makes the profile much less re-usable.", "min": 0, "max": "1", "type": [ { "code": "boolean" } ], "defaultValueBoolean": false, "isSummary": true }, { "id": "ElementDefinition.slicing.rules", "path": "ElementDefinition.slicing.rules", "comment": "Allowing additional elements makes for a much for flexible template - it's open for use in wider contexts, but also means that the content of the resource is not closed, and applications have to decide how to handle content not described by the profile.", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "SlicingRules" } ], "strength": "required", "description": "How slices are interpreted when evaluating an instance.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/resource-slicing-rules" } } }, { "id": "ElementDefinition.short", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.short", "comment": "May change the term to provide language more appropriate to the context of the profile or to reflect slicing.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.definition", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.definition", "comment": "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.", "min": 0, "max": "1", "type": [ { "code": "markdown" } ], "isSummary": true }, { "id": "ElementDefinition.comment", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.comment", "comment": "If it is possible to capture usage rules using constraints, that mechanism should be used in preference to this element.", "min": 0, "max": "1", "type": [ { "code": "markdown" } ], "isSummary": true }, { "id": "ElementDefinition.requirements", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.requirements", "comment": "This element does not describe the usage of the element (that's done in comments), rather it's for traceability of *why* the element is either needed or why the constraints exist as they do. This may be used to point to source materials or specifications that drove the structure of this data element.", "min": 0, "max": "1", "type": [ { "code": "markdown" } ], "isSummary": true }, { "id": "ElementDefinition.alias", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.alias", "min": 0, "max": "*", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.min", "path": "ElementDefinition.min", "min": 0, "max": "1", "type": [ { "code": "unsignedInt" } ], "condition": [ "eld-2" ], "isSummary": true }, { "id": "ElementDefinition.max", "path": "ElementDefinition.max", "min": 0, "max": "1", "type": [ { "code": "string" } ], "condition": [ "eld-3", "eld-2" ], "constraint": [ { "key": "eld-3", "severity": "error", "human": "Max SHALL be a number or \"*\"", "expression": "empty() or ($this = '*') or (toInteger() >= 0)", "xpath": "@value='*' or (normalize-space(@value)!='' and normalize-space(translate(@value, '0123456789',''))='')" } ], "isSummary": true }, { "id": "ElementDefinition.base", "path": "ElementDefinition.base", "comment": "The base information does not carry any information that could not be determined from the path and related profiles, but making this determination requires both that the related profiles are available, and that the algorithm to determine them be available. So they are deformalised into this location for tooling convenience, and to ensure that the base information is available without dependencies.", "min": 0, "max": "1", "type": [ { "code": "Element" } ], "isSummary": true }, { "id": "ElementDefinition.base.path", "path": "ElementDefinition.base.path", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.base.min", "path": "ElementDefinition.base.min", "comment": "This is provided for consistency with max, and may affect code generation of mandatory elements of the base resource are generated differently (some reference implementations have done this).", "min": 1, "max": "1", "type": [ { "code": "unsignedInt" } ], "isSummary": true }, { "id": "ElementDefinition.base.max", "path": "ElementDefinition.base.max", "comment": "This is provided to code generation, since the serialization representation in JSON differs depending on whether the base element has max > 1. Also, some forms of code generation may differ.", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.contentReference", "path": "ElementDefinition.contentReference", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "condition": [ "eld-5" ], "isSummary": true }, { "id": "ElementDefinition.type", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name", "valueString": "TypeRef" } ], "path": "ElementDefinition.type", "comment": "The Type of the element can be left blank in a differential constraint, in which case the type is inherited from the resource. Abstract types are not permitted to appear as a type when multiple types are listed. (I.e. Abstract types cannot be part of a choice).", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "condition": [ "eld-13" ], "constraint": [ { "key": "eld-4", "severity": "error", "human": "Aggregation may only be specified if one of the allowed types for the element is a resource", "expression": "aggregation.empty() or (code = 'Reference')", "xpath": "not(exists(f:aggregation)) or exists(f:code[@value = 'Reference'])" } ], "isSummary": true }, { "id": "ElementDefinition.type.code", "path": "ElementDefinition.type.code", "comment": "If the element is a reference to another resource, this element contains \"Reference\", and the targetProfile element defines what resources can be referenced. The targetProfile may be a reference to the general definition of a resource (e.g. http://hl7.org/fhir/StructureDefinition/Patient). There would be one pair of type/code for each allowed target resource type.", "min": 1, "max": "1", "type": [ { "code": "uri" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "FHIRDefinedTypeExt" } ], "strength": "extensible", "description": "Either a resource or a data type, including logical model types", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/defined-types" } } }, { "id": "ElementDefinition.type.profile", "path": "ElementDefinition.type.profile", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "isSummary": true }, { "id": "ElementDefinition.type.targetProfile", "path": "ElementDefinition.type.targetProfile", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "isSummary": true }, { "id": "ElementDefinition.type.aggregation", "path": "ElementDefinition.type.aggregation", "min": 0, "max": "*", "type": [ { "code": "code" } ], "condition": [ "eld-4" ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "AggregationMode" } ], "strength": "required", "description": "How resource references can be aggregated.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/resource-aggregation-mode" } } }, { "id": "ElementDefinition.type.versioning", "path": "ElementDefinition.type.versioning", "comment": "The base specification never makes a rule as to which form is allowed, but implementation guides may do this.", "min": 0, "max": "1", "type": [ { "code": "code" } ], "defaultValueCode": "either", "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "ReferenceVersionRules" } ], "strength": "required", "description": "Whether a reference needs to be version specific or version independent, or whether either can be used", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/reference-version-rules" } } }, { "id": "ElementDefinition.defaultValue[x]", "path": "ElementDefinition.defaultValue[x]", "comment": "Default values can only be specified on a resource, data type, or extension definition, and never in a profile that applies to one of these. Specifying a default value means that the property can never been unknown - it must always have a value. Further, the default value can never be changed. For these reasons, default values are (and should be) used extremely sparingly.", "min": 0, "max": "1", "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" } ], "condition": [ "eld-15" ], "isSummary": true }, { "id": "ElementDefinition.meaningWhenMissing", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.meaningWhenMissing", "comment": "Implicit meanings for missing values can only be specified on a resource, data type, or extension definition, and never in a profile that applies to one of these. An implicit meaning for a missing value can never be changed, and specifying one has the consequence that constraining its use in profiles eliminates use cases as possibilities, not merely moving them out of scope.", "min": 0, "max": "1", "type": [ { "code": "markdown" } ], "condition": [ "eld-15" ], "isSummary": true }, { "id": "ElementDefinition.orderMeaning", "path": "ElementDefinition.orderMeaning", "comment": "This element can only be asserted on repeating elements and can only be introduced when defining resources or data types. It can be further refined profiled elements but if absent in the base type, a profile cannot assert meaning.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.fixed[x]", "path": "ElementDefinition.fixed[x]", "comment": "This is not recommended for Coding and CodeableConcept since these often have highly contextual properties such as version or display.", "min": 0, "max": "1", "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" } ], "condition": [ "eld-5", "eld-6", "eld-8" ], "isSummary": true }, { "id": "ElementDefinition.pattern[x]", "path": "ElementDefinition.pattern[x]", "comment": "Mostly used for fixing values of CodeableConcept. At present, pattern[x] is not recommended as a basis for slicing while issues related to this are investigated during the STU period.", "min": 0, "max": "1", "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" } ], "condition": [ "eld-5", "eld-7", "eld-8" ], "isSummary": true }, { "id": "ElementDefinition.example", "path": "ElementDefinition.example", "comment": "Examples will most commonly be present for data where it's not implicitly obvious from either the data type or value set what the values might be. (I.e. Example values for dates or quantities would generally be unnecessary.) If the example value is fully populated, the publication tool can generate an instance automatically.", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "isSummary": true }, { "id": "ElementDefinition.example.label", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.example.label", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.example.value[x]", "path": "ElementDefinition.example.value[x]", "min": 1, "max": "1", "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" } ], "isSummary": true }, { "id": "ElementDefinition.minValue[x]", "path": "ElementDefinition.minValue[x]", "comment": "Except for date/date/instant, the type of the minValue[x] SHALL be the same as the specified type of the element. For the date/dateTime/instant values, the type of minValue[x] SHALL be either the same, or a a [Duration](datatypes.html#duration) which specifies a relative time limit to the current time. The duration value is positive, and is subtracted from the current clock to determine the minimum allowable value. A minimum value for a Quantity is interpreted as an canonical minimum - e.g. you cannot provide 100mg if the minimum value is 10g.", "min": 0, "max": "1", "type": [ { "code": "date" }, { "code": "dateTime" }, { "code": "instant" }, { "code": "time" }, { "code": "decimal" }, { "code": "integer" }, { "code": "positiveInt" }, { "code": "unsignedInt" }, { "code": "Quantity" } ], "isSummary": true }, { "id": "ElementDefinition.maxValue[x]", "path": "ElementDefinition.maxValue[x]", "comment": "Except for date/date/instant, the type of the maxValue[x] SHALL be the same as the specified type of the element. For the date/dateTime/instant values, the type of maxValue[x] SHALL be either the same, or a a [Duration](datatypes.html#duration) which specifies a relative time limit to the current time. The duration value is positive, and is added to the current clock to determine the maximum allowable value. A maximum value for a Quantity is interpreted as an canonical maximum - e.g. you cannot provide 10g if the maximum value is 50mg.", "min": 0, "max": "1", "type": [ { "code": "date" }, { "code": "dateTime" }, { "code": "instant" }, { "code": "time" }, { "code": "decimal" }, { "code": "integer" }, { "code": "positiveInt" }, { "code": "unsignedInt" }, { "code": "Quantity" } ], "isSummary": true }, { "id": "ElementDefinition.maxLength", "path": "ElementDefinition.maxLength", "comment": "Receivers are not required to reject instances that exceed the maximum length. The full length could be stored. In some cases, data might be truncated, though truncation should be undertaken with care and an understanding of the consequences of doing so. If not specified, there is no conformance expectation for length support.", "min": 0, "max": "1", "type": [ { "code": "integer" } ], "isSummary": true }, { "id": "ElementDefinition.condition", "path": "ElementDefinition.condition", "min": 0, "max": "*", "type": [ { "code": "id" } ], "isSummary": true }, { "id": "ElementDefinition.constraint", "path": "ElementDefinition.constraint", "comment": "Constraints should be declared on the \"context\" element - the lowest element in the hierarchy that is common to all nodes referenced by the constraint.", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "isSummary": true }, { "id": "ElementDefinition.constraint.key", "path": "ElementDefinition.constraint.key", "min": 1, "max": "1", "type": [ { "code": "id" } ], "condition": [ "eld-14" ], "isSummary": true }, { "id": "ElementDefinition.constraint.requirements", "path": "ElementDefinition.constraint.requirements", "comment": "To be used if the reason for the constraint may not be intuitive to all implementers.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.constraint.severity", "path": "ElementDefinition.constraint.severity", "comment": "This allows constraints to be asserted as \"shall\" (error) and \"should\" (warning).", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "ConstraintSeverity" } ], "strength": "required", "description": "SHALL applications comply with this constraint?", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/constraint-severity" } } }, { "id": "ElementDefinition.constraint.human", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.constraint.human", "comment": "Should be expressed in business terms as much as possible.", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.constraint.expression", "path": "ElementDefinition.constraint.expression", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.constraint.xpath", "path": "ElementDefinition.constraint.xpath", "comment": "Elements SHALL use \"f\" as the namespace prefix for the FHIR namespace, and \"x\" for the xhtml namespace, and SHALL NOT use any other prefixes. \n\nNote: we are considering deprecating the xpath element. Implementer feedback is welcome.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.constraint.source", "path": "ElementDefinition.constraint.source", "comment": "This is used when, e.g. rendering, where it is not useful to present inherited constraints when rendering the snapshot.", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "isSummary": true }, { "id": "ElementDefinition.mustSupport", "path": "ElementDefinition.mustSupport", "comment": "\"Something useful\" is context dependent and impossible to describe in the base FHIR specification. For this reason, tue mustSupport flag is never set to true by the FHIR specification itself - it is only set to true in profiles. \n\nThis is done in [Resource Profiles](profiling.html#mustsupport), where the profile labels an element as mustSupport=true. When a profile does this, it SHALL also make clear exactly what kind of \"support\" is required, as this can mean many things.\n\nNote that an element that has the property IsModifier is not necessarily a \"key\" element (e.g. one of the important elements to make use of the resource), nor is it automatically mustSupport - however both of these things are more likely to be true for IsModifier elements than for other elements.", "min": 0, "max": "1", "type": [ { "code": "boolean" } ], "defaultValueBoolean": false, "isSummary": true }, { "id": "ElementDefinition.isModifier", "path": "ElementDefinition.isModifier", "comment": "Only the definition of an element can set IsModifier true - either the specification itself or where an extension is originally defined. Once set, it cannot be changed in derived profiles. An element/extension that has isModifier=true SHOULD also have a minimum cardinality of 1, so that there is no lack of clarity about what to do if it is missing. If it can be missing, the definition SHALL make the meaning of a missing element clear.", "min": 0, "max": "1", "type": [ { "code": "boolean" } ], "defaultValueBoolean": false, "isSummary": true }, { "id": "ElementDefinition.isSummary", "path": "ElementDefinition.isSummary", "comment": "Some resources include a set of simple metadata, and some very large data. This element is used to reduce the quantity of data returned in searches. Note that servers may pre-cache summarized resources for optimal performance, so servers may not support per-profile use of the isSummary flag. When a request is made with _summary=true, serailisers only include elements marked as 'isSummary = true'. Other than Attachment.data, all data type properties are included in the summary form. Modifier elements or elements with minimum cardinality = 1 must be marked as summary elements.", "min": 0, "max": "1", "type": [ { "code": "boolean" } ], "defaultValueBoolean": false, "isSummary": true }, { "id": "ElementDefinition.binding", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name", "valueString": "ElementDefinitionBinding" } ], "path": "ElementDefinition.binding", "comment": "For a CodeableConcept, when no codes are allowed - only text, use a binding of strength \"required\" with a description explaining that no coded values are allowed and what sort of information to put in the \"text\" element.", "min": 0, "max": "1", "type": [ { "code": "Element" } ], "condition": [ "eld-11" ], "constraint": [ { "key": "eld-10", "severity": "error", "human": "provide either a reference or a description (or both)", "expression": "valueSet.exists() or description.exists()", "xpath": "(exists(f:valueSetUri) or exists(f:valueSetReference)) or exists(f:description)" }, { "key": "eld-12", "severity": "error", "human": "ValueSet as a URI SHALL start with http:// or https:// or urn:", "expression": "valueSet.is(uri).not() or valueSet.as(uri).startsWith('http:') or valueSet.as(uri).startsWith('https') or valueSet.as(uri).startsWith('urn:')", "xpath": "not(exists(f:valueSetUri)) or (starts-with(string(f:valueSetUri/@value), 'http:') or starts-with(string(f:valueSetUri/@value), 'https:') or starts-with(string(f:valueSetUri/@value), 'urn:'))" } ], "isSummary": true }, { "id": "ElementDefinition.binding.strength", "path": "ElementDefinition.binding.strength", "comment": "For further discussion, see [Using Terminologies](terminologies.html).", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "BindingStrength" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "required", "description": "Indication of the degree of conformance expectations associated with a binding.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/binding-strength" } } }, { "id": "ElementDefinition.binding.description", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "ElementDefinition.binding.description", "min": 0, "max": "1", "type": [ { "code": "string" } ], "condition": [ "eld-10" ], "isSummary": true }, { "id": "ElementDefinition.binding.valueSet[x]", "path": "ElementDefinition.binding.valueSet[x]", "comment": "For value sets with a referenceResource, the display can contain the value set description. The reference may be version-specific or not.", "min": 0, "max": "1", "type": [ { "code": "uri" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/ValueSet" } ], "condition": [ "eld-10", "eld-12" ], "isSummary": true }, { "id": "ElementDefinition.mapping", "path": "ElementDefinition.mapping", "comment": "Mappings are not necessarily specific enough for safe translation.", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "isSummary": true }, { "id": "ElementDefinition.mapping.identity", "path": "ElementDefinition.mapping.identity", "min": 1, "max": "1", "type": [ { "code": "id" } ], "isSummary": true }, { "id": "ElementDefinition.mapping.language", "path": "ElementDefinition.mapping.language", "comment": "If omitted, then there can be no expectation of computational interpretation of the mapping.", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "MimeType" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "required", "description": "The mime type of an attachment. Any valid mime type is allowed.", "valueSetUri": "http://www.rfc-editor.org/bcp/bcp13.txt" } }, { "id": "ElementDefinition.mapping.map", "path": "ElementDefinition.mapping.map", "comment": "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.", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ElementDefinition.mapping.comment", "path": "ElementDefinition.mapping.comment", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Extension", "resource": { "resourceType": "StructureDefinition", "id": "Extension", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Extension", "name": "Extension", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "The ability to add extensions in a structured way is what keeps FHIR resources simple.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Extension", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Extension", "path": "Extension", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" }, { "key": "ext-1", "severity": "error", "human": "Must have either extensions or value[x], not both", "expression": "extension.exists() != value.exists()", "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" } ] }, { "id": "Extension.id", "path": "Extension.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Extension.extension", "path": "Extension.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Extension.url", "path": "Extension.url", "representation": [ "xmlAttr" ], "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.", "min": 1, "max": "1", "type": [ { "code": "uri" } ] }, { "id": "Extension.value[x]", "path": "Extension.value[x]", "min": 0, "max": "1", "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" } ] } ] }, "differential": { "element": [ { "id": "Extension", "path": "Extension", "min": 0, "max": "*", "constraint": [ { "key": "ext-1", "severity": "error", "human": "Must have either extensions or value[x], not both", "expression": "extension.exists() != value.exists()", "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" } ] }, { "id": "Extension.url", "path": "Extension.url", "representation": [ "xmlAttr" ], "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.", "min": 1, "max": "1", "type": [ { "code": "uri" } ] }, { "id": "Extension.value[x]", "path": "Extension.value[x]", "min": 0, "max": "1", "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" } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/HumanName", "resource": { "resourceType": "StructureDefinition", "id": "HumanName", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/HumanName", "name": "HumanName", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "Need to be able to record names, along with notes about their use.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "HumanName", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "HumanName", "path": "HumanName", "comment": "Names may be changed, or repudiated, or people may have different names in different contexts. Names may be divided into parts of different type that have variable significance depending on context, though the division into parts does not always matter. With personal names, the different parts may or may not be imbued with some implicit meaning; various cultures associate different importance with the name parts and the degree to which systems must care about name parts around the world varies widely.", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "HumanName.id", "path": "HumanName.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "HumanName.extension", "path": "HumanName.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "HumanName.use", "path": "HumanName.use", "comment": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary or old name etc.for a current/permanent one. Applications can assume that a name is current unless it explicitly says that it is temporary or old.", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isModifier": true, "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "NameUse" } ], "strength": "required", "description": "The use of a human name", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/name-use" } } }, { "id": "HumanName.text", "path": "HumanName.text", "comment": "Can provide both a text representation and structured parts.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "HumanName.family", "path": "HumanName.family", "comment": "Family Name may be decomposed into specific parts using extensions (de, nl, es related cultures).", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "HumanName.given", "path": "HumanName.given", "comment": "If only initials are recorded, they may be used in place of the full name. Not called \"first name\" since given names do not always come first.", "min": 0, "max": "*", "type": [ { "code": "string" } ], "orderMeaning": "Given Names appear in the correct order for presenting the name", "isSummary": true }, { "id": "HumanName.prefix", "path": "HumanName.prefix", "min": 0, "max": "*", "type": [ { "code": "string" } ], "orderMeaning": "Prefixes appear in the correct order for presenting the name", "isSummary": true }, { "id": "HumanName.suffix", "path": "HumanName.suffix", "min": 0, "max": "*", "type": [ { "code": "string" } ], "orderMeaning": "Suffixes appear in the correct order for presenting the name", "isSummary": true }, { "id": "HumanName.period", "path": "HumanName.period", "min": 0, "max": "1", "type": [ { "code": "Period" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "HumanName", "path": "HumanName", "comment": "Names may be changed, or repudiated, or people may have different names in different contexts. Names may be divided into parts of different type that have variable significance depending on context, though the division into parts does not always matter. With personal names, the different parts may or may not be imbued with some implicit meaning; various cultures associate different importance with the name parts and the degree to which systems must care about name parts around the world varies widely.", "min": 0, "max": "*" }, { "id": "HumanName.use", "path": "HumanName.use", "comment": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary or old name etc.for a current/permanent one. Applications can assume that a name is current unless it explicitly says that it is temporary or old.", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isModifier": true, "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "NameUse" } ], "strength": "required", "description": "The use of a human name", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/name-use" } } }, { "id": "HumanName.text", "path": "HumanName.text", "comment": "Can provide both a text representation and structured parts.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "HumanName.family", "path": "HumanName.family", "comment": "Family Name may be decomposed into specific parts using extensions (de, nl, es related cultures).", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "HumanName.given", "path": "HumanName.given", "comment": "If only initials are recorded, they may be used in place of the full name. Not called \"first name\" since given names do not always come first.", "min": 0, "max": "*", "type": [ { "code": "string" } ], "orderMeaning": "Given Names appear in the correct order for presenting the name", "isSummary": true }, { "id": "HumanName.prefix", "path": "HumanName.prefix", "min": 0, "max": "*", "type": [ { "code": "string" } ], "orderMeaning": "Prefixes appear in the correct order for presenting the name", "isSummary": true }, { "id": "HumanName.suffix", "path": "HumanName.suffix", "min": 0, "max": "*", "type": [ { "code": "string" } ], "orderMeaning": "Suffixes appear in the correct order for presenting the name", "isSummary": true }, { "id": "HumanName.period", "path": "HumanName.period", "min": 0, "max": "1", "type": [ { "code": "Period" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Identifier", "resource": { "resourceType": "StructureDefinition", "id": "Identifier", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Identifier", "name": "Identifier", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "Need to be able to identify things with confidence and be sure that the identification is not subject to misinterpretation.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Identifier", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Identifier", "path": "Identifier", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "Identifier.id", "path": "Identifier.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Identifier.extension", "path": "Identifier.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Identifier.use", "path": "Identifier.use", "comment": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary id for a permanent one. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isModifier": true, "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "IdentifierUse" } ], "strength": "required", "description": "Identifies the purpose for this identifier, if known .", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/identifier-use" } } }, { "id": "Identifier.type", "path": "Identifier.type", "comment": "This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. \n\nWhere the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.", "min": 0, "max": "1", "type": [ { "code": "CodeableConcept" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "IdentifierType" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "extensible", "description": "A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/identifier-type" } } }, { "id": "Identifier.system", "path": "Identifier.system", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "example": [ { "label": "General", "valueUri": "http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri" } ], "isSummary": true }, { "id": "Identifier.value", "path": "Identifier.value", "comment": "If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the [Rendered Value extension](extension-rendered-value.html).", "min": 0, "max": "1", "type": [ { "code": "string" } ], "example": [ { "label": "General", "valueString": "123456" } ], "isSummary": true }, { "id": "Identifier.period", "path": "Identifier.period", "min": 0, "max": "1", "type": [ { "code": "Period" } ], "isSummary": true }, { "id": "Identifier.assigner", "path": "Identifier.assigner", "comment": "The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.", "min": 0, "max": "1", "type": [ { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Organization" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Identifier", "path": "Identifier", "min": 0, "max": "*" }, { "id": "Identifier.use", "path": "Identifier.use", "comment": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary id for a permanent one. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isModifier": true, "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "IdentifierUse" } ], "strength": "required", "description": "Identifies the purpose for this identifier, if known .", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/identifier-use" } } }, { "id": "Identifier.type", "path": "Identifier.type", "comment": "This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. \n\nWhere the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.", "min": 0, "max": "1", "type": [ { "code": "CodeableConcept" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "IdentifierType" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "extensible", "description": "A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/identifier-type" } } }, { "id": "Identifier.system", "path": "Identifier.system", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "example": [ { "label": "General", "valueUri": "http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri" } ], "isSummary": true }, { "id": "Identifier.value", "path": "Identifier.value", "comment": "If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the [Rendered Value extension](extension-rendered-value.html).", "min": 0, "max": "1", "type": [ { "code": "string" } ], "example": [ { "label": "General", "valueString": "123456" } ], "isSummary": true }, { "id": "Identifier.period", "path": "Identifier.period", "min": 0, "max": "1", "type": [ { "code": "Period" } ], "isSummary": true }, { "id": "Identifier.assigner", "path": "Identifier.assigner", "comment": "The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.", "min": 0, "max": "1", "type": [ { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Organization" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Meta", "resource": { "resourceType": "StructureDefinition", "id": "Meta", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Meta", "name": "Meta", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Meta", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Meta", "path": "Meta", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "Meta.id", "path": "Meta.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Meta.extension", "path": "Meta.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Meta.versionId", "path": "Meta.versionId", "comment": "The server assigns this value, and ignores what the client specifies, except in the case that the server is imposing version integrity on updates/deletes.", "min": 0, "max": "1", "type": [ { "code": "id" } ], "isSummary": true }, { "id": "Meta.lastUpdated", "path": "Meta.lastUpdated", "comment": "This value is always populated except when the resource is first being created. The server / resource manager sets this value; what a client provides is irrelevant.", "min": 0, "max": "1", "type": [ { "code": "instant" } ], "isSummary": true }, { "id": "Meta.profile", "path": "Meta.profile", "comment": "It is up to the server and/or other infrastructure of policy to determine whether/how these claims are verified and/or updated over time. The list of profile URLs is a set.", "min": 0, "max": "*", "type": [ { "code": "uri" } ], "isSummary": true }, { "id": "Meta.security", "path": "Meta.security", "comment": "The security labels can be updated without changing the stated version of the resource The list of security labels is a set. Uniqueness is based the system/code, and version and display are ignored.", "min": 0, "max": "*", "type": [ { "code": "Coding" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "SecurityLabels" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "extensible", "description": "Security Labels from the Healthcare Privacy and Security Classification System.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/security-labels" } } }, { "id": "Meta.tag", "path": "Meta.tag", "comment": "The tags can be updated without changing the stated version of the resource. The list of tags is a set. Uniqueness is based the system/code, and version and display are ignored.", "min": 0, "max": "*", "type": [ { "code": "Coding" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "Tags" } ], "strength": "example", "description": "Codes that represent various types of tags, commonly workflow-related; e.g. \"Needs review by Dr. Jones\"", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/common-tags" } } } ] }, "differential": { "element": [ { "id": "Meta", "path": "Meta", "min": 0, "max": "*" }, { "id": "Meta.versionId", "path": "Meta.versionId", "comment": "The server assigns this value, and ignores what the client specifies, except in the case that the server is imposing version integrity on updates/deletes.", "min": 0, "max": "1", "type": [ { "code": "id" } ], "isSummary": true }, { "id": "Meta.lastUpdated", "path": "Meta.lastUpdated", "comment": "This value is always populated except when the resource is first being created. The server / resource manager sets this value; what a client provides is irrelevant.", "min": 0, "max": "1", "type": [ { "code": "instant" } ], "isSummary": true }, { "id": "Meta.profile", "path": "Meta.profile", "comment": "It is up to the server and/or other infrastructure of policy to determine whether/how these claims are verified and/or updated over time. The list of profile URLs is a set.", "min": 0, "max": "*", "type": [ { "code": "uri" } ], "isSummary": true }, { "id": "Meta.security", "path": "Meta.security", "comment": "The security labels can be updated without changing the stated version of the resource The list of security labels is a set. Uniqueness is based the system/code, and version and display are ignored.", "min": 0, "max": "*", "type": [ { "code": "Coding" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "SecurityLabels" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "extensible", "description": "Security Labels from the Healthcare Privacy and Security Classification System.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/security-labels" } } }, { "id": "Meta.tag", "path": "Meta.tag", "comment": "The tags can be updated without changing the stated version of the resource. The list of tags is a set. Uniqueness is based the system/code, and version and display are ignored.", "min": 0, "max": "*", "type": [ { "code": "Coding" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "Tags" } ], "strength": "example", "description": "Codes that represent various types of tags, commonly workflow-related; e.g. \"Needs review by Dr. Jones\"", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/common-tags" } } } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Money", "resource": { "resourceType": "StructureDefinition", "id": "Money", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Money", "name": "Money", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Money", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Quantity", "derivation": "specialization", "snapshot": { "element": [ { "id": "Money", "path": "Money", "comment": "The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.", "min": 0, "max": "*", "constraint": [ { "key": "qty-3", "severity": "error", "human": "If a code for the unit is present, the system SHALL also be present", "expression": "code.empty() or system.exists()", "xpath": "not(exists(f:code)) or exists(f:system)", "source": "Quantity" }, { "key": "mny-1", "severity": "error", "human": "There SHALL be a code if there is a value and it SHALL be an expression of currency. If system is present, it SHALL be ISO 4217 (system = \"urn:iso:std:iso:4217\" - currency).", "expression": "(code or value.empty()) and (system.empty() or system = 'urn:iso:std:iso:4217')", "xpath": "(f:code or not(f:value)) and (not(exists(f:system)) or f:system/@value='urn:iso:std:iso:4217')" } ] }, { "id": "Money.id", "path": "Money.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Money.extension", "path": "Money.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Money.value", "path": "Money.value", "comment": "The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).", "min": 0, "max": "1", "base": { "path": "Quantity.value", "min": 0, "max": "1" }, "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "Money.comparator", "path": "Money.comparator", "comment": "This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value.", "min": 0, "max": "1", "base": { "path": "Quantity.comparator", "min": 0, "max": "1" }, "type": [ { "code": "code" } ], "meaningWhenMissing": "If there is no comparator, then there is no modification of the value", "isModifier": true, "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "QuantityComparator" } ], "strength": "required", "description": "How the Quantity should be understood and represented.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/quantity-comparator" } } }, { "id": "Money.unit", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "Money.unit", "min": 0, "max": "1", "base": { "path": "Quantity.unit", "min": 0, "max": "1" }, "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Money.system", "path": "Money.system", "min": 0, "max": "1", "base": { "path": "Quantity.system", "min": 0, "max": "1" }, "type": [ { "code": "uri" } ], "condition": [ "qty-3" ], "isSummary": true }, { "id": "Money.code", "path": "Money.code", "comment": "The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.", "min": 0, "max": "1", "base": { "path": "Quantity.code", "min": 0, "max": "1" }, "type": [ { "code": "code" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Money", "path": "Money", "min": 0, "max": "*", "constraint": [ { "key": "mny-1", "severity": "error", "human": "There SHALL be a code if there is a value and it SHALL be an expression of currency. If system is present, it SHALL be ISO 4217 (system = \"urn:iso:std:iso:4217\" - currency).", "expression": "(code or value.empty()) and (system.empty() or system = 'urn:iso:std:iso:4217')", "xpath": "(f:code or not(f:value)) and (not(exists(f:system)) or f:system/@value='urn:iso:std:iso:4217')" } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Narrative", "resource": { "resourceType": "StructureDefinition", "id": "Narrative", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Narrative", "name": "Narrative", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Narrative", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Narrative", "path": "Narrative", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "Narrative.id", "path": "Narrative.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Narrative.extension", "path": "Narrative.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Narrative.status", "path": "Narrative.status", "min": 1, "max": "1", "type": [ { "code": "code" } ], "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "NarrativeStatus" } ], "strength": "required", "description": "The status of a resource narrative", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/narrative-status" } } }, { "id": "Narrative.div", "path": "Narrative.div", "comment": "The contents of the html element are an XHTML fragment containing only the basic html formatting elements described in chapters 7-11 and 15 of the HTML 4.0 standard, <a> elements (either name or href), images and internally contained stylesheets. The XHTML content may not contain a head, a body, external stylesheet references, scripts, forms, base/link/xlink, frames, iframes and objects.", "min": 1, "max": "1", "type": [ { "code": "xhtml" } ], "constraint": [ { "key": "txt-1", "severity": "error", "human": "The narrative SHALL contain only the basic html formatting elements and attributes described in chapters 7-11 (except section 4 of chapter 9) and 15 of the HTML 4.0 standard, <a> elements (either name or href), images and internally contained style attributes", "expression": "htmlchecks()", "xpath": "not(descendant-or-self::*[not(local-name(.)=('a', 'abbr', 'acronym', 'b', 'big', 'blockquote', 'br', 'caption', 'cite', 'code', 'col', 'colgroup', 'dd', 'dfn', 'div', 'dl', 'dt', 'em', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'li', 'ol', 'p', 'pre', 'q', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr', 'tt', 'ul', 'var'))]) and not(descendant-or-self::*/@*[not(name(.)=('abbr', 'accesskey', 'align', 'alt', 'axis', 'bgcolor', 'border', 'cellhalign', 'cellpadding', 'cellspacing', 'cellvalign', 'char', 'charoff', 'charset', 'cite', 'class', 'colspan', 'compact', 'coords', 'dir', 'frame', 'headers', 'height', 'href', 'hreflang', 'hspace', 'id', 'lang', 'longdesc', 'name', 'nowrap', 'rel', 'rev', 'rowspan', 'rules', 'scope', 'shape', 'span', 'src', 'start', 'style', 'summary', 'tabindex', 'title', 'type', 'valign', 'value', 'vspace', 'width'))])" }, { "key": "txt-2", "severity": "error", "human": "The narrative SHALL have some non-whitespace content", "expression": "htmlchecks()", "xpath": "descendant::text()[normalize-space(.)!=''] or descendant::h:img[@src]" } ] } ] }, "differential": { "element": [ { "id": "Narrative", "path": "Narrative", "min": 0, "max": "*" }, { "id": "Narrative.status", "path": "Narrative.status", "min": 1, "max": "1", "type": [ { "code": "code" } ], "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "NarrativeStatus" } ], "strength": "required", "description": "The status of a resource narrative", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/narrative-status" } } }, { "id": "Narrative.div", "path": "Narrative.div", "comment": "The contents of the html element are an XHTML fragment containing only the basic html formatting elements described in chapters 7-11 and 15 of the HTML 4.0 standard, <a> elements (either name or href), images and internally contained stylesheets. The XHTML content may not contain a head, a body, external stylesheet references, scripts, forms, base/link/xlink, frames, iframes and objects.", "min": 1, "max": "1", "type": [ { "code": "xhtml" } ], "constraint": [ { "key": "txt-1", "severity": "error", "human": "The narrative SHALL contain only the basic html formatting elements and attributes described in chapters 7-11 (except section 4 of chapter 9) and 15 of the HTML 4.0 standard, <a> elements (either name or href), images and internally contained style attributes", "expression": "htmlchecks()", "xpath": "not(descendant-or-self::*[not(local-name(.)=('a', 'abbr', 'acronym', 'b', 'big', 'blockquote', 'br', 'caption', 'cite', 'code', 'col', 'colgroup', 'dd', 'dfn', 'div', 'dl', 'dt', 'em', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'li', 'ol', 'p', 'pre', 'q', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr', 'tt', 'ul', 'var'))]) and not(descendant-or-self::*/@*[not(name(.)=('abbr', 'accesskey', 'align', 'alt', 'axis', 'bgcolor', 'border', 'cellhalign', 'cellpadding', 'cellspacing', 'cellvalign', 'char', 'charoff', 'charset', 'cite', 'class', 'colspan', 'compact', 'coords', 'dir', 'frame', 'headers', 'height', 'href', 'hreflang', 'hspace', 'id', 'lang', 'longdesc', 'name', 'nowrap', 'rel', 'rev', 'rowspan', 'rules', 'scope', 'shape', 'span', 'src', 'start', 'style', 'summary', 'tabindex', 'title', 'type', 'valign', 'value', 'vspace', 'width'))])" }, { "key": "txt-2", "severity": "error", "human": "The narrative SHALL have some non-whitespace content", "expression": "htmlchecks()", "xpath": "descendant::text()[normalize-space(.)!=''] or descendant::h:img[@src]" } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/ParameterDefinition", "resource": { "resourceType": "StructureDefinition", "id": "ParameterDefinition", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/ParameterDefinition", "name": "ParameterDefinition", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "ParameterDefinition", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "ParameterDefinition", "path": "ParameterDefinition", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "ParameterDefinition.id", "path": "ParameterDefinition.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "ParameterDefinition.extension", "path": "ParameterDefinition.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "ParameterDefinition.name", "path": "ParameterDefinition.name", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isSummary": true }, { "id": "ParameterDefinition.use", "path": "ParameterDefinition.use", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "ParameterUse" } ], "strength": "required", "description": "Whether the parameter is input or output", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/operation-parameter-use" } } }, { "id": "ParameterDefinition.min", "path": "ParameterDefinition.min", "min": 0, "max": "1", "type": [ { "code": "integer" } ], "isSummary": true }, { "id": "ParameterDefinition.max", "path": "ParameterDefinition.max", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ParameterDefinition.documentation", "path": "ParameterDefinition.documentation", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ParameterDefinition.type", "path": "ParameterDefinition.type", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "FHIRAllTypes" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "required", "description": "Either an abstract type, a resource or a data type.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/all-types" } } }, { "id": "ParameterDefinition.profile", "path": "ParameterDefinition.profile", "min": 0, "max": "1", "type": [ { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/StructureDefinition" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "ParameterDefinition", "path": "ParameterDefinition", "min": 0, "max": "*" }, { "id": "ParameterDefinition.name", "path": "ParameterDefinition.name", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isSummary": true }, { "id": "ParameterDefinition.use", "path": "ParameterDefinition.use", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "ParameterUse" } ], "strength": "required", "description": "Whether the parameter is input or output", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/operation-parameter-use" } } }, { "id": "ParameterDefinition.min", "path": "ParameterDefinition.min", "min": 0, "max": "1", "type": [ { "code": "integer" } ], "isSummary": true }, { "id": "ParameterDefinition.max", "path": "ParameterDefinition.max", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ParameterDefinition.documentation", "path": "ParameterDefinition.documentation", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "ParameterDefinition.type", "path": "ParameterDefinition.type", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "FHIRAllTypes" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "required", "description": "Either an abstract type, a resource or a data type.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/all-types" } } }, { "id": "ParameterDefinition.profile", "path": "ParameterDefinition.profile", "min": 0, "max": "1", "type": [ { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/StructureDefinition" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Period", "resource": { "resourceType": "StructureDefinition", "id": "Period", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Period", "name": "Period", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Period", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Period", "path": "Period", "comment": "This is not a duration - that's a measure of time (a separate type), but a duration that occurs at a fixed value of time. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. \"the patient was an inpatient of the hospital for this time range\") or one value from the range applies (e.g. \"give to the patient between these two times\"). If duration is required, specify the type as Interval|Duration.", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" }, { "key": "per-1", "severity": "error", "human": "If present, start SHALL have a lower value than end", "expression": "start.empty() or end.empty() or (start <= end)", "xpath": "not(exists(f:start)) or not(exists(f:end)) or (f:start/@value <= f:end/@value)" } ] }, { "id": "Period.id", "path": "Period.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Period.extension", "path": "Period.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Period.start", "path": "Period.start", "comment": "If the low element is missing, the meaning is that the low boundary is not known.", "min": 0, "max": "1", "type": [ { "code": "dateTime" } ], "condition": [ "per-1" ], "isSummary": true }, { "id": "Period.end", "path": "Period.end", "comment": "The high value includes any matching date/time. i.e. 2012-02-03T10:00:00 is in a period that has a end value of 2012-02-03.", "min": 0, "max": "1", "type": [ { "code": "dateTime" } ], "meaningWhenMissing": "If the end of the period is missing, it means that the period is ongoing", "condition": [ "per-1" ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Period", "path": "Period", "comment": "This is not a duration - that's a measure of time (a separate type), but a duration that occurs at a fixed value of time. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. \"the patient was an inpatient of the hospital for this time range\") or one value from the range applies (e.g. \"give to the patient between these two times\"). If duration is required, specify the type as Interval|Duration.", "min": 0, "max": "*", "constraint": [ { "key": "per-1", "severity": "error", "human": "If present, start SHALL have a lower value than end", "expression": "start.empty() or end.empty() or (start <= end)", "xpath": "not(exists(f:start)) or not(exists(f:end)) or (f:start/@value <= f:end/@value)" } ] }, { "id": "Period.start", "path": "Period.start", "comment": "If the low element is missing, the meaning is that the low boundary is not known.", "min": 0, "max": "1", "type": [ { "code": "dateTime" } ], "condition": [ "per-1" ], "isSummary": true }, { "id": "Period.end", "path": "Period.end", "comment": "The high value includes any matching date/time. i.e. 2012-02-03T10:00:00 is in a period that has a end value of 2012-02-03.", "min": 0, "max": "1", "type": [ { "code": "dateTime" } ], "meaningWhenMissing": "If the end of the period is missing, it means that the period is ongoing", "condition": [ "per-1" ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Quantity", "resource": { "resourceType": "StructureDefinition", "id": "Quantity", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Quantity", "name": "Quantity", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "Need to able to capture all sorts of measured values, even if the measured value are not precisely quantified. Values include exact measures such as 3.51g, customary units such as 3 tablets, and currencies such as $100.32USD.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Quantity", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Quantity", "path": "Quantity", "comment": "The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" }, { "key": "qty-3", "severity": "error", "human": "If a code for the unit is present, the system SHALL also be present", "expression": "code.empty() or system.exists()", "xpath": "not(exists(f:code)) or exists(f:system)" } ] }, { "id": "Quantity.id", "path": "Quantity.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Quantity.extension", "path": "Quantity.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Quantity.value", "path": "Quantity.value", "comment": "The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).", "min": 0, "max": "1", "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "Quantity.comparator", "path": "Quantity.comparator", "comment": "This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value.", "min": 0, "max": "1", "type": [ { "code": "code" } ], "meaningWhenMissing": "If there is no comparator, then there is no modification of the value", "isModifier": true, "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "QuantityComparator" } ], "strength": "required", "description": "How the Quantity should be understood and represented.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/quantity-comparator" } } }, { "id": "Quantity.unit", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "Quantity.unit", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Quantity.system", "path": "Quantity.system", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "condition": [ "qty-3" ], "isSummary": true }, { "id": "Quantity.code", "path": "Quantity.code", "comment": "The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Quantity", "path": "Quantity", "comment": "The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.", "min": 0, "max": "*", "constraint": [ { "key": "qty-3", "severity": "error", "human": "If a code for the unit is present, the system SHALL also be present", "expression": "code.empty() or system.exists()", "xpath": "not(exists(f:code)) or exists(f:system)" } ] }, { "id": "Quantity.value", "path": "Quantity.value", "comment": "The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).", "min": 0, "max": "1", "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "Quantity.comparator", "path": "Quantity.comparator", "comment": "This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value.", "min": 0, "max": "1", "type": [ { "code": "code" } ], "meaningWhenMissing": "If there is no comparator, then there is no modification of the value", "isModifier": true, "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "QuantityComparator" } ], "strength": "required", "description": "How the Quantity should be understood and represented.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/quantity-comparator" } } }, { "id": "Quantity.unit", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "Quantity.unit", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Quantity.system", "path": "Quantity.system", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "condition": [ "qty-3" ], "isSummary": true }, { "id": "Quantity.code", "path": "Quantity.code", "comment": "The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Range", "resource": { "resourceType": "StructureDefinition", "id": "Range", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Range", "name": "Range", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "Need to be able to specify ranges of values.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Range", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Range", "path": "Range", "comment": "The stated low and high value are assumed to have arbitrarily high precision when it comes to determining which values are in the range. I.e. 1.99 is not in the range 2 -> 3.", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" }, { "key": "rng-2", "severity": "error", "human": "If present, low SHALL have a lower value than high", "expression": "low.empty() or high.empty() or (low <= high)", "xpath": "not(exists(f:low/f:value/@value)) or not(exists(f:high/f:value/@value)) or (number(f:low/f:value/@value) <= number(f:high/f:value/@value))" } ] }, { "id": "Range.id", "path": "Range.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Range.extension", "path": "Range.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Range.low", "path": "Range.low", "comment": "If the low element is missing, the low boundary is not known.", "min": 0, "max": "1", "type": [ { "code": "Quantity", "profile": "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" } ], "condition": [ "rng-2" ], "isSummary": true }, { "id": "Range.high", "path": "Range.high", "comment": "If the high element is missing, the high boundary is not known.", "min": 0, "max": "1", "type": [ { "code": "Quantity", "profile": "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" } ], "condition": [ "rng-2" ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Range", "path": "Range", "comment": "The stated low and high value are assumed to have arbitrarily high precision when it comes to determining which values are in the range. I.e. 1.99 is not in the range 2 -> 3.", "min": 0, "max": "*", "constraint": [ { "key": "rng-2", "severity": "error", "human": "If present, low SHALL have a lower value than high", "expression": "low.empty() or high.empty() or (low <= high)", "xpath": "not(exists(f:low/f:value/@value)) or not(exists(f:high/f:value/@value)) or (number(f:low/f:value/@value) <= number(f:high/f:value/@value))" } ] }, { "id": "Range.low", "path": "Range.low", "comment": "If the low element is missing, the low boundary is not known.", "min": 0, "max": "1", "type": [ { "code": "Quantity", "profile": "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" } ], "condition": [ "rng-2" ], "isSummary": true }, { "id": "Range.high", "path": "Range.high", "comment": "If the high element is missing, the high boundary is not known.", "min": 0, "max": "1", "type": [ { "code": "Quantity", "profile": "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" } ], "condition": [ "rng-2" ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Ratio", "resource": { "resourceType": "StructureDefinition", "id": "Ratio", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Ratio", "name": "Ratio", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "Need to able to capture ratios for some measurements (titers) and some rates (costs).", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Ratio", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Ratio", "path": "Ratio", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" }, { "key": "rat-1", "severity": "error", "human": "Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present", "expression": "(numerator.empty() xor denominator.exists()) and (numerator.exists() or extension.exists())", "xpath": "(count(f:numerator) = count(f:denominator)) and ((count(f:numerator) > 0) or (count(f:extension) > 0))" } ] }, { "id": "Ratio.id", "path": "Ratio.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Ratio.extension", "path": "Ratio.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Ratio.numerator", "path": "Ratio.numerator", "min": 0, "max": "1", "type": [ { "code": "Quantity" } ], "isSummary": true }, { "id": "Ratio.denominator", "path": "Ratio.denominator", "min": 0, "max": "1", "type": [ { "code": "Quantity" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Ratio", "path": "Ratio", "min": 0, "max": "*", "constraint": [ { "key": "rat-1", "severity": "error", "human": "Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present", "expression": "(numerator.empty() xor denominator.exists()) and (numerator.exists() or extension.exists())", "xpath": "(count(f:numerator) = count(f:denominator)) and ((count(f:numerator) > 0) or (count(f:extension) > 0))" } ] }, { "id": "Ratio.numerator", "path": "Ratio.numerator", "min": 0, "max": "1", "type": [ { "code": "Quantity" } ], "isSummary": true }, { "id": "Ratio.denominator", "path": "Ratio.denominator", "min": 0, "max": "1", "type": [ { "code": "Quantity" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Reference", "resource": { "resourceType": "StructureDefinition", "id": "Reference", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Reference", "name": "Reference", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Reference", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Reference", "path": "Reference", "comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" }, { "key": "ref-1", "severity": "error", "human": "SHALL have a contained resource if a local reference is provided", "expression": "reference.startsWith('#').not() or (reference.substring(1).trace('url') in %resource.contained.id.trace('ids'))", "xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" } ] }, { "id": "Reference.id", "path": "Reference.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Reference.extension", "path": "Reference.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Reference.reference", "path": "Reference.reference", "comment": "Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure \"/[type]/[id]\" then it should be assumed that the reference is to a FHIR RESTful server.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "condition": [ "ref-1" ], "isSummary": true }, { "id": "Reference.identifier", "path": "Reference.identifier", "comment": "When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. \n\nWhen both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference\n\nApplications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.", "min": 0, "max": "1", "type": [ { "code": "Identifier" } ], "isSummary": true }, { "id": "Reference.display", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "Reference.display", "comment": "This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Reference", "path": "Reference", "comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.", "min": 0, "max": "*", "constraint": [ { "key": "ref-1", "severity": "error", "human": "SHALL have a contained resource if a local reference is provided", "expression": "reference.startsWith('#').not() or (reference.substring(1).trace('url') in %resource.contained.id.trace('ids'))", "xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" } ] }, { "id": "Reference.reference", "path": "Reference.reference", "comment": "Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure \"/[type]/[id]\" then it should be assumed that the reference is to a FHIR RESTful server.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "condition": [ "ref-1" ], "isSummary": true }, { "id": "Reference.identifier", "path": "Reference.identifier", "comment": "When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. \n\nWhen both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference\n\nApplications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.", "min": 0, "max": "1", "type": [ { "code": "Identifier" } ], "isSummary": true }, { "id": "Reference.display", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "Reference.display", "comment": "This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/RelatedArtifact", "resource": { "resourceType": "StructureDefinition", "id": "RelatedArtifact", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/RelatedArtifact", "name": "RelatedArtifact", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "Knowledge resources must be able to provide enough information for consumers of the content (and/or interventions or results produced by the content) to be able to determine and understand the justification for and evidence in support of the content.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "RelatedArtifact", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "RelatedArtifact", "path": "RelatedArtifact", "comment": "Each related artifact is either an attachment, or a reference to another knowledge resource, but not both.", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "RelatedArtifact.id", "path": "RelatedArtifact.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "RelatedArtifact.extension", "path": "RelatedArtifact.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "RelatedArtifact.type", "path": "RelatedArtifact.type", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "RelatedArtifactType" } ], "strength": "required", "description": "The type of relationship to the related artifact", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/related-artifact-type" } } }, { "id": "RelatedArtifact.display", "path": "RelatedArtifact.display", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "RelatedArtifact.citation", "path": "RelatedArtifact.citation", "comment": "Additional structured information about citations should be captured as extensions.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "RelatedArtifact.url", "path": "RelatedArtifact.url", "comment": "If a document or resource element is present, this element SHALL NOT be provided (use the url or reference in the Attachment or resource reference).", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "isSummary": true }, { "id": "RelatedArtifact.document", "path": "RelatedArtifact.document", "min": 0, "max": "1", "type": [ { "code": "Attachment" } ], "isSummary": true }, { "id": "RelatedArtifact.resource", "path": "RelatedArtifact.resource", "comment": "If the type is predecessor, this is a reference to the succeeding knowledge resource. If the type is successor, this is a reference to the prior knowledge resource.", "min": 0, "max": "1", "type": [ { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Resource" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "RelatedArtifact", "path": "RelatedArtifact", "comment": "Each related artifact is either an attachment, or a reference to another knowledge resource, but not both.", "min": 0, "max": "*" }, { "id": "RelatedArtifact.type", "path": "RelatedArtifact.type", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "RelatedArtifactType" } ], "strength": "required", "description": "The type of relationship to the related artifact", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/related-artifact-type" } } }, { "id": "RelatedArtifact.display", "path": "RelatedArtifact.display", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "RelatedArtifact.citation", "path": "RelatedArtifact.citation", "comment": "Additional structured information about citations should be captured as extensions.", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "RelatedArtifact.url", "path": "RelatedArtifact.url", "comment": "If a document or resource element is present, this element SHALL NOT be provided (use the url or reference in the Attachment or resource reference).", "min": 0, "max": "1", "type": [ { "code": "uri" } ], "isSummary": true }, { "id": "RelatedArtifact.document", "path": "RelatedArtifact.document", "min": 0, "max": "1", "type": [ { "code": "Attachment" } ], "isSummary": true }, { "id": "RelatedArtifact.resource", "path": "RelatedArtifact.resource", "comment": "If the type is predecessor, this is a reference to the succeeding knowledge resource. If the type is successor, this is a reference to the prior knowledge resource.", "min": 0, "max": "1", "type": [ { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Resource" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/SampledData", "resource": { "resourceType": "StructureDefinition", "id": "SampledData", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/SampledData", "name": "SampledData", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "There is a need for a concise way to handle the data produced by devices that sample a physical state at a high frequency.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "SampledData", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "SampledData", "path": "SampledData", "comment": "The data is not interpretable without at least origin, period, and dimensions, but these are optional to allow a separation between the template of measurement and the actual measurement, such as between DeviceCapabilities and DeviceLog. When providing a summary view (for example with Observation.value[x]) SampledData should be represented with a brief display text such as \"Sampled Data\".", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "SampledData.id", "path": "SampledData.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "SampledData.extension", "path": "SampledData.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "SampledData.origin", "path": "SampledData.origin", "min": 1, "max": "1", "type": [ { "code": "Quantity", "profile": "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" } ], "isSummary": true }, { "id": "SampledData.period", "path": "SampledData.period", "comment": "This is usually a whole number.", "min": 1, "max": "1", "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "SampledData.factor", "path": "SampledData.factor", "min": 0, "max": "1", "type": [ { "code": "decimal" } ], "defaultValueDecimal": 1, "isSummary": true }, { "id": "SampledData.lowerLimit", "path": "SampledData.lowerLimit", "min": 0, "max": "1", "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "SampledData.upperLimit", "path": "SampledData.upperLimit", "min": 0, "max": "1", "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "SampledData.dimensions", "path": "SampledData.dimensions", "comment": "If there is more than one dimension, the code for the type of data will define the meaning of the dimensions (typically ECG data).", "min": 1, "max": "1", "type": [ { "code": "positiveInt" } ], "isSummary": true }, { "id": "SampledData.data", "path": "SampledData.data", "min": 1, "max": "1", "type": [ { "code": "string" } ] } ] }, "differential": { "element": [ { "id": "SampledData", "path": "SampledData", "comment": "The data is not interpretable without at least origin, period, and dimensions, but these are optional to allow a separation between the template of measurement and the actual measurement, such as between DeviceCapabilities and DeviceLog. When providing a summary view (for example with Observation.value[x]) SampledData should be represented with a brief display text such as \"Sampled Data\".", "min": 0, "max": "*" }, { "id": "SampledData.origin", "path": "SampledData.origin", "min": 1, "max": "1", "type": [ { "code": "Quantity", "profile": "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" } ], "isSummary": true }, { "id": "SampledData.period", "path": "SampledData.period", "comment": "This is usually a whole number.", "min": 1, "max": "1", "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "SampledData.factor", "path": "SampledData.factor", "min": 0, "max": "1", "type": [ { "code": "decimal" } ], "defaultValueDecimal": 1, "isSummary": true }, { "id": "SampledData.lowerLimit", "path": "SampledData.lowerLimit", "min": 0, "max": "1", "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "SampledData.upperLimit", "path": "SampledData.upperLimit", "min": 0, "max": "1", "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "SampledData.dimensions", "path": "SampledData.dimensions", "comment": "If there is more than one dimension, the code for the type of data will define the meaning of the dimensions (typically ECG data).", "min": 1, "max": "1", "type": [ { "code": "positiveInt" } ], "isSummary": true }, { "id": "SampledData.data", "path": "SampledData.data", "min": 1, "max": "1", "type": [ { "code": "string" } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Signature", "resource": { "resourceType": "StructureDefinition", "id": "Signature", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Signature", "name": "Signature", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "There are a number of places where content must be signed in healthcare.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Signature", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Signature", "path": "Signature", "comment": "The elements of the Signature Resource are for ease of access of these elements. Foro digital signatures (Xml DigSig, JWT), the non-repudiation proof comes from the Signature validation, which includes validation of the referenced objects (e.g. Resources) (a.k.a., Content) in the XML-Signature Detached form.", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "Signature.id", "path": "Signature.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Signature.extension", "path": "Signature.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Signature.type", "path": "Signature.type", "comment": "Examples include attesting to: authorship, correct transcription, and witness of specific event. Also known as a "Commitment Type Indication".", "min": 1, "max": "*", "type": [ { "code": "Coding" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "SignatureType" } ], "strength": "preferred", "description": "An indication of the reason that an entity signed the object", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/signature-type" } } }, { "id": "Signature.when", "path": "Signature.when", "comment": "This should agree with the information in the signature.", "min": 1, "max": "1", "type": [ { "code": "instant" } ], "isSummary": true }, { "id": "Signature.who[x]", "path": "Signature.who[x]", "comment": "This should agree with the information in the signature.", "min": 1, "max": "1", "type": [ { "code": "uri" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Practitioner" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/RelatedPerson" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Patient" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Device" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Organization" } ], "isSummary": true }, { "id": "Signature.onBehalfOf[x]", "path": "Signature.onBehalfOf[x]", "comment": "The party that can't sign. For example a child.", "min": 0, "max": "1", "type": [ { "code": "uri" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Practitioner" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/RelatedPerson" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Patient" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Device" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Organization" } ], "isSummary": true }, { "id": "Signature.contentType", "path": "Signature.contentType", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "MimeType" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "required", "description": "The mime type of an attachment. Any valid mime type is allowed.", "valueSetUri": "http://www.rfc-editor.org/bcp/bcp13.txt" } }, { "id": "Signature.blob", "path": "Signature.blob", "comment": "Where the signature type is an XML DigSig, the signed content is a FHIR Resource(s), the signature is of the XML form of the Resource(s) using XML-Signature (XMLDIG) \"Detached Signature\" form.", "min": 0, "max": "1", "type": [ { "code": "base64Binary" } ] } ] }, "differential": { "element": [ { "id": "Signature", "path": "Signature", "comment": "The elements of the Signature Resource are for ease of access of these elements. Foro digital signatures (Xml DigSig, JWT), the non-repudiation proof comes from the Signature validation, which includes validation of the referenced objects (e.g. Resources) (a.k.a., Content) in the XML-Signature Detached form.", "min": 0, "max": "*" }, { "id": "Signature.type", "path": "Signature.type", "comment": "Examples include attesting to: authorship, correct transcription, and witness of specific event. Also known as a "Commitment Type Indication".", "min": 1, "max": "*", "type": [ { "code": "Coding" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "SignatureType" } ], "strength": "preferred", "description": "An indication of the reason that an entity signed the object", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/signature-type" } } }, { "id": "Signature.when", "path": "Signature.when", "comment": "This should agree with the information in the signature.", "min": 1, "max": "1", "type": [ { "code": "instant" } ], "isSummary": true }, { "id": "Signature.who[x]", "path": "Signature.who[x]", "comment": "This should agree with the information in the signature.", "min": 1, "max": "1", "type": [ { "code": "uri" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Practitioner" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/RelatedPerson" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Patient" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Device" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Organization" } ], "isSummary": true }, { "id": "Signature.onBehalfOf[x]", "path": "Signature.onBehalfOf[x]", "comment": "The party that can't sign. For example a child.", "min": 0, "max": "1", "type": [ { "code": "uri" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Practitioner" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/RelatedPerson" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Patient" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Device" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Organization" } ], "isSummary": true }, { "id": "Signature.contentType", "path": "Signature.contentType", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "MimeType" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "required", "description": "The mime type of an attachment. Any valid mime type is allowed.", "valueSetUri": "http://www.rfc-editor.org/bcp/bcp13.txt" } }, { "id": "Signature.blob", "path": "Signature.blob", "comment": "Where the signature type is an XML DigSig, the signed content is a FHIR Resource(s), the signature is of the XML form of the Resource(s) using XML-Signature (XMLDIG) \"Detached Signature\" form.", "min": 0, "max": "1", "type": [ { "code": "base64Binary" } ] } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/Timing", "resource": { "resourceType": "StructureDefinition", "id": "Timing", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/Timing", "name": "Timing", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "Need to able to track proposed timing schedules. There are several different ways to do this: one or more specified times, a simple rules like three times a day, or before/after meals.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Timing", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "Timing", "path": "Timing", "comment": "A timing schedule can be either a list of events - intervals on which the event occurs, or a single event with repeating criteria or just repeating criteria with no actual event. When both event and a repeating specification are provided, the list of events should be understood as an interpretation of the information in the repeat structure.", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "Timing.id", "path": "Timing.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Timing.extension", "path": "Timing.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Timing.event", "path": "Timing.event", "min": 0, "max": "*", "type": [ { "code": "dateTime" } ], "isSummary": true }, { "id": "Timing.repeat", "path": "Timing.repeat", "min": 0, "max": "1", "type": [ { "code": "Element" } ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" }, { "key": "tim-9", "severity": "error", "human": "If there's an offset, there must be a when (and not C, CM, CD, CV)", "expression": "offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))", "xpath": "not(exists(f:offset)) or exists(f:when)" }, { "key": "tim-5", "severity": "error", "human": "period SHALL be a non-negative value", "expression": "period.exists() implies period >= 0", "xpath": "f:period/@value >= 0 or not(f:period/@value)" }, { "key": "tim-6", "severity": "error", "human": "If there's a periodMax, there must be a period", "expression": "periodMax.empty() or period.exists()", "xpath": "not(exists(f:periodMax)) or exists(f:period)" }, { "key": "tim-7", "severity": "error", "human": "If there's a durationMax, there must be a duration", "expression": "durationMax.empty() or duration.exists()", "xpath": "not(exists(f:durationMax)) or exists(f:duration)" }, { "key": "tim-8", "severity": "error", "human": "If there's a countMax, there must be a count", "expression": "countMax.empty() or count.exists()", "xpath": "not(exists(f:countMax)) or exists(f:count)" }, { "key": "tim-1", "severity": "error", "human": "if there's a duration, there needs to be duration units", "expression": "duration.empty() or durationUnit.exists()", "xpath": "not(exists(f:duration)) or exists(f:durationUnit)" }, { "key": "tim-10", "severity": "error", "human": "If there's a timeOfDay, there cannot be be a when, or vice versa", "expression": "timeOfDay.empty() or when.empty()", "xpath": "not(exists(f:timeOfDay)) or not(exists(f:when))" }, { "key": "tim-2", "severity": "error", "human": "if there's a period, there needs to be period units", "expression": "period.empty() or periodUnit.exists()", "xpath": "not(exists(f:period)) or exists(f:periodUnit)" }, { "key": "tim-4", "severity": "error", "human": "duration SHALL be a non-negative value", "expression": "duration.exists() implies duration >= 0", "xpath": "f:duration/@value >= 0 or not(f:duration/@value)" } ], "isSummary": true }, { "id": "Timing.repeat.id", "path": "Timing.repeat.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Timing.repeat.extension", "path": "Timing.repeat.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Timing.repeat.bounds[x]", "path": "Timing.repeat.bounds[x]", "min": 0, "max": "1", "type": [ { "code": "Duration" }, { "code": "Range" }, { "code": "Period" } ], "isSummary": true }, { "id": "Timing.repeat.count", "path": "Timing.repeat.count", "comment": "If you have both bounds and count, then this should be understood as within the bounds period, until count times happens.", "min": 0, "max": "1", "type": [ { "code": "integer" } ], "isSummary": true }, { "id": "Timing.repeat.countMax", "path": "Timing.repeat.countMax", "min": 0, "max": "1", "type": [ { "code": "integer" } ], "isSummary": true }, { "id": "Timing.repeat.duration", "path": "Timing.repeat.duration", "comment": "For some events the duration is part of the definition of the event (e.g. IV infusions, where the duration is implicit in the specified quantity and rate). For others, it's part of the timing specification (e.g. exercise).", "min": 0, "max": "1", "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "Timing.repeat.durationMax", "path": "Timing.repeat.durationMax", "comment": "For some events the duration is part of the definition of the event (e.g. IV infusions, where the duration is implicit in the specified quantity and rate). For others, it's part of the timing specification (e.g. exercise).", "min": 0, "max": "1", "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "Timing.repeat.durationUnit", "path": "Timing.repeat.durationUnit", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "UnitsOfTime" } ], "strength": "required", "description": "A unit of time (units from UCUM).", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/units-of-time" } } }, { "id": "Timing.repeat.frequency", "path": "Timing.repeat.frequency", "min": 0, "max": "1", "type": [ { "code": "integer" } ], "defaultValueInteger": 1, "isSummary": true }, { "id": "Timing.repeat.frequencyMax", "path": "Timing.repeat.frequencyMax", "min": 0, "max": "1", "type": [ { "code": "integer" } ], "isSummary": true }, { "id": "Timing.repeat.period", "path": "Timing.repeat.period", "min": 0, "max": "1", "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "Timing.repeat.periodMax", "path": "Timing.repeat.periodMax", "min": 0, "max": "1", "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "Timing.repeat.periodUnit", "path": "Timing.repeat.periodUnit", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "UnitsOfTime" } ], "strength": "required", "description": "A unit of time (units from UCUM).", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/units-of-time" } } }, { "id": "Timing.repeat.dayOfWeek", "path": "Timing.repeat.dayOfWeek", "comment": "If no days are specified, the action is assumed to happen every day as otherwise specified. The elements frequency and period cannot be used as well as dayOfWeek.", "min": 0, "max": "*", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "DayOfWeek" } ], "strength": "required", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/days-of-week" } } }, { "id": "Timing.repeat.timeOfDay", "path": "Timing.repeat.timeOfDay", "comment": "When time of day is specified, it is inferred that the action happens every day (as filtered by dayofWeek) on the specified times. The elements when, frequency and period cannot be used as well as timeOfDay.", "min": 0, "max": "*", "type": [ { "code": "time" } ], "isSummary": true }, { "id": "Timing.repeat.when", "path": "Timing.repeat.when", "comment": "When more than one event is listed, the event is tied to the union of the specified events.", "min": 0, "max": "*", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "EventTiming" } ], "strength": "required", "description": "Real world event relating to the schedule.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/event-timing" } } }, { "id": "Timing.repeat.offset", "path": "Timing.repeat.offset", "min": 0, "max": "1", "type": [ { "code": "unsignedInt" } ], "isSummary": true }, { "id": "Timing.code", "path": "Timing.code", "comment": "BID etc are defined as 'at institutionally specified times'. For example, an institution may choose that BID is \"always at 7am and 6pm\". If it is inappropriate for this choice to be made, the code BID should not be used. Instead, a distinct organization-specific code should be used in place of the HL7-defined BID code and/or the a structured representation should be used (in this case, specifying the two event times).", "min": 0, "max": "1", "type": [ { "code": "CodeableConcept" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "TimingAbbreviation" } ], "strength": "preferred", "description": "Code for a known / defined timing pattern.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/timing-abbreviation" } } } ] }, "differential": { "element": [ { "id": "Timing", "path": "Timing", "comment": "A timing schedule can be either a list of events - intervals on which the event occurs, or a single event with repeating criteria or just repeating criteria with no actual event. When both event and a repeating specification are provided, the list of events should be understood as an interpretation of the information in the repeat structure.", "min": 0, "max": "*" }, { "id": "Timing.event", "path": "Timing.event", "min": 0, "max": "*", "type": [ { "code": "dateTime" } ], "isSummary": true }, { "id": "Timing.repeat", "path": "Timing.repeat", "min": 0, "max": "1", "type": [ { "code": "Element" } ], "constraint": [ { "key": "tim-9", "severity": "error", "human": "If there's an offset, there must be a when (and not C, CM, CD, CV)", "expression": "offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))", "xpath": "not(exists(f:offset)) or exists(f:when)" }, { "key": "tim-5", "severity": "error", "human": "period SHALL be a non-negative value", "expression": "period.exists() implies period >= 0", "xpath": "f:period/@value >= 0 or not(f:period/@value)" }, { "key": "tim-6", "severity": "error", "human": "If there's a periodMax, there must be a period", "expression": "periodMax.empty() or period.exists()", "xpath": "not(exists(f:periodMax)) or exists(f:period)" }, { "key": "tim-7", "severity": "error", "human": "If there's a durationMax, there must be a duration", "expression": "durationMax.empty() or duration.exists()", "xpath": "not(exists(f:durationMax)) or exists(f:duration)" }, { "key": "tim-8", "severity": "error", "human": "If there's a countMax, there must be a count", "expression": "countMax.empty() or count.exists()", "xpath": "not(exists(f:countMax)) or exists(f:count)" }, { "key": "tim-1", "severity": "error", "human": "if there's a duration, there needs to be duration units", "expression": "duration.empty() or durationUnit.exists()", "xpath": "not(exists(f:duration)) or exists(f:durationUnit)" }, { "key": "tim-10", "severity": "error", "human": "If there's a timeOfDay, there cannot be be a when, or vice versa", "expression": "timeOfDay.empty() or when.empty()", "xpath": "not(exists(f:timeOfDay)) or not(exists(f:when))" }, { "key": "tim-2", "severity": "error", "human": "if there's a period, there needs to be period units", "expression": "period.empty() or periodUnit.exists()", "xpath": "not(exists(f:period)) or exists(f:periodUnit)" }, { "key": "tim-4", "severity": "error", "human": "duration SHALL be a non-negative value", "expression": "duration.exists() implies duration >= 0", "xpath": "f:duration/@value >= 0 or not(f:duration/@value)" } ], "isSummary": true }, { "id": "Timing.repeat.bounds[x]", "path": "Timing.repeat.bounds[x]", "min": 0, "max": "1", "type": [ { "code": "Duration" }, { "code": "Range" }, { "code": "Period" } ], "isSummary": true }, { "id": "Timing.repeat.count", "path": "Timing.repeat.count", "comment": "If you have both bounds and count, then this should be understood as within the bounds period, until count times happens.", "min": 0, "max": "1", "type": [ { "code": "integer" } ], "isSummary": true }, { "id": "Timing.repeat.countMax", "path": "Timing.repeat.countMax", "min": 0, "max": "1", "type": [ { "code": "integer" } ], "isSummary": true }, { "id": "Timing.repeat.duration", "path": "Timing.repeat.duration", "comment": "For some events the duration is part of the definition of the event (e.g. IV infusions, where the duration is implicit in the specified quantity and rate). For others, it's part of the timing specification (e.g. exercise).", "min": 0, "max": "1", "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "Timing.repeat.durationMax", "path": "Timing.repeat.durationMax", "comment": "For some events the duration is part of the definition of the event (e.g. IV infusions, where the duration is implicit in the specified quantity and rate). For others, it's part of the timing specification (e.g. exercise).", "min": 0, "max": "1", "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "Timing.repeat.durationUnit", "path": "Timing.repeat.durationUnit", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "UnitsOfTime" } ], "strength": "required", "description": "A unit of time (units from UCUM).", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/units-of-time" } } }, { "id": "Timing.repeat.frequency", "path": "Timing.repeat.frequency", "min": 0, "max": "1", "type": [ { "code": "integer" } ], "defaultValueInteger": 1, "isSummary": true }, { "id": "Timing.repeat.frequencyMax", "path": "Timing.repeat.frequencyMax", "min": 0, "max": "1", "type": [ { "code": "integer" } ], "isSummary": true }, { "id": "Timing.repeat.period", "path": "Timing.repeat.period", "min": 0, "max": "1", "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "Timing.repeat.periodMax", "path": "Timing.repeat.periodMax", "min": 0, "max": "1", "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "Timing.repeat.periodUnit", "path": "Timing.repeat.periodUnit", "min": 0, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "UnitsOfTime" } ], "strength": "required", "description": "A unit of time (units from UCUM).", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/units-of-time" } } }, { "id": "Timing.repeat.dayOfWeek", "path": "Timing.repeat.dayOfWeek", "comment": "If no days are specified, the action is assumed to happen every day as otherwise specified. The elements frequency and period cannot be used as well as dayOfWeek.", "min": 0, "max": "*", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "DayOfWeek" } ], "strength": "required", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/days-of-week" } } }, { "id": "Timing.repeat.timeOfDay", "path": "Timing.repeat.timeOfDay", "comment": "When time of day is specified, it is inferred that the action happens every day (as filtered by dayofWeek) on the specified times. The elements when, frequency and period cannot be used as well as timeOfDay.", "min": 0, "max": "*", "type": [ { "code": "time" } ], "isSummary": true }, { "id": "Timing.repeat.when", "path": "Timing.repeat.when", "comment": "When more than one event is listed, the event is tied to the union of the specified events.", "min": 0, "max": "*", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "EventTiming" } ], "strength": "required", "description": "Real world event relating to the schedule.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/event-timing" } } }, { "id": "Timing.repeat.offset", "path": "Timing.repeat.offset", "min": 0, "max": "1", "type": [ { "code": "unsignedInt" } ], "isSummary": true }, { "id": "Timing.code", "path": "Timing.code", "comment": "BID etc are defined as 'at institutionally specified times'. For example, an institution may choose that BID is \"always at 7am and 6pm\". If it is inappropriate for this choice to be made, the code BID should not be used. Instead, a distinct organization-specific code should be used in place of the HL7-defined BID code and/or the a structured representation should be used (in this case, specifying the two event times).", "min": 0, "max": "1", "type": [ { "code": "CodeableConcept" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "TimingAbbreviation" } ], "strength": "preferred", "description": "Code for a known / defined timing pattern.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/timing-abbreviation" } } } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/TriggerDefinition", "resource": { "resourceType": "StructureDefinition", "id": "TriggerDefinition", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/TriggerDefinition", "name": "TriggerDefinition", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "TriggerDefinition", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "TriggerDefinition", "path": "TriggerDefinition", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "TriggerDefinition.id", "path": "TriggerDefinition.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "TriggerDefinition.extension", "path": "TriggerDefinition.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "TriggerDefinition.type", "path": "TriggerDefinition.type", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "TriggerType" } ], "strength": "required", "description": "The type of trigger", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/trigger-type" } } }, { "id": "TriggerDefinition.eventName", "path": "TriggerDefinition.eventName", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "TriggerDefinition.eventTiming[x]", "path": "TriggerDefinition.eventTiming[x]", "min": 0, "max": "1", "type": [ { "code": "Timing" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Schedule" }, { "code": "date" }, { "code": "dateTime" } ], "isSummary": true }, { "id": "TriggerDefinition.eventData", "path": "TriggerDefinition.eventData", "min": 0, "max": "1", "type": [ { "code": "DataRequirement" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "TriggerDefinition", "path": "TriggerDefinition", "min": 0, "max": "*" }, { "id": "TriggerDefinition.type", "path": "TriggerDefinition.type", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "TriggerType" } ], "strength": "required", "description": "The type of trigger", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/trigger-type" } } }, { "id": "TriggerDefinition.eventName", "path": "TriggerDefinition.eventName", "min": 0, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "TriggerDefinition.eventTiming[x]", "path": "TriggerDefinition.eventTiming[x]", "min": 0, "max": "1", "type": [ { "code": "Timing" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/Schedule" }, { "code": "date" }, { "code": "dateTime" } ], "isSummary": true }, { "id": "TriggerDefinition.eventData", "path": "TriggerDefinition.eventData", "min": 0, "max": "1", "type": [ { "code": "DataRequirement" } ], "isSummary": true } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/UsageContext", "resource": { "resourceType": "StructureDefinition", "id": "UsageContext", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/UsageContext", "name": "UsageContext", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "purpose": "Consumers of the resource must be able to determine the intended applicability for the resource. Ideally, this information would be used programmatically to determine when and how it should be incorporated or exposed.", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "UsageContext", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "UsageContext", "path": "UsageContext", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ] }, { "id": "UsageContext.id", "path": "UsageContext.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "UsageContext.extension", "path": "UsageContext.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "UsageContext.code", "path": "UsageContext.code", "min": 1, "max": "1", "type": [ { "code": "Coding" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "UsageContextType" } ], "strength": "extensible", "description": "A code that specifies a type of context being specified by a usage context", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/usage-context-type" } } }, { "id": "UsageContext.value[x]", "path": "UsageContext.value[x]", "min": 1, "max": "1", "type": [ { "code": "CodeableConcept" }, { "code": "Quantity" }, { "code": "Range" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "UsageContextValue" } ], "strength": "example", "description": "A code that defines the specific value for the context being specified", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/use-context" } } } ] }, "differential": { "element": [ { "id": "UsageContext", "path": "UsageContext", "min": 0, "max": "*" }, { "id": "UsageContext.code", "path": "UsageContext.code", "min": 1, "max": "1", "type": [ { "code": "Coding" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "UsageContextType" } ], "strength": "extensible", "description": "A code that specifies a type of context being specified by a usage context", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/usage-context-type" } } }, { "id": "UsageContext.value[x]", "path": "UsageContext.value[x]", "min": 1, "max": "1", "type": [ { "code": "CodeableConcept" }, { "code": "Quantity" }, { "code": "Range" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "UsageContextValue" } ], "strength": "example", "description": "A code that defines the specific value for the context being specified", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/use-context" } } } ] } } }, { "fullUrl": "http://hl7.org/fhir/StructureDefinition/SimpleQuantity", "resource": { "resourceType": "StructureDefinition", "id": "SimpleQuantity", "meta": { "lastUpdated": "2017-04-26T18:33:43.228-04:00" }, "url": "http://hl7.org/fhir/StructureDefinition/SimpleQuantity", "name": "SimpleQuantity", "status": "draft", "date": "2017-04-26T18:33:43-04:00", "fhirVersion": "3.0.0", "kind": "complex-type", "abstract": false, "type": "Quantity", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Quantity", "derivation": "constraint", "snapshot": { "element": [ { "id": "Quantity:simplequantity", "path": "Quantity", "sliceName": "SimpleQuantity", "comment": "The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.", "min": 0, "max": "*", "base": { "path": "Quantity", "min": 0, "max": "*" }, "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" }, { "key": "qty-3", "severity": "error", "human": "If a code for the unit is present, the system SHALL also be present", "expression": "code.empty() or system.exists()", "xpath": "not(exists(f:code)) or exists(f:system)", "source": "Quantity" }, { "key": "sqty-1", "severity": "error", "human": "The comparator is not used on a SimpleQuantity", "expression": "comparator.empty()", "xpath": "not(exists(f:comparator))" } ] }, { "id": "Quantity:simplequantity.id", "path": "Quantity.id", "representation": [ "xmlAttr" ], "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ] }, { "id": "Quantity:simplequantity.extension", "path": "Quantity.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "comment": "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.", "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ] }, { "id": "Quantity:simplequantity.value", "path": "Quantity.value", "comment": "The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).", "min": 0, "max": "1", "base": { "path": "Quantity.value", "min": 0, "max": "1" }, "type": [ { "code": "decimal" } ], "isSummary": true }, { "id": "Quantity:simplequantity.comparator", "path": "Quantity.comparator", "comment": "This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value.", "min": 0, "max": "0", "base": { "path": "Quantity.comparator", "min": 0, "max": "1" }, "type": [ { "code": "code" } ], "meaningWhenMissing": "If there is no comparator, then there is no modification of the value", "isModifier": true, "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "QuantityComparator" } ], "strength": "required", "description": "How the Quantity should be understood and represented.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/quantity-comparator" } } }, { "id": "Quantity:simplequantity.unit", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", "valueBoolean": true } ], "path": "Quantity.unit", "min": 0, "max": "1", "base": { "path": "Quantity.unit", "min": 0, "max": "1" }, "type": [ { "code": "string" } ], "isSummary": true }, { "id": "Quantity:simplequantity.system", "path": "Quantity.system", "min": 0, "max": "1", "base": { "path": "Quantity.system", "min": 0, "max": "1" }, "type": [ { "code": "uri" } ], "condition": [ "qty-3" ], "isSummary": true }, { "id": "Quantity:simplequantity.code", "path": "Quantity.code", "comment": "The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.", "min": 0, "max": "1", "base": { "path": "Quantity.code", "min": 0, "max": "1" }, "type": [ { "code": "code" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "Quantity:simplequantity", "path": "Quantity", "sliceName": "SimpleQuantity", "min": 0, "max": "*", "constraint": [ { "key": "sqty-1", "severity": "error", "human": "The comparator is not used on a SimpleQuantity", "expression": "comparator.empty()", "xpath": "not(exists(f:comparator))" } ], "isModifier": false }, { "id": "Quantity:simplequantity.comparator", "path": "Quantity.comparator", "max": "0" } ] } } } ]
}