Live Webinar on Dec 4! Cut Through the AI Noise: A Framework for Canadian Clinicians. Register now
[searchwp_form id="1"]
Lyme Disease Recognition and Management: Clinical Insights for PharmacistsBeyond Benzodiazepines: The Pharmacist’s Role in Advancing Chronic Insomnia Treatment with DORAsCommon Ailments in Community Pharmacy: A Collaborative Approach to CareOptimizing Cardiovascular Care: Risk and Lifestyle Management for Older AdultsAcute Pain Management in Pharmacy Practice: Oral and Topical AnalgesicsLeveraging rtCGM Technology to Enhance the Pharmacist’s Impact on Diabetes Care
Puissance VAX : Rehausser la couverture vaccinale grâce à une approche rapide et factuelleAu-delà des benzodiazépines : le rôle du pharmacien dans l’avancement du traitement de l’insomnie chronique avec les ADROPrévention du VRS pour tous les nourrissonsTraitement de la douleur aiguë en pratique de la pharmacie : Analgésiques oraux et topiquesMobiliser la technologie SCGtr et rehausser l’impact du pharmacien dans les soins du diabèteOptions ajoutées : Traitements non-hormonaux pour les symptômes vasomoteurs de la ménopause

Find Your Next Course

Browse the latest pharmacy continuing education courses.

Categories

Professions

Regions

Accreditations

Unaccredited

New

Accredited

Popular

Type: Video

2025-12-09

Cardiology,Gastroenterology ,Haemotology

Optimizing Oral Iron Therapy: Practical Insights for Clinicians

15min, 

$0

free

Unaccredited

New

Accredited

Popular

Type: Microlearning

2025-10-27

Infectious Disease

Protecting Infants Against RSV: No Infant Should Slip Through the Cracks

5 min, 

$0

free

CCCEP,OPQ

New

Accredited

Popular

Type: CME/CPD Program

2025-10-19

Pharmacy

Managing Acute Cough in Pharmacy Practice

15 min, 

$0

free

Unaccredited

New

Accredited

Popular

Type: Video

2025-10-05

Pain,Pain Management

Targeted Pain Relief: When and How to Recommend Topical Analgesics

15 min, 

$0

free

Unaccredited

New

Accredited

Popular

Type: Microlearning

2025-10-01

Medication,Respirology

Recommending Expectorants in Pharmacy Practice: Who, When, and How to Counsel

5 min, 

$0

free

CCCEP,OPQ

New

Accredited

Popular

Type: CME/CPD Program

2025-10-01

Pharmacy

Unwrapping Lozenges: Pharmacist Guidance on Medicated vs Non-Medicated Options

15 min, 

$0

free

Mainpro+

New

Accredited

Popular

Type: Live Event

2025-09-18

Infectious Disease,Paediatrics

No Infant Left Unprotected: Every Infant, Every Dose, Every Season

1 hr, 

$0

free

CCCEP,OPQ

New

Accredited

Popular

Type: Enhanced Programs

2025-09-11

Infectious Disease,Pharmacy

The Power of VAX: Enhancing vaccination with a quick and evidence-based approach

1 hr, 

$0

free

Mainpro+

New

Accredited

Popular

Type: CME/CPD Program

2025-09-10

Infectious Disease,Respirology

No Infant Left Unprotected: Action-Ready Strategies for RSV Season 2025-26

1 hr, 

$0

free

(function() { var ajaxurl = window.ajaxurl || (window.wp && wp.ajax && wp.ajax.settings && wp.ajax.settings.url) || '/wp-admin/admin-ajax.php'; var injecting = false; var lastInjectedAt = 0; var afterIndex = 3; // insert AFTER the 4th item → appears as #5 // Target this specific FacetWP results inside your wrapper function getContainer() { return document.querySelector('.coursesListWrapper .facetwp-template') || document.querySelector('.facetwp-template'); } function getItems(c) { return c ? c.querySelectorAll('.e-loop-item') : []; } function reflowGrid() { try { if (window.elementorFrontend?.elements?.$window) { elementorFrontend.elements.$window.trigger('resize'); } else if (typeof jQuery !== 'undefined') { jQuery(window).trigger('resize'); } else { window.dispatchEvent(new Event('resize')); } } catch (e) {} } // --- PURGE HELPERS --------------------------------------------------------- var PURGE_SELECTOR = '.rxbri-courses-rectangle-placement, .rxbri-course-ads-placement, .rxbri-blog-ads-placement, .mdbc2-carousel-ads-placement'; function purgeStrays(container) { if (!container) return; document.querySelectorAll(PURGE_SELECTOR).forEach(function(el) { if (container.contains(el) && !el.closest('.course-ads-slot')) el.remove(); }); } function purgeBurst(container) { purgeStrays(container); setTimeout(function(){ purgeStrays(container); }, 50); setTimeout(function(){ purgeStrays(container); }, 150); setTimeout(function(){ purgeStrays(container); }, 300); setTimeout(function(){ purgeStrays(container); }, 600); } // --------------------------------------------------------------------------- function injectAd() { // throttle in case 'facetwp-loaded' fires twice quickly var now = Date.now(); if (now - lastInjectedAt < 200) return; lastInjectedAt = now; if (injecting) return; injecting = true; var c = getContainer(); if (!c) { injecting = false; return; } // HARD CLEAN first purgeBurst(c); // Remove previously injected ad (ours) c.querySelectorAll('.course-ads-slot').forEach(function(el){ el.remove(); }); var it = getItems(c); var count = it.length; if (count === 0) { purgeBurst(c); injecting = false; return; } var targetEl = (count > afterIndex) ? it[afterIndex] : it[count - 1]; fetchAndInsert(c, targetEl); } function fetchAndInsert(container, afterEl) { var xhr = new XMLHttpRequest(); var data = new FormData(); data.append('action', 'my_get_advads_placement'); data.append('placement', 'courses-rectangle-placement'); // your placement slug xhr.onreadystatechange = function() { if (xhr.readyState === 4) { if (xhr.status === 200) { try { var resp = JSON.parse(xhr.responseText); if (resp && resp.success && resp.data) { // final sweep before inserting purgeBurst(container); var wrap = document.createElement('div'); wrap.className = 'e-loop-item course-ads-slot'; wrap.innerHTML = resp.data; // should contain .rxbri-courses-rectangle-placement if (afterEl) { afterEl.insertAdjacentElement('afterend', wrap); } else { container.appendChild(wrap); } purgeBurst(container); if (typeof jQuery !== 'undefined') { jQuery(document).trigger('advanced_ads_ready'); } reflowGrid(); } } catch(e) {} } injecting = false; } }; xhr.open('POST', ajaxurl, true); xhr.send(data); } // Bind to FacetWP loaded (initial + every facet change) if (typeof jQuery !== 'undefined') { jQuery(document).off('facetwp-loaded.coursesAds').on('facetwp-loaded.coursesAds', injectAd); } else if (window.FWP?.hooks?.addAction) { if (!window.__coursesAdsBound) { FWP.hooks.addAction('facetwp/loaded', injectAd); window.__coursesAdsBound = true; } } })();
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful. Our cookie policy is available here.