<!doctype html>
{% extends "index.html" %}

{% block title %}Epicrisis · {{ nombre_paciente }}{% endblock %}
{% block body_class %}app-page epicrisis-page{% endblock %}
{% block shell_class %}app-page__shell epicrisis-shell{% endblock %}

{% block head_extra %}
  <link rel="stylesheet" href="/static/css/app-pages.css">
  <link rel="stylesheet" href="/static/css/epicrisis.css">
{% endblock %}

{% block shell_header_actions %}
  <div class="app-header-actions epicrisis-header-actions">
    <a href="{{ "/casos" if case_key else "/dashboard" }}" class="ui-button ui-button--secondary">
      {{ "Volver a casos" if case_key else "Volver al dashboard" }}
    </a>
    {% if case_key %}
    <a href="/rips/operativo?case_key={{ case_key | urlencode }}" class="ui-button ui-button--ghost">Operar RIPS</a>
    {% endif %}
    {% if regen_url %}
    <a
      href="{{ regen_url }}"
      class="ui-button ui-button--ghost"
      id="regenerar_epicrisis_btn"
    >
      Regenerar epicrisis
    </a>
    {% endif %}
    <button type="button" class="ui-button ui-button--accent" id="generar_pdf_btn" onclick="generarPdfEpicrisis()">
      Generar PDF
    </button>
  </div>
{% endblock %}

{% block content %}
  <div class="app-page__content epicrisis-content" id="epicrisis_top">
    <div id="epicrisis_top_sentinel" class="epicrisis-top-sentinel" aria-hidden="true"></div>
    <div class="app-page__stack epicrisis-sections">
      <section class="app-page__hero ui-card epicrisis-hero">
        <div class="app-page__hero-grid">
          <div class="epicrisis-hero__copy">
            <p class="app-page__eyebrow">Epicrisis operativa</p>
            <div class="epicrisis-hero__heading">
              <h1>{{ nombre_paciente }}</h1>
            </div>
            <p>
              Consolida historia clínica, soporte quirúrgico, factura, codificación y ayudas diagnósticas en una
              única vista trazable para auditoría.
            </p>
            <div class="documento-info epicrisis-hero__summary">
              <div class="epicrisis-kv-grid">
                <div class="epicrisis-kv">
                  <span>Paciente</span>
                  <strong>{{ nombre_paciente }}</strong>
                </div>
                {% if case_key %}
                <div class="epicrisis-kv">
                  <span>Caso</span>
                  <strong>{{ case_key }}</strong>
                </div>
                {% endif %}
                <div class="epicrisis-kv">
                  <span>Usuario</span>
                  <strong>{{ user.username if user else '---' }}</strong>
                </div>
                <div class="epicrisis-kv">
                  <span>Historia clínica</span>
                  <strong>{{ historia.nombre_archivo if historia else 'No disponible' }}</strong>
                  {% if historia and historia.fecha_analisis %}
                  <small><time data-local-date datetime="{{ historia.fecha_analisis }}">{{ historia.fecha_analisis }}</time></small>
                  {% else %}
                  <small>-</small>
                  {% endif %}
                </div>
                <div class="epicrisis-kv">
                  <span>Documento quirúrgico</span>
                  <strong>{{ quirurgico.nombre_archivo if quirurgico else 'No disponible' }}</strong>
                  {% if quirurgico and quirurgico.fecha_analisis %}
                  <small><time data-local-date datetime="{{ quirurgico.fecha_analisis }}">{{ quirurgico.fecha_analisis }}</time></small>
                  {% else %}
                  <small>-</small>
                  {% endif %}
                </div>
                <div class="epicrisis-kv">
                  <span>Factura</span>
                  <strong>{{ factura.nombre_archivo if factura else 'No disponible' }}</strong>
                  {% if factura and factura.fecha_analisis %}
                  <small><time data-local-date datetime="{{ factura.fecha_analisis }}">{{ factura.fecha_analisis }}</time></small>
                  {% else %}
                  <small>-</small>
                  {% endif %}
                </div>
              </div>
            </div>
          </div>
          <div class="app-page__stats epicrisis-hero__stats">
            <article class="app-page__stat">
              <span>Historia clínica</span>
              <strong>{{ "Disponible" if historia else "Pendiente" }}</strong>
            </article>
            <article class="app-page__stat">
              <span>Documento quirúrgico</span>
              <strong>{{ "Disponible" if quirurgico else "Pendiente" }}</strong>
            </article>
            <article class="app-page__stat">
              <span>Factura</span>
              <strong>{{ "Disponible" if factura else "Pendiente" }}</strong>
            </article>
            <article class="app-page__stat">
              <span>Salida PDF</span>
              <strong>{{ "Lista" if pdf_draft else "Editable" }}</strong>
            </article>
          </div>
        </div>
      </section>

      {% set extraction = historia.extraction_metadata if historia and historia.extraction_metadata else {} %}
      {% set processing = historia.historia_processing if historia and historia.historia_processing else {} %}
      {% set quality = historia.analysis_quality if historia and historia.analysis_quality else {} %}
      {% if historia and (extraction or processing or quality or historia.analysis_model_name) %}
      <section
        class="epicrisis-quality ui-card{% if historia.review_required or quality.status == 'degraded' %} epicrisis-quality--warning{% endif %}"
        aria-labelledby="processing-quality-title"
      >
        <div class="epicrisis-quality__header">
          <div>
            <p class="app-page__eyebrow">Trazabilidad técnica</p>
            <h2 id="processing-quality-title">Calidad del procesamiento</h2>
          </div>
          <span class="epicrisis-quality__status">
            {{ 'Requiere revisión' if historia.review_required or quality.status == 'degraded' else 'Cobertura completa' }}
          </span>
        </div>
        <dl class="epicrisis-quality__grid">
          <div>
            <dt>Tipo efectivo</dt>
            <dd>{{ historia.effective_document_type or historia.tipo_documento or 'No informado' }}</dd>
          </div>
          {% if extraction %}
          <div>
            <dt>Páginas con texto</dt>
            <dd>{{ extraction.pages_with_text or 0 }} de {{ extraction.total_pages or 0 }}</dd>
          </div>
          {% endif %}
          {% if processing %}
          <div>
            <dt>Cobertura de entrada</dt>
            <dd>{{ '%.0f'|format((processing.coverage_ratio or 0) * 100) }} % · {{ processing.chunks_succeeded or 0 }}/{{ processing.chunks_total or 0 }} bloques</dd>
          </div>
          {% endif %}
          {% if historia.analysis_model_name or historia.analysis_provider %}
          <div>
            <dt>Proveedor / modelo</dt>
            <dd>{{ historia.analysis_provider or 'No informado' }} / {{ historia.analysis_model_name or 'No informado' }}</dd>
          </div>
          {% endif %}
        </dl>
        {% if historia.review_messages or extraction.warnings %}
        <div class="epicrisis-quality__warnings">
          <strong>Advertencias</strong>
          <ul>
            {% for warning in historia.review_messages or [] %}<li>{{ warning }}</li>{% endfor %}
            {% if extraction.pages_without_text %}
            <li>{{ extraction.pages_without_text|length }} página(s) no entregaron texto extraíble.</li>
            {% endif %}
            {% if not historia.review_messages and extraction.warnings and not extraction.pages_without_text %}
            <li>La extracción registró {{ extraction.warnings|length }} advertencia(s) técnicas.</li>
            {% endif %}
          </ul>
        </div>
        {% endif %}
      </section>
      {% endif %}

    <div class="card" id="seleccion_pdf_card">
      <div class="section-header">Selección de Elementos para PDF</div>
      <p class="muted epicrisis-selection-note">Desmarca los elementos que no deban salir en la epicrisis y agrega
        nuevos elementos en los campos de texto.</p>
      <div class="epicrisis-inline-status">
        <span id="agente_qx_status" class="muted">Analizando hallazgos quirúrgicos automáticamente...</span>
      </div>
      <div class="selection-grid">
        <div class="selection-box">
          <h4>Diagnósticos</h4>
          <div id="diagnosticos_list" class="selection-list"></div>
          <textarea id="diagnosticos_extra" class="selection-extra"
            placeholder="Ejemplo: S92.0 - Fractura del dedo(s) del pie&#10;Uno por linea"></textarea>
        </div>
        <div class="selection-box">
          <h4>Procedimientos</h4>
          <div id="procedimientos_list" class="selection-list"></div>
          <textarea id="procedimientos_extra" class="selection-extra"
            placeholder="Ejemplo: 791201 - Reducción cerrada de fractura&#10;Uno por linea"></textarea>
        </div>
        <div class="selection-box">
          <h4>Medicamentos</h4>
          <div id="medicamentos_list" class="selection-list selection-list--medications"
            aria-label="Medicamentos disponibles"></div>
          <textarea id="medicamentos_extra" class="selection-extra"
            placeholder="MEDICAMENTO | POSOLOGÍA | DOSIS | CANTIDAD | ESTADO&#10;Ejemplo: Dipirona | IV cada 8 horas | 1 g | 2 | administrado"></textarea>
        </div>
        <div class="selection-box">
          <h4>Ayudas Diagnósticas</h4>
          <select id="ayudas_diagnosticas_filter" class="aid-filter" aria-label="Filtrar ayudas diagnósticas">
            <option value="todos">Todos los tipos</option>
            <option value="imagen">Imágenes</option>
            <option value="laboratorio">Laboratorios</option>
            <option value="procedimiento_diagnostico">Procedimientos diagnósticos</option>
          </select>
          <div id="ayudas_diagnosticas_list" class="selection-list"></div>
          <textarea id="ayudas_diagnosticas_extra" class="selection-extra"
            placeholder="Formato: tipo | ayuda | concepto&#10;Ejemplo: imagen | RX de tórax | No interpretado"></textarea>
        </div>
      </div>
      <div class="selection-grid selection-grid--supporting">
        <div class="selection-box">
          <h4>Ampliación medica: Hallazgos Quirúrgicos</h4>
          <textarea id="hallazgos_extra" class="selection-extra"
            placeholder="Agrega aquí observaciones adicionales para hallazgos quirúrgicos que deben salir en el PDF."></textarea>
        </div>
        <div class="selection-box">
          <h4>Ampliación medica: Descripción del Procedimiento</h4>
          <textarea id="descripcion_procedimiento_extra" class="selection-extra"
            placeholder="Agrega aquí detalles adicionales del procedimiento para el PDF final."></textarea>
        </div>
      </div>
      {% if diagnosticos_consolidados and diagnosticos_consolidados|length > 0 %}
      <div class="selection-box selection-box--stacked">
        <h4>Catálogo consolidado de diagnósticos</h4>
        <div class="selection-list">
          {% for item in diagnosticos_consolidados %}
          <div class="selection-item selection-item--stacked">
            <span>
              <strong>{{ item.texto_presentacion }}</strong>
              {% if item.estado_codificacion == 'pendiente_validacion' %}
              <span class="badge badge-post badge-post--warning">Pendiente</span>
              {% endif %}
            </span>
            <span class="muted">Fuentes: {{ item.fuentes|join(', ') if item.fuentes else 'desconocida' }}</span>
          </div>
          {% endfor %}
        </div>
      </div>
      {% endif %}
      {% if diagnosticos_consolidacion_hallazgos and diagnosticos_consolidacion_hallazgos|length > 0 %}
      <div class="selection-box selection-box--stacked">
        <h4>Hallazgos de consolidación diagnóstica</h4>
        <div class="selection-list">
          {% for item in diagnosticos_consolidacion_hallazgos %}
          <div class="selection-item selection-item--stacked">
            <span><strong>{{ item.tipo or 'hallazgo' }}</strong>: {{ item.detalle }}</span>
            {% if item.descripcion or item.diagnostico %}
            <span class="muted">{{ item.codigo or 'PENDIENTE' }} — {{ item.descripcion or item.diagnostico }}</span>
            {% endif %}
          </div>
          {% endfor %}
        </div>
      </div>
      {% endif %}
    </div>
    <!-- RESUMEN DE HISTORIA CLÍNICA -->
    <div class="card">
      <div class="section-header">📝 Resumen de Historia Clínica</div>

      {% if metadatos_hc %}
      <div class="epicrisis-stack-lg">
      <!-- Metadatos del Paciente -->
      <div class="epicrisis-panel epicrisis-panel--patient">
        <h4 class="epicrisis-panel__title epicrisis-panel__title--underlined">Información del Paciente</h4>

        <div class="epicrisis-patient-grid">
          {% if metadatos_hc.nombre_paciente %}
          <div class="epicrisis-kv-cell epicrisis-kv-cell--wide">
            <span>Nombre del paciente</span>
            <strong class="epicrisis-key-value__value--accent">{{ metadatos_hc.nombre_paciente }}</strong>
          </div>
          {% endif %}
          {% if metadatos_hc.datos_identificacion_paciente %}
          <div class="epicrisis-kv-cell"><span>Identificación</span><strong>{{ metadatos_hc.datos_identificacion_paciente }}</strong></div>
          {% endif %}
          {% if metadatos_hc.sexo %}
          <div class="epicrisis-kv-cell"><span>Sexo</span><strong>{{ metadatos_hc.sexo }}</strong></div>
          {% endif %}
          {% if metadatos_hc.edad %}
          <div class="epicrisis-kv-cell"><span>Edad</span><strong>{{ metadatos_hc.edad }}</strong></div>
          {% endif %}
          {% if metadatos_hc.fecha_nacimiento %}
          <div class="epicrisis-kv-cell">
            <span>Fecha de nacimiento</span>
            <strong><time data-local-date datetime="{{ metadatos_hc.fecha_nacimiento }}">{{ metadatos_hc.fecha_nacimiento }}</time></strong>
          </div>
          {% endif %}
          {% if metadatos_hc.prestador_servicio %}
          <div class="epicrisis-kv-cell epicrisis-kv-cell--wide"><span>Prestador / ERP</span><strong>{{ metadatos_hc.prestador_servicio }}</strong></div>
          {% endif %}
          {% if metadatos_hc.caso %}
          <div class="epicrisis-kv-cell"><span>No. de Caso</span><strong>{{ metadatos_hc.caso }}</strong></div>
          {% endif %}
          {% if metadatos_hc.fecha_ingreso %}
          <div class="epicrisis-kv-cell">
            <span>Fecha de ingreso</span>
            <strong><time data-local-date datetime="{{ metadatos_hc.fecha_ingreso }}">{{ metadatos_hc.fecha_ingreso }}</time></strong>
          </div>
          {% endif %}
          {% if metadatos_hc.motivo_consulta %}
          <div class="epicrisis-kv-cell epicrisis-kv-cell--wide"><span>Motivo de consulta</span><strong>{{ metadatos_hc.motivo_consulta }}</strong></div>
          {% endif %}
        </div>
      </div>

      <!-- Resumen Clínico -->
      {% if metadatos_hc.resumen %}
      <div class="epicrisis-panel epicrisis-panel--summary">
        <h4 class="epicrisis-panel__title">📄 Resumen Clínico</h4>
        <p class="epicrisis-text-justified">{{ metadatos_hc.resumen }}</p>
      </div>
      {% endif %}

      <!-- Antecedentes -->
      {% if antecedentes_hc_view and (antecedentes_hc_view.categories or antecedentes_hc_view.negatives) %}
      <section class="epicrisis-panel epicrisis-panel--antecedents" aria-labelledby="antecedentes_heading">
        <div class="antecedents-heading">
          <div>
            <p class="antecedents-heading__eyebrow">Perfil clínico documentado</p>
            <h4 class="epicrisis-panel__title" id="antecedentes_heading">Antecedentes</h4>
          </div>
          {% if antecedentes_hc_view.has_discordance %}
          <span class="antecedents-status antecedents-status--review">Requiere revisión</span>
          {% endif %}
        </div>

        {% if antecedentes_hc_view.has_discordance %}
        <div class="antecedents-alert" role="status">
          <svg viewBox="0 0 24 24" aria-hidden="true">
            <path d="M12 9v4m0 4h.01M10.3 3.7 2.5 17.2A2 2 0 0 0 4.2 20h15.6a2 2 0 0 0 1.7-2.8L13.7 3.7a2 2 0 0 0-3.4 0Z" />
          </svg>
          <p><strong>Información discordante.</strong> Se conserva el antecedente positivo por seguridad clínica.</p>
        </div>
        {% endif %}

        {% if antecedentes_hc_view.categories %}
        <div class="antecedents-grid">
          {% for category in antecedentes_hc_view.categories %}
          <article class="antecedent-card antecedent-card--{{ category.key }}{% if category.discordant %} antecedent-card--discordant{% endif %}">
            <header class="antecedent-card__header">
              <h5>{{ category.label }}</h5>
              <span aria-label="{{ category['items']|length }} antecedentes">{{ category['items']|length }}</span>
            </header>
            <div class="antecedent-card__values">
              {% for item in category['items'] %}
              <span class="antecedent-chip{% if item.discordante %} antecedent-chip--discordant{% endif %}"{% if item.discordante %} aria-label="{{ item.descripcion }}, información discordante"{% endif %}>
                {{ item.descripcion }}
              </span>
              {% endfor %}
            </div>
            {% if category.discordant %}
            <details class="antecedent-evidence">
              <summary>Ver trazabilidad</summary>
              {% for item in category['items'] if item.discordante %}
              <p>
                <strong>{{ item.descripcion }}</strong>
                {% if item.fecha %}<span>Fecha: {{ item.fecha }}</span>{% endif %}
                {% if item.pagina %}<span>Página: {{ item.pagina }}</span>{% endif %}
                {% if item.evidencia %}<q>{{ item.evidencia }}</q>{% endif %}
              </p>
              {% endfor %}
            </details>
            {% endif %}
          </article>
          {% endfor %}
        </div>
        {% endif %}

        {% if antecedentes_hc_view.negatives %}
        <details class="antecedents-negatives">
          <summary>
            <span>Antecedentes negados</span>
            <small>{{ antecedentes_hc_view.negative_category_count }} categorías documentadas</small>
          </summary>
          <div class="antecedents-negatives__values">
            {% for item in antecedentes_hc_view.negatives %}
            <span{% if item.discordante %} class="is-discordant"{% endif %}>{{ item.descripcion }}</span>
            {% endfor %}
          </div>
        </details>
        {% endif %}
      </section>
      {% endif %}

      {% if incapacidad_clinica and incapacidad_clinica.ordenada %}
      <div class="epicrisis-panel epicrisis-panel--incapacity">
        <h4 class="epicrisis-panel__title">Incapacidad</h4>
        <dl class="epicrisis-kv-grid">
          {% if incapacidad_clinica.fecha_inicio %}<div class="epicrisis-kv"><dt>Inicio</dt><dd><time data-local-date datetime="{{ incapacidad_clinica.fecha_inicio }}">{{ incapacidad_clinica.fecha_inicio }}</time></dd></div>{% endif %}
          {% if incapacidad_clinica.fecha_fin %}<div class="epicrisis-kv"><dt>Fin</dt><dd><time data-local-date datetime="{{ incapacidad_clinica.fecha_fin }}">{{ incapacidad_clinica.fecha_fin }}</time></dd></div>{% endif %}
          {% if incapacidad_clinica.duracion %}<div class="epicrisis-kv"><dt>Duración</dt><dd>{{ incapacidad_clinica.duracion }} {{ incapacidad_clinica.unidad }}</dd></div>{% endif %}
          {% if incapacidad_clinica.motivo or incapacidad_clinica.recomendacion %}<div class="epicrisis-kv"><dt>Detalle</dt><dd>{{ incapacidad_clinica.motivo or incapacidad_clinica.recomendacion }}</dd></div>{% endif %}
        </dl>
      </div>
      {% endif %}

      <!-- Procedimientos de Historia Clínica -->
      {% if procedimientos_hc and procedimientos_hc|length > 0 %}
      <div class="epicrisis-panel epicrisis-panel--procedures">
        <h4 class="epicrisis-panel__title">🔧 Procedimientos Realizados (Historia
          Clínica)</h4>
        <ol class="epicrisis-list">
          {% for proc in procedimientos_hc %}
          <li>{{ proc }}</li>
          {% endfor %}
        </ol>
      </div>
      {% endif %}

      <!-- Medicamentos de Historia Clínica -->
      {% if medicamentos_caso and medicamentos_caso|length > 0 %}
      <div class="epicrisis-panel epicrisis-panel--medications">
        <h4 class="epicrisis-panel__title">Medicamentos del caso</h4>
        <div class="medication-matrix-wrap">
          <table class="medication-matrix">
            <thead><tr><th>Medicamento</th><th>Posología</th><th>Dosis</th><th>Cantidad</th><th>Estado</th></tr></thead>
            <tbody>
              {% for med in medicamentos_caso %}
              <tr>
                <td data-label="Medicamento">
                  <strong>{{ med.nombre }}</strong>
                  {% if med.presentacion %}<small>{{ med.presentacion }}</small>{% endif %}
                  {% if med.codigo_referencia %}<small>CUM/IUM {{ med.codigo_referencia }}</small>{% endif %}
                </td>
                <td data-label="Posología">{{ med.posologia or '—' }}</td>
                <td data-label="Dosis">{{ med.dosis or '—' }}</td>
                <td data-label="Cantidad" class="medication-matrix__quantity">
                  {{ med.cantidad if med.cantidad is not none else '—' }}
                  {% if med.discrepancia_cantidad %}<small>Requiere conciliación</small>{% endif %}
                </td>
                <td data-label="Estado">
                  <span class="medication-statuses">
                    {% for estado in med.estados %}<span class="medication-status medication-status--{{ estado }}">{{ estado|replace('_', ' ') }}</span>{% endfor %}
                  </span>
                  {% if med.pertinencia and med.pertinencia.estado %}
                  <span class="medication-pertinence-wrap">
                    <span class="medication-pertinence medication-pertinence--{{ med.pertinencia.estado }}">
                      {{ med.pertinencia.estado|replace('_', ' ') }}
                    </span>
                  </span>
                  <span class="medication-matrix__reconciliation">
                    <span>Orden: {{ med.pertinencia.cadena.orden|replace('_', ' ') }}</span>
                    <span>Administración: {{ med.pertinencia.cadena.administracion|replace('_', ' ') }}</span>
                    <span>Facturación: {{ med.pertinencia.cadena.facturacion|replace('_', ' ') }}</span>
                    <span>Asociación: {{ med.asociacion_factura|replace('_', ' ') }}</span>
                  </span>
                  {% endif %}
                </td>
              </tr>
              {% endfor %}
            </tbody>
          </table>
        </div>
      </div>
      {% endif %}
      </div>

      {% else %}
      <p class="muted">⚠️ No se encontró historia clínica para este paciente o no se pudieron extraer los metadatos.</p>
      {% endif %}
    </div>

    <!-- TABLAS: CIE-10 HISTORIA + CIE-10 QUIRÚRGICO -->
    <div class="card">
      <div class="section-header">📊 Codificación CIE-10</div>

      <!-- CIE-10 de Historia Clínica -->
      <h3>1. Diagnósticos - Historia Clínica</h3>
      {% set cie_historia = historia.codigos_cie10 if historia and historia.codigos_cie10 else [] %}
      {% if cie_historia and cie_historia|length > 0 %}
      <table>
        <thead>
          <tr>
            <th class="epicrisis-col-65">Diagnóstico</th>
            <th class="epicrisis-col-35">Código CIE-10</th>
          </tr>
        </thead>
        <tbody>
          {% for item in cie_historia %}
          <tr>
            <td>{{ item.descripcion or item.diagnostico }}</td>
            <td><strong>{{ item.codigo or 'PENDIENTE' }}</strong></td>
          </tr>
          {% endfor %}
        </tbody>
      </table>
      {% else %}
      <p class="muted">⚠️ No se encontraron códigos CIE-10 en la historia clínica.</p>
      {% endif %}

      <!-- CIE-10 de Documento Quirúrgico -->
      <h3 class="epicrisis-mt-lg">2. Diagnósticos Prequirúrgicos y Postquirúrgicos</h3>
      {% set cie_qx = quirurgico.codigos_cie10 if quirurgico and quirurgico.codigos_cie10 else [] %}
      {% if cie_qx and cie_qx|length > 0 %}
      <table>
        <thead>
          <tr>
            <th class="epicrisis-col-50">Diagnóstico Original</th>
            <th class="epicrisis-col-10">Tipo</th>
            <th class="epicrisis-col-15">Código CIE-10</th>
            <th class="epicrisis-col-25">Descripción CIE-10</th>
          </tr>
        </thead>
        <tbody>
          {% for item in cie_qx %}
          <tr>
            <td>{{ item.descripcion or item.diagnostico }}</td>
            <td class="epicrisis-text-center">
              {% if 'POP' in item.diagnostico or 'POST' in item.diagnostico.upper() %}
              <span class="badge badge-post">POST</span>
              {% else %}
              <span class="badge badge-pre">PRE</span>
              {% endif %}
            </td>
            <td><strong>{{ item.codigo or 'PENDIENTE' }}</strong></td>
            <td class="epicrisis-text-sm">{{ item.descripcion or item.diagnostico }}</td>
          </tr>
          {% endfor %}
        </tbody>
      </table>
      {% else %}
      <p class="muted">⚠️ No se encontraron códigos CIE-10 en el documento quirúrgico.</p>
      {% endif %}
    </div>

    <!-- HALLAZGOS QUIRÚRGICOS (Solo secciones 5 y 6) -->
    <div class="card">
      <div class="section-header">🔬 Hallazgos y Descripción Quirúrgica</div>

      <div class="epicrisis-stack-lg">
      {% if hallazgos_quirurgicos or descripcion_procedimiento %}
      <!-- Sección 5: HALLAZGOS QUIRÚRGICOS -->
      {% if hallazgos_quirurgicos %}
      <div class="hallazgos-section">
        <h4>5. HALLAZGOS QUIRÚRGICOS</h4>
        <p>{{ hallazgos_quirurgicos | safe }}</p>
      </div>
      {% endif %}

      <!-- Sección 6: DESCRIPCIÓN DEL PROCEDIMIENTO -->
      {% if descripcion_procedimiento %}
      <div class="hallazgos-section epicrisis-panel--success">
        <h4>6. DESCRIPCIÓN DEL PROCEDIMIENTO</h4>
        <p>{{ descripcion_procedimiento | safe }}</p>
      </div>
      {% endif %}
      {% else %}
      <p class="muted">⚠️ No se encontraron hallazgos quirúrgicos o el documento no está estructurado correctamente.</p>
      {% endif %}

      <!-- Tabla CUPS -->
      <h3 class="epicrisis-mt-lg">Códigos CUPS Asignados</h3>
      {% set cups = quirurgico.codigos_cups if quirurgico and quirurgico.codigos_cups else [] %}
      {% if cups and cups|length > 0 %}
      <table>
        <thead>
          <tr>
            <th class="epicrisis-col-65">Procedimiento</th>
            <th class="epicrisis-col-35">Código CUPS</th>
          </tr>
        </thead>
        <tbody>
          {% for item in cups %}
          <tr>
            <td>{{ item.procedimiento }}</td>
            <td><strong>{{ item.codigo_cups }}</strong></td>
          </tr>
          {% endfor %}
        </tbody>
      </table>
      {% else %}
      <p class="muted">⚠️ No se encontraron códigos CUPS.</p>
      {% endif %}
      </div>
    </div>

    <!-- Mostrar información de factura si existe -->
    {% if factura %}
    <div class="card">
      <div class="section-header">💰 Información de Factura</div>
      <div class="epicrisis-panel epicrisis-panel--neutral">
        <div id="factura_content">{{ factura.analisis_html|safe }}</div>
        <div class="epicrisis-panel epicrisis-panel--warning epicrisis-mt-lg">
          <p class="epicrisis-callout">
            <strong>Procesamiento Inteligente:</strong> Los procedimientos de factura se procesan automáticamente al
            generar la epicrisis.
          </p>
        </div>
      </div>
    </div>
    {% endif %}

    <!-- NUEVA FEATURE: CÓDIGOS GENERADOS DESDE SOAT CON GEMINI -->
    <div class="card" id="form_codigos_soat">
      <div class="section-header section-header--violet">
        🤖 Codificación Inteligente desde SOAT
      </div>

      <div class="epicrisis-stack-lg">
      <div class="epicrisis-panel epicrisis-panel--warning">
        <h4 class="epicrisis-panel__title">📝 Ingresar Códigos SOAT</h4>
        <p class="epicrisis-note">
          {% if codigos_desde_soat and codigos_desde_soat|length > 0 %}
          Puedes agregar descripciones SOAT adicionales para complementar la codificación actual y persistirlas en la
          epicrisis:
          {% else %}
          No se detectaron códigos SOAT automáticamente. Puedes ingresar descripciones de procedimientos SOAT para
          generar códigos CIE-10 y CUPS con IA:
          {% endif %}
        </p>

        <form id="form_generar_codigos">
          <div id="codigos_container">
            <div class="codigo-input-group">
              <input type="text" name="codigo_soat" placeholder="Código SOAT (ej: 90201)">
              <input type="text" name="descripcion" placeholder="Descripción del procedimiento">
              <button type="button" onclick="eliminarCodigo(this)" class="btn codigo-input-remove">✕</button>
            </div>
          </div>
          <div class="soat-form-controls">
            <button type="button" onclick="agregarCodigo()" class="btn btn-secondary">+ Agregar</button>
            <button type="submit" class="btn">🤖 Generar</button>
          </div>
        </form>
      </div>
      </div>
    </div>

    {% if codigos_desde_soat and codigos_desde_soat|length > 0 %}
    <div class="card">
      <div class="section-header section-header--violet">
        🤖 Codificación Inteligente desde SOAT
      </div>

      <div class="epicrisis-stack-lg">
      <div class="epicrisis-panel epicrisis-panel--info">
        <p class="epicrisis-callout">
          <strong>ℹ️ Información:</strong> Estos códigos CIE-10 y CUPS han sido generados automáticamente por IA a
          partir de las descripciones SOAT identificadas en los documentos del paciente. Se recomienda validar con
          criterio clínico.
        </p>
      </div>

      {% for item in codigos_desde_soat %}
      <div class="soat-result-card">

        <!-- Encabezado del código SOAT -->
        <div class="soat-result-card__header">
          <h4 class="soat-result-card__heading">
            {% if item.codigo_soat %}
            📋 Código SOAT: <span class="soat-result-card__code">{{ item.codigo_soat }}</span>
            {% else %}
            📋 Descripción SOAT
            {% endif %}
          </h4>
          <p class="soat-result-card__description">{{ item.descripcion }}</p>
        </div>

        <!-- CIE-10 PRINCIPAL -->
        {% if item.cie10_principal %}
        <div class="soat-block">
          <h5 class="soat-block__title">
            <span class="soat-block__icon soat-block__icon--lg">🏥</span> CIE-10 PRINCIPAL
          </h5>
          <div class="soat-entry">
            <div class="soat-entry__row">
              <span class="soat-token">{{ item.cie10_principal.codigo }}</span>
              <span class="soat-entry__description">{{ item.cie10_principal.descripcion }}</span>
            </div>
            <p class="soat-justification">
              <strong>Justificación:</strong> {{ item.cie10_principal.justificacion }}
            </p>
          </div>
        </div>
        {% endif %}

        <!-- CIE-10 SECUNDARIOS -->
        {% if item.cie10_secundarios and item.cie10_secundarios|length > 0 %}
        <div class="soat-block soat-block--cie10-secondary">
          <h5 class="soat-block__title">
            <span class="soat-block__icon">📋</span> CIE-10 SECUNDARIOS ({{ item.cie10_secundarios|length }})
          </h5>
          {% for cie10 in item.cie10_secundarios %}
          <div class="soat-entry soat-entry--secondary">
            <div class="soat-entry__row soat-entry__row--compact">
              <span class="soat-token soat-token--secondary">{{ cie10.codigo }}</span>
              <span class="soat-entry__description soat-entry__description--secondary">{{ cie10.descripcion }}</span>
            </div>
            <p class="soat-justification soat-justification--secondary">
              <em>{{ cie10.justificacion }}</em>
            </p>
          </div>
          {% endfor %}
        </div>
        {% endif %}

        <!-- CUPS PRINCIPAL -->
        {% if item.cups_principal %}
        <div class="soat-block soat-block--cups-primary">
          <h5 class="soat-block__title">
            <span class="soat-block__icon soat-block__icon--lg">🔧</span> CUPS PRINCIPAL
          </h5>
          <div class="soat-entry soat-entry--cups">
            <div class="soat-entry__row">
              <span class="soat-token soat-token--cups">{{ item.cups_principal.codigo }}</span>
              <span class="soat-entry__description soat-entry__description--cups">{{ item.cups_principal.descripcion }}</span>
            </div>
            <p class="soat-justification soat-justification--cups">
              <strong>Justificación:</strong> {{ item.cups_principal.justificacion }}
            </p>
          </div>
        </div>
        {% endif %}

        <!-- CUPS ALTERNATIVOS -->
        {% if item.cups_alternativos and item.cups_alternativos|length > 0 %}
        <div class="soat-block soat-block--cups-secondary">
          <h5 class="soat-block__title">
            <span class="soat-block__icon">⚙️</span> CUPS ALTERNATIVOS ({{ item.cups_alternativos|length }})
          </h5>
          {% for cups in item.cups_alternativos %}
          <div class="soat-entry soat-entry--cups-alt">
            <div class="soat-entry__row soat-entry__row--compact">
              <span class="soat-token soat-token--cups-alt">{{ cups.codigo }}</span>
              <span class="soat-entry__description soat-entry__description--cups-alt">{{ cups.descripcion }}</span>
            </div>
            <p class="soat-justification soat-justification--secondary">
              <em>{{ cups.justificacion }}</em>
            </p>
          </div>
          {% endfor %}
        </div>
        {% endif %}

        <!-- ANÁLISIS CLÍNICO -->
        {% if item.analisis_clinico %}
        <div class="soat-block soat-block--analysis">
          <h5 class="soat-block__title">
            <span class="soat-block__icon">📊</span> ANÁLISIS CLÍNICO DETALLADO
          </h5>
          <div class="soat-entry soat-entry--analysis">
            <pre class="soat-analysis-pre">{{ item.analisis_clinico }}</pre>
          </div>
        </div>
        {% endif %}

      </div>
      {% endfor %}

      <!-- Resumen estadístico -->
      <div class="soat-summary">
        <h5 class="soat-summary__title">
          <span class="soat-summary__icon">📈</span> Resumen de Codificación
        </h5>
        <div class="soat-summary__grid">
          <div class="soat-summary__card">
            <div class="soat-summary__value">{{ codigos_desde_soat|length }}</div>
            <div class="soat-summary__label">Códigos SOAT Procesados</div>
          </div>
          <div class="soat-summary__card soat-summary__card--cie10">
            <div class="soat-summary__value">
              {% set total_cie10 = namespace(count=0) %}
              {% for item in codigos_desde_soat %}
              {% if item.cie10_principal %}{% set total_cie10.count = total_cie10.count + 1 %}{% endif %}
              {% set total_cie10.count = total_cie10.count + (item.cie10_secundarios|length if item.cie10_secundarios
              else 0) %}
              {% endfor %}
              {{ total_cie10.count }}
            </div>
            <div class="soat-summary__label">Códigos CIE-10 Generados</div>
          </div>
          <div class="soat-summary__card soat-summary__card--cups">
            <div class="soat-summary__value">
              {% set total_cups = namespace(count=0) %}
              {% for item in codigos_desde_soat %}
              {% if item.cups_principal %}{% set total_cups.count = total_cups.count + 1 %}{% endif %}
              {% set total_cups.count = total_cups.count + (item.cups_alternativos|length if item.cups_alternativos else
              0) %}
              {% endfor %}
              {{ total_cups.count }}
            </div>
            <div class="soat-summary__label">Códigos CUPS Generados</div>
          </div>

        </div>
      </div>

      </div>
    </div>
    {% endif %}

    <!-- ANÁLISIS DE POSIBLES GLOSAS -->
    {% if glosa_analisis or medicamentos_glosa %}
    <div class="card">
      <div class="section-header">⚠️ Análisis de Posibles Glosas</div>

      <div class="epicrisis-panel epicrisis-panel--glosa">
        <p class="epicrisis-note">
          <strong>📌 Nota:</strong> Este análisis automático identifica posibles riesgos de glosa basado en la
          coherencia entre diagnósticos, procedimientos, medicamentos, factura y soportes asistenciales.
        </p>

        {% if glosa_analisis %}<div class="soat-entry soat-entry--analysis">
          {{ glosa_analisis | safe }}
        </div>{% endif %}

        {% if medicamentos_glosa %}
        {% set possible_count = medicamentos_glosa|selectattr('estado', 'equalto', 'posible_glosa')|list|length %}
        {% set review_count = medicamentos_glosa|selectattr('estado', 'equalto', 'revisar')|list|length %}
        <section class="medication-glosa" aria-labelledby="medication_glosa_title">
          <div class="medication-glosa__heading">
            <div>
              <p class="medication-glosa__eyebrow">Conciliación de medicamentos</p>
              <h4 id="medication_glosa_title">Hallazgos que requieren validación</h4>
            </div>
            <div class="medication-glosa__summary" aria-label="Resumen de hallazgos">
              {% if possible_count %}<span class="medication-pertinence medication-pertinence--posible_glosa">{{ possible_count }} {{ 'posible glosa' if possible_count == 1 else 'posibles glosas' }}</span>{% endif %}
              {% if review_count %}<span class="medication-pertinence medication-pertinence--revisar">{{ review_count }} por revisar</span>{% endif %}
            </div>
          </div>
          <div class="medication-glosa__list">
            {% for finding in medicamentos_glosa %}
            <article class="medication-glosa__item medication-glosa__item--{{ finding.estado }}">
              <header>
                <span>
                  <strong>{{ finding.medicamento }}</strong>
                  {% if finding.presentacion %}<small class="medication-glosa__presentation">{{ finding.presentacion }}</small>{% endif %}
                </span>
                <span class="medication-pertinence medication-pertinence--{{ finding.estado }}">{{ finding.estado|replace('_', ' ') }}</span>
              </header>
              {% if finding.codigo_referencia or finding.posologia or finding.dosis %}
              <p class="medication-glosa__scheme">
                {% if finding.codigo_referencia %}<span>CUM/IUM {{ finding.codigo_referencia }}</span>{% endif %}
                {% if finding.posologia %}<span>{{ finding.posologia }}</span>{% endif %}
                {% if finding.dosis %}<span>{{ finding.dosis }}</span>{% endif %}
              </p>
              {% endif %}
              <div class="medication-glosa__chain" aria-label="Cadena documental">
                <span class="medication-support medication-support--{{ finding.cadena.orden }}">Orden: {{ finding.cadena.orden|replace('_', ' ') }}</span>
                <span class="medication-support medication-support--{{ finding.cadena.administracion }}">Administración: {{ finding.cadena.administracion|replace('_', ' ') }}</span>
                <span class="medication-support medication-support--{{ finding.cadena.facturacion }}">Facturación: {{ finding.cadena.facturacion|replace('_', ' ') }}</span>
              </div>
              <p class="medication-glosa__association">
                <b>Asociación con factura:</b> {{ finding.asociacion_factura|replace('_', ' ') }}
              </p>
              {% if finding.comparacion_cantidad and (finding.comparacion_cantidad.cantidad_clinica is not none or finding.comparacion_cantidad.cantidad_facturada is not none) %}
              <p class="medication-glosa__quantities">
                {% if finding.comparacion_cantidad.cantidad_clinica is not none %}
                <span>Clínica: {{ finding.comparacion_cantidad.cantidad_clinica }} {{ finding.comparacion_cantidad.unidad_clinica }}</span>
                {% endif %}
                {% if finding.comparacion_cantidad.cantidad_facturada is not none %}
                <span>Facturada: {{ finding.comparacion_cantidad.cantidad_facturada }} {{ finding.comparacion_cantidad.unidad_facturada }}</span>
                {% endif %}
              </p>
              {% endif %}
              {% if finding.motivos %}
              <ul>
                {% for reason in finding.motivos %}<li>{{ reason }}</li>{% endfor %}
              </ul>
              {% endif %}
              {% if finding.fuentes_por_eslabon.orden %}<p><b>Orden:</b> {{ finding.fuentes_por_eslabon.orden|join(', ') }}</p>{% endif %}
              {% if finding.fuentes_por_eslabon.administracion %}<p><b>Administración:</b> {{ finding.fuentes_por_eslabon.administracion|join(', ') }}</p>{% endif %}
              {% if finding.fuentes_por_eslabon.facturacion %}<p><b>Facturación:</b> {{ finding.fuentes_por_eslabon.facturacion|join(', ') }}</p>{% endif %}
              {% if finding.justificacion_clinica %}<p><b>Evaluación clínica:</b> {{ finding.justificacion_clinica }}</p>{% endif %}
              {% if finding.evidencias %}
              <details>
                <summary>Ver evidencia breve</summary>
                <ul>{% for evidence in finding.evidencias %}<li>{{ evidence }}</li>{% endfor %}</ul>
              </details>
              {% endif %}
            </article>
            {% endfor %}
          </div>
        </section>
        {% endif %}
      </div>
    </div>
    {% endif %}
    </div>
    <a
      href="#epicrisis_top"
      id="epicrisis_scroll_top_btn"
      class="ui-button epicrisis-scroll-top"
      aria-label="Volver al inicio de la página"
    >
      <svg viewBox="0 0 24 24" aria-hidden="true">
        <path d="m6 14 6-6 6 6" />
      </svg>
      <span>Arriba</span>
    </a>
  </div>

{% endblock %}

{% block scripts %}
  <script>
    window.EPICRISIS_PDF_DATA = {
      nombrePaciente: {{ (metadatos_hc.nombre_paciente if metadatos_hc and metadatos_hc.nombre_paciente else nombre_paciente) | tojson }},
      caseKey: {{ (case_key if case_key else "") | tojson }},
      metadatos: {{ (metadatos_hc if metadatos_hc else {}) | tojson }},
      resumen: {{ (metadatos_hc.resumen if metadatos_hc and metadatos_hc.resumen else "") | tojson }},
      antecedentesHC: {{ (antecedentes_hc if antecedentes_hc else []) | tojson }},
      cieHistoria: {{ (historia.codigos_cie10 if historia and historia.codigos_cie10 else []) | tojson }},
      cieQx: {{ (quirurgico.codigos_cie10 if quirurgico and quirurgico.codigos_cie10 else []) | tojson }},
      diagnosticosConsolidados: {{ (diagnosticos_consolidados if diagnosticos_consolidados else []) | tojson }},
      pdfPrimaryDiagnosticos: {{ (pdf_primary_diagnosticos if pdf_primary_diagnosticos else []) | tojson }},
      diagnosticosPendientes: {{ (diagnosticos_pendientes_validacion if diagnosticos_pendientes_validacion else []) | tojson }},
      diagnosticosHallazgos: {{ (diagnosticos_consolidacion_hallazgos if diagnosticos_consolidacion_hallazgos else []) | tojson }},
      hallazgos: {{ (hallazgos_quirurgicos if hallazgos_quirurgicos else "") | tojson }},
      descripcionProcedimiento: {{ (descripcion_procedimiento if descripcion_procedimiento else "") | tojson }},
      hasQuirurgicoDocument: {{ (true if quirurgico else false) | tojson }},
      cups: {{ (quirurgico.codigos_cups if quirurgico and quirurgico.codigos_cups else []) | tojson }},
      procedimientosHC: {{ (procedimientos_hc if procedimientos_hc else []) | tojson }},
      pdfPrimaryProcedimientos: {{ (procedimientos_clinicos if procedimientos_clinicos else []) | tojson }},
      incapacidadClinica: {{ (incapacidad_clinica if incapacidad_clinica else {}) | tojson }},
      procedimientosFactura: {{ (procedimientos_factura if procedimientos_factura else []) | tojson }},
      medicamentos: {{ (medicamentos_caso if medicamentos_caso else medicamentos_hc if medicamentos_hc else []) | tojson }},
      pdfPrimaryMedicamentos: {{ (pdf_primary_medicamentos if pdf_primary_medicamentos else []) | tojson }},
      ayudasDiagnosticas: {{ (ayudas_diagnosticas if ayudas_diagnosticas else []) | tojson }},
      pdfPrimaryAyudasDiagnosticas: {{ (pdf_primary_ayudas_diagnosticas if pdf_primary_ayudas_diagnosticas else []) | tojson }},
      imagenesDiagnosticas: {{ (imagenes_diagnosticas if imagenes_diagnosticas else []) | tojson }},
      soatResultados: {{ (codigos_desde_soat if codigos_desde_soat else []) | tojson }},
      codigosDesdeSoat: {{ (codigos_desde_soat if codigos_desde_soat else []) | tojson }},
      autoSoatResults: {{ (auto_soat_results if auto_soat_results else []) | tojson }},
      qxAgentResults: {{ (qx_agent_results if qx_agent_results else []) | tojson }},
      manualSoatResults: {{ (manual_soat_results if manual_soat_results else []) | tojson }},
      pdfDraft: {{ (pdf_draft if pdf_draft else {}) | tojson }},
      facturaJson: {{ (factura.factura_json if factura and factura.factura_json else {}) | tojson }},
      historiaId: {{ (historia._id if historia and historia._id else "") | tojson }},
      quirurgicoId: {{ (quirurgico._id if quirurgico and quirurgico._id else "") | tojson }},
      facturaId: {{ (factura._id if factura and factura._id else "") | tojson }}
    };
  </script>
  <script src="/static/js/epicrisis/state.js"></script>
  <script src="/static/js/epicrisis/utils.js"></script>
  <script src="/static/js/epicrisis/diagnosticos.js"></script>
  <script src="/static/js/epicrisis/medicamentos.js"></script>
  <script src="/static/js/epicrisis/ayudas-diagnosticas.js"></script>
  <script src="/static/js/epicrisis/soat.js"></script>
  <script src="/static/js/epicrisis/selection-ui.js"></script>
  <script src="/static/js/epicrisis/draft.js"></script>
  <script src="/static/js/epicrisis/qx-agent.js"></script>
  <script src="/static/js/epicrisis/pdf.js"></script>
  <script src="/static/js/epicrisis/scroll-top.js"></script>
  <script src="/static/js/epicrisis/index.js"></script>
{% endblock %}
