{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/elation-health/main/json-schema/elation-health-injection-schema.json",
  "title": "Injection",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/elation-health-injections-beta-api-openapi.yml#/components/schemas/Injection",
  "properties": {
    "contraindication": {
      "type": [
        "string",
        "null"
      ]
    },
    "created_date": {
      "format": "date-time",
      "readOnly": true,
      "type": [
        "string",
        "null"
      ]
    },
    "deleted_date": {
      "format": "date-time",
      "readOnly": true,
      "type": [
        "string",
        "null"
      ]
    },
    "dose": {
      "format": "decimal",
      "pattern": "^-?\\d{0,18}(?:\\.\\d{0,9})?$",
      "type": [
        "string",
        "null"
      ]
    },
    "dose_in_series": {
      "minimum": 0,
      "type": [
        "integer",
        "null"
      ]
    },
    "dose_unit": {
      "oneOf": [
        {
          "$ref": "#/$defs/DoseUnitEnum"
        },
        {
          "$ref": "#/$defs/NullEnum"
        }
      ]
    },
    "expiration_date": {
      "format": "date",
      "type": [
        "string",
        "null"
      ]
    },
    "given_by": {
      "oneOf": [
        {
          "$ref": "#/$defs/Actor"
        },
        {
          "type": "null"
        }
      ]
    },
    "given_date": {
      "format": "date-time",
      "type": "string"
    },
    "id": {
      "readOnly": true,
      "type": "integer"
    },
    "is_confidential": {
      "readOnly": true,
      "type": "boolean"
    },
    "is_new": {
      "type": "boolean"
    },
    "is_permanent": {
      "type": "boolean"
    },
    "lot_number": {
      "maxLength": 255,
      "type": [
        "string",
        "null"
      ]
    },
    "manufacturer": {
      "type": [
        "string",
        "null"
      ]
    },
    "method": {
      "oneOf": [
        {
          "$ref": "#/$defs/MethodEnum"
        },
        {
          "$ref": "#/$defs/BlankEnum"
        },
        {
          "$ref": "#/$defs/NullEnum"
        }
      ]
    },
    "ndc": {
      "type": [
        "string",
        "null"
      ]
    },
    "notes": {
      "type": [
        "string",
        "null"
      ]
    },
    "ordered_by": {
      "oneOf": [
        {
          "$ref": "#/$defs/Actor"
        },
        {
          "type": "null"
        }
      ]
    },
    "packaged_medication_id": {
      "format": "int64",
      "readOnly": true,
      "type": [
        "integer",
        "null"
      ]
    },
    "patient": {
      "format": "int64",
      "readOnly": true,
      "type": "integer"
    },
    "practice": {
      "format": "int64",
      "readOnly": true,
      "type": "integer"
    },
    "procedures": {
      "oneOf": [
        {
          "$ref": "#/$defs/ProcedureCodes"
        },
        {
          "type": "null"
        }
      ]
    },
    "reason": {
      "type": [
        "string",
        "null"
      ]
    },
    "reference_medication_id": {
      "format": "int64",
      "readOnly": true,
      "type": "integer"
    },
    "service_location_id": {
      "format": "int64",
      "type": [
        "integer",
        "null"
      ]
    },
    "site": {
      "oneOf": [
        {
          "$ref": "#/$defs/SiteEnum"
        },
        {
          "$ref": "#/$defs/BlankEnum"
        },
        {
          "$ref": "#/$defs/NullEnum"
        }
      ]
    }
  },
  "required": [
    "dose",
    "given_date",
    "ndc"
  ],
  "type": "object",
  "$defs": {
    "Actor": {
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "readOnly": true,
          "type": "string"
        },
        "user_id": {
          "readOnly": true,
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "BlankEnum": {
      "enum": [
        ""
      ]
    },
    "DiagnosisCode": {
      "properties": {
        "code": {
          "maxLength": 50,
          "type": "string"
        },
        "system": {
          "type": "string"
        }
      },
      "required": [
        "code",
        "system"
      ],
      "type": "object"
    },
    "DoseUnitEnum": {
      "description": "* `dL` - Deciliter\n* `g` - Gram\n* `kg` - Kilogram\n* `kL` - Kiloliter\n* `L` - Liter\n* `mCi` - Millicurie\n* `mg` - Milligram\n* `mL` - Milliliter\n* `ug` - Microgram\n* `uL` - Microliter\n* `tab` - Tablet",
      "enum": [
        "dL",
        "g",
        "kg",
        "kL",
        "L",
        "mCi",
        "mg",
        "mL",
        "ug",
        "uL",
        "tab"
      ],
      "type": "string"
    },
    "MethodEnum": {
      "description": "* `Intravenous` - Intravenous\n* `Intramuscular` - Intramuscular\n* `Subcutaneous` - Subcutaneous\n* `Intradermal` - Intradermal\n* `Other` - Other",
      "enum": [
        "Intravenous",
        "Intramuscular",
        "Subcutaneous",
        "Intradermal",
        "Other"
      ],
      "type": "string"
    },
    "NullEnum": {
      "type": "null"
    },
    "ProcedureCodes": {
      "properties": {
        "code": {
          "maxLength": 10,
          "type": "string"
        },
        "dxs": {
          "items": {
            "$ref": "#/$defs/DiagnosisCode"
          },
          "type": "array"
        },
        "modifier_1": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "modifier_2": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "modifier_3": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "modifier_4": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "code",
        "dxs"
      ],
      "type": "object"
    },
    "SiteEnum": {
      "description": "* `Abdomen` - Abdomen\n* `R Anterolateral Thigh` - R Anterolateral Thigh\n* `L Anterolateral Thigh` - L Anterolateral Thigh\n* `R Posterior Upper Arm` - R Posterior Upper Arm\n* `L Posterior Upper Arm` - L Posterior Upper Arm\n* `R Upper Arm` - R Upper Arm\n* `L Upper Arm` - L Upper Arm\n* `R Deltoid` - R Deltoid\n* `L Deltoid` - L Deltoid\n* `R Gluteus Maximus` - R Gluteus Maximus\n* `L Gluteus Maximus` - L Gluteus Maximus\n* `R Gluteus Medius` - R Gluteus Medius\n* `L Gluteus Medius` - L Gluteus Medius\n* `R Thigh` - R Thigh\n* `L Thigh` - L Thigh\n* `Back` - Back\n* `R Forearm` - R Forearm\n* `L Forearm` - L Forearm\n* `R Antecubital Fossa` - R Antecubital Fossa\n* `L Antecubital Fossa` - L Antecubital Fossa\n* `R Hand` - R Hand\n* `L Hand` - L Hand\n* `Other` - Other",
      "enum": [
        "Abdomen",
        "R Anterolateral Thigh",
        "L Anterolateral Thigh",
        "R Posterior Upper Arm",
        "L Posterior Upper Arm",
        "R Upper Arm",
        "L Upper Arm",
        "R Deltoid",
        "L Deltoid",
        "R Gluteus Maximus",
        "L Gluteus Maximus",
        "R Gluteus Medius",
        "L Gluteus Medius",
        "R Thigh",
        "L Thigh",
        "Back",
        "R Forearm",
        "L Forearm",
        "R Antecubital Fossa",
        "L Antecubital Fossa",
        "R Hand",
        "L Hand",
        "Other"
      ],
      "type": "string"
    }
  }
}