{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/elation-health/main/json-schema/elation-health-note-create-schema.json",
  "title": "NoteCreate",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/elation-health-notes-api-openapi.yml#/components/schemas/NoteCreate",
  "properties": {
    "bill": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "description": "The ID of the bill associated with the note",
      "title": "Bill"
    },
    "category": {
      "description": "Practice-created identifiers for note category.\nA category is a Visit Note Type object.\nSee https://docs.elationhealth.com/reference/visit_note_types_list for API to list all available categories.",
      "title": "Category",
      "type": "integer"
    },
    "confidential": {
      "default": false,
      "description": "Whether the note is marked as confidential.",
      "title": "Confidential",
      "type": "boolean"
    },
    "content": {
      "anyOf": [
        {
          "$ref": "#/$defs/DocumentNode-Input"
        },
        {
          "type": "null"
        }
      ],
      "description": "An object representing the body of the note."
    },
    "exam_reason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Exam Reason"
    },
    "metadata": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": {},
      "description": "Unstructured data for storing related metadata.",
      "title": "Metadata"
    },
    "patient": {
      "description": "The ID of the patient for whom the note was created.",
      "title": "Patient",
      "type": "integer"
    },
    "practice": {
      "description": "Authoring practice ID.",
      "title": "Practice",
      "type": "integer"
    },
    "provider": {
      "description": "The ID of the assigned provider.",
      "title": "Provider",
      "type": "integer"
    },
    "serviced_at": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Serviced At"
    }
  },
  "required": [
    "provider",
    "practice",
    "patient",
    "category"
  ],
  "type": "object",
  "$defs": {
    "AiGenerationInfo": {
      "properties": {
        "is_finalized": {
          "default": true,
          "title": "Is Finalized",
          "type": "boolean"
        },
        "transcript_source_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "",
          "title": "Transcript Source Text"
        }
      },
      "title": "AiGenerationInfo",
      "type": "object"
    },
    "AnyNodeContent": {
      "additionalProperties": true,
      "description": "Placeholder for node content, eliminating cycles in OpenAPI schema generation.\nThis should be replaced with any node content type when calling the API",
      "properties": {},
      "title": "AnyNodeContent",
      "type": "object"
    },
    "ColumnLayoutNode-Input": {
      "additionalProperties": true,
      "properties": {
        "attrs": {
          "anyOf": [
            {
              "$ref": "#/$defs/el8_note_models__note__content__base_node__Node__NodeAttrs"
            },
            {
              "type": "null"
            }
          ]
        },
        "content": {
          "default": [],
          "items": {
            "$ref": "#/$defs/AnyNodeContent"
          },
          "title": "Content",
          "type": "array"
        },
        "type": {
          "const": "columnLayout",
          "default": "columnLayout",
          "title": "Type",
          "type": "string"
        }
      },
      "title": "ColumnLayoutNode",
      "type": "object"
    },
    "DocumentNode-Input": {
      "additionalProperties": true,
      "properties": {
        "attrs": {
          "anyOf": [
            {
              "$ref": "#/$defs/el8_note_models__note__content__base_node__Node__NodeAttrs"
            },
            {
              "type": "null"
            }
          ]
        },
        "content": {
          "items": {
            "$ref": "#/$defs/DocumentNodeChild-Input"
          },
          "title": "Content",
          "type": "array"
        },
        "type": {
          "const": "document",
          "default": "document",
          "title": "Type",
          "type": "string"
        }
      },
      "title": "DocumentNode",
      "type": "object"
    },
    "DocumentNodeChild-Input": {
      "oneOf": [
        {
          "$ref": "#/$defs/TwoColumnLayoutNode-Input"
        },
        {
          "$ref": "#/$defs/ColumnLayoutNode-Input"
        }
      ]
    },
    "TwoColumnLayoutNode-Input": {
      "additionalProperties": true,
      "properties": {
        "attrs": {
          "anyOf": [
            {
              "$ref": "#/$defs/el8_note_models__note__content__base_node__Node__NodeAttrs"
            },
            {
              "type": "null"
            }
          ]
        },
        "content": {
          "items": {
            "$ref": "#/$defs/ColumnLayoutNode-Input"
          },
          "title": "Content",
          "type": "array"
        },
        "type": {
          "const": "twoColumnLayout",
          "default": "twoColumnLayout",
          "title": "Type",
          "type": "string"
        }
      },
      "title": "TwoColumnLayoutNode",
      "type": "object"
    },
    "el8_note_models__note__content__base_node__Node__NodeAttrs": {
      "properties": {
        "ai_generation_info": {
          "anyOf": [
            {
              "$ref": "#/$defs/AiGenerationInfo"
            },
            {
              "type": "null"
            }
          ]
        },
        "creation_type": {
          "anyOf": [
            {
              "enum": [
                "ai",
                "template"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Creation Type"
        },
        "is_new": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Is New"
        },
        "ref_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Ref Id"
        }
      },
      "title": "NodeAttrs",
      "type": "object"
    }
  }
}