Abstract
Colorectal cancer is the second most common cause of cancer-related death in Australia. Biennial faecal occult blood test can reducec colorectal cancer mortality by 15-25%. This project measures the proportion of eligible patients at the Kensington site screened for colorectal cancer over 2017-2019. A mechanism to improve colorectal screening is proposed. The techniques used in this project are generalizable to other practice quality improvement activities.Australia has the second-highest incidence of bowel cancer in the world. Each year around 17,000 Australians are diagnosed with bowel cancer. About 1 in 19 men and 1 in 28 women will develop bowel cancer before the age of 75. Bowel cancer making is the second most common cause of cancer-related death in Australia after lung cancer. If found early, 9 out of 10 cases of bowel cancer can be successfully treated1.
Biennial faecal occult blood test (FOBT) can reduce colorectal cancer (CRC) mortality by 15-25%2 3. Organised screening by iFOBT is recommended for the asymptomatic (average risk) population from 50 years of age every two years until 74 years of age4.
The Australian government supports screening for colorectal cancer screening with the National Bowel Cancer Screening Program5, and Australian primary care providers are also encouraged to screen for colorectal cancer in eligible patients by the RACGP’s ‘Red Book’ guidelines6.
Despite the effectiveness of faecal occult blood testing in early detection and prevention of mortality from colorectal cancer, 53% of invitees to the National Bowel Cancer Screening Program do not undertake the test7. Among 30070 eligible patients seen in the week beginning 8th July 2019 by general practices using “Doctor’s Control Panel”8 computer-assisted decision making tool, just 9881 (33%) were recorded as having a faecal occult blood test or colonoscopy in the preceding two years. 50% had no record of bowel cancer screening at any time. In the same week, among the 464 patients seen in coHealth medical clinics, just 154 (33%) were recorded as having a faecal occult blood test or colonoscopy in the preceding two years, 49% having no record of any bowel cancer screening test at any time.
The proportion of eligible 50-75 year olds who had a recorded colorectal cancer screening, either faecal occult blood testing or colonoscopy, during the preceding two years has increased gradually at the Kensington site of coHealth from 23% in January 2017 to 30% in July 2019.
Approximately 70% of eligible patients each week seen at the practice leave without a record of having been screened for colorectal cancer, it is proposed that patients booked in each day are identified for potential Zostavax immunization eligibility.
For every 10000 patients screened annually, it is estimated that 500 will be found to have occult bleeding, 15 to 25 will have colorectal cancer, 100 will have an advanced adenoma and 100 to 150 a less advanced adenoma9. Each year 3 to 5 deaths from bowel cancer will be prevented and 36 to 60 life years will be saved.
In the Kensington clinic context, which has about 850 eligible patients, an absolute 20% improvement in screening would result in an extra 85 patients being screened annually. Maintained for ten years this would result in approximately 10 advanced adenomas detected, 3 to 5 life-years saved and 0.4 deaths prevented.
A Best Practice SQL script which identifies non-screened eligible patients is presented at the end of this document. It is proposed to identify patients at the beginning of each day for a month and continue to evaluate the proportion of eligible patients appropriately screened for colorectal cancer.
Modified variations of these tools can be used to identify patients for whom other health screening activities are recommended, and both measure and monitor practice performance in these activities. Examples include bowel cancer or cervical cancer screening, or early detection of chronic kidney disease among patients with diabetes.
Best Practice (up to July 2019) ) provides data of the proportion of ‘active’ patients who have been screened for colorectal cancer. Patients are defined as ‘active’ if they have three contacts over two years. Some ‘contacts’ may be trivial, e.g. correspondence and telephone contacts with third parties.
Full data and analysis R-code can be found on Github.
The proportion of active patients aged 50-75 years who have a record of colorectal screening during the previous two years (currently, ‘two years’ applies both to faecal occult blood scrrening and colonoscopy).
Main data source is extracted using SQL code in Best Practice.
Proportion of patients recorded as having been screened within the previous two years has gradually increased from 23% (January 2017) to 30% (July 2019).
Placeholder - not yet implemented.
sqlK.query <-
"SELECT *
FROM BPS_Patients
WHERE StatusText = 'Active'
AND DOB BETWEEN DateAdd(Year,-75,'%s') AND DateAdd(Year,-50,'%s')
-- current age 50 to 75 years
AND InternalID IN (SELECT InternalID
FROM Visits v
INNER JOIN (VALUES('%%bhagwat%%'),('%%fong%%'),('%%ekanayake%%'),('%%shoesmith%%'),
('%%plastow%%'),('%%samarawickrama%%'),('%%obeyesekere%%'),('%%chaves%%'),
('%%ryan%%'),('%%mikhail%%'),('%%haynes%%'),('%%buckwell%%'),('%%maxwell%%'),
('%%grace ho%%'),('%%bullen%%'),('%%lambrou%%'),('%%zeigler%%'))
AS ProviderName(Name)
ON v.DrName LIKE ProviderName.Name
WHERE VisitDate BETWEEN DateAdd(Year,-2,'%s') AND '%s'
AND RecordStatus = 1
GROUP BY internalid
HAVING count(internalid) >= 3)
AND (InternalID IN (SELECT InternalID
FROM Investigations
INNER JOIN (VALUES ('%%Faecal Occult Blood%%'),('%%FOB%%'),('%%FOBT%%'),
('%%OCCULT BLOOD%%'),('%%faecal human haemoglobin%%'),
('%%OCB NATIONAL SCREENING%%'),('%%FHB%%'),('%%FAECAL BLOOD%%'),
('%%OCCULT%%'),('%%Faecal Immunochemical Test%%'),('%%FAECAL HAEMOGLOBIN%%'),
('%%colonoscopy%%'),('%%colonoscope%%')
) AS tests(fobtnames)
ON TestName LIKE tests.fobtnames
WHERE Reportdate BETWEEN DateAdd(Year,-2,'%s') AND '%s'
)
OR (InternalID IN (SELECT InternalID
FROM CorrespondenceIn
INNER JOIN (VALUES ('%%Faecal Occult Blood%%'),('%%FOB%%'),('%%FOBT%%'),
('%%OCCULT BLOOD%%'),('%%faecal human haemoglobin%%'),
('%%OCB NATIONAL SCREENING%%'),('%%FHB%%'),('%%FAECAL BLOOD%%'),
('%%OCCULT%%'),('%%Faecal Immunochemical Test%%'),('%%FAECAL HAEMOGLOBIN%%'),
('%%colonoscopy%%'),('%%colonoscope%%')
) AS tests(fobtnames)
ON Subject LIKE tests.fobtnames
WHERE Correspondencedate BETWEEN DateAdd(Year,-2,'%s') and '%s'
)
)
OR (InternalID IN (SELECT InternalID
FROM CorrespondenceIn
INNER JOIN (VALUES ('%%Faecal Occult Blood%%'),('%%FOB%%'),('%%FOBT%%'),
('%%OCCULT BLOOD%%'),('%%faecal human haemoglobin%%'),
('%%OCB NATIONAL SCREENING%%'),('%%FHB%%'),('%%FAECAL BLOOD%%'),
('%%OCCULT%%'),('%%Faecal Immunochemical Test%%'),('%%FAECAL HAEMOGLOBIN%%'),
('%%colonoscopy%%'),('%%colonoscope%%')
) AS tests(fobtnames)
ON Detail LIKE tests.fobtnames
WHERE Correspondencedate BETWEEN DateAdd(Year,-2,'%s') AND '%s'
)
)
OR (InternalID IN (SELECT InternalID
FROM ReportValues
WHERE LoincCode IN ('2335-8','27396-1','14563-1','14564-9','14565-6',
'12503-9','12504-7','27401-9','27925-7','27926-5',
'57905-2','56490-6','56491-4','29771-3')
AND ReportDate BETWEEN DateAdd(Year,-2,'%s') AND '%s'
)
))
ORDER BY surname, firstname
"
sql.query <-
"SELECT *
FROM BPS_Patients
WHERE StatusText = 'Active'
AND DOB BETWEEN DateAdd(Year,-75,'%s') AND DateAdd(Year,-50,'%s')
-- current age 50 to 75 years
AND InternalID IN (SELECT InternalID
FROM Visits v
INNER JOIN (VALUES('%%membrey%%'),('%%halewood%%'),('%%maccartney%%'),('%%coles%%'),('%%dowd%%'),
('%%winter%%'),('%%wells%%'),('%%wiener%%'),('%%rainsford%%'),('%%tomlinson%%'),('%%walker%%'),
('%%linton%%'),('%%victoria%%'),('%%gordon%%'),('%%johnston%%'),('%%mascarenhas%%'),('%%khaira%%'),
('%%green%%'),('%%wilding%%'),('%%mancey-jones%%'),('%%gardiner%%'),('%%pike%%'),('%%scopel%%'),
('%%ohnmar%%'),('%%rengasamy%%'),('%%taylor%%'),('%%leung%%'),('%%guo%%'),('%%bui%%'),
('%%whiting%%'),('%%keaney%%'),('%%bourke%%'),('%%hewett%%'),('%%anderson%%'),('%%whiting%%'),
('%%bramwell%%'),('%%khaira%%'))
AS ProviderName(Name)
ON v.DrName LIKE ProviderName.Name
WHERE VisitDate BETWEEN DateAdd(Year,-2,'%s') AND '%s'
AND RecordStatus = 1
GROUP BY internalid
HAVING count(internalid) >= 3)
AND (InternalID IN (SELECT InternalID
FROM Investigations
INNER JOIN (VALUES ('%%Faecal Occult Blood%%'),('%%FOB%%'),('%%FOBT%%'),
('%%OCCULT BLOOD%%'),('%%faecal human haemoglobin%%'),
('%%OCB NATIONAL SCREENING%%'),('%%FHB%%'),('%%FAECAL BLOOD%%'),
('%%OCCULT%%'),('%%Faecal Immunochemical Test%%'),('%%FAECAL HAEMOGLOBIN%%'),
('%%colonoscopy%%'),('%%colonoscope%%')
) AS tests(fobtnames)
ON TestName LIKE tests.fobtnames
WHERE Reportdate BETWEEN DateAdd(Year,-2,'%s') AND '%s'
)
OR (InternalID IN (SELECT InternalID
FROM CorrespondenceIn
INNER JOIN (VALUES ('%%Faecal Occult Blood%%'),('%%FOB%%'),('%%FOBT%%'),
('%%OCCULT BLOOD%%'),('%%faecal human haemoglobin%%'),
('%%OCB NATIONAL SCREENING%%'),('%%FHB%%'),('%%FAECAL BLOOD%%'),
('%%OCCULT%%'),('%%Faecal Immunochemical Test%%'),('%%FAECAL HAEMOGLOBIN%%'),
('%%colonoscopy%%'),('%%colonoscope%%')
) AS tests(fobtnames)
ON Subject LIKE tests.fobtnames
WHERE Correspondencedate BETWEEN DateAdd(Year,-2,'%s') and '%s'
)
)
OR (InternalID IN (SELECT InternalID
FROM CorrespondenceIn
INNER JOIN (VALUES ('%%Faecal Occult Blood%%'),('%%FOB%%'),('%%FOBT%%'),
('%%OCCULT BLOOD%%'),('%%faecal human haemoglobin%%'),
('%%OCB NATIONAL SCREENING%%'),('%%FHB%%'),('%%FAECAL BLOOD%%'),
('%%OCCULT%%'),('%%Faecal Immunochemical Test%%'),('%%FAECAL HAEMOGLOBIN%%'),
('%%colonoscopy%%'),('%%colonoscope%%')
) AS tests(fobtnames)
ON Detail LIKE tests.fobtnames
WHERE Correspondencedate BETWEEN DateAdd(Year,-2,'%s') AND '%s'
)
)
OR (InternalID IN (SELECT InternalID
FROM ReportValues
WHERE LoincCode IN ('2335-8','27396-1','14563-1','14564-9','14565-6',
'12503-9','12504-7','27401-9','27925-7','27926-5',
'57905-2','56490-6','56491-4','29771-3')
AND ReportDate BETWEEN DateAdd(Year,-2,'%s') AND '%s'
)
))
ORDER BY surname, firstname
"
for (mydate in c("20190701")) {
cat(sprintf(sql.query, mydate, mydate, mydate, mydate, mydate, mydate,
mydate, mydate, mydate, mydate, mydate, mydate))
cat("\n")
}
SELECT *
FROM BPS_Patients
WHERE StatusText = 'Active'
AND DOB BETWEEN DateAdd(Year,-75,GetDate()) AND DateAdd(Year,-50,GetDate())
-- current age 50 to 75 years
AND InternalID IN (SELECT InternalID
FROM Appointments
INNER JOIN (VALUES('%bhagwat%'),('%fong%'),('%ekanayake%'),('%shoesmith%'),
('%plastow%'),('%samarawickrama%'),('%obeyesekere%'),('%chaves%'),
('%ryan%'),('%mikhail%'),('%haynes%'),('%buckwell%'),('%maxwell%'),
('%grace ho%'),('%bullen%'),('%lambrou%'),('%zeigler%')) AS providers(Name)
ON dbo.BPSPayee(UserID) LIKE providers.Name
-- appointment with specified providers
WHERE AppointmentDate = '20181107'
-- appointment on specified date
AND RecordStatus = 1
)
AND (InternalID NOT IN (SELECT InternalID
FROM Investigations
INNER JOIN (VALUES ('%Faecal Occult Blood%'),('%FOB%'),('%FOBT%'),
('%OCCULT BLOOD%'),('%faecal human haemoglobin%'),
('%OCB NATIONAL SCREENING%'),('%FHB%'),('%FAECAL BLOOD%'),
('%OCCULT%'),('%Faecal Immunochemical Test%'),('%FAECAL HAEMOGLOBIN%'),
('%colonoscopy%'),('%colonoscope%')
) AS tests(fobtnames)
ON TestName LIKE tests.fobtnames
WHERE Reportdate >= DateAdd(Year,-2,GetDate())
)
AND (InternalID NOT IN (SELECT InternalID
FROM CorrespondenceIn
INNER JOIN (VALUES ('%Faecal Occult Blood%'),('%FOB%'),('%FOBT%'),
('%OCCULT BLOOD%'),('%faecal human haemoglobin%'),
('%OCB NATIONAL SCREENING%'),('%FHB%'),('%FAECAL BLOOD%'),
('%OCCULT%'),('%Faecal Immunochemical Test%'),('%FAECAL HAEMOGLOBIN%'),
('%colonoscopy%'),('%colonoscope%')
) AS tests(fobtnames)
ON Subject LIKE tests.fobtnames
WHERE Correspondencedate >= DateAdd(Year,-2,GetDate())
)
)
AND (InternalID NOT IN (SELECT InternalID
FROM CorrespondenceIn
INNER JOIN (VALUES ('%Faecal Occult Blood%'),('%FOB%'),('%FOBT%'),
('%OCCULT BLOOD%'),('%faecal human haemoglobin%'),
('%OCB NATIONAL SCREENING%'),('%FHB%'),('%FAECAL BLOOD%'),
('%OCCULT%'),('%Faecal Immunochemical Test%'),('%FAECAL HAEMOGLOBIN%'),
('%colonoscopy%'),('%colonoscope%')
) AS tests(fobtnames)
ON Detail LIKE tests.fobtnames
WHERE Correspondencedate >= DateAdd(Year,-2,GetDate())
)
)
AND (InternalID NOT IN (SELECT InternalID
FROM ReportValues
WHERE LoincCode IN ('2335-8','27396-1','14563-1','14564-9','14565-6',
'12503-9','12504-7','27401-9','27925-7','27926-5',
'57905-2','56490-6','56491-4','29771-3')
AND ReportDate >= DateAdd(Year,-2,GetDate())
)
))
ORDER BY surname, firstname
SELECT *
FROM BPS_Patients
WHERE StatusText = 'Active'
AND DOB BETWEEN DateAdd(Year,-75,GetDate()) AND DateAdd(Year,-50,GetDate())
-- current age 50 to 75 years
AND InternalID IN (SELECT InternalID
FROM Appointments
INNER JOIN (VALUES('%bhagwat%'),('%fong%'),('%ekanayake%'),('%shoesmith%'),
('%plastow%'),('%samarawickrama%'),('%obeyesekere%'),('%chaves%'),
('%ryan%'),('%mikhail%'),('%haynes%'),('%buckwell%'),('%maxwell%'),
('%grace ho%'),('%bullen%'),('%lambrou%'),('%zeigler%')) AS providers(Name)
ON dbo.BPSPayee(UserID) LIKE providers.Name
-- appointment with specified providers
WHERE AppointmentDate = '20181107'
-- appointment on specified date
AND RecordStatus = 1
)
AND (InternalID IN (SELECT InternalID
FROM Investigations
INNER JOIN (VALUES ('%Faecal Occult Blood%'),('%FOB%'),('%FOBT%'),
('%OCCULT BLOOD%'),('%faecal human haemoglobin%'),
('%OCB NATIONAL SCREENING%'),('%FHB%'),('%FAECAL BLOOD%'),
('%OCCULT%'),('%Faecal Immunochemical Test%'),('%FAECAL HAEMOGLOBIN%'),
('%colonoscopy%'),('%colonoscope%')
) AS tests(fobtnames)
ON TestName LIKE tests.fobtnames
WHERE Reportdate >= DateAdd(Year,-2,GetDate())
)
OR (InternalID IN (SELECT InternalID
FROM CorrespondenceIn
INNER JOIN (VALUES ('%Faecal Occult Blood%'),('%FOB%'),('%FOBT%'),
('%OCCULT BLOOD%'),('%faecal human haemoglobin%'),
('%OCB NATIONAL SCREENING%'),('%FHB%'),('%FAECAL BLOOD%'),
('%OCCULT%'),('%Faecal Immunochemical Test%'),('%FAECAL HAEMOGLOBIN%'),
('%colonoscopy%'),('%colonoscope%')
) AS tests(fobtnames)
ON Subject LIKE tests.fobtnames
WHERE Correspondencedate >= DateAdd(Year,-2,GetDate())
)
)
OR (InternalID IN (SELECT InternalID
FROM CorrespondenceIn
INNER JOIN (VALUES ('%Faecal Occult Blood%'),('%FOB%'),('%FOBT%'),
('%OCCULT BLOOD%'),('%faecal human haemoglobin%'),
('%OCB NATIONAL SCREENING%'),('%FHB%'),('%FAECAL BLOOD%'),
('%OCCULT%'),('%Faecal Immunochemical Test%'),('%FAECAL HAEMOGLOBIN%'),
('%colonoscopy%'),('%colonoscope%')
) AS tests(fobtnames)
ON Detail LIKE tests.fobtnames
WHERE Correspondencedate >= DateAdd(Year,-2,GetDate())
)
)
OR (InternalID IN (SELECT InternalID
FROM ReportValues
WHERE LoincCode IN ('2335-8','27396-1','14563-1','14564-9','14565-6',
'12503-9','12504-7','27401-9','27925-7','27926-5',
'57905-2','56490-6','56491-4','29771-3')
AND ReportDate >= DateAdd(Year,-2,GetDate())
)
))
ORDER BY surname, firstname
Search codes and LOINC codes for faecal occult blood testing in large part derived from PenCS codes.
http://cancerscreening.gov.au/internet/screening/publishing.nsf/Content/nbcsp-fact-sheet↩
Hewitson P, Glasziou PP, Irwig L, Towler B, Watson E. Screening for colorectal cancer using the faecal occult blood test, Hemoccult. Cochrane Database Syst Rev 2007;1:CD001216.↩
Costs and cost-effectiveness of full implementation of biennial faecal occult blood test screening program for bowel cancer in Australia https://www.mja.com.au/journal/2011/194/4/costs-and-cost-effectiveness-full-implementation-biennial-faecal-occult-blood↩
Zauber AG, Lansdorp-Vogelaar I, Knudsen AB, Wilschut J. Evaluating test strategies for colorectal cancer screening-age to begin, age to stop, and timing of screening intervals: A decision analysis of colorectal cancer screening for the US Preventive Services Task Force from the Cancer Intervention and Surveillance Modeling Network (CISNET). Rockville, MD: Agency for Healthcare Research and Quality, 2009.↩
http://cancerscreening.gov.au/internet/screening/publishing.nsf/Content/nbcsp-fact-sheet↩
https://www.racgp.org.au/clinical-resources/clinical-guidelines/key-racgp-guidelines/view-all-racgp-guidelines/red-book/early-detection-of-cancers/colorectal-cancer↩
https://www.aihw.gov.au/reports/cancer-screening/analysis-of-bowel-cancer-outcomes-nbcsp-2018/contents/summary↩
Costs and cost-effectiveness of full implementation of biennial faecal occult blood test screening program for bowel cancer in Australia https://www.mja.com.au/journal/2011/194/4/costs-and-cost-effectiveness-full-implementation-biennial-faecal-occult-blood↩