Files
ThothII/tools/replay/replay.json
T
marcopanandMarco Pancotti 7491e8c3ac chore(replay): regenerated replay.json fixture (phase tags + F4 schema-linking gate)
Regenerated demo fixture output of extract.mjs (WorkflowBar phase tags) with the
F4 gate-7 augment applied (tools/replay/augment-schema-linking.mjs, on the F4
branch). Regenerable; committed so the replay server serves it without a build step.
2026-07-06 23:29:49 +02:00

4237 lines
159 KiB
JSON

{
"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": {
"data": {
"check": "OK — completa per il Blocco 3",
"riepilogo": "Ablazione: fact_studio_elettrofisiologico_endocavitario_ablazione (ablazione_transcatetere IS TRUE). Impianto ICD: fact_impianto_defibrillatore_impiantabile. Cross-fact su cod_paz (entrambe FK a dim_patient). Escluse sostituzioni e controlli. Finestre temporali: ablazione in [2011-07-03, 2026-07-03]; impianto dopo e <= ablazione+10 anni."
},
"kind": "synthesis_recap"
},
"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": {
"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]; preview troncata a 10 righe. 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": "righe = limit: risultato troncato dalla preview"
},
"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": [],
"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": {
"data": {
"cte_plan": [
{
"name": "ablazioni_recenti",
"purpose": "ablazioni transcatetere (flag IS TRUE) con data ∈ [2011-07-03, 2026-07-03]; chiavi cod_paz, num, data_ablazione"
},
{
"name": "impianti_icd",
"purpose": "impianti ICD iniziali con data; chiavi cod_paz, num, data_impianto"
},
{
"name": "sequenze_abl_imp",
"purpose": "join su cod_paz, coppie con impianto > ablazione e <= ablazione+10 anni"
},
{
"name": "pazienti_qualificati",
"purpose": "una riga per paziente (prima coppia qualificante) + gap in anni"
}
]
},
"kind": "cte_plan"
},
"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)."
}
}
]
}