Current Build

Extension-structuredefinition-dependencies.json

FHIR Infrastructure Work GroupMaturity Level: N/ABallot Status: Informative

Raw JSON (canonical form + also see JSON Format Specification)

dependencies

{
  "resourceType" : "StructureDefinition",
  "id" : "structuredefinition-dependencies",
  "extension" : [{
    "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
    "valueCode" : "fhir"
  },
  {
    "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
    "valueInteger" : 1
  }],
  "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-dependencies",
  "name" : "dependencies",
  "title" : "Dependent Profiles",
  "status" : "draft",
  "date" : "2014-01-31",
  "publisher" : "Health Level Seven, Inc. - [WG Name] WG",
  "contact" : [{
    "telecom" : [{
      "system" : "url",
      "value" : "http://hl7.org/special/committees/FHIR"
    }]
  }],
  "description" : "Instances can only be valid against this StructureDefinition, if they also sucessfully validate against the dependent profile identified in this extension.",
  "fhirVersion" : "3.4.0",
  "mapping" : [{
    "identity" : "rim",
    "uri" : "http://hl7.org/v3",
    "name" : "RIM Mapping"
  }],
  "kind" : "complex-type",
  "abstract" : false,
  "context" : [{
    "type" : "element",
    "expression" : "StructureDefinition"
  }],
  "type" : "Extension",
  "baseDefinition" : "http://hl7.org/fhir/StructureDefinition/Extension",
  "derivation" : "constraint",
  "snapshot" : {
    "element" : [{
      "id" : "Extension",
      "path" : "Extension",
      "short" : "Dependent Profiles - must be valid against these too",
      "definition" : "Instances can only be valid against this StructureDefinition, if they also sucessfully validate against the dependent profile identified in this extension.",
      "comment" : "Ideally, a profile will restate the constraints of it's base profile and all it's dependent profiles, but this can get pretty complicated once slicing enters the picture. Tools SHOULD not assume that this profile includes all the constraints from the dependent profile.",
      "min" : 0,
      "max" : "*",
      "base" : {
        "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() or (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')])",
        "source" : "Extension"
      }],
      "isModifier" : false
    },
    {
      "id" : "Extension.id",
      "path" : "Extension.id",
      "representation" : ["xmlAttr"],
      "short" : "xml:id (or equivalent in JSON)",
      "definition" : "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Element.id",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "Extension.extension",
      "path" : "Extension.extension",
      "slicing" : {
        "discriminator" : [{
          "type" : "value",
          "path" : "url"
        }],
        "description" : "Extensions are always sliced by (at least) url",
        "rules" : "open"
      },
      "short" : "Extension",
      "definition" : "An Extension",
      "min" : 0,
      "max" : "0",
      "base" : {
        "path" : "Element.extension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "Extension.url",
      "path" : "Extension.url",
      "representation" : ["xmlAttr"],
      "short" : "identifies the meaning of the extension",
      "definition" : "Source of the definition for the extension code - a logical name or a URL.",
      "comment" : "The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.",
      "min" : 1,
      "max" : "1",
      "base" : {
        "path" : "Extension.url",
        "min" : 1,
        "max" : "1"
      },
      "type" : [{
        "code" : "uri"
      }],
      "fixedUri" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-dependencies",
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "N/A"
      }]
    },
    {
      "id" : "Extension.valueCanonical",
      "path" : "Extension.valueCanonical",
      "short" : "Value of extension",
      "definition" : "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Extension.value[x]",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "canonical",
        "targetProfile" : ["http://hl7.org/fhir/StructureDefinition/StructureDefinition"]
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "N/A"
      }]
    }]
  },
  "differential" : {
    "element" : [{
      "id" : "Extension",
      "path" : "Extension",
      "short" : "Dependent Profiles - must be valid against these too",
      "definition" : "Instances can only be valid against this StructureDefinition, if they also sucessfully validate against the dependent profile identified in this extension.",
      "comment" : "Ideally, a profile will restate the constraints of it's base profile and all it's dependent profiles, but this can get pretty complicated once slicing enters the picture. Tools SHOULD not assume that this profile includes all the constraints from the dependent profile.",
      "min" : 0,
      "max" : "*"
    },
    {
      "id" : "Extension.extension",
      "path" : "Extension.extension",
      "max" : "0"
    },
    {
      "id" : "Extension.url",
      "path" : "Extension.url",
      "type" : [{
        "code" : "uri"
      }],
      "fixedUri" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-dependencies"
    },
    {
      "id" : "Extension.valueCanonical",
      "path" : "Extension.valueCanonical",
      "type" : [{
        "code" : "canonical",
        "targetProfile" : ["http://hl7.org/fhir/StructureDefinition/StructureDefinition"]
      }]
    }]
  }
}

Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.