<!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 %}
  {% 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 {} %}
  {% set review_statuses = ['pendiente_revision', 'pendiente_servicio_externo', 'conflicto'] %}
  {% set diagnosticos_por_revisar = (diagnosticos_curados or []) | selectattr('status', 'in', review_statuses) | list %}
  {% set procedimientos_por_revisar = (procedimientos_curados or []) | selectattr('status', 'in', review_statuses) | list %}
  {% set audit_alert = curation_schema_version and (curation_generation_blocked or conflictos_curacion or diagnosticos_por_revisar or procedimientos_por_revisar) %}
  {% set audit_success = curation_schema_version and not audit_alert %}
  {% set glosa_possible_count = (medicamentos_glosa or []) | selectattr('estado', 'equalto', 'posible_glosa') | list | length %}
  {% set glosa_review_count = (medicamentos_glosa or []) | selectattr('estado', 'equalto', 'revisar') | list | length %}
  {% set metadata_available = historia and (extraction or processing or quality or historia.analysis_model_name) %}
  {% set metadata_complete = historia and extraction and processing and (historia.analysis_model_name or historia.analysis_provider) %}
  {% set metadata_alert = metadata_available and (historia.review_required or quality.status == 'degraded') %}
  {% set metadata_success = metadata_complete and not metadata_alert %}

  <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" aria-labelledby="epicrisis-title">
        <div class="epicrisis-hero__copy">
          <p class="app-page__eyebrow">Epicrisis operativa</p>
          <div class="epicrisis-hero__heading">
            <h1 id="epicrisis-title">{{ nombre_paciente }}</h1>
            {% if case_key %}<span class="ui-pill">Caso · {{ case_key }}</span>{% endif %}
          </div>
          <p>Revisa y prepara la salida clínica desde subvistas del mismo expediente, sin perder trazabilidad.</p>
          <div class="epicrisis-hero__availability" aria-label="Disponibilidad documental">
            <span class="ui-pill">{{ 'Historia disponible' if historia else 'Historia pendiente' }}</span>
            <span class="ui-pill">{{ 'Cirugía disponible' if quirurgico else 'Cirugía pendiente' }}</span>
            <span class="ui-pill">{{ 'Factura disponible' if factura else 'Factura pendiente' }}</span>
            <span class="ui-pill">{{ 'PDF listo' if pdf_draft else 'PDF editable' }}</span>
          </div>
        </div>
      </section>
    </div>
  </div>

  <nav class="epicrisis-subview-nav" data-epicrisis-subview-nav aria-label="Secciones de la epicrisis">
    <div class="epicrisis-subview-nav__scroller">
      <div class="epicrisis-subview-tabs" role="tablist" aria-label="Contenido de la epicrisis">
        <a href="#auditoria" id="tab-auditoria" class="epicrisis-subview-tab epicrisis-subview-tab--{{ 'alert' if audit_alert else 'success' if audit_success else 'neutral' }}" role="tab" aria-selected="true" aria-controls="auditoria" tabindex="0" data-subview="auditoria" aria-label="Auditoría, {{ 'requiere atención' if audit_alert else 'conciliación resuelta' if audit_success else 'sin datos de conciliación' }}">
          <span>Auditoría</span><span class="ui-sr-only">{{ 'Requiere atención' if audit_alert else 'Conciliación resuelta' if audit_success else 'Sin datos de conciliación' }}</span>
        </a>
        <a href="#resumen-clinico" id="tab-resumen-clinico" class="epicrisis-subview-tab epicrisis-subview-tab--neutral" role="tab" aria-selected="false" aria-controls="resumen-clinico" tabindex="-1" data-subview="resumen-clinico"><span>Resumen clínico</span></a>
        <a href="#preparar-pdf" id="tab-preparar-pdf" class="epicrisis-subview-tab epicrisis-subview-tab--neutral" role="tab" aria-selected="false" aria-controls="preparar-pdf" tabindex="-1" data-subview="preparar-pdf"><span>Preparar PDF</span></a>
        <a href="#codificacion-cirugia" id="tab-codificacion-cirugia" class="epicrisis-subview-tab epicrisis-subview-tab--neutral" role="tab" aria-selected="false" aria-controls="codificacion-cirugia" tabindex="-1" data-subview="codificacion-cirugia"><span>Codificación y cirugía</span></a>
        <a href="#factura" id="tab-factura" class="epicrisis-subview-tab epicrisis-subview-tab--neutral" role="tab" aria-selected="false" aria-controls="factura" tabindex="-1" data-subview="factura"><span>Factura</span></a>
        <a href="#glosas" id="tab-glosas" class="epicrisis-subview-tab epicrisis-subview-tab--{{ 'alert' if glosa_possible_count or glosa_review_count else 'neutral' }}" role="tab" aria-selected="false" aria-controls="glosas" tabindex="-1" data-subview="glosas" aria-label="Glosas, {{ 'requiere atención' if glosa_possible_count or glosa_review_count else 'sin hallazgos estructurados de alerta' }}">
          <span>Glosas</span><span class="ui-sr-only">{{ 'Requiere atención' if glosa_possible_count or glosa_review_count else 'Sin hallazgos estructurados de alerta' }}</span>
        </a>
        <a href="#metadatos" id="tab-metadatos" class="epicrisis-subview-tab epicrisis-subview-tab--{{ 'alert' if metadata_alert else 'success' if metadata_success else 'neutral' }}" role="tab" aria-selected="false" aria-controls="metadatos" tabindex="-1" data-subview="metadatos" aria-label="Metadatos, {{ 'requiere atención' if metadata_alert else 'completos' if metadata_success else 'sin datos técnicos' }}">
          <span>Metadatos</span><span class="ui-sr-only">{{ 'Requiere atención' if metadata_alert else 'Metadatos completos' if metadata_success else 'Sin datos técnicos' }}</span>
        </a>
      </div>
    </div>
  </nav>

  <div class="app-page__content epicrisis-content epicrisis-subview-content" data-epicrisis-subviews>
    <section id="auditoria" class="epicrisis-subview-panel" role="tabpanel" aria-labelledby="tab-auditoria" tabindex="0" data-subview-panel="auditoria">
      {% include "includes/epicrisis/auditoria.html" %}
    </section>
    <section id="resumen-clinico" class="epicrisis-subview-panel" role="tabpanel" aria-labelledby="tab-resumen-clinico" tabindex="0" data-subview-panel="resumen-clinico">
      {% include "includes/epicrisis/resumen_clinico.html" %}
    </section>
    <section id="preparar-pdf" class="epicrisis-subview-panel" role="tabpanel" aria-labelledby="tab-preparar-pdf" tabindex="0" data-subview-panel="preparar-pdf">
      {% include "includes/epicrisis/preparar_pdf.html" %}
    </section>
    <section id="codificacion-cirugia" class="epicrisis-subview-panel" role="tabpanel" aria-labelledby="tab-codificacion-cirugia" tabindex="0" data-subview-panel="codificacion-cirugia">
      {% include "includes/epicrisis/codificacion_cirugia.html" %}
    </section>
    <section id="factura" class="epicrisis-subview-panel" role="tabpanel" aria-labelledby="tab-factura" tabindex="0" data-subview-panel="factura">
      {% include "includes/epicrisis/factura.html" %}
    </section>
    <section id="glosas" class="epicrisis-subview-panel" role="tabpanel" aria-labelledby="tab-glosas" tabindex="0" data-subview-panel="glosas">
      {% include "includes/epicrisis/glosas.html" %}
    </section>
    <section id="metadatos" class="epicrisis-subview-panel" role="tabpanel" aria-labelledby="tab-metadatos" tabindex="0" data-subview-panel="metadatos">
      {% include "includes/epicrisis/metadatos.html" %}
    </section>
    <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 }},
      resumenParrafos: {{ (resumen_clinico_integrado.parrafos if resumen_clinico_integrado and resumen_clinico_integrado.parrafos else []) | tojson }},
      recomendacionesMedicas: {{ (recomendaciones_medicas if recomendaciones_medicas 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: {{ (pdf_primary_procedimientos if pdf_primary_procedimientos else []) | tojson }},
      pdfSelectableProcedimientos: {{ (pdf_selectable_procedimientos if pdf_selectable_procedimientos is defined else none) | tojson }},
      curationVersion: {{ (curation_version if curation_version 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/curation.js"></script>
  <script src="/static/js/epicrisis/pdf.js"></script>
  <script src="/static/js/epicrisis/scroll-top.js"></script>
  <script src="/static/js/epicrisis/subviews.js"></script>
  <script src="/static/js/epicrisis/index.js"></script>
{% endblock %}
