Dynamic Mortality Recovery Analysis in THRio Database
THRio database setup, issues with intervention, understanding patient dynamics, rates calculation, Delphi programming, extending in Python, death rates analysis, and differences among units in mortality recovery approach.
Dynamic Mortality Recovery Analysis in THRio Database
E N D
Presentation Transcript
THRio Antonio G F Pacheco
THRio • Outline • Database setup • Creating a master table with main outcomes • Mortality recovery with linkage • Issues and differences between units
THRio Database
THRio • We needed to evaluate the intervention • Intervention itself is training professionals and facilitate guidelines implementation • Request TST for eligible patients • Give IPT for eligible patients • First approach • Percentages • Given eligible patients for TST • Given eligible patients for IPT • There are problems with this approach
THRio • Issues • There is a lead time between training and following guidelines • That’s variable for each clinic • Frequency with which patients return to clinic • Logistic problems within the clinic • TST is not placed every day • To start IPT, TB has to be ruled out • It could take a long time to get a chest X-ray!!!
THRio • We thought we would have to take time into account! • Instead of percentages, rates • The process a patient goes through is pretty complex • There are dynamics issues involved • We tried to understand the dynamics first
THRio • Understanding the dynamics of patients • Patients may go through several ‘states’ • Events of interest are all dated • It is possible to calculate transition rates • It would be useful for process analysis • Taking time into account • Let’s see it schematically…
THRio • Main table generated by the system • Based on the schematic part only • Takes info from several tables • Lots of programming involved • 9 SQL views • Delphi (Pascal) programming • > 1000 lines of code • Computationally-intensive • About 40 min in a AMD 2 x 1.6 GHz with 2Gb RAM
THRio • Other outcomes included • TB outcomes • IPT outcomes • 20 different codes (with dates) • Long format database • Let’s see an example with some fake data…
THRio • Actually now it is easy to extend it • Implemented in Python • Mainly date functions • Could easily be extended in other languages (e.g. SAS) • Extra info from patients • HAART • CD4 • VL • Extra info from study • Intervention status
THRio • Let’s see one script…
THRio • Now we can calculate rates • Can present data as a survival analysis • Compare pre- and post-intervention • Calendar x non-calendar analysis • Dynamics of the study • Dynamics of the intervention • Can be presented by clinic as well
THRio Death Rates
THRio • Death rates over time in our cohort • How many deaths are we missing? • With linkage we are able to improve the numbers • But how much? • Is our death rate reasonable? • Are there differences over time? • Are there differences across units?
THRio • Patients known to be dead at data abstraction • Between Sep ’03 and Sep ’05 • Abstracted as ‘inactive’ • In the beginning not even after Sep ’05 • We started recovering them • Since Sep ‘03 • No data abstracted if patients did not have a visit after Sep ‘03
THRio • Problem • These patients are not included in the analyses • Potential biases on results • Linkage with main database would fail • If we don’t even have names or DOBs • Main biases • Outcomes unrelated with deaths • Outcomes associated with deaths • Death as an outcome
THRio • Overall death rates: • From Sep ’03-Aug ’05 • 1.95/100 pys • From Sep ’05-Mar ’07 • 3.49/100 pys • The problem is: there is no reason to believe the rates are increasing • If we are missing during the study, it is much worse before it began! • Let’s see the rates per year…
THRio • To better understand what’s going on • Rates per 4-month periods from Jan ’03-Mar ’07 • Number of deaths • Person-years contribution • There are at least 3 things to be explained…
THRio • What about differences among units? • Let’s try to see the issues of person-time and deaths per units • Starting with the person-years…
THRio • The mean contribution is lower for half of the units • This is an operational issue of the way data is collected in this study • For the 10th and 11th periods, it doesn’t seem that bad • For deaths, if we exclude the 1st, 2nd and last periods, we can compare the rates per unit
THRio • Let’s see the death rates • Excluding the 1st, 2nd periods • Using 9th, 10th and 11th periods as the standard death rate • Rates and 95% CIs per unit • A little underestimated • Let’s compare the death rates in the other periods per unit • How it is evolving over time • 6th and 7th periods problem
THRio • In fact some units caught up earlier • Majority did not • Even the ones that are within the CIs are consistently lower than the reference rate • 7 units have similar rates • Problem • Some units remove charts from archives soon after the patient is known to be dead • Let’s look at those periods…
THRio • Let’s try to see all of them over time…
THRio • So far, it looks a bad idea to use the time period before the study began to study mortality • What could be done to improve that? • Run linkage with inactive patients • We wouldn’t have all the info • But could at least learn about vital status • Would help for Sep ’03 to Dec ‘05
THRio • What about the mortality after the study began? • My guess is that we will have about 3.6/100 pys • Let’s see where it comes from
THRio • Further steps • Compare that rate with rates in the literature • Stratify them by HAART use and CD4 counts • See if rates per stratum are reasonable • Also compare with other studies