I Programmi di calcolo e di elaborazione statistica - Age.Na.S.
I Programmi di calcolo e di elaborazione statistica - Age.Na.S.
I Programmi di calcolo e di elaborazione statistica - Age.Na.S.
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
I <strong>Programmi</strong><br />
<strong>di</strong> <strong>calcolo</strong> e <strong>di</strong><br />
<strong>elaborazione</strong><br />
<strong>statistica</strong><br />
http://www.qualityin<strong>di</strong>cators.ahrq.gov/<br />
downloads.htm
I <strong>Programmi</strong> <strong>di</strong>sponibili per la<br />
costruzione degli in<strong>di</strong>catori:<br />
•Versione SAS<br />
I <strong>Programmi</strong> SAS:<br />
•Versione SPSS<br />
Inpatient Quality In<strong>di</strong>cators
LA FILOSOFIA DEI PGM SAS<br />
1. <strong>Programmi</strong> per il <strong>calcolo</strong> degli in<strong>di</strong>catori<br />
2. File esterni per la gestione dei criteri <strong>di</strong> inclusione ed<br />
esclusione<br />
3.File <strong>di</strong> supporto per aggiustamento e smoothing<br />
I <strong>Programmi</strong><br />
CONTROL.SAS Gestisce informazioni generali<br />
IQSAS1.SAS Applica i criteri <strong>di</strong> inclusione<br />
per ogni in<strong>di</strong>catore a tutti i<br />
pazienti<br />
IQSASP2.SAS Calcola gli in<strong>di</strong>catori grezzi<br />
IQSASP3.SAS Calcola gli in<strong>di</strong>catori aggiustati<br />
e “smooothed”<br />
IQFMTS.SAS Contiene tutti i formati che<br />
definiscono i criteri <strong>di</strong><br />
inclusione/esclusione
I files <strong>di</strong> supporto<br />
MSXIQP02.TXT Contiene valori per la centratura<br />
delle covariate<br />
COVIQP02.TXT Contiene i valori dei parametri <strong>di</strong><br />
aggiustamento stimati su una<br />
popolazione standard<br />
QICTY02.TXT Contiene dati <strong>di</strong> popolazione<br />
(USA)<br />
MSXP00.TXT Contiene i valori dei coefficienti<br />
per gli in<strong>di</strong>catori “smoothed”<br />
1<br />
Schema<br />
3<br />
2<br />
SDO
control.sas deve essere personalizzato dall’utente<br />
* --------------------------------------------------------------------------------------------------------------------- ;<br />
* --- All Programs --- ;<br />
* ---------------------------------------------------------------------------------------------------------------------;<br />
LIBNAME LIBRARY 'c:\pathname'; *
iqfmts.sas<br />
Definisce i criteri <strong>di</strong> inclusione/esclusione per ogni<br />
in<strong>di</strong>catore .<br />
Se si devono variare i criteri <strong>di</strong> inclusione è sufficiente<br />
mo<strong>di</strong>ficare l’elenco dei co<strong>di</strong>ci ICD IX riportati nei formati.<br />
NB: I programmi <strong>di</strong> <strong>calcolo</strong> non devono<br />
più essere mo<strong>di</strong>ficati<br />
/* ----------------------------------------------- */<br />
/* Acute Myocar<strong>di</strong>al Infarction Mortality (MRTAMI) */<br />
/* Mortality In<strong>di</strong>cator / IQI #15 */<br />
/* ----------------------------------------------- */<br />
/* Acute Myocar<strong>di</strong>al Infarction */<br />
/* ICD-9-CM Diagnosis Codes: */<br />
VALUE $MRTAMID<br />
'41001' = '1' /* AMI ANTEROLATERAL, INIT */<br />
'41011' = '1' /* AMI ANTERIOR WALL, INIT */<br />
'41021' = '1' /* AMI INFEROLATERAL, INIT */<br />
'41031' = '1' /* AMI INFEROPOST, INITIAL */<br />
'41041' = '1' /* AMI INFERIOR WALL, INIT */<br />
'41051' = '1' /* AMI LATERAL NEC, INITIAL */<br />
'41061' = '1' /* TRUE POST INFARCT, INIT */<br />
'41071' = '1' /* SUBENDO INFARCT, INITIAL */<br />
'41081' = '1' /* AMI NEC, INITIAL */<br />
'41091' = '1' /* AMI NOS, INITIAL */<br />
OTHER = '0' ;<br />
iqfmts.sas<br />
Esempio<br />
formato per<br />
TPIQ15
*=================================================================;<br />
FILENAME CONTROL 'c:\pathname\CONTROL_IQI.SAS'; *
* --- IN-HOSP IN HOSP MORT AMI Richiama la macro MDX1 con il<br />
Parametro MRTAMID<br />
--- ;<br />
Per cui il SAS legge così:<br />
IF (AGE >= 18) AND %MDX1($MRTAMID.) THEN DO;<br />
TPIQ15 = 0;<br />
IF DISP = 20 THEN DO;<br />
TPIQ15 = 1;<br />
END;<br />
denominatore<br />
numeratore<br />
Dataset in input<br />
%MACRO MDX1 ($MRTAMID);<br />
((PUT(DX1 ($MRTAMID)= '1'))<br />
%MEND;<br />
Modalità <strong>di</strong> <strong>di</strong>missione<br />
Deceduto<br />
Struttura rigida ben definita<br />
1. Deve contenere tutte le variabili richieste nominate<br />
come in<strong>di</strong>cato nel manuale AHRQ<br />
2. I formati per tutte le variabili devono essere quelli<br />
in<strong>di</strong>cati nel manuale AHRQ
Variable<br />
name<br />
KEY<br />
AGE<br />
RACE<br />
SEX<br />
HOSPID<br />
Variable<br />
DRG<br />
MDC<br />
DX1 –<br />
DX30<br />
DISP<br />
Description<br />
Sequence number.<br />
Unique case identifier.<br />
<strong>Age</strong> in years at<br />
admission<br />
Race of patient.<br />
Sex of patient<br />
Data Source hospital<br />
number<br />
Description<br />
Diagnosis Related<br />
Group<br />
Major Diagnostic<br />
Category<br />
ICD-9-CM <strong>di</strong>agnosis<br />
codes. DX1 is the<br />
principal <strong>di</strong>agnosis,<br />
DX2-DX30 are<br />
secondary <strong>di</strong>agnoses.<br />
Disposition of patient<br />
Format<br />
Numeric<br />
Numeric<br />
Numeric<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
Numeric<br />
1<br />
2<br />
Numeric<br />
Format<br />
Numeric<br />
Numeric<br />
String, 5<br />
characte<br />
r<br />
Numeric<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
20<br />
Value description<br />
User defined unique<br />
numeric identifier for<br />
each <strong>di</strong>scharge<br />
record<br />
<strong>Age</strong> in years<br />
White<br />
Black<br />
Hispanic<br />
Asian or Pacific<br />
Island<br />
<strong>Na</strong>tive American<br />
Other<br />
Male<br />
Female<br />
Hospital identification<br />
number<br />
Value description<br />
DRG from federal<br />
(CMS) DRG Grouper<br />
MDC from federal<br />
(CMS) DRG grouper<br />
Diagnosis codes<br />
Routine<br />
Short-term hospital<br />
Skilled nursing facility<br />
Interme<strong>di</strong>ate care<br />
Another type of<br />
facility<br />
Home health care<br />
Against me<strong>di</strong>cal<br />
advice<br />
Died in the hospital<br />
Comments<br />
Not used by the QI<br />
programs, but should be<br />
present to facilitate<br />
possible exploration;<br />
allows user to link the<br />
records from the<br />
IQSAS1.SAS program<br />
output file back to the<br />
original input data file.<br />
If this data element is<br />
missing the <strong>di</strong>scharge<br />
record will be excluded<br />
from analysis.<br />
The values of 1, 2, and 3<br />
are used <strong>di</strong>rectly in the QI<br />
software. All other<br />
ethnicity codes are<br />
mapped to an ‘other’<br />
category.<br />
If this data element is<br />
missing the <strong>di</strong>scharge<br />
record will be excluded<br />
from the analysis.<br />
Used to facilitate data<br />
exploration and possible<br />
Comments<br />
Users must specify the<br />
number of <strong>di</strong>agnoses in the<br />
parameter &NDX in<br />
CONTROL_IQI.SAS<br />
program.<br />
The values 2 and 20 are<br />
referenced by the QI code<br />
(to identify transfers to<br />
another short-term<br />
hospital, and patients who<br />
<strong>di</strong>ed in the hospital).
data a.sdo2002;set a.sdo2002_ (rename=(<br />
<strong>di</strong>agn=dx1<br />
cond1=dx2<br />
cond2=dx3<br />
cond3=dx4<br />
cond4=dx5<br />
cond5=dx6<br />
interv=pr1<br />
int1 =pr2<br />
int2 =pr3<br />
int3 =pr4<br />
int4 =pr5<br />
int5 =pr6<br />
));<br />
if cittad eq "100" then race = 1; else<br />
if cittad lt "100" then race = .; else<br />
race = 6;<br />
Dataset in input<br />
Ridenominazione variabili<br />
Dataset in input<br />
Passaggio critico <strong>di</strong> transco<strong>di</strong>fica: transco<strong>di</strong>fica effettuare scelte<br />
per adattare le co<strong>di</strong>fiche italiane alle co<strong>di</strong>fiche USA<br />
if mo<strong>di</strong>m eq "1" then <strong>di</strong>sp = 1; else<br />
if mo<strong>di</strong>m eq "3" then <strong>di</strong>sp = 2; else<br />
if mo<strong>di</strong>m eq "5" then <strong>di</strong>sp = 3; else<br />
if mo<strong>di</strong>m in ("7","8") then <strong>di</strong>sp = 4; else<br />
if mo<strong>di</strong>m in ("6","9") then <strong>di</strong>sp = 6; else<br />
if mo<strong>di</strong>m eq "2" then <strong>di</strong>sp = 7; else<br />
if mo<strong>di</strong>m eq "4" then <strong>di</strong>sp =20;<br />
if onere in ("1","2","7","N","D")<br />
then pay1 =1; else<br />
if onere in ("8","9","A" )<br />
then pay1 =2; else<br />
if onere in ("5","6" )<br />
then pay1 =3; else<br />
if onere eq "4"<br />
then pay1 =4; else<br />
if onere eq "3"<br />
then pay1 =6;
TASSI<br />
1. Identificare gli outcomes (numeratore<br />
numeratore) nei record SDO<br />
2. Identificare la popolazione a rischio (denominatore<br />
denominatore)<br />
3. Calcolare il tasso Osservato<br />
4. Calcolare il tasso Atteso<br />
numeratore<br />
IQI =<br />
denominato<br />
re<br />
5. Calcolare il tasso Aggiustato<br />
6. Calcolare il tasso “Smoothed”<br />
Tassi: numeratore<br />
1. Identificare gli outcomes (numeratore<br />
numeratore) nei record SDO<br />
Per ogni in<strong>di</strong>catore si in<strong>di</strong>viduano i casi<br />
Evento (decesso) & co<strong>di</strong>ci <strong>di</strong> <strong>di</strong>agnosi (principale)<br />
Flag=1<br />
Tassi: denominatore<br />
2. Identificare la popolazione a rischio (denominatore<br />
denominatore)<br />
Per ogni in<strong>di</strong>catore si in<strong>di</strong>vidua la popolazione a rischio<br />
co<strong>di</strong>ci <strong>di</strong> <strong>di</strong>agnosi (principale) & criteri esclusione<br />
Flag=0
Tassi: <strong>calcolo</strong><br />
3. Calcolare il tasso osservato<br />
Per ogni ospedale:<br />
1. Conteggio dei CASI<br />
2. Conteggio della POPOLAZIONE A RISCHIO<br />
3. Calcolo tasso<br />
CASI<br />
IQI<br />
=<br />
=<br />
POPOLAZION E A RISCHIO<br />
Dataset IQP2<br />
numeratore denominatore<br />
Ogni riga un ospedale<br />
∑<br />
∑ 0<br />
1<br />
& 1<br />
tasso
Tassi: aggiustamento<br />
4. Calcolare il tasso Atteso<br />
Applicazione coefficienti <strong>di</strong> aggiustamento<br />
5. Calcolare i tassi Aggiustati a partire dai tassi<br />
Osservati ed Attesi<br />
6. Calcolare i tassi Smoothed<br />
(Particolare tecnica <strong>statistica</strong> che cerca <strong>di</strong> eliminare dalle stime<br />
il “rumore” riducendo la variabilità entro struttura fra perio<strong>di</strong>.<br />
Sono necessari dati relativi ad almeno 3 anni).<br />
Dataset IQP3<br />
Tasso aggiustato Tasso smoothed
OUTPUT<br />
IQ1 data set contenente i record <strong>di</strong> tutti i pazienti con<br />
in<strong>di</strong>catore <strong>di</strong> esito (0, 1, missing)<br />
IQP2 data set contenente i valori degli in<strong>di</strong>catori grezzi<br />
calcolati a livello <strong>di</strong> ospedale<br />
IQP3 data set contenete i valori degli in<strong>di</strong>catori aggiustati<br />
per il rischio, attesi e smoothed<br />
Sintesi IQI<br />
1. Scaricare i programmi dal sito AHRQ<br />
2. Apportare le mo<strong>di</strong>fiche necessarie ai programmi <strong>di</strong><br />
<strong>elaborazione</strong> scaricati (control.sas)<br />
3. Adattare i dati agli standard richiesti dall’AHRQ<br />
4. Pre<strong>di</strong>sporre i file con i parametri <strong>di</strong> aggiustamento<br />
5. Calcolare gli in<strong>di</strong>catori grezzi,attesi, aggiustati e<br />
smoothed
I <strong>Programmi</strong> SAS:<br />
Patient Safety In<strong>di</strong>cators<br />
Come per gli in<strong>di</strong>catori IQI la struttura dei <strong>Programmi</strong><br />
SAS per i PSI è simile:<br />
1. <strong>Programmi</strong> per il <strong>calcolo</strong> degli in<strong>di</strong>catori<br />
2. File esterni per la gestione dei criteri <strong>di</strong> inclusione ed<br />
esclusione<br />
CONTROL.SAS Gestisce informazioni generali<br />
PSFMTS.SAS Definisce i formati per i criteri <strong>di</strong><br />
inclusione/esclusione per ogni in<strong>di</strong>catore .<br />
PSSAS1.SAS Applica i criteri <strong>di</strong> inclusione<br />
per ogni in<strong>di</strong>catore a tutti i pazienti<br />
PSSASP2.SAS Calcola gli in<strong>di</strong>catori grezzi
* --- FAILURE TO RESCUE --- ;<br />
IF (%MDX2($FTR1DX.) AND<br />
NOT (%MDX1($FTR1DX.) OR %MDX1($FTR1EX.) OR %MDX1($AMIID.) OR %MDX1($CARDRID.) OR<br />
%MDX1($CARDIID.) OR %MDX1($HEMORID.) OR %MDX1($GASTRID.) OR %MDX1($SHOCKID.) OR<br />
%MDX1($TRAUMID.) OR %MDR($TRAUMDR.)))<br />
OR<br />
(%MDX2($FTR2DX.) AND<br />
NOT (%MDX1($FTR2DX.) OR %MDX1($OBEMBOL.)))<br />
OR<br />
(%MDX2($FTR3DX.) AND<br />
NOT (%MDX1($FTR3DX.) OR %MDX1($FTR3EXA.) OR %MDX($FTR3EXB.) OR %MDX($IMMUNID.) OR<br />
%MPR($IMMUNIP.) OR MDC IN (4)))<br />
OR<br />
(%MDX2($FTR4DX.) AND<br />
NOT (%MDX1($FTR4DX.) OR %MDX($IMMUNID.) OR %MPR($IMMUNIP.) OR<br />
%MDX1($INFECID.) OR %MDR($INFECDR.) OR LOS > 3)) OR<br />
OR<br />
((%MDX2($FTR5DX.) OR %MPR($FTR5PR.)) AND<br />
NOT (%MDX1($FTR5DX.) OR %MDX1($FTR5EX.) OR %MDX1($HEMORID.) OR %MDX1($TRAUMID.) OR<br />
%MDR($TRAUMDR.) OR %MDX1($GASTRID.) OR MDC IN (4,5)))<br />
OR<br />
(%MDX2($FTR6DX.) AND<br />
NOT (%MDX1($FTR6DX.) OR %MDX1($FTR6EX.) OR %MDX1($TRAUMID.) OR %MDR($TRAUMDR.) OR<br />
%MDX1($ALCHLSM.) OR MDC IN (6,7)))<br />
THEN DO;<br />
TPPS04 = 0;<br />
IF DISP IN (20) THEN TPPS04 = 1;<br />
denominatore<br />
IF AGE >= 75 OR ASOURCE IN (2,3) OR DISP IN (2) OR MDC IN (15) THEN TPPS04 = .;<br />
END;<br />
pz. trasferito da Osp. Pubblico o pz. trasferito da struttura privata<br />
accre<strong>di</strong>tata o pz. trasferito da struttura privata non accre<strong>di</strong>tata o pz.<br />
trasferito da altro regime o tipologia <strong>di</strong> ricovero (day hospital -ricovero<br />
or<strong>di</strong>nario – riabilitazione o lungodegenza), all'interno dello stesso<br />
Istituto;<br />
Se la modalità <strong>di</strong> <strong>di</strong>missione è<br />
“deceduto” va al numeratore<br />
TRASFERIMENTO AD<br />
ALTRO ISTITUTO PER<br />
ACUTI.
OUTPUT PS1