{
  "resourceType": "StructureDefinition",
  "id": "observation-va",
  "url": "http://vha.gov/fhir/StructureDefinition/observation-va",
  "version": "1.0",
  "name": "observation-va",
  "status": "draft",
  "date": "2018-09-19",
  "description": "A profile on the HL7 FHIR Observation resource.  Intended to represent measurements and simple assertions made about a patient.",
  "fhirVersion": "3.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "Observation",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation",
  "derivation": "constraint",
  "snapshot": {},
  "differential": {
    "element": [
      {
        "id": "Observation",
        "path": "Observation",
        "definition": "A profile on the HL7 FHIR Observation resource.  Intended to represent measurements and simple assertions made about a patient.   Adds the following extensions and constraints to the base HL7 Observation resource:\r\n- Proximal-provenance-extension:  Denotes the most recent source of the documented information\r\n- Presence-indicator-extension:  Denotes whether the observation is present, absent, or indeterminate.  Used to formalize negation for Observations\r\n- Adds additional allowed values for the \"category\" element\r\n- Constrains the \"code\" element to values from SNOMED-CT and LOINC only.  This applies equally to top-level codes, as well as codes denoted within nested components.\r\n- Constrains values that are CodeableConcepts to be coded in SNOMED-CT, LOINC, and RxNorm only.  This applies equally to top-level values, as well as values denoted within nested components.\r\n- Constrains values that are Quantities to be coded in UCUM only.  This applies equally to top-level values, as well as values denoted within nested components.\r\n- Requires \"bodySite\" element to be populated with values from the SNOMED-CT Body Structures hierarchy (value set http://hl7.org/fhir/ValueSet/body-site)"
      },
      {
        "id": "Observation.extension",
        "path": "Observation.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "Observation.extension:proximal-provenance-extension",
        "path": "Observation.extension",
        "sliceName": "proximal-provenance-extension",
        "type": [
          {
            "code": "Extension",
            "profile": "http://vha.gov/fhir/StructureDefinition/proximal-provenance-extension"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Observation.extension:presence-indicator-extension",
        "path": "Observation.extension",
        "sliceName": "presence-indicator-extension",
        "definition": "Indicates whether a condition is present, absent, or indeterminate.  Used to support formal negation of problems and disorders encoded using the us-core-problem-va profile or the observation-va profile.",
        "comment": "The presenceIndScope component designates the path(s) of the data element(s) in the resource instance to which the presenceIndValue applies.\r\nThe presenceIndValue component indicates whether whether the information collectively designated by the presenceIndScope value is \"present\", \"absent\", or \"indeterminate\"",
        "type": [
          {
            "code": "Extension",
            "profile": "http://vha.gov/fhir/StructureDefinition/presence-indicator-extension"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Observation.category",
        "path": "Observation.category",
        "definition": "A code that classifies the general type of observation being made.  Has been extended in this profile to include \"History of present illness,\" to allow for the recording of patient signs and symptoms.",
        "requirements": "Used for filtering what observations are retrieved and displayed, as well as the clinical context in which observations were collected/generated.",
        "min": 1,
        "max": "1",
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ObservationCategory"
            }
          ],
          "strength": "required",
          "description": "Codes for high level observation categories",
          "valueSetReference": {
            "reference": "http://vha.gov/fhir/ValueSet/observation-category"
          }
        }
      },
      {
        "id": "Observation.category.coding",
        "path": "Observation.category.coding",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.code",
        "path": "Observation.code",
        "definition": "Describes what was observed. Sometimes this is called the observation \"name\".  The value may represent a clinical concept that is an observation unto itself (such as 'rash' or 'shortness of breath'), or it may represent an attribute that requires a value in the 'value[x]' element to make up the observation (such as 'attribute=color of conjunctiva' and 'value=yellow')",
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ObservationCode"
            }
          ],
          "strength": "required",
          "valueSetReference": {
            "reference": "http://vha.gov/fhir/ValueSet/observation-code"
          }
        }
      },
      {
        "id": "Observation.value[x]",
        "path": "Observation.value[x]",
        "short": "Actual result, if the observation has one",
        "definition": "The value of the observed attribute, if the observation is structured as an attribute/value pair.",
        "comment": "Normally, observations structured as attribute/value pairs will have either a single value or a set of related observations encoded within nested components or referenced Observation instances. A few observations (e.g. Apgar score) may have both a value and related observations (for an Apgar score, the observations from which the measure is derived). If a value is present, the datatype for this element should be determined by Observation.code. This element has a variable name depending on the type as follows: valueQuantity, valueCodeableConcept, valueString, valueBoolean, valueRange, valueRatio, valueSampledData, valueAttachment, valueTime, valueDateTime, or valuePeriod. (The name format is \"'value' + the type name\" with a capital on the first letter of the type).\r\r\rIf the data element is usually coded or if the type associated with the Observation.value defines a coded value, use CodeableConcept instead of string datatype even if the value is uncoded text.  A value set is bound to the ValueCodeableConcept element.    For further discussion and examples see the  [notes section](observation.html#notes) below.",
        "requirements": "If the Observation is structured as an attribute/value pair, the observation must have a value, though it may not if it is in error, if a value is not yet available (e.g., for a lab test), or if the value is represented as a group of observations (such as systolic and diastolic blood pressures), in which case the values may be represented within nested components or other referenced Observation instances.",
        "type": [
          {
            "code": "CodeableConcept",
            "profile": "http://vha.gov/fhir/StructureDefinition/observation-value-codeable-concept"
          },
          {
            "code": "Quantity",
            "profile": "http://vha.gov/fhir/StructureDefinition/observation-value-quantity"
          },
          {
            "code": "CodeableConcept"
          },
          {
            "code": "string"
          },
          {
            "code": "Range"
          },
          {
            "code": "Ratio"
          },
          {
            "code": "SampledData"
          },
          {
            "code": "Attachment"
          },
          {
            "code": "time"
          },
          {
            "code": "dateTime"
          },
          {
            "code": "Period"
          }
        ]
      },
      {
        "id": "Observation.bodySite",
        "path": "Observation.bodySite",
        "definition": "Indicates the site on the subject's body where the observation was made (i.e. the target site).  In this profile, must be populated with values from the SNOMED-CT Body Structures hierarchy (value set http://hl7.org/fhir/ValueSet/body-site)",
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "BodySite"
            }
          ],
          "strength": "required",
          "valueSetReference": {
            "reference": "http://hl7.org/fhir/ValueSet/body-site"
          }
        }
      },
      {
        "id": "Observation.component.extension",
        "path": "Observation.component.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "Observation.component.extension:presence-indicator-extension",
        "path": "Observation.component.extension",
        "sliceName": "presence-indicator-extension",
        "definition": "Indicates whether a condition is present, absent, or indeterminate.  Used to support formal negation of problems and disorders encoded using the us-core-problem-va profile or the observation-va profile.",
        "comment": "The presenceIndScope component designates the path(s) of the data element(s) in the resource instance to which the presenceIndValue applies.\r\nThe presenceIndValue component indicates whether whether the information collectively designated by the presenceIndScope value is \"present\", \"absent\", or \"indeterminate\"",
        "type": [
          {
            "code": "Extension",
            "profile": "http://vha.gov/fhir/StructureDefinition/presence-indicator-extension"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Observation.component.code",
        "path": "Observation.component.code",
        "definition": "Describes what was observed. Sometimes this is called the component \"name\".  The value may represent a clinical concept that is an observation unto itself (such as 'rash' or 'shortness of breath'), or it may represent an attribute that requires a value in the 'value[x]' element to make up the observation (such as 'attribute=color of conjunctiva' and 'value=yellow')",
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ObservationCode"
            }
          ],
          "strength": "extensible",
          "valueSetUri": "http://vha.gov/fhir/ValueSet/observation-code"
        }
      },
      {
        "id": "Observation.component.value[x]",
        "path": "Observation.component.value[x]",
        "short": "Actual component result, if the component has one",
        "definition": "The value of the observed attribute, if the component is structured as an attribute/value pair.",
        "requirements": "If the component is structured as an attribute/value pair, the component must have a value, though it may not if it is in error or a value is not yet available (e.g., for a lab test).",
        "type": [
          {
            "code": "CodeableConcept",
            "profile": "http://vha.gov/fhir/StructureDefinition/observation-value-codeable-concept"
          },
          {
            "code": "Quantity",
            "profile": "http://vha.gov/fhir/StructureDefinition/observation-value-quantity"
          },
          {
            "code": "CodeableConcept"
          },
          {
            "code": "string"
          },
          {
            "code": "Range"
          },
          {
            "code": "Ratio"
          },
          {
            "code": "SampledData"
          },
          {
            "code": "Attachment"
          },
          {
            "code": "time"
          },
          {
            "code": "dateTime"
          },
          {
            "code": "Period"
          }
        ]
      }
    ]
  }
}