como experto programador, corrige los errores del siguiente script: import tkinter as tk
from tkinter import ttk, filedialog, messagebox
import pandas as pd
import sqlite3
import docx
root = tk.Tk()
root.title("Formulario de Validación Preoperatoria")

# Configurar la ventana
root.geometry("800x600")
root.resizable(False, False)
root.configure(bg='white')

# Definir variables globales
patient_data = []
medical_notes = []

# Crear etiquetas de la ventana
patient_name_label = tk.Label(root, text="Nombre del Paciente:", bg='white', font=("Arial Bold", 12))
patient_name_label.pack(pady=10)
patient_name_entry = tk.Entry(root, bg='white', width=50)
patient_name_entry.pack()

medical_notes_label = tk.Label(root, text="Notas Médicas:", bg='white', font=("Arial Bold", 12))
medical_notes_label.pack(pady=10)
medical_notes_textarea = tk.Text(root, bg='white', height=5, width=50)
medical_notes_textarea.pack()

# Crear botones de la ventana
submit_button = tk.Button(root, text="Enviar", command=submit_form)
submit_button.pack(pady=10)
file_button = tk.Button(root, text="Subir Archivo", command=upload_file)
file_button.pack(pady=10)

root.mainloop()
def validate_data():
    name = patient_name_entry.get().strip()
    notes = medical_notes_textarea.get("1.0", tk.END).strip()

    if not name:
        messagebox.showerror("Error", "Por favor, ingrese un nombre del paciente.")
        return False

    if not notes:
        messagebox.showerror("Error", "Por favor, ingrese notas médicas.")
        return False

    patient_data.append({"name": name, "notes": notes})
    medical_notes = []
    return True

def upload_file():
    file_path = filedialog.askopenfilename(filetypes=[("Archivos de Texto", "*.txt"), ("Archivos de Excel", "*.xlsx")])

    if not file_path:
        return

    with open(file_path, "r") as file:
        data = file.read()

        if "\n" in data:
            lines = data.split("\n")
            for line in lines:
                name = line.split(",")[0].strip()
                notes = line.split(",")[1].strip()
                medical_notes.append({"name": name, "notes": notes})
        else:
            medical_notes.append({"name": data.strip(), "notes": ""})

    patient_data.extend(medical_notes)
    def export_data():
    conn = sqlite3.connect("patient_data.db")
    cursor = conn.cursor()

    # Crear la tabla si no existe
    cursor.execute("""
    CREATE TABLE IF NOT EXISTS patient_data (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        notes TEXT NOT NULL
    )
    """)

    # Insertar los datos
    for patient in patient_data:
        cursor.execute("INSERT INTO patient_data (name, notes) VALUES (?, ?)", (patient["name"], patient["notes"]))

    conn.commit()

    # Crear el documento Word
    document = docx.Document()

    # Agregar el encabezado
    document.add_heading('Datos del Paciente', 0)
    document.add_heading('Procedimiento de Exportación de Datos', 1)

    # Agregar la tabla de datos
    table = document.add_table(rows=1, cols=2)
    hdr_cells = table.rows[0].cells
    hdr_cells[0].text = 'Nombre del Paciente'
    hdr_cells[1].text = 'Notas Médicas'

    # Agregar los datos
    for patient in patient_data:
        row_cells = table.add_row().cells
        row_cells[0].text = patient["name"]
        row_cells[1].text = patient["notes"]

    # Guardar el documento
    document.save('patient_data.docx')
    def submit_form():
    if validate_data():
        export_data()
        messagebox.showinfo("Guardado", "Los datos del paciente se han guardado exitosamente.")
    else:
        return