{ "source": { "transcripts": [ "/Users/mp/.pi/agent/sessions/--Users-mp-projects-ThothII-harness--/2026-07-03T17-07-32-977Z_019f28f3-2bf1-770f-83e0-87d5e95e45f9.jsonl" ], "extractedAt": "2026-07-05T16:30:48.546Z", "note": "gates without a reviewer answer (resume re-entries) are dropped" }, "session": { "id": "2026-07-03-170732-fammi-la-lista-dei-pazienti-che-negli-ul", "question": "fammi la lista dei pazienti che negli ultimi 15 anni hanno avuto un'ablazione seguita dall'impianto di un defibrillatore", "created_at": "2026-07-03T17:07:32.977Z" }, "stats": { "transcriptFiles": 1, "totalReviewerCalls": 20, "answeredGates": 20, "droppedUnanswered": 0 }, "gates": [ { "callId": "call_c5572b38f6e346429db2ef44", "toolName": "reviewer_select", "ts": "2026-07-03T17:12:33.930Z", "descriptor": { "type": "ui_request", "id": "u0", "phase": "F1", "schema_version": 1, "widget": "select", "title": "F1 — Chiarimento 1/3: cosa intendiamo per \"impianto di un defibrillatore\"?", "intro": "Domanda: «pazienti che negli ultimi 15 anni hanno avuto un'ablazione seguita dall'impianto di un defibrillatore entro 10 anni dall'ablazione».\n\nDal dominio ICD (evidence «Dominio ICD») il defibrillatore ha 3 famiglie di eventi DISTINTE in fact separate:\n• fact_impianto_defibrillatore_impiantabile → IMPIANTO INIZIALE (prima messa a dimora del dispositivo)\n• fact_sostituzione_impianto_defibrillatore_impiantabile → SOSTITUZIONE/REVISIONE (cambio generatore/elettrocateteri)\n• fact_controllo_defibrillatore_impiantabile → CONTROLLO (visita ambulatoriale di follow-up)\n\nL'espressione «impianto di un defibrillatore» letteralmente indica l'impianto iniziale. Va confermato se contiamo solo quello oppure anche le sostituzioni (un paziente che ha ricevuto il dispositivo in sostituzione). I controlli di follow-up NON sono \"impianto\".", "recommended": "icd-initial-only", "options": [ { "id": "icd-initial-only", "label": "Solo impianto iniziale (consigliato)", "recommended": true }, { "id": "icd-initial-plus-replacement", "label": "Impianto iniziale + sostituzioni", "recommended": false } ], "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [ "Solo impianto iniziale (consigliato)" ], "note": "Decisione registrata (concept_clarified): Solo impianto iniziale (consigliato)." } }, { "callId": "call_b26592cf49074d878fdce303", "toolName": "reviewer_select", "ts": "2026-07-03T17:20:48.101Z", "descriptor": { "type": "ui_request", "id": "u1", "phase": "F1", "schema_version": 1, "widget": "select", "title": "F1 — Chiarimento 2/3: a cosa si applica la finestra «ultimi 15 anni»?", "intro": "Domanda: «pazienti che negli ULTIMI 15 ANNI hanno avuto un'ablazione seguita dall'impianto di un defibrillatore ENTO 10 ANNI dall'ablazione».\n\nDue vincoli temporali, da ancorare:\n• «ultimi 15 anni» → serve un riferimento (oggi 2026-07-03) e serve sapere se vincola solo l'ablazione oppure entrambi gli eventi.\n• «entro 10 anni dall'ablazione» → gap tra ablazione e impianto ≤ 10 anni, con impianto DOPO l'ablazione (questo è chiaro).\n\nData di riferimento = oggi (2026-07-03). 15 anni indietro = 2011-07-03.", "recommended": "win-ablation-only-rolling", "options": [ { "id": "win-ablation-only-rolling", "label": "15 anni solo sull'ablazione, mobile da oggi (consigliato)", "recommended": true }, { "id": "win-both-events-rolling", "label": "Entrambi gli eventi nei 15 anni", "recommended": false }, { "id": "win-ablation-calendar-year", "label": "Solo ablazione, su anni solari", "recommended": false } ], "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [ "15 anni solo sull'ablazione, mobile da oggi (consigliato)" ], "note": "Decisione registrata (concept_clarified): 15 anni solo sull'ablazione, mobile da oggi (consigliato)." } }, { "callId": "call_1e25e9635c424730bd26e6dd", "toolName": "reviewer_select", "ts": "2026-07-03T17:23:52.348Z", "descriptor": { "type": "ui_request", "id": "u2", "phase": "F1", "schema_version": 1, "widget": "select", "title": "F1 — Chiarimento 3/3: cosa deve contenere la «lista dei pazienti»?", "intro": "Domanda: «fammi la LISTA dei pazienti …».\n\nDevo definire la forma dell'output. Ogni paziente può avere più ablazioni e più impianti: vanno gestite le coppie qualificanti (ablazione nei 15 anni + un impianto successivo entro 10 anni).\n\nAnagrafica disponibile in dim_patient (cod_paz + dati identificativi/demografici).", "recommended": "out-one-row-with-dates", "options": [ { "id": "out-one-row-with-dates", "label": "Una riga per paziente + date chiave (consigliato)", "recommended": true }, { "id": "out-one-row-per-pair", "label": "Una riga per ogni coppia qualificante", "recommended": false }, { "id": "out-minimal-codpaz", "label": "Solo cod_paz (lista minima)", "recommended": false } ], "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [ "Una riga per paziente + date chiave (consigliato)" ], "note": "Decisione registrata (concept_clarified): Una riga per paziente + date chiave (consigliato)." } }, { "callId": "call_d224643f60554bfc963033b8", "toolName": "reviewer_confirm", "ts": "2026-07-03T17:24:46.939Z", "descriptor": { "type": "ui_request", "id": "u3", "phase": "F1", "schema_version": 1, "widget": "artifact-gate", "title": "Fase 1 completata — passo alla Fase 2 (Memorie)?", "artifact": { "kind": "phase1_clarifications_recap", "data": { "domanda": "Lista dei pazienti che negli ultimi 15 anni hanno avuto un'ablazione seguita dall'impianto di un defibrillatore entro 10 anni dall'ablazione.", "ancora_ablazione": "fact_studio_elettrofisiologico_endocavitario_ablazione con flag ablazione_transcatetere IS TRUE (ogni tipo di aritmia, nessun tipo specificato)", "clarifications": [ { "concetto": "impianto_defibrillatore", "decisione": "Solo impianto iniziale -> fact_impianto_defibrillatore_impiantabile (escluse sostituzioni e controlli)" }, { "concetto": "finestra_temporale", "decisione": "15 anni solo sull'ablazione, mobile da oggi 2026-07-03: ablazione in [2011-07-03, 2026-07-03]; impianto dopo l'ablazione e <= ablazione + 10 anni" }, { "concetto": "output_lista_pazienti", "decisione": "Una riga per paziente (DISTINCT cod_paz) + anagrafica dim_patient + data_ablazione + data_impianto + gap in anni; se piu' coppie qualificanti, prima coppia" } ] } }, "action": { "kind": "approve_reject", "prompt": "Approvi o rifiuti?" }, "options": [ { "id": "approve", "label": "Salva e procedi", "recommended": true }, { "id": "reject", "label": "Rifiuta" } ], "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [ "Salva e procedi" ], "note": "Fase approvata (sessione 2026-07-03-170732-fammi-la-lista-dei-pazienti-che-negli-ul)." } }, { "callId": "call_d20e3abfb6454834996cc206", "toolName": "reviewer_decide", "ts": "2026-07-03T17:25:32.871Z", "descriptor": { "type": "ui_request", "id": "u4", "phase": "F2", "schema_version": 1, "widget": "multiselect", "title": "F2 — Memorie: nessuna memory riutilizzabile", "allow_empty": true, "options": [], "selected": [], "content": null, "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [], "note": "Fase memoria vuota: nessuna decisione da registrare, avanzamento automatico alla fase successiva." } }, { "callId": "call_34821e6a11374c72bfb7d896", "toolName": "reviewer_decide", "ts": "2026-07-03T17:26:08.567Z", "descriptor": { "type": "ui_request", "id": "u5", "phase": "F3", "schema_version": 1, "widget": "multiselect", "title": "F3 — Riscrittura della domanda", "allow_empty": false, "options": [ { "id": "confirm-rewrite", "label": "Conferma riscrittura (consigliato)", "recommended": true, "decision": { "detail": "Elencare i pazienti che hanno avuto un'ablazione transcatetere di substrato aritmogeno e, successivamente, l'impianto iniziale di un defibrillatore (ICD) entro 10 anni dall'ablazione, dove l'ablazione e' avvenuta negli ultimi 15 anni.\n\nCondizioni:\n1) Popolazione: pazienti distinti in dim_patient (cod_paz).\n2) Ablazione (evento di partenza): riga di fact_studio_elettrofisiologico_endocavitario_ablazione con ablazione_transcatetere IS TRUE (qualsiasi tipo di aritmia; evidence «Dominio Ablazione»), con data_ablazione nella finestra mobile di 15 anni da oggi 2026-07-03, cioe' data_ablazione in [2011-07-03, 2026-07-03].\n3) Impianto ICD (evento successivo): riga di fact_impianto_defibrillatore_impiantabile (solo impianto iniziale; escluse sostituzioni fact_sostituzione_... e controlli fact_controllo_...; evidence «Dominio ICD»).\n4) Sequenza temporale: data_impianto > data_ablazione E data_impianto <= data_ablazione + 10 anni.\n5) Cardinalita' output: una riga per paziente (DISTINCT cod_paz); in caso di piu' coppie qualificanti (ablazione, impianto), la prima coppia qualificante.\n\nOutput atteso: lista con cod_paz + dati anagrafici (dim_patient) + data_ablazione + data_impianto + gap in anni tra i due eventi.", "rationale": "Riscrittura conforme alle 3 decisioni di chiarimento F1 (impianto = solo iniziale; finestra 15 anni solo sull'ablazione mobile da oggi; output = una riga per paziente con date e gap).", "subject": "domanda", "type": "question_rewritten" } } ], "selected": [], "content": null, "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [], "decisionTypes": [ "question_rewritten" ], "note": "Registrate 1 decisioni: question_rewritten." } }, { "callId": "call_59b07fd003d24f97b25476af", "toolName": "reviewer_confirm", "ts": "2026-07-03T17:27:16.529Z", "descriptor": { "type": "ui_request", "id": "u6", "phase": "F3", "schema_version": 1, "widget": "artifact-gate", "title": "Fase 3 completata — passo alla Fase 4 (Schema linking)?", "artifact": { "data": { "file": "question.md" }, "kind": "question_md" }, "action": { "kind": "approve_reject", "prompt": "Approvi o rifiuti?" }, "options": [ { "id": "approve", "label": "Salva e procedi", "recommended": true }, { "id": "reject", "label": "Rifiuta" } ], "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [ "Salva e procedi" ], "note": "Fase approvata (sessione 2026-07-03-170732-fammi-la-lista-dei-pazienti-che-negli-ul)." } }, { "callId": "call_1acab58384cb4ed9b642ac13", "toolName": "reviewer_decide", "ts": "2026-07-03T17:33:47.338Z", "descriptor": { "type": "ui_request", "id": "u7", "phase": "F4", "schema_version": 1, "widget": "schema-linking", "title": "F4 — Schema linking: tabelle/colonne/esclusioni", "tables": [ { "id": "t-ablazione", "name": "fact_studio_elettrofisiologico_endocavitario_ablazione", "kind": "promote", "recommended": true, "description": "Fatto clinico derivato da cr_seeablazione relativo a eventi, procedure o rilevazioni del paziente. Esclude record riclassificati come cardioversione o chiusura auricola.", "rationale": "Ancora dell'ablazione dall'evidence «Dominio Ablazione».", "columns": [ { "name": "cod_paz", "description": "Codice paziente (FK a dim_patient).", "type": "bigint", "pk": true, "suggested": true }, { "name": "num", "description": "Numero progressivo dell'episodio clinico per il paziente.", "type": "bigint", "pk": true, "suggested": true }, { "name": "data_time_key", "description": "Chiave giorno (YYYYMMDD) per l'analisi temporale.", "type": "integer", "pk": false, "suggested": true }, { "name": "provenienza", "description": "Provenienza del paziente rispetto all'episodio clinico.", "type": "integer", "pk": false, "suggested": false }, { "name": "indicazione", "description": "Indicazione clinica codificata della procedura o dello studio.", "type": "integer", "pk": false, "suggested": false }, { "name": "indicazione_testo", "description": "Valore testuale.", "type": "text", "pk": false, "suggested": false }, { "name": "basale", "description": "Condizione basale o riferimento clinico/strumentale pre-procedurale.", "type": "integer", "pk": false, "suggested": false }, { "name": "basaletxt", "description": "Valore testuale.", "type": "text", "pk": false, "suggested": false }, { "name": "etl_last_update", "description": "Timestamp dell'ultimo aggiornamento ETL.", "type": "timestamp with time zone", "pk": false, "suggested": false }, { "name": "modello", "description": "Modello del dispositivo o del componente.", "type": "integer", "pk": false, "suggested": false }, { "name": "identificativo_intestazione", "description": "Flag booleano.", "type": "smallint", "pk": false, "suggested": false }, { "name": "anamnesi_stampa", "description": "Anamnesi del paziente.", "type": "boolean", "pk": false, "suggested": false }, { "name": "ncol", "description": "Numero di colonne o blocchi di dati registrati nel referto specialistico.", "type": "integer", "pk": false, "suggested": false }, { "name": "ciclosin", "description": "Ciclo sinusale basale registrato durante lo studio elettrofisiologico.", "type": "real", "pk": false, "suggested": false }, { "name": "qrs", "description": "Durata del QRS registrata durante lo studio.", "type": "real", "pk": false, "suggested": false }, { "name": "pa", "description": "Pressione arteriosa registrata durante la procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "ah", "description": "Intervallo AH rilevato nello studio elettrofisiologico.", "type": "real", "pk": false, "suggested": false }, { "name": "hv", "description": "Intervallo HV rilevato nello studio elettrofisiologico.", "type": "real", "pk": false, "suggested": false }, { "name": "trns", "description": "Tempo di recupero del nodo del seno rilevato nello studio.", "type": "real", "pk": false, "suggested": false }, { "name": "trnsc", "description": "Tempo di recupero corretto del nodo del seno rilevato nello studio.", "type": "real", "pk": false, "suggested": false }, { "name": "msc", "description": "Indicazione di malattia del nodo del seno o parametro correlato.", "type": "boolean", "pk": false, "suggested": false }, { "name": "note_nodo_sinusale", "description": "Note relative alla funzione del nodo del seno.", "type": "text", "pk": false, "suggested": false }, { "name": "via_accessoria_conduzione_anterograda_pre_procedura", "description": "Parametro di conduzione anterograda della via accessoria rilevato prima della procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "via_accessoria_conduzione_anterograda_atriale_pre_procedura", "description": "Parametro atriale della conduzione anterograda della via accessoria rilevato prima della procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "via_accessoria_conduzione_anterograda_iso_pre_procedura", "description": "Parametro di conduzione anterograda della via accessoria dopo isoproterenolo, in fase pre-procedurale.", "type": "real", "pk": false, "suggested": false }, { "name": "via_accessoria_conduzione_retrograda_pre_procedura", "description": "Parametro di conduzione retrograda della via accessoria rilevato prima della procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "via_accessoria_conduzione_retrograda_atriale_pre_procedura", "description": "Parametro atriale della conduzione retrograda della via accessoria rilevato prima della procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "via_accessoria_conduzione_retrograda_iso_pre_procedura", "description": "Parametro di conduzione retrograda della via accessoria dopo isoproterenolo, in fase pre-procedurale.", "type": "real", "pk": false, "suggested": false }, { "name": "conduzione_refrattarieta_atriale_fase_pre_procedura", "description": "Parametro di conduzione o refrattarieta atriale rilevato in fase pre-procedurale.", "type": "real", "pk": false, "suggested": false }, { "name": "conduzione_nodo_atrioventricolare_fase_pre_procedura", "description": "Parametro di conduzione nodo atrioventricolare rilevato in fase pre-procedurale.", "type": "real", "pk": false, "suggested": false }, { "name": "jump", "description": "Presenza del fenomeno di jump nella conduzione atrioventricolare.", "type": "boolean", "pk": false, "suggested": false }, { "name": "tipovia", "description": "Tipo di via accessoria o di conduzione documentata.", "type": "text", "pk": false, "suggested": false }, { "name": "conduzione", "description": "Valore testuale.", "type": "text", "pk": false, "suggested": false }, { "name": "localizzazione", "description": "Localizzazione anatomica o elettrofisiologica documentata.", "type": "text", "pk": false, "suggested": false }, { "name": "prant", "description": "Intervallo PR o parametro di conduzione anterograda rilevato durante lo studio.", "type": "real", "pk": false, "suggested": false }, { "name": "prret", "description": "Intervallo PR o parametro di conduzione retrograda rilevato durante lo studio.", "type": "real", "pk": false, "suggested": false }, { "name": "note_pre_procedura", "description": "Note relative alla valutazione elettrofisiologica pre-ablazione.", "type": "text", "pk": false, "suggested": false }, { "name": "indsee", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "ncolonne", "description": "Numero complessivo di colonne o blocchi di dati registrati nel referto specialistico.", "type": "integer", "pk": false, "suggested": false }, { "name": "tollerata", "description": "Indicazione della tollerabilità clinica dell'aritmia o della procedura.", "type": "boolean", "pk": false, "suggested": false }, { "name": "note_aritmie", "description": "Note sulle aritmie indotte o documentate durante lo studio.", "type": "text", "pk": false, "suggested": false }, { "name": "procedura", "description": "Tipologia di procedura ablativa o elettrofisiologica eseguita.", "type": "text", "pk": false, "suggested": false }, { "name": "vianlenta", "description": "Indicazione di trattamento o presenza della via lenta.", "type": "boolean", "pk": false, "suggested": false }, { "name": "battitirf", "description": "Numero di battiti o applicazioni registrati durante radiofrequenza.", "type": "boolean", "pk": false, "suggested": false }, { "name": "via_accessoria", "description": "Indicazione della presenza o del trattamento di una via accessoria.", "type": "boolean", "pk": false, "suggested": false }, { "name": "via_accessoria_descrizione", "description": "Valore testuale.", "type": "text", "pk": false, "suggested": false }, { "name": "via_accessoria_occulta", "description": "Indicazione della presenza di via accessoria occulta.", "type": "boolean", "pk": false, "suggested": false }, { "name": "flutter_comune", "description": "Indicazione di flutter atriale comune.", "type": "boolean", "pk": false, "suggested": false }, { "name": "flutter_non_comune", "description": "Indicazione di flutter atriale non comune.", "type": "boolean", "pk": false, "suggested": false }, { "name": "flutter_origine", "description": "Origine del flutter atriale documentata.", "type": "boolean", "pk": false, "suggested": false }, { "name": "flutter_origine_descrizione", "description": "Valore testuale.", "type": "text", "pk": false, "suggested": false }, { "name": "blocco_istmico", "description": "Indicazione del raggiungimento o della presenza di blocco istmico.", "type": "boolean", "pk": false, "suggested": false }, { "name": "ta", "description": "Indicazione di tachicardia atriale.", "type": "boolean", "pk": false, "suggested": false }, { "name": "taorig", "description": "Origine della tachicardia atriale documentata.", "type": "text", "pk": false, "suggested": false }, { "name": "tamap", "description": "Informazioni di mappaggio relative alla tachicardia atriale.", "type": "text", "pk": false, "suggested": false }, { "name": "tachicardia_ventricolare", "description": "Indicazione di tachicardia ventricolare.", "type": "boolean", "pk": false, "suggested": false }, { "name": "tvorig", "description": "Origine della tachicardia ventricolare documentata.", "type": "text", "pk": false, "suggested": false }, { "name": "fibrillazione_atriale", "description": "Indicazione di fibrillazione atriale.", "type": "boolean", "pk": false, "suggested": false }, { "name": "famap", "description": "Informazioni di mappaggio relative alla fibrillazione atriale.", "type": "text", "pk": false, "suggested": false }, { "name": "mappaatt", "description": "Informazioni sulla mappa di attivazione ottenuta durante la procedura.", "type": "boolean", "pk": false, "suggested": false }, { "name": "remote", "description": "Indicazione dell'uso di sistemi remoti o navigazione remota.", "type": "boolean", "pk": false, "suggested": false }, { "name": "sintarf", "description": "Sintomi correlati alle applicazioni di radiofrequenza.", "type": "boolean", "pk": false, "suggested": false }, { "name": "cardioversione_elettrica", "description": "Cardioversione elettrica eseguita o documentata durante la procedura.", "type": "boolean", "pk": false, "suggested": false }, { "name": "disseno", "description": "Dissincronia o dissociazione del nodo del seno documentata.", "type": "boolean", "pk": false, "suggested": false }, { "name": "abnodoav", "description": "Indicazione di ablazione del nodo atrioventricolare.", "type": "boolean", "pk": false, "suggested": false }, { "name": "ritmo_sinusale_durante_radiofrequenza", "description": "Ritmo sinusale o comportamento elettrico osservato durante radiofrequenza.", "type": "boolean", "pk": false, "suggested": false }, { "name": "farmaci", "description": "Farmaci somministrati o rilevanti per la procedura.", "type": "text", "pk": false, "suggested": false }, { "name": "via_accessoria_conduzione_anterograda_post_procedura", "description": "Parametro di conduzione anterograda della via accessoria rilevato al termine della procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "via_accessoria_conduzione_anterograda_atriale_post_procedura", "description": "Parametro atriale della conduzione anterograda della via accessoria rilevato al termine della procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "via_accessoria_conduzione_anterograda_iso_post_procedura", "description": "Parametro di conduzione anterograda della via accessoria dopo isoproterenolo, al termine della procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "via_accessoria_conduzione_retrograda_post_procedura", "description": "Parametro di conduzione retrograda della via accessoria rilevato al termine della procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "via_accessoria_conduzione_retrograda_atriale_post_procedura", "description": "Parametro atriale della conduzione retrograda della via accessoria rilevato al termine della procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "via_accessoria_conduzione_retrograda_iso_post_procedura", "description": "Parametro di conduzione retrograda della via accessoria dopo isoproterenolo, al termine della procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "conduzione_refrattarieta_atriale_post_procedura", "description": "Parametro di conduzione o refrattarieta atriale rilevato al termine della procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "conduzione_refrattarieta_atriale_isoprenalina_post_procedura", "description": "Parametro di conduzione o refrattarieta atriale dopo isoproterenolo, al termine della procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "conduzione_nodo_atrioventricolare_post_procedura", "description": "Parametro di conduzione nodo atrioventricolare rilevato al termine della procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "conduzione_nodo_atrioventricolare_isoprenalina_post_procedura", "description": "Parametro di conduzione nodo atrioventricolare dopo isoproterenolo, al termine della procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "indicazione_aritmie", "description": "Inducibilità delle aritmie valutata al termine della procedura.", "type": "boolean", "pk": false, "suggested": false }, { "name": "dissociazione_ventricolo_atrio", "description": "Presenza di dissociazione ventricolo-atriale.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocardiogramma", "description": "Tracciato o riferimento ECG associato alla procedura.", "type": "text", "pk": false, "suggested": false }, { "name": "ecg_basale", "description": "Tracciato ECG basale del paziente.", "type": "text", "pk": false, "suggested": false }, { "name": "fleca", "description": "Somministrazione o utilizzo di flecainide durante lo studio.", "type": "real", "pk": false, "suggested": false }, { "name": "ecg_finale", "description": "Tracciato ECG finale al termine della procedura.", "type": "text", "pk": false, "suggested": false }, { "name": "complicanze", "description": "Complicanze cliniche o procedurali osservate durante o dopo l'episodio.", "type": "boolean", "pk": false, "suggested": false }, { "name": "conclusioni", "description": "Conclusioni cliniche finali dell'episodio o della procedura.", "type": "text", "pk": false, "suggested": false }, { "name": "ablazione_transcatetere", "description": "Indicazione di ablazione transcatetere derivata dal text analysis sul campo conclusioni (sovrascrive il flag Cardioref).", "type": "boolean", "pk": false, "suggested": true }, { "name": "studio_elettrofisiologico", "description": "Indicazione di studio elettrofisiologico derivata dal text analysis sul campo conclusioni (sovrascrive il flag Cardioref).", "type": "boolean", "pk": false, "suggested": false }, { "name": "risultato", "description": "Codifica dell'esito clinico o procedurale registrato.", "type": "smallint", "pk": false, "suggested": false }, { "name": "sintomi_1", "description": "Sintomo registrato o programmato nell'episodio clinico.", "type": "integer", "pk": false, "suggested": false }, { "name": "trattamento_1", "description": "Trattamento numero 1 registrato o programmato nell'episodio clinico.", "type": "integer", "pk": false, "suggested": false }, { "name": "aritmia_1", "description": "Aritmia numero 1 registrato o programmato nell'episodio clinico.", "type": "integer", "pk": false, "suggested": false }, { "name": "diagnosi_1", "description": "Diagnosi numero 1 registrato o programmato nell'episodio clinico.", "type": "integer", "pk": false, "suggested": false }, { "name": "conseguenze_1", "description": "Conseguenza numero 1 registrato o programmato nell'episodio clinico.", "type": "integer", "pk": false, "suggested": false }, { "name": "stress_test", "description": "Stress test eseguito o considerato nel contesto dell'episodio.", "type": "integer", "pk": false, "suggested": false }, { "name": "scintigrafia", "description": "Esame scintigrafico eseguito o considerato nel contesto dell'episodio.", "type": "integer", "pk": false, "suggested": false }, { "name": "ora_inizio_ablazione", "description": "Ora di inizio dell'ablazione.", "type": "text", "pk": false, "suggested": false }, { "name": "orablocco", "description": "Ora di ottenimento del blocco o del risultato atteso.", "type": "text", "pk": false, "suggested": false }, { "name": "tempo_totale_scopia", "description": "Tempo totale di fluoroscopia impiegato durante la procedura.", "type": "text", "pk": false, "suggested": false }, { "name": "numero_erogazioni_radiofrequenza", "description": "Numero di erogazioni di radiofrequenza effettuate.", "type": "text", "pk": false, "suggested": false }, { "name": "durata_erogazione_radiofrequenza", "description": "Durata complessiva delle erogazioni di radiofrequenza.", "type": "text", "pk": false, "suggested": false }, { "name": "energia_erogazione_radiofrequenza", "description": "Energia complessiva o media erogata in radiofrequenza.", "type": "text", "pk": false, "suggested": false }, { "name": "flusso_irrigazione_radiofrequenza", "description": "Flusso di irrigazione utilizzato durante radiofrequenza.", "type": "text", "pk": false, "suggested": false }, { "name": "temperatura", "description": "Temperatura registrata durante la procedura o l'erogazione.", "type": "text", "pk": false, "suggested": false }, { "name": "successo", "description": "Valutazione del successo clinico o tecnico della procedura.", "type": "boolean", "pk": false, "suggested": false }, { "name": "data_ecg_time_key", "description": "Chiave giorno del tracciato ECG registrato nel contesto dell'episodio.", "type": "integer", "pk": false, "suggested": false }, { "name": "ora_ecg", "description": "Ora del tracciato ECG registrato nel contesto dell'episodio.", "type": "text", "pk": false, "suggested": false }, { "name": "frequenza_cardiaca", "description": "Frequenza cardiaca base programmata (bpm).", "type": "text", "pk": false, "suggested": false }, { "name": "ritmo", "description": "Ritmo cardiaco documentato.", "type": "integer", "pk": false, "suggested": false }, { "name": "intervallo_pr", "description": "Intervallo PR misurato sul tracciato ECG.", "type": "text", "pk": false, "suggested": false }, { "name": "durataqrs", "description": "Durata del complesso QRS sul tracciato ECG.", "type": "text", "pk": false, "suggested": false }, { "name": "durataqt", "description": "Durata dell'intervallo QT sul tracciato ECG.", "type": "text", "pk": false, "suggested": false }, { "name": "pk", "description": "Identificativo univoco della scheda anagrafica Cardioref derivato da cr_anagrafica.", "type": "bigint", "pk": false, "suggested": false }, { "name": "esito_test_brugada", "description": "Esito complessivo del test provocativo per Brugada (flecainide/ajmalina) nel referto. Valori 'positivo' | 'negativo' | NULL. Popolato da apply_test_provocativo_outcome sulla base di cr_see_ablazione_test_provocativo. NULL = nessun test Brugada riconosciuto nelle conclusioni.", "type": "text", "pk": false, "suggested": false }, { "name": "esito_post_ablazione_brugada", "description": "Esito del test provocativo Brugada eseguito post-ablazione, indicatore di efficacia dell'ablazione (positivo=ablazione fallita, negativo=ablazione efficace). NULL se nessun test post-ablazione.", "type": "text", "pk": false, "suggested": false }, { "name": "esito_test_qt_lungo", "description": "Esito complessivo del test provocativo per QT lungo (adrenalina/isoprenalina). Valori 'positivo' | 'negativo' | NULL.", "type": "text", "pk": false, "suggested": false }, { "name": "esito_post_ablazione_qt_lungo", "description": "Esito del test provocativo QT lungo eseguito post-ablazione. Valori 'positivo' | 'negativo' | NULL.", "type": "text", "pk": false, "suggested": false } ] }, { "id": "t-impianto", "name": "fact_impianto_defibrillatore_impiantabile", "kind": "promote", "recommended": true, "description": "Fact table degli impianti di defibrillatori (ICD). Esclude record riclassificati come CRT-P/CRT-D/S-ICD dal classificatore CIED.", "rationale": "«impianto di un defibrillatore» = solo impianto iniziale (decisione F1).", "columns": [ { "name": "cod_paz", "description": "Codice paziente (FK a dim_patient).", "type": "bigint", "pk": true, "suggested": true }, { "name": "num", "description": "Numero progressivo dell'episodio clinico per il paziente.", "type": "bigint", "pk": true, "suggested": true }, { "name": "data_time_key", "description": "Chiave giorno (YYYYMMDD) per l'analisi temporale.", "type": "integer", "pk": false, "suggested": true }, { "name": "nostro_ospedale", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "centro_impianto", "description": "Centro in cui è stato eseguito l'impianto o la procedura.", "type": "text", "pk": false, "suggested": false }, { "name": "provenienza", "description": "Provenienza del paziente rispetto all'episodio clinico.", "type": "integer", "pk": false, "suggested": false }, { "name": "cardiopatia_ischemica", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "cardiopatia_pregresso_infarto_miocardico_acuto", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "cardiopatia_valvolare", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "cardiopatia_congenita", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "cardiopatia_dilatativa", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "cardiopatia_ipertrofica", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "cardiopatia_displasia", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "cardiopatia_altro", "description": "Valore testuale.", "type": "text", "pk": false, "suggested": false }, { "name": "classe", "description": "Classe clinica o funzionale registrata per il paziente.", "type": "smallint", "pk": false, "suggested": false }, { "name": "frazione", "description": "Frazione di eiezione o parametro funzionale ventricolare riportato.", "type": "real", "pk": false, "suggested": false }, { "name": "profilassi_antibiotica", "description": "Profilassi antibiotica somministrata o indicata.", "type": "integer", "pk": false, "suggested": false }, { "name": "aritmia_fibrillazione_ventricolare", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "aritmia_tachicardia_ventricolare_sostenuta_monomorfa", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "frequenza_tachicardia_ventricolare_sostenuta_monomorfa", "description": "Frequenza cardiaca registrata durante episodi di tachicardia ventricolare sostenuta monomorfa.", "type": "real", "pk": false, "suggested": false }, { "name": "aritmia_tachicardia_ventricolare_sostenuta_polimorfa", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "frequenza_tachicardia_ventricolare_sostenuta_polimorfa", "description": "Frequenza cardiaca registrata durante episodi di tachicardia ventricolare sostenuta polimorfa.", "type": "real", "pk": false, "suggested": false }, { "name": "aritmia_tachicardia_ventricolare_non_sostenuta", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "frequenza_tachicardia_ventricolare_non_sostenuta", "description": "Frequenza cardiaca registrata durante episodi di tachicardia ventricolare non sostenuta.", "type": "real", "pk": false, "suggested": false }, { "name": "aritmia_altro", "description": "Valore testuale.", "type": "text", "pk": false, "suggested": false }, { "name": "sintomi_1", "description": "Sintomo registrato o programmato nell'episodio clinico.", "type": "integer", "pk": false, "suggested": false }, { "name": "ecg_1", "description": "Codice lookup. Valori comuni: 0, 271, 272, 273.", "type": "integer", "pk": false, "suggested": false }, { "name": "defibrillatore_data_time_key", "description": "Chiave giorno (YYYYMMDD) per l'analisi temporale.", "type": "integer", "pk": false, "suggested": false }, { "name": "defibrillatore_marca", "description": "Marca del generatore o defibrillatore ICD impiantato.", "type": "integer", "pk": false, "suggested": false }, { "name": "defibrillatore_modello", "description": "Modello del generatore o defibrillatore ICD impiantato.", "type": "text", "pk": false, "suggested": false }, { "name": "defibrillatore_numero_serie", "description": "Numero di serie del generatore o defibrillatore ICD impiantato.", "type": "text", "pk": false, "suggested": false }, { "name": "defibrillatore_sede", "description": "Sede anatomica della tasca o del posizionamento del generatore ICD.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro", "description": "Identificativo o presenza dell'elettrocatetere 2.", "type": "boolean", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_data_time_key", "description": "Chiave giorno (YYYYMMDD) per l'analisi temporale.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_marca", "description": "Marca dell'elettrocatetere 2.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_modello", "description": "Modello dell'elettrocatetere 2.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_numero_serie", "description": "Numero di serie dell'elettrocatetere 2.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_tipo", "description": "Tipologia dell'elettrocatetere 2.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_accesso", "description": "Via o accesso di impianto dell'elettrocatetere 2.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_numero_coil", "description": "Numero di coil defibrillanti presenti sull'elettrocatetere 2.", "type": "real", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_innesto", "description": "Sede o modalità di innesto dell'elettrocatetere 2.", "type": "smallint", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro", "description": "Identificativo o presenza dell'elettrocatetere 3.", "type": "boolean", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_data_time_key", "description": "Chiave giorno (YYYYMMDD) per l'analisi temporale.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_marca", "description": "Marca dell'elettrocatetere 3.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_modello", "description": "Modello dell'elettrocatetere 3.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_numero_serie", "description": "Numero di serie dell'elettrocatetere 3.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_tipo", "description": "Tipologia dell'elettrocatetere 3.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_sede", "description": "Sede anatomica dell'elettrocatetere 3.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_accesso", "description": "Via o accesso di impianto dell'elettrocatetere 3.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_innesto", "description": "Sede o modalità di innesto dell'elettrocatetere 3.", "type": "smallint", "pk": false, "suggested": false }, { "name": "induzione_fibrillazione_ventricolare", "description": "Indicazione o risultato dell'induzione di fibrillazione ventricolare durante il test intra-procedurale.", "type": "integer", "pk": false, "suggested": false }, { "name": "sedazione_fibrillazione_ventricolare", "description": "Tipo o livello di sedazione adottato durante il test di induzione o terminazione della fibrillazione ventricolare.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_segnale_bipolare", "description": "Ampiezza del segnale in configurazione B dell'elettrocatetere 2.", "type": "real", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_segnale_bipolare", "description": "Ampiezza del segnale in configurazione B dell'elettrocatetere 3.", "type": "real", "pk": false, "suggested": false }, { "name": "modalita", "description": "Modalità di programmazione o funzionamento del dispositivo.", "type": "integer", "pk": false, "suggested": false }, { "name": "frequenza_cardiaca", "description": "Frequenza cardiaca base programmata (bpm).", "type": "text", "pk": false, "suggested": false }, { "name": "isteresi", "description": "Valore di isteresi programmato sul dispositivo.", "type": "boolean", "pk": false, "suggested": false }, { "name": "rate_responsive", "description": "Stato della funzione rate responsive.", "type": "text", "pk": false, "suggested": false }, { "name": "note_antitachicardia", "description": "Note relative alla programmazione o alla risposta antitachicardica.", "type": "text", "pk": false, "suggested": false }, { "name": "relazione", "description": "Dettagli procedurali o narrativi del ricovero.", "type": "text", "pk": false, "suggested": false }, { "name": "conclusioni", "description": "Conclusioni cliniche finali dell'episodio o della procedura.", "type": "text", "pk": false, "suggested": false }, { "name": "etl_last_update", "description": "Timestamp dell'ultimo aggiornamento ETL.", "type": "timestamp with time zone", "pk": false, "suggested": false }, { "name": "modello", "description": "Modello del dispositivo o del componente.", "type": "integer", "pk": false, "suggested": false }, { "name": "identificativo_intestazione", "description": "Flag booleano.", "type": "smallint", "pk": false, "suggested": false }, { "name": "medico_referente", "description": "Identificativo del medico referente.", "type": "text", "pk": false, "suggested": false }, { "name": "defibrillatore_sopra_sotto_muscolo", "description": "Indicazione della posizione sopra o sotto muscolare del generatore ICD.", "type": "smallint", "pk": false, "suggested": false }, { "name": "singolo_catetere", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_connettore", "description": "Tipo di connettore dell'elettrocatetere 3.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_note", "description": "Note cliniche o tecniche dell'elettrocatetere 3.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_note_flag", "description": "Flag che indica la presenza di note dell'elettrocatetere 3.", "type": "boolean", "pk": false, "suggested": false }, { "name": "sedazione_fibrillazione_ventricolare_mg", "description": "Dosaggio del farmaco sedativo utilizzato durante il test di fibrillazione ventricolare, espresso in mg.", "type": "real", "pk": false, "suggested": false }, { "name": "interruzione_fibrillazione_ventricolare", "description": "Tempo o parametro relativo all'interruzione della fibrillazione ventricolare durante il test.", "type": "real", "pk": false, "suggested": false }, { "name": "tentativi_interruzione_fibrillazione_ventricolare", "description": "Numero di tentativi necessari per interrompere la fibrillazione ventricolare al test intra-procedurale.", "type": "real", "pk": false, "suggested": false }, { "name": "totale_shock", "description": "Numero totale di shock erogati durante il test o nel corso della procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "numero_fibrillazioni_ventricolari", "description": "Numero di episodi o induzioni di fibrillazione ventricolare eseguiti durante il test.", "type": "real", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_segnale_monopolare", "description": "Ampiezza del segnale in configurazione M dell'elettrocatetere 2.", "type": "real", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_segnale_monopolare", "description": "Ampiezza del segnale in configurazione M dell'elettrocatetere 3.", "type": "real", "pk": false, "suggested": false }, { "name": "isteresi_descrizione", "description": "Descrizione della modalità di isteresi impostata.", "type": "text", "pk": false, "suggested": false }, { "name": "note_antibradicardia", "description": "Note relative alla programmazione antibradicardica.", "type": "text", "pk": false, "suggested": false }, { "name": "note_antibradicardia_flag", "description": "Note relative a antibradysn.", "type": "boolean", "pk": false, "suggested": false }, { "name": "note_antitachicardia_flag", "description": "Note relative a antitachysn.", "type": "boolean", "pk": false, "suggested": false }, { "name": "conclusioni_flag", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "tempo_scopia_minuti", "description": "Valore numerico decimale (misura o quantità).", "type": "real", "pk": false, "suggested": false }, { "name": "tempo_scopia_secondi", "description": "Valore numerico decimale (misura o quantità).", "type": "real", "pk": false, "suggested": false }, { "name": "durata_procedura", "description": "Valore numerico decimale (misura o quantità).", "type": "real", "pk": false, "suggested": false }, { "name": "anamnesi_stampa", "description": "Anamnesi del paziente.", "type": "boolean", "pk": false, "suggested": false }, { "name": "non_disponibile", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "pk", "description": "Identificativo univoco della scheda anagrafica Cardioref derivato da cr_anagrafica.", "type": "bigint", "pk": false, "suggested": false } ] }, { "id": "t-patient", "name": "dim_patient", "kind": "promote", "recommended": true, "description": "Dimensione paziente derivata dall'anagrafica Cardioref normalizzata nello schema di integrazione. Popolata solo con pazienti che hanno almeno un record in una tabella flaggata is_activity_table:true in integration-map.yaml (gate di attivita clinica del reparto di aritmologia).", "rationale": "Output = cod_paz + dati anagrafici (decisione F1).", "columns": [ { "name": "cod_paz", "description": "Codice identificativo del paziente nel sistema sorgente Cardioref.", "type": "bigint", "pk": true, "suggested": true }, { "name": "cognome", "description": "Cognome del paziente.", "type": "text", "pk": false, "suggested": true }, { "name": "nome", "description": "Nome del paziente.", "type": "text", "pk": false, "suggested": true }, { "name": "data_nascita_time_key", "description": "Chiave giorno (YYYYMMDD) per l'analisi temporale.", "type": "integer", "pk": false, "suggested": true }, { "name": "luogo_nascita", "description": "Luogo di nascita del paziente.", "type": "text", "pk": false, "suggested": false }, { "name": "sesso", "description": "Sesso del paziente.", "type": "text", "pk": false, "suggested": true }, { "name": "citta", "description": "Citta di residenza del paziente.", "type": "text", "pk": false, "suggested": false }, { "name": "provincia", "description": "Provincia di residenza del paziente.", "type": "text", "pk": false, "suggested": false }, { "name": "nazione", "description": "Nazione di residenza del paziente, normalizzata da regole metadata in chirone_meta; valori non nazionali (es. CAP) diventano NULL e sono tracciati in quality.", "type": "text", "pk": false, "suggested": false }, { "name": "codice_fiscale", "description": "Codice fiscale del paziente.", "type": "text", "pk": false, "suggested": false }, { "name": "pk", "description": "Identificativo univoco della scheda anagrafica nel sistema sorgente.", "type": "bigint", "pk": false, "suggested": false }, { "name": "data_inserimento_record_time_key", "description": "Chiave giorno (YYYYMMDD) per l'analisi temporale.", "type": "integer", "pk": false, "suggested": false }, { "name": "data_ultimo_aggiornamento", "description": "Timestamp dell'ultimo aggiornamento del record anagrafico nel sistema sorgente.", "type": "timestamp without time zone", "pk": false, "suggested": false }, { "name": "eliminato", "description": "Flag che indica se il record è eliminato nel sistema sorgente.", "type": "boolean", "pk": false, "suggested": false }, { "name": "ultimo_aggiornamento", "description": "Valore di ultimo aggiornamento del record cosi come ricevuto dal flusso sorgente, mantenuto in formato testuale.", "type": "text", "pk": false, "suggested": false }, { "name": "etl_last_update", "description": "Timestamp dell'ultimo aggiornamento ETL del record nella dimensione paziente.", "type": "timestamp with time zone", "pk": false, "suggested": false }, { "name": "codice_comune", "description": "Codice del comune associato all'anagrafica del paziente.", "type": "text", "pk": false, "suggested": false }, { "name": "indirizzo", "description": "Indirizzo di residenza o domicilio del paziente.", "type": "text", "pk": false, "suggested": false }, { "name": "email", "description": "Indirizzo email principale del paziente.", "type": "text", "pk": false, "suggested": false }, { "name": "codice_sanitario", "description": "Codice sanitario associato al paziente.", "type": "text", "pk": false, "suggested": false }, { "name": "note", "description": "Note libere anagrafiche o clinico-organizzative associate al paziente.", "type": "text", "pk": false, "suggested": false }, { "name": "data_inserimento_anagrafica_time_key", "description": "Chiave giorno (YYYYMMDD) per l'analisi temporale.", "type": "integer", "pk": false, "suggested": false }, { "name": "cardiotelefono_flag", "description": "Flag associazione al servizio CardioTelefono.", "type": "boolean", "pk": false, "suggested": false }, { "name": "email_caregiver", "description": "Indirizzo email del caregiver o referente del paziente.", "type": "text", "pk": false, "suggested": false }, { "name": "biomonitor", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "numero_biomonitor", "description": "Numero o codice associato al servizio Biomonitor del paziente.", "type": "text", "pk": false, "suggested": false }, { "name": "monitoraggio_remoto", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "numero_homemonitor", "description": "Numero o codice associato al servizio HomeMonitor del paziente.", "type": "text", "pk": false, "suggested": false }, { "name": "nanostim", "description": "Flag associazione a NanoStim.", "type": "boolean", "pk": false, "suggested": false }, { "name": "studio_flessibile", "description": "Flag associazione a StudioFlex.", "type": "boolean", "pk": false, "suggested": false }, { "name": "dataconssflex_time_key", "description": "Chiave giorno (YYYYMMDD) per l'analisi temporale.", "type": "integer", "pk": false, "suggested": false }, { "name": "solvente", "description": "Flag solvente.", "type": "boolean", "pk": false, "suggested": false }, { "name": "codice_paziente_merge", "description": "Codice paziente utilizzato come riferimento di merge o deduplicazione anagrafica.", "type": "bigint", "pk": false, "suggested": false }, { "name": "eta_ingresso", "description": "Età del paziente al primo contatto col reparto, in anni interi. Calcolata come AGE(ref_date, datan) dove ref_date = COALESCE(datainsert, MIN(data) di tutte le attività cliniche del paziente). Congelata, NON rolling.", "type": "integer", "pk": false, "suggested": false }, { "name": "fascia_eta_ingresso", "description": "Fascia d'età al primo contatto col reparto. Bande granulari sui giovani e middle-age (< 20, 20-40, 40-50, 50-60, 60-65, 65-70, 70-75, > 75, Sconosciuta). Congelata - non rolling.", "type": "text", "pk": false, "suggested": false }, { "name": "altezza_cm", "description": "", "type": "integer", "pk": false, "suggested": false }, { "name": "peso_kg", "description": "", "type": "integer", "pk": false, "suggested": false }, { "name": "regione", "description": "", "type": "text", "pk": false, "suggested": false } ] }, { "id": "t-time", "name": "dim_time", "kind": "promote", "recommended": true, "description": "Dimensione temporale, usata con due alias (dt_abl per l'ablazione, dt_imp per l'impianto). Colonne: day_key, full_date (DATE), year. full_date serve per i calcoli di finestra (>= '2011-07-03') e di gap (impianto entro ablazione+10 anni).", "rationale": "data_time_key e' la FK a dim_time.day_key (non dichiarata, da aggiungere a mano nel join).", "columns": [ { "name": "day_key", "description": "", "type": "integer", "pk": true, "suggested": true }, { "name": "full_date", "description": "", "type": "date", "pk": false, "suggested": true }, { "name": "year", "description": "", "type": "smallint", "pk": false, "suggested": true }, { "name": "quarter", "description": "", "type": "smallint", "pk": false, "suggested": false }, { "name": "month", "description": "", "type": "smallint", "pk": false, "suggested": false }, { "name": "day", "description": "", "type": "smallint", "pk": false, "suggested": false }, { "name": "semester", "description": "", "type": "smallint", "pk": false, "suggested": false }, { "name": "week", "description": "", "type": "smallint", "pk": false, "suggested": false }, { "name": "day_of_week", "description": "", "type": "smallint", "pk": false, "suggested": false }, { "name": "day_of_year", "description": "", "type": "smallint", "pk": false, "suggested": false }, { "name": "day_name", "description": "", "type": "text", "pk": false, "suggested": false }, { "name": "day_name_it", "description": "", "type": "text", "pk": false, "suggested": false }, { "name": "month_name", "description": "", "type": "text", "pk": false, "suggested": false }, { "name": "month_name_it", "description": "", "type": "text", "pk": false, "suggested": false }, { "name": "month_short", "description": "", "type": "text", "pk": false, "suggested": false }, { "name": "month_short_it", "description": "", "type": "text", "pk": false, "suggested": false }, { "name": "year_month", "description": "", "type": "text", "pk": false, "suggested": false }, { "name": "is_weekend", "description": "", "type": "boolean", "pk": false, "suggested": false }, { "name": "is_leap_year", "description": "", "type": "boolean", "pk": false, "suggested": false } ] }, { "id": "x-sostituzione", "name": "fact_sostituzione_impianto_defibrillatore_impiantabile", "kind": "exclude", "recommended": true, "description": "Fact table delle sostituzioni/revisioni ICD. Esclude record riclassificati come CRT-P/CRT-D/S-ICD dal classificatore CIED.", "rationale": "Decisione F1: «impianto» = solo impianto iniziale.", "columns": [ { "name": "cod_paz", "description": "Codice paziente (FK a dim_patient).", "type": "bigint", "pk": true, "suggested": false }, { "name": "num", "description": "Numero progressivo dell'episodio clinico per il paziente.", "type": "bigint", "pk": true, "suggested": false }, { "name": "data_time_key", "description": "Chiave giorno (YYYYMMDD) per l'analisi temporale.", "type": "integer", "pk": false, "suggested": false }, { "name": "sostituzione_defibrillatore", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "sostituzione_elettrocatetere", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "revisione", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "riparazione_elettrocatetere", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "riposizionamento_elettrocatetere", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "aggiunta_elettrocatetere", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "revisione_tasca", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "controllo_tasca", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "espianto", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "causa_defibrillatore", "description": "Motivazione della sostituzione del generatore/defibrillatore.", "type": "text", "pk": false, "suggested": false }, { "name": "causa_elettrocatetere", "description": "Motivazione della sostituzione o revisione dell'elettrocatetere.", "type": "text", "pk": false, "suggested": false }, { "name": "causa_revisione", "description": "Motivazione della revisione del sistema impiantato.", "type": "text", "pk": false, "suggested": false }, { "name": "causa_riparazione_elettrocatetere", "description": "Motivazione della riparazione dell'elettrocatetere o del sistema.", "type": "text", "pk": false, "suggested": false }, { "name": "causa_riposizionamento_elettrocatetere", "description": "Motivazione del riposizionamento dell'elettrocatetere.", "type": "text", "pk": false, "suggested": false }, { "name": "causa_aggiunta_elettrocatetere", "description": "Motivazione dell'aggiunta di un nuovo elettrocatetere.", "type": "text", "pk": false, "suggested": false }, { "name": "causa_revisione_tasca", "description": "Motivazione della revisione della tasca del dispositivo.", "type": "text", "pk": false, "suggested": false }, { "name": "causa_controllo_tasca", "description": "Motivazione del controllo della tasca del dispositivo.", "type": "text", "pk": false, "suggested": false }, { "name": "causa_espianto", "description": "Motivazione dell'espianto del dispositivo o del materiale impiantato.", "type": "text", "pk": false, "suggested": false }, { "name": "provenienza", "description": "Provenienza del paziente rispetto all'episodio clinico.", "type": "integer", "pk": false, "suggested": false }, { "name": "profilassi_antibiotica", "description": "Profilassi antibiotica somministrata o indicata.", "type": "integer", "pk": false, "suggested": false }, { "name": "sintomi_1", "description": "Sintomo registrato o programmato nell'episodio clinico.", "type": "integer", "pk": false, "suggested": false }, { "name": "ecg_1", "description": "Codice lookup. Valori comuni: 0, 271, 272, 273.", "type": "integer", "pk": false, "suggested": false }, { "name": "classe", "description": "Classe clinica o funzionale registrata per il paziente.", "type": "smallint", "pk": false, "suggested": false }, { "name": "frazione", "description": "Frazione di eiezione o parametro funzionale ventricolare riportato.", "type": "real", "pk": false, "suggested": false }, { "name": "defibrillatore_data_time_key", "description": "Chiave giorno (YYYYMMDD) per l'analisi temporale.", "type": "integer", "pk": false, "suggested": false }, { "name": "defibrillatore_marca", "description": "Marca del generatore o defibrillatore ICD sostituito o impiantato.", "type": "integer", "pk": false, "suggested": false }, { "name": "defibrillatore_modello", "description": "Modello del generatore o defibrillatore ICD sostituito o impiantato.", "type": "text", "pk": false, "suggested": false }, { "name": "defibrillatore_numero_serie", "description": "Numero di serie del generatore o defibrillatore ICD sostituito o impiantato.", "type": "text", "pk": false, "suggested": false }, { "name": "defibrillatore_sede", "description": "Sede anatomica della tasca o del posizionamento del generatore ICD.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro", "description": "Identificativo o presenza dell'elettrocatetere 2.", "type": "boolean", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_data_time_key", "description": "Chiave giorno (YYYYMMDD) per l'analisi temporale.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_marca", "description": "Marca dell'elettrocatetere 2.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_modello", "description": "Modello dell'elettrocatetere 2.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_numero_serie", "description": "Numero di serie dell'elettrocatetere 2.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_tipo", "description": "Tipologia dell'elettrocatetere 2.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_accesso", "description": "Via o accesso di impianto dell'elettrocatetere 2.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_numero_coil", "description": "Numero di coil defibrillanti presenti sull'elettrocatetere 2.", "type": "real", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_innesto", "description": "Sede o modalità di innesto dell'elettrocatetere 2.", "type": "smallint", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro", "description": "Identificativo o presenza dell'elettrocatetere 3.", "type": "boolean", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_data_time_key", "description": "Chiave giorno (YYYYMMDD) per l'analisi temporale.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_marca", "description": "Marca dell'elettrocatetere 3.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_modello", "description": "Modello dell'elettrocatetere 3.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_numero_serie", "description": "Numero di serie dell'elettrocatetere 3.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_tipo", "description": "Tipologia dell'elettrocatetere 3.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_sede", "description": "Sede anatomica dell'elettrocatetere 3.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_accesso", "description": "Via o accesso di impianto dell'elettrocatetere 3.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_innesto", "description": "Sede o modalità di innesto dell'elettrocatetere 3.", "type": "smallint", "pk": false, "suggested": false }, { "name": "induzione_fibrillazione_ventricolare", "description": "Indicazione o risultato dell'induzione di fibrillazione ventricolare durante il test intra-procedurale.", "type": "integer", "pk": false, "suggested": false }, { "name": "sedazione_fibrillazione_ventricolare", "description": "Tipo o livello di sedazione adottato durante il test di induzione o terminazione della fibrillazione ventricolare.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_segnale_bipolare", "description": "Ampiezza del segnale in configurazione B dell'elettrocatetere 2.", "type": "real", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_segnale_bipolare", "description": "Ampiezza del segnale in configurazione B dell'elettrocatetere 3.", "type": "real", "pk": false, "suggested": false }, { "name": "modalita", "description": "Modalità di programmazione o funzionamento del dispositivo.", "type": "integer", "pk": false, "suggested": false }, { "name": "frequenza_cardiaca", "description": "Frequenza cardiaca base programmata (bpm).", "type": "text", "pk": false, "suggested": false }, { "name": "isteresi", "description": "Valore di isteresi programmato sul dispositivo.", "type": "boolean", "pk": false, "suggested": false }, { "name": "rate_responsive", "description": "Stato della funzione rate responsive.", "type": "text", "pk": false, "suggested": false }, { "name": "note_antitachicardia", "description": "Note relative alla programmazione o alla risposta antitachicardica.", "type": "text", "pk": false, "suggested": false }, { "name": "relazione", "description": "Dettagli procedurali o narrativi del ricovero.", "type": "text", "pk": false, "suggested": false }, { "name": "conclusioni", "description": "Conclusioni cliniche finali dell'episodio o della procedura.", "type": "text", "pk": false, "suggested": false }, { "name": "etl_last_update", "description": "Timestamp dell'ultimo aggiornamento ETL.", "type": "timestamp with time zone", "pk": false, "suggested": false }, { "name": "modello", "description": "Modello del dispositivo o del componente.", "type": "integer", "pk": false, "suggested": false }, { "name": "identificativo_intestazione", "description": "Flag booleano.", "type": "smallint", "pk": false, "suggested": false }, { "name": "causa_defibrillatore_altro", "description": "Motivazione alternativa relativa al generatore o sistema ICD.", "type": "integer", "pk": false, "suggested": false }, { "name": "causa_elettrocatetere_altro", "description": "Motivazione alternativa relativa all'elettrocatetere.", "type": "integer", "pk": false, "suggested": false }, { "name": "nostro_ospedale", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "centro_impianto", "description": "Centro in cui è stato eseguito l'impianto o la procedura.", "type": "text", "pk": false, "suggested": false }, { "name": "medico_referente", "description": "Identificativo del medico referente.", "type": "text", "pk": false, "suggested": false }, { "name": "defibrillatore_sopra_sotto_muscolo", "description": "Indicazione della posizione sopra o sotto muscolare del generatore ICD.", "type": "smallint", "pk": false, "suggested": false }, { "name": "singolo_catetere", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_connettore", "description": "Tipo di connettore dell'elettrocatetere 3.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_note", "description": "Note cliniche o tecniche dell'elettrocatetere 3.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_note_flag", "description": "Flag che indica la presenza di note dell'elettrocatetere 3.", "type": "boolean", "pk": false, "suggested": false }, { "name": "sedazione_fibrillazione_ventricolare_mg", "description": "Dosaggio del farmaco sedativo utilizzato durante il test di fibrillazione ventricolare, espresso in mg.", "type": "real", "pk": false, "suggested": false }, { "name": "interruzione_fibrillazione_ventricolare", "description": "Tempo o parametro relativo all'interruzione della fibrillazione ventricolare durante il test.", "type": "real", "pk": false, "suggested": false }, { "name": "tentativi_interruzione_fibrillazione_ventricolare", "description": "Numero di tentativi necessari per interrompere la fibrillazione ventricolare al test intra-procedurale.", "type": "real", "pk": false, "suggested": false }, { "name": "totale_shock", "description": "Numero totale di shock erogati durante il test o nel corso della procedura.", "type": "real", "pk": false, "suggested": false }, { "name": "numero_fibrillazioni_ventricolari", "description": "Numero di episodi o induzioni di fibrillazione ventricolare eseguiti durante il test.", "type": "real", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_destro_segnale_monopolare", "description": "Ampiezza del segnale in configurazione M dell'elettrocatetere 2.", "type": "real", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_segnale_monopolare", "description": "Ampiezza del segnale in configurazione M dell'elettrocatetere 3.", "type": "real", "pk": false, "suggested": false }, { "name": "isteresi_descrizione", "description": "Descrizione della modalità di isteresi impostata.", "type": "text", "pk": false, "suggested": false }, { "name": "note_antibradicardia", "description": "Note relative alla programmazione antibradicardica.", "type": "text", "pk": false, "suggested": false }, { "name": "note_antibradicardia_flag", "description": "Note relative a antibradysn.", "type": "boolean", "pk": false, "suggested": false }, { "name": "note_antitachicardia_flag", "description": "Note relative a antitachysn.", "type": "boolean", "pk": false, "suggested": false }, { "name": "modprog", "description": "Codice del modulo o della sezione di programmazione del dispositivo.", "type": "text", "pk": false, "suggested": false }, { "name": "modifica_programmazione_flag", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "conclusioni_flag", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "tempo_scopia_minuti", "description": "Flag booleano.", "type": "real", "pk": false, "suggested": false }, { "name": "tempo_scopia_secondi", "description": "Valore numerico decimale (misura o quantità).", "type": "real", "pk": false, "suggested": false }, { "name": "durata_procedura", "description": "Codice lookup. Valori comuni: 60.", "type": "real", "pk": false, "suggested": false }, { "name": "anamnesi_stampa", "description": "Anamnesi del paziente.", "type": "boolean", "pk": false, "suggested": false }, { "name": "pk", "description": "Identificativo univoco della scheda anagrafica Cardioref derivato da cr_anagrafica.", "type": "bigint", "pk": false, "suggested": false } ] }, { "id": "x-controllo", "name": "fact_controllo_defibrillatore_impiantabile", "kind": "exclude", "recommended": true, "description": "Fact table dei controlli periodici dei dispositivi ICD.", "rationale": "Decisione F1: controlli non sono «impianto».", "columns": [ { "name": "cod_paz", "description": "Codice paziente (FK a dim_patient).", "type": "bigint", "pk": true, "suggested": false }, { "name": "data_time_key", "description": "Chiave giorno (YYYYMMDD) per l'analisi temporale.", "type": "integer", "pk": false, "suggested": false }, { "name": "defibrillatore_data_time_key", "description": "Chiave giorno (YYYYMMDD) per l'analisi temporale.", "type": "integer", "pk": false, "suggested": false }, { "name": "defibrillatore_marca", "description": "Marca del generatore ICD.", "type": "integer", "pk": false, "suggested": false }, { "name": "defibrillatore_modello", "description": "Modello del generatore ICD.", "type": "text", "pk": false, "suggested": false }, { "name": "ultimo", "description": "Data e ora registrate per ultimo.", "type": "timestamp without time zone", "pk": false, "suggested": false }, { "name": "interventi_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_appropriati_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_inappropriati_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "numero_interventi_appropriati", "description": "Numero di interventi appropriati registrati dal dispositivo nel periodo osservato.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_data_primo_time_key", "description": "Chiave giorno del primo intervento appropriato registrato dal dispositivo.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_data_ultimo_time_key", "description": "Chiave giorno dell'ultimo intervento appropriato registrato dal dispositivo.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_frequenza_cardiaca_minima", "description": "Frequenza cardiaca minima registrata negli episodi con intervento appropriato del dispositivo.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_data_frequenza_cardiaca_minima_time_key", "description": "Chiave giorno dell'episodio con frequenza cardiaca minima tra gli interventi appropriati.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_frequenza_cardiaca_massima", "description": "Frequenza cardiaca massima registrata negli episodi con intervento appropriato del dispositivo.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_data_frequenza_cardiaca_massima_time_key", "description": "Chiave giorno dell'episodio con frequenza cardiaca massima tra gli interventi appropriati.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_atp_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_atp_numero", "description": "Numero di sequenze ATP erogate negli interventi appropriati del dispositivo.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_shock_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_shock_numero", "description": "Numero di shock erogati negli interventi appropriati del dispositivo.", "type": "integer", "pk": false, "suggested": false }, { "name": "numero_interventi_inappropriati", "description": "Numero di interventi inappropriati registrati dal dispositivo nel periodo osservato.", "type": "real", "pk": false, "suggested": false }, { "name": "interventi_data_primo_inappropriato_time_key", "description": "Chiave giorno del primo intervento inappropriato registrato dal dispositivo.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_data_ultimo_inappropriato_time_key", "description": "Chiave giorno dell'ultimo intervento inappropriato registrato dal dispositivo.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_tachicardia_ventricolare_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_fibrillazione_atriale_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_malfunzionamento_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_interferenza_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_altro_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_precedenti_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_precedenti_appropriati_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_precedenti_inappropriati_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "numero_interventi_precedenti_appropriati", "description": "Numero di interventi appropriati registrati nel periodo precedente al controllo corrente.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_precedenti_data_primo_time_key", "description": "Chiave giorno del primo intervento appropriato nel periodo precedente al controllo corrente.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_precedenti_data_ultimo_time_key", "description": "Chiave giorno dell'ultimo intervento appropriato nel periodo precedente al controllo corrente.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_precedenti_frequenza_cardiaca_minima", "description": "Frequenza cardiaca minima registrata negli interventi appropriati del periodo precedente al controllo corrente.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_precedenti_frequenza_cardiaca_massima", "description": "Frequenza cardiaca massima registrata negli interventi appropriati del periodo precedente al controllo corrente.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_precedenti_atp_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_precedenti_atp_numero", "description": "Numero di sequenze ATP erogate nel periodo precedente al controllo corrente.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_precedenti_shock_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_precedenti_shock_numero", "description": "Numero di shock erogati nel periodo precedente al controllo corrente.", "type": "integer", "pk": false, "suggested": false }, { "name": "numero_interventi_precedenti_inappropriati", "description": "Numero di interventi inappropriati registrati nel periodo precedente al controllo corrente.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_precedenti_data_primo_inappropriato_time_key", "description": "Chiave giorno del primo intervento inappropriato nel periodo precedente al controllo corrente.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_precedenti_data_ultimo_inappropriato_time_key", "description": "Chiave giorno dell'ultimo intervento inappropriato nel periodo precedente al controllo corrente.", "type": "integer", "pk": false, "suggested": false }, { "name": "interventi_precedenti_tachicardia_ventricolare_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_precedenti_fibrillazione_atriale_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_precedenti_malfunzionamento_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_precedenti_interferenza_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "interventi_precedenti_altro_presenti", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "batteria", "description": "Stato o valutazione sintetica della batteria del dispositivo.", "type": "text", "pk": false, "suggested": false }, { "name": "tensione", "description": "Valore di tensione della batteria o del dispositivo.", "type": "real", "pk": false, "suggested": false }, { "name": "tempo_carica", "description": "Tempo di carica del condensatore del dispositivo.", "type": "real", "pk": false, "suggested": false }, { "name": "modalita", "description": "Modalità di programmazione o funzionamento del dispositivo.", "type": "integer", "pk": false, "suggested": false }, { "name": "frequenza_cardiaca", "description": "Frequenza cardiaca base programmata (bpm).", "type": "text", "pk": false, "suggested": false }, { "name": "isteresi", "description": "Valore di isteresi programmato sul dispositivo.", "type": "boolean", "pk": false, "suggested": false }, { "name": "rate_responsive", "description": "Stato della funzione rate responsive.", "type": "text", "pk": false, "suggested": false }, { "name": "note_antitachicardia", "description": "Note relative alla programmazione o alla risposta antitachicardica.", "type": "text", "pk": false, "suggested": false }, { "name": "note_ecg", "description": "Annotazioni relative al tracciato ECG registrato.", "type": "text", "pk": false, "suggested": false }, { "name": "ritmo_spontaneo_non_valutabile", "description": "Ritmo spontaneo rilevato in assenza di stimolazione ventricolare.", "type": "boolean", "pk": false, "suggested": false }, { "name": "ritmo_spontaneo_presente", "description": "Ritmo spontaneo sinusale o sopraventricolare documentato.", "type": "boolean", "pk": false, "suggested": false }, { "name": "ritmo_spontaneo_si_descrizione", "description": "Valore testuale.", "type": "text", "pk": false, "suggested": false }, { "name": "ritmo_spontaneo_assente", "description": "Ritmo spontaneo non sinusale documentato.", "type": "boolean", "pk": false, "suggested": false }, { "name": "ritmo_spontaneo_no_descrizione", "description": "Valore testuale.", "type": "text", "pk": false, "suggested": false }, { "name": "note_cliniche", "description": "Annotazioni cliniche aggiuntive raccolte durante il follow-up o la procedura.", "type": "text", "pk": false, "suggested": false }, { "name": "terapia", "description": "Terapia farmacologica o indicazione terapeutica registrata per il paziente.", "type": "text", "pk": false, "suggested": false }, { "name": "terapia_anticoagulante", "description": "Terapia anticoagulante in corso o indicata per il paziente.", "type": "boolean", "pk": false, "suggested": false }, { "name": "conclusioni", "description": "Conclusioni cliniche finali dell'episodio o della procedura.", "type": "text", "pk": false, "suggested": false }, { "name": "etl_last_update", "description": "Timestamp dell'ultimo aggiornamento ETL.", "type": "timestamp with time zone", "pk": false, "suggested": false }, { "name": "num", "description": "Numero progressivo dell'episodio clinico per il paziente.", "type": "bigint", "pk": true, "suggested": false }, { "name": "modello", "description": "Modello del dispositivo o del componente.", "type": "integer", "pk": false, "suggested": false }, { "name": "identificativo_intestazione", "description": "Flag booleano.", "type": "smallint", "pk": false, "suggested": false }, { "name": "medico_referente", "description": "Identificativo del medico referente.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro", "description": "Identificativo o presenza dell'elettrocatetere 3.", "type": "boolean", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_data_time_key", "description": "Chiave giorno (YYYYMMDD) per l'analisi temporale.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_marca", "description": "Marca dell'elettrocatetere 3.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_modello", "description": "Modello dell'elettrocatetere 3.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_tipo", "description": "Tipologia dell'elettrocatetere 3.", "type": "text", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_sede", "description": "Sede anatomica dell'elettrocatetere 3.", "type": "integer", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_connettore", "description": "Tipo di connettore dell'elettrocatetere 3, normalizzato su codici standard (es. DF-4, IS-1, IS-4).", "type": "text", "pk": false, "suggested": false }, { "name": "intnote", "description": "Testo descrittivo libero.", "type": "text", "pk": false, "suggested": false }, { "name": "interventi_note_flag", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_segnale_monopolare", "description": "Ampiezza del segnale in configurazione M dell'elettrocatetere 3.", "type": "real", "pk": false, "suggested": false }, { "name": "elettrocatetere_ventricolo_sinistro_segnale_bipolare", "description": "Ampiezza del segnale in configurazione B dell'elettrocatetere 3.", "type": "real", "pk": false, "suggested": false }, { "name": "note_dati_misurati", "description": "Note relative ai parametri tecnici o clinici misurati.", "type": "text", "pk": false, "suggested": false }, { "name": "note_dati_misurati_flag", "description": "Note relative a datimisuratisn.", "type": "boolean", "pk": false, "suggested": false }, { "name": "isteresi_descrizione", "description": "Descrizione della modalità di isteresi impostata.", "type": "text", "pk": false, "suggested": false }, { "name": "note_antibradicardia", "description": "Note relative alla programmazione antibradicardica.", "type": "text", "pk": false, "suggested": false }, { "name": "note_antibradicardia_flag", "description": "Note relative a antibradysn.", "type": "boolean", "pk": false, "suggested": false }, { "name": "note_antitachicardia_flag", "description": "Note relative a antitachysn.", "type": "boolean", "pk": false, "suggested": false }, { "name": "modprog", "description": "Codice del modulo o della sezione di programmazione del dispositivo.", "type": "text", "pk": false, "suggested": false }, { "name": "modifica_programmazione_flag", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "note_ecg_flag", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "note_cliniche_flag", "description": "Note relative a clinichesn.", "type": "boolean", "pk": false, "suggested": false }, { "name": "terapiasn", "description": "Flag booleano.", "type": "boolean", "pk": false, "suggested": false }, { "name": "tecnico", "description": "Identificativo del tecnico coinvolto nella procedura o nel controllo dispositivo.", "type": "integer", "pk": false, "suggested": false }, { "name": "anamnesi_stampa", "description": "Anamnesi del paziente.", "type": "boolean", "pk": false, "suggested": false }, { "name": "pk", "description": "Identificativo univoco della scheda anagrafica Cardioref derivato da cr_anagrafica.", "type": "bigint", "pk": false, "suggested": false } ] } ], "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [], "decisionTypes": [ "table_promoted", "table_promoted", "table_promoted", "table_promoted", "table_excluded", "table_excluded", "column_corrected", "column_corrected" ], "note": "Registrate 8 decisioni: table_promoted, table_promoted, table_promoted, table_promoted, table_excluded, table_excluded, column_corrected, column_corrected." } }, { "callId": "call_0c6a563792f543f486bde30b", "toolName": "reviewer_decide", "ts": "2026-07-03T17:34:42.520Z", "descriptor": { "type": "ui_request", "id": "u8", "phase": "F4", "schema_version": 1, "widget": "multiselect", "title": "F4 — Schema linking: join proposte", "allow_empty": true, "options": [ { "id": "j-abl-time", "label": "JOIN ablazione → dim_time (dt_abl)", "recommended": true, "decision": { "detail": "JOIN dim_time dt_abl ON dt_abl.day_key = ablazione.data_time_key — per la data dell'ablazione (finestra 15 anni e sequenza temporale). FK non dichiarata nello schema, aggiunta a mano.", "rationale": "Ogni fact temporale si appoggia a dim_time tramite data_time_key (convenzione DWH).", "subject": "join ablazione.data_time_key = dt_abl.day_key", "type": "join_modified" } }, { "id": "j-imp-time", "label": "JOIN impianto → dim_time (dt_imp)", "recommended": true, "decision": { "detail": "JOIN dim_time dt_imp ON dt_imp.day_key = impianto.data_time_key — per la data dell'impianto.", "rationale": "Idem, FK manuale.", "subject": "join impianto.data_time_key = dt_imp.day_key", "type": "join_modified" } }, { "id": "j-crossfact", "label": "JOIN cross-fact ablazione.cod_paz = impianto.cod_paz", "recommended": true, "decision": { "detail": "JOIN impianto ON impianto.cod_paz = ablazione.cod_paz — collega i due eventi sul paziente. E' la join centrale per la sequenza ablazione→impianto; il vincolo temporale (impianto dopo ablazione e entro 10 anni) si esprime sulle date tramite dt_abl/dt_imp.", "rationale": "I due fact condividono cod_paz (FK a dim_patient); non esiste FK diretta tra i due fact.", "subject": "join impianto.cod_paz = ablazione.cod_paz (cross-fact)", "type": "join_modified" } }, { "id": "j-patient", "label": "JOIN dim_patient (anagrafica)", "recommended": true, "decision": { "detail": "JOIN dim_patient p ON p.cod_paz = ablazione.cod_paz — per i dati anagrafici in output.", "rationale": "Anagrafica del paziente (dim_patient).", "subject": "join dim_patient.cod_paz = ablazione.cod_paz", "type": "join_modified" } } ], "selected": [], "content": null, "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [], "decisionTypes": [ "join_modified", "join_modified", "join_modified", "join_modified" ], "note": "Registrate 4 decisioni: join_modified, join_modified, join_modified, join_modified." } }, { "callId": "call_987e3022f77340b0ba0ff3e8", "toolName": "reviewer_confirm", "ts": "2026-07-03T17:36:01.889Z", "descriptor": { "type": "ui_request", "id": "u9", "phase": "F4", "schema_version": 1, "widget": "artifact-gate", "title": "Fase 4 completata — passo alla Fase 5 (Sintesi)?", "artifact": { "data": { "file": "schema_linking.json", "promoted": [ "fact_studio_elettrofisiologico_endocavitario_ablazione", "fact_impianto_defibrillatore_impiantabile", "dim_patient", "dim_time" ], "excluded": [ "fact_sostituzione_impianto_defibrillatore_impiantabile", "fact_controllo_defibrillatore_impiantabile" ] }, "kind": "schema_linking_json" }, "action": { "kind": "approve_reject", "prompt": "Approvi o rifiuti?" }, "options": [ { "id": "approve", "label": "Salva e procedi", "recommended": true }, { "id": "reject", "label": "Rifiuta" } ], "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [ "Salva e procedi" ], "note": "Fase approvata (sessione 2026-07-03-170732-fammi-la-lista-dei-pazienti-che-negli-ul)." } }, { "callId": "call_a50d394d2c754dfd8ecd1a80", "toolName": "reviewer_confirm", "ts": "2026-07-03T17:36:42.445Z", "descriptor": { "type": "ui_request", "id": "u10", "phase": "F5", "schema_version": 1, "widget": "artifact-gate", "title": "Fase 5 completata — passo alla Fase 6 (Piano CTE)?", "artifact": { "kind": "phase", "data": { "schema_version": 2, "phase": { "id": "F5", "num": 5, "name": "sintesi" }, "summary": "Sintesi completa per il Blocco 3: ablazione transcatetere e impianto ICD sono ancorati rispettivamente a `fact_studio_elettrofisiologico_endocavitario_ablazione` e `fact_impianto_defibrillatore_impiantabile`, incrociati su `cod_paz` (entrambe FK a `dim_patient`). Escluse sostituzioni e controlli, fuori perimetro della domanda.", "checks": [ { "label": "Copertura tabelle promosse", "status": "ok", "detail": "Tutte le tabelle usate sono nel perimetro promosso in F4." }, { "label": "Finestre temporali coerenti", "status": "ok", "detail": "Ablazione in [2011-07-03, 2026-07-03]; impianto dopo l'ablazione e <= ablazione + 10 anni." }, { "label": "Chiavi di join verificate", "status": "ok", "detail": "cod_paz presente e non nullo in entrambe le fact table candidate." }, { "label": "Ambiguità residue", "status": "warn", "detail": "Pazienti con più ablazioni: da chiarire in F6 se contare la prima o l'ultima coppia qualificante." } ], "sections": [ { "title": "Criteri di selezione", "items": [ { "label": "Ablazione transcatetere", "table": "fact_studio_elettrofisiologico_endocavitario_ablazione", "column": "ablazione_transcatetere", "value": "IS TRUE", "kind": "filter", "description": "Indicazione di ablazione transcatetere derivata dal text analysis sul campo conclusioni (sovrascrive il flag Cardioref).", "rationale": "Isola le sole procedure transcatetere richieste dalla domanda." }, { "label": "Finestra ablazione", "table": "fact_studio_elettrofisiologico_endocavitario_ablazione", "column": "data_ablazione", "value": "[2011-07-03, 2026-07-03]", "kind": "filter", "description": "Data di esecuzione della procedura di ablazione.", "rationale": "Finestra degli «ultimi 15 anni» calcolata rispetto alla data corrente della domanda." }, { "label": "Impianto successivo all'ablazione", "table": "fact_impianto_defibrillatore_impiantabile", "column": "data_impianto", "value": "> data_ablazione E <= data_ablazione + 10 anni", "kind": "filter", "description": "Data di esecuzione dell'impianto del defibrillatore.", "rationale": "Vincolo «entro 10 anni» richiesto dalla domanda." }, { "label": "Join paziente", "table": "dim_patient", "column": "cod_paz", "value": "cross-fact join", "kind": "join", "description": "Codice identificativo del paziente nel sistema sorgente Cardioref.", "rationale": "Chiave comune tra le due fact table (entrambe FK a dim_patient)." } ] } ], "tables": [ { "name": "fact_studio_elettrofisiologico_endocavitario_ablazione", "role": "promoted", "description": "Fatto clinico derivato da cr_seeablazione relativo a eventi, procedure o rilevazioni del paziente. Esclude record riclassificati come cardioversione o chiusura auricola.", "columns": [ { "name": "cod_paz", "description": "Codice paziente (FK a dim_patient)." }, { "name": "num", "description": "Numero progressivo dell'episodio clinico per il paziente." }, { "name": "ablazione_transcatetere", "description": "Indicazione di ablazione transcatetere derivata dal text analysis sul campo conclusioni.", "value_filter": "IS TRUE" } ] }, { "name": "fact_impianto_defibrillatore_impiantabile", "role": "promoted", "description": "Fact table degli impianti di defibrillatori (ICD). Esclude record riclassificati come CRT-P/CRT-D/S-ICD dal classificatore CIED.", "columns": [ { "name": "cod_paz", "description": "Codice paziente (FK a dim_patient)." }, { "name": "num", "description": "Numero progressivo dell'episodio clinico per il paziente." } ] }, { "name": "dim_patient", "role": "promoted", "description": "Dimensione paziente derivata dall'anagrafica Cardioref normalizzata nello schema di integrazione. Popolata solo con pazienti che hanno almeno un record in una tabella flaggata is_activity_table:true in integration-map.yaml (gate di attivita clinica del reparto di aritmologia).", "columns": [ { "name": "cod_paz", "description": "Codice identificativo del paziente nel sistema sorgente Cardioref." } ] }, { "name": "fact_sostituzione_impianto_defibrillatore_impiantabile", "role": "excluded", "description": "Fact table delle sostituzioni/revisioni ICD. Esclude record riclassificati come CRT-P/CRT-D/S-ICD dal classificatore CIED.", "columns": [] }, { "name": "fact_controllo_defibrillatore_impiantabile", "role": "excluded", "description": "Fact table dei controlli periodici dei dispositivi ICD.", "columns": [] } ], "open_questions": [ "Se un paziente ha più ablazioni transcatetere seguite da impianto, contare la prima o l'ultima coppia qualificante?" ] } }, "action": { "kind": "approve_reject", "prompt": "Approvi o rifiuti?" }, "options": [ { "id": "approve", "label": "Salva e procedi", "recommended": true }, { "id": "reject", "label": "Rifiuta" } ], "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [ "Salva e procedi" ], "note": "Fase approvata (sessione 2026-07-03-170732-fammi-la-lista-dei-pazienti-che-negli-ul)." } }, { "callId": "call_50df4a4b460447ee96a4627a", "toolName": "reviewer_decide", "ts": "2026-07-03T17:38:48.818Z", "descriptor": { "type": "ui_request", "id": "u11", "phase": "F6", "schema_version": 1, "widget": "multiselect", "title": "F6 — Piano CTE (4 CTE in catena)", "allow_empty": true, "options": [ { "id": "cte-1-ablazioni", "label": "CTE 1: ablazioni_recenti", "recommended": true, "decision": { "detail": "Tutte le ablazioni transcatetere (flag ablazione_transcatetere IS TRUE) con data nel range [2011-07-03, 2026-07-03]. Mantiene chiavi cod_paz, num e data_ablazione (dt_abl.full_date). Tabelle: fact_studio_elettrofisiologico_endocavitario_ablazione JOIN dim_time dt_abl.", "subject": "cte: ablazioni_recenti", "type": "cte_plan" } }, { "id": "cte-2-impianti", "label": "CTE 2: impianti_icd", "recommended": true, "decision": { "detail": "Tutti gli impianti iniziali ICD con data. Mantiene chiavi cod_paz, num e data_impianto (dt_imp.full_date). Tabelle: fact_impianto_defibrillatore_impiantabile JOIN dim_time dt_imp.", "subject": "cte: impianti_icd", "type": "cte_plan" } }, { "id": "cte-3-sequenze", "label": "CTE 3: sequenze_abl_imp (coppie qualificanti)", "recommended": true, "decision": { "detail": "Join tra ablazioni_recenti e impianti_icd su cod_paz; mantiene solo le coppie con data_impianto > data_ablazione E data_impianto <= data_ablazione + 10 anni. Mantiene entrambe le chiavi e le date.", "subject": "cte: sequenze_abl_imp", "type": "cte_plan" } }, { "id": "cte-4-pazienti", "label": "CTE 4: pazienti_qualificati (una riga/paziente + gap)", "recommended": true, "decision": { "detail": "Una riga per paziente (DISTINCT cod_paz): dalla sequenze_abl_imp sceglie la prima coppia qualificante (ablazione piu' recente nel range) e calcola il gap in anni. Pronto per l'arricchimento anagrafico in F7.", "subject": "cte: pazienti_qualificati", "type": "cte_plan" } } ], "selected": [], "content": null, "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [], "note": "ERRORE: tipo 'cte_plan' non valido. Tipi: concept_clarified, question_rewritten, table_promoted, table_excluded, column_corrected, join_modified, evidence_accepted, evidence_rejected, ambiguity_open, memory_rejected, cte_approved, cte_corrected, cte_rejected, sql_revised, sql_approved, sql_rejected, phase_approved, phase_auto_approved, phase_reopened, phase_skipped, datamart_requested, datamart_declined, decision_retracted, value_grounded, concept_formula_approved, concept_formula_rejected" } }, { "callId": "call_fedc3508e0b0472f8126882e", "toolName": "reviewer_select", "ts": "2026-07-03T17:40:02.196Z", "descriptor": { "type": "ui_request", "id": "u12", "phase": "F6", "schema_version": 1, "widget": "select", "title": "F6 — Piano CTE: conferma il piano prima dei test", "intro": "Piano CTE (4 CTE in catena, ognuno cattura un sottoinsieme informativo). L'approvazione vera e propria sara' per-CTE nei gate kind:\"cte_result\" dopo tht cte test. Qui chiedo solo il via libera al piano prima di iniziare a testare.\n\nCTE 1 — ablazioni_recenti: ablazioni transcatetere (ablazione_transcatetere IS TRUE) con data ∈ [2011-07-03, 2026-07-03]; chiavi cod_paz, num, data_ablazione.\nCTE 2 — impianti_icd: impianti ICD iniziali con data; chiavi cod_paz, num, data_impianto.\nCTE 3 — sequenze_abl_imp: join su cod_paz, mantiene coppie con data_impianto > data_ablazione E <= data_ablazione + 10 anni.\nCTE 4 — pazienti_qualificati: una riga per paziente (prima coppia qualificante: ablazione piu' recente) + gap in anni.\n\nTutte le tabelle usate sono nel perimetro promosso (F4). I nomi di tabelle/colonne sono copiati esattamente dal contesto di schema.", "recommended": "plan-ok", "options": [ { "id": "plan-ok", "label": "Approva il piano, procedi con i test CTE (consigliato)", "recommended": true }, { "id": "plan-revise", "label": "Rivedi il piano (specifico con Altro)", "recommended": false } ], "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [], "note": "Scelta del reviewer: Approva il piano, procedi con i test CTE (consigliato)" } }, { "callId": "call_da9d097835fc4a7da5123199", "toolName": "reviewer_confirm", "ts": "2026-07-03T17:41:40.163Z", "descriptor": { "type": "ui_request", "id": "u13", "phase": "F6", "schema_version": 1, "widget": "artifact-gate", "title": "F6 — CTE 1 approvato: ablazioni_recenti?", "artifact": { "kind": "cte_result", "data": { "schema_version": 2, "name": "ablazioni_recenti", "index": 1, "total": 4, "purpose": "Ablazioni transcatetere (ablazione_transcatetere IS TRUE) con data ∈ [2011-07-03, 2026-07-03].", "rationale": "Punto di partenza della catena: isola l'evento indice (ablazione) prima di cercare l'impianto conseguente.", "depends_on": [], "sql": "WITH ablazioni_recenti AS (\n SELECT\n cod_paz,\n num,\n data_ablazione\n FROM fact_studio_elettrofisiologico_endocavitario_ablazione\n WHERE ablazione_transcatetere IS TRUE\n AND data_ablazione BETWEEN DATE '2011-07-03' AND DATE '2026-07-03'\n)\nSELECT * FROM ablazioni_recenti\nLIMIT 10;", "status": "ok", "execution_ms": 184, "row_sample": 10, "warnings": [ "righe = limit: risultato troncato dalla preview" ], "sql_hash": "a3f6c9d1e8b2047f", "columns": [ { "name": "cod_paz", "description": "Codice paziente (FK a dim_patient)." }, { "name": "num", "description": "Numero progressivo dell'episodio clinico per il paziente." }, { "name": "data_ablazione", "description": "Data di esecuzione della procedura di ablazione." } ], "preview": { "columns": [ "cod_paz", "num", "data_ablazione" ], "rows": [ [ 3758, 5, "2018-09-24" ], [ 8175, 473, "2025-05-19" ], [ 152185, 3, "2026-05-28" ], [ 20446, 61, "2018-05-14" ], [ 25492, 3, "2013-11-28" ], [ 4664, 94, "2016-05-31" ], [ 39149, 2, "2018-04-05" ], [ 7243, 38, "2012-12-12" ], [ 22310, 9, "2013-07-15" ], [ 4848, 408, "2011-10-05" ] ] }, "note": "Tutte le data_ablazione ricadono nel range [2011-07-03, 2026-07-03]; preview troncata a 10 righe. Mantiene le chiavi cod_paz e num." } }, "action": { "kind": "approve_reject", "prompt": "Approvi o rifiuti?" }, "options": [ { "id": "approve", "label": "Salva e procedi", "recommended": true }, { "id": "reject", "label": "Rifiuta" } ], "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [], "note": "Nessun CTE in attesa di approvazione (sessione 2026-07-03-170732-fammi-la-lista-dei-pazienti-che-negli-ul).", "failed": true } }, { "callId": "call_689b08ba5bc7457a8f831211", "toolName": "reviewer_confirm", "ts": "2026-07-03T17:47:16.945Z", "descriptor": { "type": "ui_request", "id": "u14", "phase": "F6", "schema_version": 1, "widget": "artifact-gate", "title": "F6 — Piano CTE (persisti cte_plan.json)", "artifact": { "kind": "cte_plan", "data": { "schema_version": 2, "question": "Lista dei pazienti che, negli ultimi 15 anni, hanno avuto un'ablazione transcatetere seguita da un impianto di defibrillatore (ICD) entro 10 anni.", "strategy": "Catena di 4 CTE: prima isolo le ablazioni transcatetere e gli impianti ICD separatamente (con le rispettive finestre temporali), poi li unisco per paziente mantenendo solo le coppie in cui l'impianto segue l'ablazione entro 10 anni, infine riduco a una riga per paziente scegliendo la prima coppia qualificante.", "ctes": [ { "name": "ablazioni_recenti", "index": 1, "purpose": "Ablazioni transcatetere (ablazione_transcatetere IS TRUE) con data ∈ [2011-07-03, 2026-07-03].", "rationale": "Punto di partenza della catena: isola l'evento indice (ablazione) prima di cercare l'impianto conseguente.", "depends_on": [], "tables": [ { "name": "fact_studio_elettrofisiologico_endocavitario_ablazione", "description": "Fatto clinico derivato da cr_seeablazione relativo a eventi, procedure o rilevazioni del paziente. Esclude record riclassificati come cardioversione o chiusura auricola." } ], "keys": [ "cod_paz", "num" ], "filters": [ { "column": "fact_studio_elettrofisiologico_endocavitario_ablazione.ablazione_transcatetere", "op": "IS", "value": "TRUE", "description": "Indicazione di ablazione transcatetere derivata dal text analysis sul campo conclusioni (sovrascrive il flag Cardioref).", "rationale": "Filtra solo le procedure di ablazione transcatetere richieste dalla domanda, escludendo altre tipologie di intervento." }, { "column": "fact_studio_elettrofisiologico_endocavitario_ablazione.data_ablazione", "op": "BETWEEN", "value": "2011-07-03 AND 2026-07-03", "description": "Data di esecuzione della procedura di ablazione.", "rationale": "Finestra degli «ultimi 15 anni» calcolata rispetto alla data corrente della domanda." } ], "output_columns": [ "cod_paz", "num", "data_ablazione" ] }, { "name": "impianti_icd", "index": 2, "purpose": "Impianti ICD iniziali con data.", "rationale": "Secondo evento della catena: individua gli impianti candidati che potrebbero seguire un'ablazione già isolata in ablazioni_recenti.", "depends_on": [], "tables": [ { "name": "fact_impianto_defibrillatore_impiantabile", "description": "Fact table degli impianti di defibrillatori (ICD). Esclude record riclassificati come CRT-P/CRT-D/S-ICD dal classificatore CIED." } ], "keys": [ "cod_paz", "num" ], "filters": [], "output_columns": [ "cod_paz", "num", "data_impianto" ] }, { "name": "sequenze_abl_imp", "index": 3, "purpose": "Join su cod_paz tra ablazioni_recenti e impianti_icd, mantiene le coppie con data_impianto > data_ablazione E <= data_ablazione + 10 anni.", "rationale": "Applica il vincolo temporale «entro 10 anni» richiesto dalla domanda, collegando ablazione e impianto per lo stesso paziente.", "depends_on": [ "ablazioni_recenti", "impianti_icd" ], "tables": [ { "name": "dim_patient", "description": "Dimensione paziente derivata dall'anagrafica Cardioref normalizzata nello schema di integrazione. Popolata solo con pazienti che hanno almeno un record in una tabella flaggata is_activity_table:true in integration-map.yaml (gate di attivita clinica del reparto di aritmologia)." } ], "keys": [ "cod_paz" ], "filters": [ { "column": "sequenze_abl_imp.data_impianto", "op": ">", "value": "data_ablazione", "description": "", "rationale": "L'impianto deve seguire cronologicamente l'ablazione (non precederla né coincidere)." }, { "column": "sequenze_abl_imp.data_impianto", "op": "<=", "value": "data_ablazione + INTERVAL '10 years'", "description": "", "rationale": "Vincolo «entro 10 anni» dalla domanda originale." } ], "output_columns": [ "cod_paz", "num_ablazione", "data_ablazione", "num_impianto", "data_impianto" ] }, { "name": "pazienti_qualificati", "index": 4, "purpose": "Una riga per paziente (prima coppia qualificante: ablazione più recente) + gap in anni.", "rationale": "Riduce sequenze_abl_imp a una riga per paziente come richiesto dalla «lista dei pazienti», scegliendo la coppia più recente in caso di ablazioni multiple.", "depends_on": [ "sequenze_abl_imp" ], "tables": [], "keys": [ "cod_paz" ], "filters": [], "output_columns": [ "cod_paz", "data_ablazione", "data_impianto", "gap_anni" ] } ] } }, "action": { "kind": "approve_reject", "prompt": "Approvi o rifiuti?" }, "options": [ { "id": "approve", "label": "Salva e procedi", "recommended": true }, { "id": "reject", "label": "Rifiuta" } ], "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [ "Salva e procedi" ], "note": "CTE plan approvato (4 CTE, sessione 2026-07-03-170732-fammi-la-lista-dei-pazienti-che-negli-ul)." } }, { "callId": "call_757bf476b6814668a36834fe", "toolName": "reviewer_confirm", "ts": "2026-07-03T18:06:22.894Z", "descriptor": { "type": "ui_request", "id": "u15", "phase": "F6", "schema_version": 1, "widget": "artifact-gate", "title": "F6 — CTE 1 approvato: ablazioni_recenti?", "artifact": { "data": { "colonne": [ "cod_paz", "num", "data_ablazione" ], "file": "ctes/ablazioni_recenti.sql", "latenza_ms": 184, "note": "Tutte le data_ablazione ricadono nel range [2011-07-03, 2026-07-03]. Mantiene le chiavi cod_paz e num.", "preview": "cod_paz | num | data_ablazione\n3758 | 5 | 2018-09-24\n8175 | 473 | 2025-05-19\n152185 | 3 | 2026-05-28\n20446 | 61 | 2018-05-14\n25492 | 3 | 2013-11-28\n4664 | 94 | 2016-05-31\n39149 | 2 | 2018-04-05\n7243 | 38 | 2012-12-12\n22310 | 9 | 2013-07-15\n4848 | 408 | 2011-10-05", "scopo": "Ablazioni transcatetere (ablazione_transcatetere IS TRUE) con data ∈ [2011-07-03, 2026-07-03]", "warning": "preview troncata a 10 righe" }, "kind": "cte" }, "action": { "kind": "approve_reject", "prompt": "Approvi o rifiuti?" }, "options": [ { "id": "approve", "label": "Salva e procedi", "recommended": true }, { "id": "reject", "label": "Rifiuta" } ], "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [ "Salva e procedi" ], "note": "CTE 'ablazioni_recenti' approvato (sessione 2026-07-03-170732-fammi-la-lista-dei-pazienti-che-negli-ul)." } }, { "callId": "call_25fb74e9370442f99381bd6c", "toolName": "reviewer_confirm", "ts": "2026-07-03T18:08:26.667Z", "descriptor": { "type": "ui_request", "id": "u16", "phase": "F6", "schema_version": 1, "widget": "artifact-gate", "title": "F6 — CTE 2 approvato: impianti_icd?", "artifact": { "data": { "colonne": [ "cod_paz", "num", "data_impianto" ], "file": "ctes/impianti_icd.sql", "latenza_ms": 150, "note": "Tutti gli impianti ICD iniziali (fact_impianto_defibrillatore_impiantabile) con data. Nessun filtro temporale qui: la finestra si applica all'ablazione (CTE3 applichera' i vincoli di sequenza).", "preview": "cod_paz | num | data_impianto\n20930 | 3 | 2011-11-16\n20999 | 12 | 2012-08-31\n21245 | 2 | 2011-11-14\n21336 | 3 | 2011-11-23\n547500 | 1 | 2026-06-03\n21350 | 1 | 2011-11-21\n21356 | 2 | 2011-11-25\n21920 | 65 | 2023-07-12\n21980 | 2 | 2012-04-03\n22135 | 2 | 2012-04-23", "scopo": "Impianti ICD iniziali con data", "warning": "preview troncata a 10 righe" }, "kind": "cte" }, "action": { "kind": "approve_reject", "prompt": "Approvi o rifiuti?" }, "options": [ { "id": "approve", "label": "Salva e procedi", "recommended": true }, { "id": "reject", "label": "Rifiuta" } ], "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [ "Salva e procedi" ], "note": "CTE 'impianti_icd' approvato (sessione 2026-07-03-170732-fammi-la-lista-dei-pazienti-che-negli-ul)." } }, { "callId": "call_63bceb9c3a274d90a3de9b6c", "toolName": "reviewer_confirm", "ts": "2026-07-03T18:09:45.451Z", "descriptor": { "type": "ui_request", "id": "u17", "phase": "F6", "schema_version": 1, "widget": "artifact-gate", "title": "F6 — CTE 3 approvato: sequenze_abl_imp?", "artifact": { "data": { "colonne": [ "cod_paz", "num_ablazione", "data_ablazione", "num_impianto", "data_impianto" ], "file": "ctes/sequenze_abl_imp.sql", "latenza_ms": 119, "note": "Tutte le coppie soddisfano impianto > ablazione e <= ablazione+10 anni; tutte le data_ablazione nel range. Il paziente 17445 compare due volte (2 ablazioni 670/675 -> stesso impianto 681): la deduplicazione e' demandata al CTE 4.", "preview": "cod_paz | num_abl | data_ablazione | num_imp | data_impianto\n9234 | 340 | 2014-02-19 | 396 | 2014-04-16\n10775 | 6 | 2014-01-21 | 47 | 2014-07-08\n1423 | 2 | 2013-10-30 | 15 | 2015-04-29\n177191 | 3 | 2020-08-04 | 5 | 2020-09-23\n384737 | 1 | 2022-02-22 | 2 | 2022-02-23\n17445 | 675 | 2014-10-14 | 681 | 2017-01-26\n21060 | 3 | 2011-10-10 | 8 | 2012-03-22\n48477 | 2 | 2018-10-30 | 7 | 2019-04-03\n25198 | 2 | 2013-09-30 | 12 | 2014-03-08\n17445 | 670 | 2013-11-18 | 681 | 2017-01-26", "scopo": "Coppie qualificanti ablazione -> impianto (su cod_paz, impianto dopo e <= 10 anni)", "warning": "preview troncata a 10 righe" }, "kind": "cte" }, "action": { "kind": "approve_reject", "prompt": "Approvi o rifiuti?" }, "options": [ { "id": "approve", "label": "Salva e procedi", "recommended": true }, { "id": "reject", "label": "Rifiuta" } ], "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [ "Salva e procedi" ], "note": "CTE 'sequenze_abl_imp' approvato (sessione 2026-07-03-170732-fammi-la-lista-dei-pazienti-che-negli-ul)." } }, { "callId": "call_8ca58e2bd26a42b9bd46ff95", "toolName": "reviewer_confirm", "ts": "2026-07-03T18:13:28.565Z", "descriptor": { "type": "ui_request", "id": "u18", "phase": "F6", "schema_version": 1, "widget": "artifact-gate", "title": "F6 — CTE 4 approvato: pazienti_qualificati?", "artifact": { "data": { "colonne": [ "cod_paz", "num_ablazione", "data_ablazione", "num_impianto", "data_impianto", "gap_anni" ], "file": "ctes/pazienti_qualificati.sql", "latenza_ms": 137, "note": "Verifica aggiuntiva con COUNT: 352 pazienti qualificati = 352 cod_paz DISTINCT (deduplicazione OK, una riga per paziente). gap_anni = DATE_PART('year', AGE(data_impianto, data_ablazione)); tutte le coppie con gap <= 10 anni e ablazione nel range.", "preview": "cod_paz | num_abl | data_ablazione | num_imp | data_impianto | gap_anni\n1423 | 17 | 2015-04-23 | 15 | 2015-04-29 | 0\n1465 | 4 | 2012-03-05 | 162 | 2013-07-29 | 1\n1900 | 8 | 2013-06-19 | 333 | 2018-01-25 | 4\n2054 | 5 | 2011-12-06 | 47 | 2017-12-18 | 6\n5185 | 41 | 2016-04-05 | 58 | 2022-10-13 | 6\n5325 | 16 | 2013-05-21 | 36 | 2017-03-01 | 3\n5556 | 5 | 2011-07-04 | 8 | 2011-10-27 | 0\n5659 | 139 | 2017-12-04 | 148 | 2023-10-05 | 5\n8104 | 22 | 2011-11-21 | 25 | 2012-02-27 | 0\n9234 | 340 | 2014-02-19 | 396 | 2014-04-16 | 0", "scopo": "Una riga per paziente (DISTINCT cod_paz, ablazione piu' recente) + gap in anni", "totale_pazienti": 352, "warning": "preview troncata a 10 righe su 352" }, "kind": "cte" }, "action": { "kind": "approve_reject", "prompt": "Approvi o rifiuti?" }, "options": [ { "id": "approve", "label": "Salva e procedi", "recommended": true }, { "id": "reject", "label": "Rifiuta" } ], "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [ "Salva e procedi" ], "note": "CTE 'pazienti_qualificati' approvato (sessione 2026-07-03-170732-fammi-la-lista-dei-pazienti-che-negli-ul)." } }, { "callId": "call_914b32b53159407db91f8f27", "toolName": "reviewer_confirm", "ts": "2026-07-03T18:14:05.032Z", "descriptor": { "type": "ui_request", "id": "u19", "phase": "F6", "schema_version": 1, "widget": "artifact-gate", "title": "Fase 6 completata — passo alla Fase 7 (SQL finale)?", "artifact": { "data": { "ctes_approvati": [ "ablazioni_recenti", "impianti_icd", "sequenze_abl_imp", "pazienti_qualificati" ], "totale_pazienti_qualificati": 352 }, "kind": "cte_plan_done" }, "action": { "kind": "approve_reject", "prompt": "Approvi o rifiuti?" }, "options": [ { "id": "approve", "label": "Salva e procedi", "recommended": true }, { "id": "reject", "label": "Rifiuta" } ], "reserved": [ "back", "exit", "other" ] }, "real": { "labels": [ "Salva e procedi" ], "note": "Fase approvata (sessione 2026-07-03-170732-fammi-la-lista-dei-pazienti-che-negli-ul)." } } ] }