Longitudinal Followup it

From CaisisWiki

(Difference between revisions)
Jump to: navigation, search
(Caisis Demographics Contact Status)
(Stato del contatto - informazione demografica in Caisis)
Line 127: Line 127:
{|border="1"
{|border="1"
-
! PtContactStatus || Drop downActionItem Drop down
+
! PtContactStatus || azione/dato determinante
|-
|-
| Current  || CaseReviewed
| Current  || CaseReviewed

Revision as of 14:20, 22 December 2007


Contents

Introduzione

Lo scopo di questo progetto è di aggiornare costantemente i nostri database con le informazioni mediche correnti e lo stato vitale di tutti i pazienti. Si tratta di un processo attivo per mantenere quotidianamente aggiornato lo stato del follow-up dei nostri pazienti nel nostro sistema.

Il seguente diagramma riassume l'intero processo.

Image:FollowUpProcess_FlowDiagram.jpg

II. Selezionare i pazienti che necessitano di follow-up

Caisis è un database basato su web installato presso il Reparto Chirurgia del Memorial Sloan Kettering Cancer Center, New York, che memorizza le informazioni dei pazienti che vengono visitati. Ogni paziente ha uno "stato del contatto" che può essere visualizzato in Caisis, come mostrato di seguito. Selezionando uno stato del contatto dall'elenco otterremo una lista dei pazienti che si trovano in quella categoria. Lo stato di contatto di ogni paziente può anche essere visualizzato dal tab "Patient Info" cliccando sul tab "Patient Data" dopo aver selezionato il paziente.

Image:PatientLists_ContactStatus.jpg

Image:PatientData_ContactStatus.JPG

**NOTA: QUESTI NON SONO DATI REALI

A. Pazienti che non necessitano di nessun follow-up:

DoNotContactPerPt - Il paziente o la famiglia hanno chiesto di non essere contattati.

DoNotContactPerMD - Il medico ha richiesto di catattare questo paziente (ad esempio per i VIP).

Current - Le informazioni mediche su questo paziente sono disponibili nel database entro gli ultimi 14 mesi. Sono comunque ricompresi in questa categoria anche i pazienti deceduti, a meno che i loro parenti abbiano specificato di non voler essere contattati. Ogni notte, Caisis considera i pazienti che non hanno avuto registrazioni negli ultimi 14 mesi e li aggiorna con la categoria NeedVitalStatus, togliendo i pazienti che sono deceduti o che non hanno avuto interventi principali nel nostro sito.

LTF -Lost to Followup. I pazienti non hanno risposto dopo 3 tentativi di invio di un questionario, oppure non siamo in grado di avere informazioni aggiornate per contattarli.

B. Pazienti per cui sono necessari 2 step per determinare se necessitano di una lettera di follow-up:

NeedVitalStatus

Step 1: Pazienti che non hanno dati registrati negli ultimi 14 mesi, che non sono deceduti, che non sono in DoNotContactPerMD o DoNotContactPerPt, l'intervento principale è stato fatto presso il nostro sito, che non sono LTF, e che non hanno avuto uno stato vitale verificato da un registro dei tumori negli ultimi 60 giorni. Il registro istituzionale dei tumori deve essere controllato per vedere se c'è qualche dato registrato negli ultimi 14 mesi che non sia stato catturato in Caisis.

Step 2: Controllo dell'SSDI (Social Security Death Index)- pazienti che hanno avuto un controllo nel registro dei tumori negli ultimi 60 giorni, ma nessun controllo SSDI negli ultimi 60 giorni. L'SSDI potrebbe fornire informazioni sul decesso se il paziente è deceduto.

1. Controllo sul Registro di Tumori

In molti centri per la cura dei tumori, il Registro dei Tumori è responsabile di mantenere aggiornato il dato riguardante lo stato vitale del paziente. Questa informazione è memorizzata presso il proprio sito all'interno di record medici (EMR). Controllare il Registro dei Tumori implica cercare negli EMR aggiornamenti sullo stato vitale così come qualsiasi altra informazione medica che non sia già inserita in Caisis. Ricerca dalla lista dei record dei pazienti per trovare lo stato vitale e le recenti informazioni mediche.

a. Inserire informazioni mediche in Caisis

i. Stato vitale-Se il paziente è deceduto, inserire la data del decesso e la causa nel tab "Patient Info", e aggiornare lo stato di contatto del paziente a “Current”. Se ci sono nuove informazioni che indicano che il paziente è ancora vivo, inserire quella data e impostare lo stato come “ALIVE.”

ii. Informazioni mediche-Se vengono trovate informazioni mediche recenti che non siano già presenti in Caisis, inserirle negli appropriati tab del database, e valutare di nuovo se aggiornare o meno lo stato a “Current.”

2. Controllo SSDI

a. Per accedere all'SSDI, andare a cliccare il link nel sito SSDI. Se non hai mai fatto un SSDI prima, puoi cliccare sul link "SSDI tips". Una ricerca generica può essere fatta usando come chiave il cognome del paziente, il social security number, e la data di nascita. Se il paziente è deceduto, inserire la data del decesso e la causa nela tab "Patient Info" di Caisis.

b. Inserire nel tab "Actions", “VitalStatusChecked” dopo aver completato lo step 1 e lo step 2.

c. Notificare al Registro dei Tumori la notizia, se il paziente è deceduto.

NeedLetter1, 2, or 3

NeedLetter1- I pazienti che appartengono a questa categoria sono quelli che hanno avuto uno stato vitale controllato sul Registro dei Tumori, SSDI negli ultimi 60 giorni e i cui ultimi dati nell'elenco cronologico sono superiori a 14 mesi (ovvero non hanno registrazioni negli ultimi 14 mesi). Una volta che l'azione "VitalStatusChecked" è stata inserita nel tab "ACtions", Caisis automaticamente aggiorna lo stato del contatto del paziente a "NeedLetter1". Vengono effettuati tre tentativi di contattato del paziente. Se il paziente non ha risposto entro 90 giorni (indicati dal fatto che nessuna azione è stata inserita), e il Registro dei Tumori o l'SSDI non sono stati ancora controllati, lo stato del contatto è aggiornato automaticamente a "NeedVitalStatus" (seguendo le stesse istruzioni di prima). Una volta che il loro stato vitale è stato verificato, il loro stato di contatto dovrebbe essere modificato a "NeedLetter2". Gli stessi eventi si ripeteranno se il paziente non ha risposto dopo 90 giorni ("NeedVitalStatus", poi "NeedLetter3"). Si invita a non spedire lettere ai pazienti durante le festività.

Preparazione del materiale da spedire:

  • Stampa il cover delle lettere, i questionari di follow-up, le autorizzazioni e le etichette postali per ogni paziente usando Microsoft Access. Vedi wizard
  • Il cover dovrebbe avere l'intestazione del medico attuale e la corretta informazione di contatto.
  • Includi una busta di risposta con la lettera del questionario.
  • Tutta la documentazione dovrebbe essere inserita in una busta con il logo dell'istituto.


1. La corrispondenza ai pazienti che risiedono fuori dagli US dovrebbe essere spedita via UPS.

2. Avvisa il "Physician Office Assistants" circa a quali pazienti sono state inviate lettere e questionari. Avvisali a chi riferirsi se dovessero ricevere richieste di informazioni in merito. Inoltre, fornisci a loro una copia del questionario e della lettera.

3. Qualsiasi nuovo questionario e cover deve essere approvato dal medico responsabile prima di essere spedito.

IV. Ricezione di lettere e questionari

Apri il wizard "LetterReceived". Pagina 1-Elenchi dei numeri delle lettere ricevute, ritornate al mittente, e pendenti. Pagina 2-Istruzioni per processare le lettere così come sono ricevute Pagina 3-Istruzioni per inserire i dati dal questionario Pagina 4-Istruzioni/criteri per cambiare lo stato di contatto del paziente NeedMD_Contact

1) Chiama il l'ufficio del medico e spiega che invierai una richiesta di autorizzazione per accedere ai dati medici del paziente. Chiedi se preferiscono faxare l'autorizzazione o spedirla via posta. In quest'ultimo caso invia i cover al medico assiema al consenso firmato del paziente. In alternativa, se un borsista o un medico studente chiama l'ufficio del dottore, possono dare l'informazione per telefono. Copie delle registrazioni mediche sono comunque necessarie. 2) Una volta fatto, esegui un'azione "MD_Contacted" nel tab Azioni. 3) Una volta che le registrazioni mediche sono state ricevute, inserisci i dati, o cambia lo stato di contatto del paziente a "NeedDataEntry", se il dato non può essere inserito immediatamente.

NeedMD_ToCallPt

Se il paziente non ha risposto dopo aver spedito tre lettere, cambia lo stato di contatto del paziente a NeedMD_ToCallPt-pazienti che sono stati nella categoria Letter3_Sent e che non hanno azioni inserite da 6 settimane. Gli MD (principalmente ricercatori borsisti) provvederanno a chiamare il paziente per raccoglierne la storia, le informazioni di contatto del medico, ed ottenere l'autorizzazione.

Segue una lsita di domande pertinenti da chiedere al paziente se un borsista o uno studente medico chiama un paziente. Queste possono anche essere utilizzate quando chiamano un dottore per ottenere informazioni sul paziente:

    1. Altri trattamenti dopo RP?
    2. Ha avuto qualche problema urinando dopo l'intervento (difficoltà di passaggio dell'urina; ritenzione urinaria). Ha subito qualche trattamento di stenosi uretrale?
    3. Ha subito altre procedure alla prostata inerenti al tumore, problemi/disfunzioni urinarie?
    4. Indossa pannoloni per perdita di urina/incontinenza? Quanti pannoloni cambia al giorno? Quanti di notte? Ha subito qualche trattamento per l'incontinenza (AUS)?
    5. Ha erezioni spontanee sufficienti per il rapporto? E' in grado di avere erezioni senza supporti? Se utilizza supporti, quali sta usando? Se prende il Viagra, in quali dosi lo sta assumendo? Utilizza terapia iniettiva o supposte uretrali? Ha subito qualche trattamento chirurgico per l'impotenza (protesi)?
    6. Sta eseguendo esami di Follow up in laboratorio dopo le ultime registrazioni presso il nostro istituto? (total PSA, testosterone, free PSA)
    7. E' seguito da un medico? Ci può fornire l'indirizzo del medico e inviarle una richiesta di autorizzazione per acquisire i dati dal suo medico?
    8. Le farebbe piacere ricevere un questionario in cui rispondere sul suo stato generale di salute e funzione urologica dopo l'intervento?
  1. Dopo aver chiamato il paziente, inserisci l'aizione Patient_WasCalled nel tab delle azioni.
  2. Inserisci le informazioni aggiornate nel database.
  3. Cambia lo stato di contatto del paziente a
    • Current se non è necessario contattare il loro medico, ed hai informazioni aggiornate.
    • NeedPtAuthorization se devi inviare un modulo "Release of Information" da firmare.
    • NeedMD_Contact se devi contattare il loro medico.

NeedPtContactInfo

Se una lettera viene resa al mittente come "non consegnabile", e non ci sono ulteriori indirizzi, esegui una azione ReturnedToSender. Poi cambia lo stato di contatto del paziente a NeedPtContactInfo. I seguenti step possono essere intrapresi per ottenere le loro informazioni di contatto. Esegui un'azione dopo ogni step intrapreso.

  1. Chiama i numeri elencati nel database o DMS (numeri del paziente, numeri di contatto di emergenza).
  2. Chima il servizio informazioni (411) per verificare se ci sono iscritti nella loro area telefonica.
  3. Prova a contattare i loro medici elencati per vedere se loro hanno informazioni di contatto.
  4. Cerca su internet.
  5. Prova sul Registro dei Tumori presso il tuo sito per vedere se possono aiutarti. Possono fornirti l'ultimo stato vitale di cui dispongono per il paziente o la sua ultima informazione di contatto.
  6. Se ottieni una informazione di contatto aggiornata attraverso questi passi, aggiorna Caisis, esegui l'azione AddressUpdated, e poi cambia lo stato di contatto del paziente ancora a NeedLetter1, 2, or 3, in base a dove ci si trova nel processo.
  7. Se non ottiene alcuna informazione di contatto dopo questi passi, aggiorna il contatto nel database a LTF “Lost to follow-up”.

Ordini

  1. Ordinare lettere e buste istituzionali intestate
  2. Le buste per la risposta sono ordinate come segue:

Stato del contatto - informazione demografica in Caisis

PtContactStatus azione/dato determinante
Current CaseReviewed
DoNotContactPerMD
DoNotContactPerPt DataReceived
Letter1_Sent  
Letter2_Sent Letter2_Sent
Letter3_Sent Letter3_Sent
LostToFollowup PtWebSearched
MD_Contacted MD_Contacted
NeedDataEntry DataEntered
NeedLetter1 Letter1_Sent
NeedLetter2 SentToCDB
NeedLetter3 SentToEMR
NeedMD_Contact VitalStatusChecked
NeedMD_ToCall PtWasCalled
NeedPtAuthorization  
NeedPtContactInfo PtContactInfoUpdated
NeedVitalStatus LetterReturnedToSender

Trigger sulla tabella "Actions"

Ogni volta che un utente modifica o inserisce un record nella tabella "Actions" (Risposta immediata- Dovrebbe rimanere simplice o quanto più semplice)

UPDATE Patients SET PtContactStatus = CASE WHEN i.ActionItem = 'VitalStatusChecked' AND PtContactStatus = 'NeedVitalStatus' THEN 'Current' WHEN i.ActionItem = 'Letter1_Sent' AND PtContactStatus = 'NeedLetter1' THEN 'Letter1_Sent' WHEN i.ActionItem = 'Letter2_Sent' AND PtContactStatus = 'NeedLetter2' THEN 'Letter2_Sent' WHEN i.ActionItem = 'Letter3_Sent' AND PtContactStatus = 'NeedLetter3' THEN 'Letter3_Sent' WHEN i.ActionItem = 'LetterReturnedToSender' AND PtContactStatus LIKE 'Letter[1-3]%Sent' THEN 'NeedPtContactInfo' WHEN i.ActionItem = 'MD_Contacted' AND PtContactStatus = 'NeedMD_Contact' THEN 'MD_Contacted' WHEN i.ActionItem = 'PtWasCalled' AND PtContactStatus = 'NeedMD_ToCallPt' THEN 'Current' WHEN i.ActionItem = 'DataReceived' AND PtContactStatus IN ('Letter1_Sent','Letter2_Sent','Letter3_Sent','MD_Contacted') THEN 'NeedDataEntry' WHEN i.ActionItem = 'DataReceived' AND PtContactStatus = 'NeedPtAuthorization' THEN 'NeedMD_Contact' WHEN i.ActionItem = 'DataEntered' AND PtContactStatus = 'NeedDataEntry' THEN 'Current' WHEN i.ActionItem = 'PtContactInfoUpdated' AND PtContactStatus = 'NeedPtContactInfo' THEN 'Current' END FROM Patients INNER JOIN Inserted i ON Patients.PatientId = i.PatientId WHERE PtContactStatus <> CASE WHEN i.ActionItem = 'VitalStatusChecked' AND PtContactStatus = 'NeedVitalStatus' THEN 'Current' WHEN i.ActionItem = 'Letter1_Sent' AND PtContactStatus = 'NeedLetter1' THEN 'Letter1_Sent' WHEN i.ActionItem = 'Letter2_Sent' AND PtContactStatus = 'NeedLetter2' THEN 'Letter2_Sent' WHEN i.ActionItem = 'Letter3_Sent' AND PtContactStatus = 'NeedLetter3' THEN 'Letter3_Sent' WHEN i.ActionItem = 'LetterReturnedToSender' AND PtContactStatus LIKE 'Letter[1-3]%Sent' THEN 'NeedPtContactInfo' WHEN i.ActionItem = 'MD_Contacted' AND PtContactStatus = 'NeedMD_Contact' THEN 'MD_Contacted' WHEN i.ActionItem = 'PtWasCalled' AND PtContactStatus = 'NeedMD_ToCallPt' THEN 'Current' WHEN i.ActionItem = 'DataReceived' AND PtContactStatus IN ('Letter1_Sent','Letter2_Sent','Letter3_Sent','MD_Contacted') THEN 'NeedDataEntry' WHEN i.ActionItem = 'DataReceived' AND PtContactStatus = 'NeedPtAuthorization' THEN 'NeedMD_Contact' WHEN i.ActionItem = 'DataEntered' AND PtContactStatus = 'NeedDataEntry' THEN 'Current' WHEN i.ActionItem = 'PtContactInfoUpdated' AND PtContactStatus = 'NeedPtContactInfo' THEN 'Current' END

Job notturno (Risposta ritardata, può essere completta)

CREATE PROCEDURE dbo.spFollowupUpdatePtContactStatus AS BEGIN TRANSACTION --Change to current if null UPDATE Patients SET PtContactStatus = 'Current' WHERE PtContactStatus = '0' OR PtContactStatus IS NULL /* If they are Current and (no data in the last 14 months or dead) and (vital status has not been checked in the last 60 days) then change to NeedVitalStatus

  • /

UPDATE Patients SET PtContactStatus = 'NeedVitalStatus' FROM Patients LEFT OUTER JOIN FJ_CurrentDataView ON Patients.PatientId = FJ_CurrentDataView.PatientId LEFT OUTER JOIN FJ_VitalStatusCheckedView ON Patients.PatientId = FJ_VitalStatusCheckedView.PatientId WHERE PtContactStatus = 'Current' AND FJ_CurrentDataView.PatientId IS NULL AND FJ_VitalStatusCheckedView.PatientId IS NULL /* If they are Current and (no data in the last 14 months or dead) and (vital status has been checked in the last 60 days) then change to next letter/contact, If the last LetterX_Sent was more than 90 days ago then move to NeedLetter1 so can restart the process */ UPDATE Patients SET PtContactStatus =CASE WHEN LastLetterSent IS NULL THEN 'NeedLetter1' WHEN LastLetterSent LIKE 'Letter1%Sent' THEN 'NeedLetter2' WHEN LastLetterSent LIKE 'Letter2%Sent' THEN 'NeedLetter3' WHEN LastLetterSent LIKE 'Letter3%Sent' THEN 'NeedPtContactInfo' END FROM Patients LEFT OUTER JOIN FJ_CurrentDataView ON Patients.PatientId = FJ_CurrentDataView.PatientId INNER JOIN FJ_VitalStatusCheckedView ON Patients.PatientId = FJ_VitalStatusCheckedView.PatientId LEFT OUTER JOIN FJ_LastLetterSentView ON Patients.PatientId = FJ_LastLetterSentView.PatientId WHERE PtContactStatus = 'Current' AND FJ_CurrentDataView.PatientId IS NULL /* If they are LetterX_Sent or NeedLetterX or NeedVitalStatus and (no LetterX_Sent in the last 90 days) and (have data in the last 14 months or dead) change to Current */ UPDATE Patients SET PtContactStatus = 'Current' FROM Patients INNER JOIN FJ_CurrentDataView ON Patients.PatientId = FJ_CurrentDataView.PatientId LEFT OUTER JOIN FJ_RecentLetterSentView ON Patients.PatientId = FJ_RecentLetterSentView.PatientId WHERE (PtContactStatus LIKE 'Letter[1-3]%Sent' OR PtContactStatus LIKE 'NeedLetter[1-3]' OR PtContactStatus = 'NeedVitalStatus') AND FJ_RecentLetterSentView.PatientId IS NULL /* If they are LetterX_Sent only and (no LetterX_Sent in the last 90 days) and (no data in the last 14 months or dead) and (vital status has not been checked in the last 60 days) change to NeedVitalStatus

  • /

UPDATE Patients SET PtContactStatus = 'NeedVitalStatus' FROM Patients LEFT OUTER JOIN FJ_CurrentDataView ON Patients.PatientId = FJ_CurrentDataView.PatientId LEFT OUTER JOIN FJ_RecentLetterSentView ON Patients.PatientId = FJ_RecentLetterSentView.PatientId LEFT OUTER JOIN FJ_VitalStatusCheckedView ON Patients.PatientId = FJ_VitalStatusCheckedView.PatientId WHERE PtContactStatus LIKE 'Letter[1-3]%Sent' AND FJ_CurrentDataView.PatientId IS NULL AND FJ_RecentLetterSentView.PatientId IS NULL AND FJ_VitalStatusCheckedView.PatientId IS NULL /* If they are LetterX_Sent and (no LetterX_Sent in the last 90 days) and (no data in the last 14 months or dead) and (vital status has been checked in the last 60 days) then change to next letter/contact */ UPDATE Patients SET PtContactStatus =CASE WHEN PtContactStatus LIKE 'Letter1%Sent' THEN 'NeedLetter2' WHEN PtContactStatus LIKE 'Letter2%Sent' THEN 'NeedLetter3' WHEN PtContactStatus LIKE 'Letter3%Sent' THEN 'NeedPtContactInfo' END FROM Patients LEFT OUTER JOIN FJ_CurrentDataView ON Patients.PatientId = FJ_CurrentDataView.PatientId LEFT OUTER JOIN FJ_RecentLetterSentView ON Patients.PatientId = FJ_RecentLetterSentView.PatientId INNER JOIN FJ_VitalStatusCheckedView ON Patients.PatientId = FJ_VitalStatusCheckedView.PatientId WHERE PtContactStatus LIKE 'Letter[1-3]%Sent' AND FJ_CurrentDataView.PatientId IS NULL AND FJ_RecentLetterSentView.PatientId IS NULL /* If patient is dead change ContactStatus to Current but only if ContactStatus is not already Current and ContactStatus NOT LIKE '%DoNotContact%'

  • /

UPDATE Patients SET PtContactStatus = 'Current' FROM Patients WHERE (PtContactStatus <> 'Current' AND PtContactStatus NOT LIKE '%DoNotContact%') AND (PtDeathDateText IS NOT NULL) COMMIT TRANSACTION GO


Queries utilizzate dal job notturno

CREATE VIEW dbo.FJ_CurrentDataView AS --Not all tables are represented here Includes deceased patients SELECT a.PatientId AS PatientId FROM ( SELECT BxDate AS SortDate, 'Biopsies' AS TableName, PatientId FROM Biopsies WHERE BxDate > DATEADD(m,-14,GETDATE()) UNION SELECT BxDate AS SortDate, 'BiopsiesProstate' AS TableName, PatientId FROM BiopsiesProstate WHERE BxDate > DATEADD(m,-14,GETDATE()) UNION SELECT ClinStageDate, 'ClinicalStages', PatientId FROM ClinicalStages WHERE ClinStageDate > DATEADD(m,-14,GETDATE()) UNION SELECT DxDate, 'Diagnostics', PatientId FROM Diagnostics WHERE DxDate > DATEADD(m,-14,GETDATE()) UNION SELECT LabDate, 'LabTests', PatientId FROM LabTests WHERE LabDate > DATEADD(m,-14,GETDATE()) UNION SELECT MedTxDate, 'MedicalTherapy', PatientId FROM MedicalTherapy WHERE MedTxDate > DATEADD(m,-14,GETDATE()) UNION SELECT OpDate, 'Procedures', PatientId FROM Procedures WHERE OpDate > DATEADD(m,-14,GETDATE()) UNION SELECT SurgDate, 'Surgery', PatientId FROM Surgeries WHERE SurgDate > DATEADD(m,-14,GETDATE()) UNION SELECT EndoDate, 'Endoscopy', PatientId FROM ProcEndoscopies WHERE EndoDate > DATEADD(m,-14,GETDATE()) UNION SELECT CytoDate, 'Cytology', PatientId FROM Cytologies WHERE CytoDate > DATEADD(m,-14,GETDATE()) UNION SELECT BrachyDate, 'BrachyTherapy', PatientId FROM BrachyTherapy WHERE BrachyDate > DATEADD(m,-14,GETDATE()) UNION SELECT RadTxDate, 'RadiationTherapy', PatientId FROM RadiationTherapy WHERE RadTxDate > DATEADD(m,-14,GETDATE()) UNION SELECT StatusDate, 'Status', PatientId FROM Status WHERE StatusDate > DATEADD(m,-14,GETDATE()) UNION SELECT PtProtocolStatusDate, 'Protocols', PatientId FROM PatientProtocols INNER JOIN PatientProtocolStatus ON PatientProtocolStatus.PatientProtocolId = PatientProtocols.PatientProtocolId WHERE PtProtocolStatusDate > DATEADD(m,-14,GETDATE()) UNION SELECT EncDate, 'Encounters', PatientId FROM Encounters WHERE EncDate > DATEADD(m,-14,GETDATE()) UNION SELECT SurveyDate, 'Surveys', PatientId FROM Surveys WHERE SurveyDate > DATEADD(m,-14,GETDATE()) --Add in deceased patients classified as having a DeathDateText UNION SELECT PtDeathDate, 'Patients',PatientId FROM Patients WHERE (PtDeathDateText IS NOT NULL) ) AS a GROUP BY a.PatientId CREATE VIEW dbo.FJ_VitalStatusCheckedView AS SELECT DISTINCT PatientId FROM Actions WHERE ActionItem = 'VitalStatusChecked' AND ActionDate >= DATEADD(d, - 60, GETDATE()) CREATE VIEW dbo.FJ_LastLetterSentView AS SELECT Actions.PatientId AS PatientId, ActionItem AS LastLetterSent FROM ( SELECT MAX(ActionDate) AS LastLetterDate, PatientId FROM Actions WHERE (ActionItem LIKE 'Letter[1-3]%Sent') AND ActionDate >= DATEADD(d, - 90, GETDATE()) GROUP BY PatientId ) AS a INNER JOIN Actions ON a.PatientId = Actions.PatientId AND a.LastLetterDate = Actions.ActionDate WHERE (ActionItem LIKE 'Letter[1-3]%Sent') CREATE VIEW dbo.FJ_RecentLetterSentView AS SELECT DISTINCT PatientId FROM Actions WHERE ActionItem LIKE 'Letter[1-3]%Sent' AND ActionDate >= DATEADD(d, - 90, GETDATE())

Personal tools