opensafely / codelist-development

Repository for discussion of OpenSAFELY codelists
7 stars 3 forks source link

*MEDICATION*: Long acting opioids less than 50mg per day OME #296

Closed chrisjwood16 closed 4 months ago

chrisjwood16 commented 5 months ago

User requirements

A codelist is needed of all long acting opioids with an oral morphine equivalence (OME) of <50mg per day - used for analgesia (any route) excluding cough suppression, motility, general anaesthesia, opiate use disorder - this is for a project looking at opioid prescribing for patients on hospital waiting lists.

Sensitivity versus specificity

Any opioid as a modified release formulation or transdermal patch with daily OME < 50mg based on standard dosing.

Relevant definitions or links to important reference sources

Opioid equivalence - https://fpm.ac.uk/opioids-aware-structured-approach-opioid-prescribing/dose-equivalents-and-changing-opioids

Coding system

dm+d

Existing relevant codelists

No response

Search terms / synonyms / search strategy

BigQuery used to identify relevant products from BNF data. dm+d data used to filter for modified release/patch versions as appropriate. Faculty of Pain Medicine OME conversions used to calculate daily OME - usual licensed dosing used to determine OME (for example morphine sulphate MR products licensed for twice a day administration (with exception of MXL) - so if prescribed 60mg tablet assume taking twice a day (120mg / day total) - or for MXL assume taking once a day so would be prescribed 120mg tablet to meet 120mg/day total.

Updated 06/02/24:

  SELECT DISTINCT presentation_code as code, presentation as term
  FROM hscic.bnf p 
  INNER JOIN dmd.vmp vmp ON CONCAT(SUBSTR(p.presentation_code,0,9),'AA', SUBSTR(p.presentation_code,-2), SUBSTR(p.presentation_code,-2)) = vmp.bnf_code
  INNER JOIN dmd.vpi AS vpi ON vmp.id = vpi.vmp
  INNER JOIN dmd.ont AS ont ON vmp.id = ont.vmp
  INNER JOIN dmd.ontformroute AS route ON ont.form = route.cd
  WHERE
  ((vpi.ing = (60886004) AND route.descr LIKE '%modified-release.oral' AND p.presentation NOT LIKE '%MXL%' AND strnt_nmrtr_val/(COALESCE(strnt_dnmtr_val,1)) <25) /* Morphine Sulfate MR oral preps [excluding MXL as 24hr] (ing code) */
  OR (vpi.ing = (60886004) AND route.descr LIKE '%modified-release.oral' AND p.presentation LIKE '%MXL%' AND strnt_nmrtr_val/(COALESCE(strnt_dnmtr_val,1)) <50) /* MXL (ing code) */
  OR (vpi.ing = 387024006 AND route.descr LIKE '%modified-release.oral' AND p.presentation NOT LIKE '%Onexila%' AND strnt_nmrtr_val/(COALESCE(strnt_dnmtr_val,1)) <17) /* Oxycodone MR oral preps [excluding Onexila as 24hr] (ing code) */
  OR (vpi.ing = 387024006 AND route.descr LIKE '%modified-release.oral' AND p.presentation LIKE '%Onexila%' AND strnt_nmrtr_val/(COALESCE(strnt_dnmtr_val,1)) <33) /* Oxycodone MR oral preps [only Onexila as 24hr] (ing code) */
  OR (vpi.ing IN (441757005, 442699004,40755011000001109)  AND route.descr LIKE '%modified-release.oral' AND strnt_nmrtr_val/(COALESCE(strnt_dnmtr_val,1)) <63) /* Tapentadol HCl/Phosphate MR oral preps (ing code) */
  OR (vpi.ing IN (386858008, 108505002) AND route.descr LIKE '%modified-release.oral' AND (p.presentation NOT LIKE '%Tradorec XL%' AND p.presentation NOT LIKE '%Zamadol 24hr%' AND p.presentation NOT LIKE '%Zydol XL%' AND p.presentation NOT LIKE '%Dromadol XL%') AND strnt_nmrtr_val/(COALESCE(strnt_dnmtr_val,1)) <250) /* Tramadol HCl/ Tramadol MR 12 hour oral preps (ing code) */
  OR (vpi.ing IN (386858008, 108505002) AND route.descr LIKE '%modified-release.oral' AND (p.presentation LIKE '%Tradorec XL%' OR p.presentation LIKE '%Zamadol 24hr%' OR p.presentation LIKE '%Zydol XL%' OR p.presentation LIKE '%Dromadol XL%') AND strnt_nmrtr_val/(COALESCE(strnt_dnmtr_val,1)) <500) /* Tramadol HCl/ Tramadol MR 24 hour oral preps (ing code) */
  OR (vpi.ing IN (44508008, 387485001) AND route.descr LIKE '%modified-release.oral' AND strnt_nmrtr_val/(COALESCE(strnt_dnmtr_val,1)) <5) /* Hydromorphone (ing code) */
  OR (vpi.ing IN (322538006, 387322000) AND route.descr LIKE '%modified-release.oral' AND strnt_nmrtr_val/(COALESCE(strnt_dnmtr_val,1)) <250) /* Dihydrocodeine (ing code) */
  OR (vpi.ing = (387173000)  AND route.descr LIKE 'patch.transdermal' AND strnt_nmrtr_val/(COALESCE(strnt_dnmtr_val,1)) <=20) /* Buprenorphine patches (ing code) */
  OR (vpi.ing = 373492002 AND route.descr = 'patch.transdermal' AND strnt_nmrtr_val/(COALESCE(strnt_dnmtr_val,1)) <=12)) /* Fentanyl patches (ing code) */
  GROUP BY code, term

Inclusion criteria for codes

Any modified release or transdermal opioid with daily OME <50mg/day (based on licensed dosing).

Exclusion criteria for codes

No response

Borderline cases

No response

Final codelist

BNF format: https://www.opencodelists.org/codelist/opensafely/long-acting-opioids-less-than-50mg-per-day-ome/0a6dfcc4/

dm+d format: https://www.opencodelists.org/codelist/opensafely/long-acting-opioids-less-than-50mg-per-day-ome-dmd/5b01d64f/

speed-vm commented 4 months ago

@chrisjwood16 just reviewed this codelist. Two issues have cropped up:

  1. There are no fentanyl 12 mcg patches (OME 30)
  2. There are two rogue tramadol MRs where OME would be >50

Tramadol 300mg modified-release tablets (040702040AAAMAM) Tramadol 400mg modified-release tablets (040702040AAANAN)

chrisjwood16 commented 4 months ago

Fentanyl - Sorry my mistake in the code - it currently only includes fentanyl <12 (none exist) and should say <=12. I will amend.

Tramadol - The code seems correct. I think the descriptions here are unclear but it seems likely that the 300mg and 400mg are once daily preparations - e.g. the only AMP listed here is Zydol XL - https://openprescribing.net/dmd/vmp/35921011000001105/ I think any 12 hour formulation would be max 200mg.

speed-vm commented 4 months ago

@chrisjwood16 Ok great, I'll check 50-119 when fentanyl updated.

chrisjwood16 commented 4 months ago

@speed-vm Updated version here: https://www.opencodelists.org/codelist/user/chriswood/long-acting-opioids-less-than-50mg-per-day-ome/0a6dfcc4/

Diff vs previous version as double check: https://www.opencodelists.org/codelist/user/chriswood/long-acting-opioids-less-than-50mg-per-day-ome/0a6dfcc4/diff/704299b3/

speed-vm commented 4 months ago

Thank you @chrisjwood16 Looks good now

chrisjwood16 commented 4 months ago

Published: BNF format: https://www.opencodelists.org/codelist/opensafely/long-acting-opioids-less-than-50mg-per-day-ome/0a6dfcc4/

dm+d format: https://www.opencodelists.org/codelist/opensafely/long-acting-opioids-less-than-50mg-per-day-ome-dmd/5b01d64f/