Life Query
Life Query
SELECT
[TX_CURR].[PatientID],
[TX_CURR].[LastVisitAge],
[TX_CURR].[Pediatric],
[TX_CURR].[LastVisitdate],
[TX_CURR].[NumDaysDispensed@LastNumDaysDispensedDate] AS LastNumDaysDispensed,
LAST_VISIT.VisitTypeCode AS LastVisitTypeCode,
LAST_VISIT.NowPregnant,
LAST_VISIT.NowBreastfeeding,
[TX_CURR].[LastStatus],
[TX_CURR].[ExpectedNextVisitDate],
LAST_12MONTHS_HVL_TESTS.TestDate AS LastTestDate,
LAST_12MONTHS_HVL_TESTS.ResultNumeric AS LastResultNumeric,
LAST_12MONTHS_HVL_TESTS_RESULTS.TestDate AS LastTestDateWithResults,
LAST_12MONTHS_HVL_TESTS_RESULTS.ResultNumeric AS LastResultNumericWithResults,
FROM (((
(SELECT
VisitWithin12Months.PatientID
,LastVisitsDate.LastVisitdate
,ROUND(DATEDIFF('D',tblPatients.DateOfBirth,LastVisitsDate.LastVisitdate)/365, 1) AS
LastVisitAge
,LastARVStatusCode_AND_CurrentOnARTAtLastVisit.LastARVStatusCodeDate
,LastARVStatusCode_AND_CurrentOnARTAtLastVisit.LastARVStatusCode
,LastARVStatusCode_AND_CurrentOnARTAtLastVisit.CurrentOnARTAtLastVisit
,DateOfAppointmentAtLastDateAppointmentGiven.DateAppointmentGiven AS
LastDateAppointmentGiven
,DateOfAppointmentAtLastDateAppointmentGiven.LastDateAppointmentGiven AS
[DateOfAppointment@LastDateAppointmentGiven]
,CancelledDateOfAppointmentAtLastDateAppointmentGiven.LastDateAppointmentGive
n AS [CancelledDateOfAppointment@LastDateAppointmentGiven]
,ExpectedAppointmentDate.ExpectedAppointmentDate
,NumDaysDispensedAtLastNumDaysDispensedDate.LastNumDaysDispensedDate
,NumDaysDispensedAtLastNumDaysDispensedDate.LastNumDaysDispensed AS
[NumDaysDispensed@LastNumDaysDispensedDate]
,ExpectedNumDaysDispensedDate.ExpectedNumDaysDispensedDate
ExpectedNumDaysDispensedDate,
IIF(ExpectedAppointmentDate IS NOT NULL AND
ExpectedNumDaysDispensedDate IS NULL,
ExpectedAppointmentDate,
IIF(ExpectedAppointmentDate <
ExpectedNumDaysDispensedDate,
ExpectedNumDaysDispensedDate,
IIF(ExpectedAppointmentDate >=
ExpectedNumDaysDispensedDate,
ExpectedAppointmentDate,
NULL))))) AS ExpectedNextVisitDate
ExpectedNumDaysDispensedDate,
ExpectedAppointmentDate,
IIF(ExpectedAppointmentDate <
ExpectedNumDaysDispensedDate,
ExpectedNumDaysDispensedDate,
IIF(ExpectedAppointmentDate >=
ExpectedNumDaysDispensedDate,
ExpectedAppointmentDate,
NULL)))))) AS DateToBeLost
,LastStatus.Status AS LastStatus
,LastStatus.StatusDate AS LastStatusDate
,IIF(ROUND(DATEDIFF('D',tblPatients.DateOfBirth,LastVisitsDate.LastVisitdate)/365,
1)<15,'YES',NULL) AS Pediatric
,IIF(LastARVStatusCode_AND_CurrentOnARTAtLastVisit.CurrentOnARTAtLastVisit IS NOT
NULL
ExpectedNumDaysDispensedDate,
ExpectedAppointmentDate,
IIF(ExpectedAppointmentDate <
ExpectedNumDaysDispensedDate,
ExpectedNumDaysDispensedDate,
IIF(ExpectedAppointmentDate >=
ExpectedNumDaysDispensedDate,
ExpectedAppointmentDate,
FROM
(((((((((((((SELECT tblVisits.PatientID
FROM tblVisits
WHERE
LEFT JOIN
FROM tblVisits
ON VisitWithin12Months.PatientID = LastVisitsDate.PatientID)
LEFT JOIN
FROM tblVisits
ON LastARVStatusCodeDate.PatientID = VisitWithin12Months.PatientID)
FROM tblVisits
FROM
(SELECT
tblAppointments.PatientID
,tblAppointments.DateAppointmentGiven
,tblAppointments.DateOfAppointment
FROM tblAppointments
WHERE
ON LastDateAppointmentsGiven.PatientID = VisitWithin12Months.PatientID)
LEFT JOIN
FROM
FROM tblVisits
ON LastNumDaysDispensedDate.PatientID = VisitWithin12Months.PatientID)
INNER JOIN
FROM tblStatus
LEFT JOIN
(SELECT
tblAppointments.PatientID
,LastDateAppointmentsGiven.DateAppointmentGiven
,MAX(tblAppointments.DateOfAppointment) AS LastDateAppointmentGiven
FROM tblAppointments
INNER JOIN
FROM
(SELECT
tblAppointments.PatientID
,tblAppointments.DateAppointmentGiven
,tblAppointments.DateOfAppointment
FROM tblAppointments
WHERE
tblAppointments.PatientID = LastDateAppointmentsGiven.PatientID
AND tblAppointments.DateAppointmentGiven =
LastDateAppointmentsGiven.DateAppointmentGiven
GROUP BY tblAppointments.PatientID,
LastDateAppointmentsGiven.DateAppointmentGiven)
AS DateOfAppointmentAtLastDateAppointmentGiven
ON DateOfAppointmentAtLastDateAppointmentGiven.PatientID =
VisitWithin12Months.PatientID)
LEFT JOIN
(SELECT
tblAppointments.PatientID,
FROM tblAppointments
INNER JOIN
FROM
(SELECT
tblAppointments.PatientID
,tblAppointments.DateAppointmentGiven
,tblAppointments.DateOfAppointment
FROM tblAppointments
WHERE
tblAppointments.PatientID = LastDateAppointmentsGiven.PatientID
AND tblAppointments.DateAppointmentGiven =
LastDateAppointmentsGiven.DateAppointmentGiven
WHERE tblAppointments.Cancelled = -1
GROUP BY tblAppointments.PatientID)
AS CancelledDateOfAppointmentAtLastDateAppointmentGiven
ON CancelledDateOfAppointmentAtLastDateAppointmentGiven.PatientID =
VisitWithin12Months.PatientID)
FROM
(SELECT
tblAppointments.PatientID,
tblAppointments.DateAppointmentGiven,
tblAppointments.DateOfAppointment,
tblAppointments.Cancelled,
DATEDIFF("D", tblAppointments.DateAppointmentGiven,
tblAppointments.DateOfAppointment) AS d1
FROM tblAppointments
FROM tblVisits
INNER JOIN
FROM tblVisits
WHERE tblVisits.VisitDate<=[@EndDate]
GROUP BY tblVisits.PatientID) AS LV
ON LV.PatientID=tblVisits.PatientID AND LV.VisitDate=tblVisits.VisitDate) AS LastVisit ON
LastVisit.PatientID = tblAppointments.PatientID
WHERE
) AS A
ON ExpectedAppointmentDate.PatientID = VisitWithin12Months.PatientID)
FROM
(SELECT
tblVisits.PatientID,
tblVisits.NumDaysDispensed,
tblVisits.VisitDate,
LastVisitDate.VisitDate AS LastVisitDate
FROM tblVisits
FROM tblVisits
INNER JOIN
FROM tblVisits
WHERE tblVisits.VisitDate<=[@EndDate]
GROUP BY tblVisits.PatientID) AS LV
ON tblVisits.PatientID = LastVisitDate.PatientID
WHERE
ON ExpectedNumDaysDispensedDate.PatientID = VisitWithin12Months.PatientID)
LEFT JOIN
(SELECT
tblVisits.PatientID,
LastNumDayssDispensedDate.VisitDate AS LastNumDaysDispensedDate,
MAX(tblVisits.NumDaysDispensed) AS LastNumDaysDispensed
FROM tblVisits
INNER JOIN
FROM
FROM tblVisits
WHERE
ON
LastNumDayssDispensedDate.PatientID = tblVisits.PatientID
ON NumDaysDispensedAtLastNumDaysDispensedDate.PatientID =
VisitWithin12Months.PatientID)
LEFT JOIN
(SELECT
tblVisits.PatientID
,LastARVStatusCodeDates.LastARVStatusCodeDate
,tblVisits.ARVStatusCode AS LastARVStatusCode
FROM tblVisits
INNER JOIN
FROM tblVisits
ON
LastARVStatusCodeDates.PatientID = tblVisits.PatientID
AS LastARVStatusCode_AND_CurrentOnARTAtLastVisit
ON LastARVStatusCode_AND_CurrentOnARTAtLastVisit.PatientID =
VisitWithin12Months.PatientID) AS TX_CURR
LEFT JOIN
(SELECT tblTests.*
FROM tblTests
INNER JOIN
FROM tblTests
GROUP BY tblTests.PatientID) AS LT
ON LAST_12MONTHS_HVL_TESTS.PatientID = TX_CURR.PatientID)
LEFT JOIN
(SELECT tblTests.*
FROM tblTests
INNER JOIN
FROM tblTests
GROUP BY tblTests.PatientID) AS LT
ON LAST_12MONTHS_HVL_TESTS_RESULTS.PatientID = TX_CURR.PatientID)
LEFT JOIN
(SELECT
RECENTLY_INITIATED.PatientID,
RECENTLY_INITIATED.NowPregnant,
RECENTLY_INITIATED.NowBreastfeeding,
RECENTLY_INITIATED.DaysOnART
FROM
(SELECT
EARLIEST_VISITS.PatientID,
EARLIEST_VISITS.NowPregnant,
EARLIEST_VISITS.NowBreastfeeding,
IIF(EARLIEST_ON_ART_ANOTHER_CLINIC.PatientID IS NULL,
IIF (EARLIEST_ON_ART_ANOTHER_CLINIC.DateStartARTAtAnotherClinic
< EARLIEST_VISITS.VisitDate,
DATEDIFF("D",
EARLIEST_ON_ART_ANOTHER_CLINIC.DateStartARTAtAnotherClinic, [@EndDate]),
FROM
(SELECT tblVisits.*
FROM tblVisits
INNER JOIN
FROM tblVisits
GROUP BY tblVisits.PatientID) AS LV
LEFT JOIN
(SELECT tblStartARTanotherClinic.PatientID,
tblStartARTanotherClinic.DateStartARTAtAnotherClinic
FROM tblStartARTanotherClinic
ON EARLIEST_ON_ART_ANOTHER_CLINIC.PatientID =
EARLIEST_VISITS.PatientID) AS RECENTLY_INITIATED
ON NOT_ELIGIBLE_HVL.PatientID = TX_CURR.PatientID)