opensafely / codelist-development

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

*MEDICATION*: Long acting opioids greater than or equal to 120mg per day OME #294

Closed chrisjwood16 closed 7 months ago

chrisjwood16 commented 8 months ago

User requirements

A codelist is needed of all long acting opioids with an oral morphine equivalence (OME) of >= 120mg - 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 >=120mg 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.

  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)) >=60) /* Morphine Sulfate MR oral preps [excluding MXL as 24hr] (strengths equal to or higher than 60mg) (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)) >=120) /* MXL (strengths equal to or higher than 120mg) (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)) >=40) /* Oxycodone MR oral preps [excluding Onexila as 24hr] (strengths equal to or higher than 40mg) (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)) >=80) /* Oxycodone MR oral preps [only Onexila as 24hr] (strengths equal to or higher than 80mg) (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)) >=150) /* Tapentadol HCl/Phosphate MR oral preps (strengths equal to or higher than 150mg) (ing code) */
  OR (vpi.ing IN (386858008, 108505002) AND route.descr LIKE '%modified-release.oral' AND (p.presentation NOT LIKE '%Tradorec XL%' OR p.presentation NOT LIKE '%Zamadol 24hr%' OR p.presentation NOT LIKE '%Zydol XL%' OR p.presentation NOT LIKE '%Dromadol XL%') AND strnt_nmrtr_val/(COALESCE(strnt_dnmtr_val,1)) >=600) /* Tramadol HCl/ Tramadol MR 12 hour oral preps (strengths equal to or higher than x) (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)) >=1200) /* Tramadol HCl/ Tramadol MR 24 hour oral preps (strengths equal to or higher than x) (ing code) */
  OR (vpi.ing IN (44508008, 387485001) AND route.descr LIKE '%modified-release.oral' AND strnt_nmrtr_val/(COALESCE(strnt_dnmtr_val,1)) >=12) /* Hydromorphone (strengths equal to or higher than 120mg) (ing code) */
  OR (vpi.ing IN (322538006, 387322000) AND route.descr LIKE '%modified-release.oral' AND strnt_nmrtr_val/(COALESCE(strnt_dnmtr_val,1)) >=600) /* Dihydrocodeine (strengths equal to or higher than 120mg) (ing code) */
  OR (vpi.ing = (387173000)  AND route.descr LIKE 'patch.transdermal' AND strnt_nmrtr_val/(COALESCE(strnt_dnmtr_val,1)) >=52.5) /* Buprenorphine patches (strengths equal to or higher than 52.5mg/hour) (ing code) */
  OR (vpi.ing = 373492002 AND route.descr = 'patch.transdermal' AND strnt_nmrtr_val/(COALESCE(strnt_dnmtr_val,1)) >=50)) /* Fentanyl patches (strengths equal to or higher than 50mcg/hour) (ing code) */
  GROUP BY code, term

Inclusion criteria for codes

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

Exclusion criteria for codes

No response

Borderline cases

No response

Final codelist

https://www.opencodelists.org/codelist/opensafely/long-acting-opioids-greater-than-or-equal-to-120mg-per-day-ome/2261801e/

dm+d format: https://www.opencodelists.org/codelist/opensafely/long-acting-opioids-greater-than-or-equal-to-120mg-per-day-ome-dmd/715e898e/

speed-vm commented 8 months ago

@chrisjwood16 I have reviewed the long acting opioids greater than or equal to 120mg per day OME codelist. I reviewed this by:

  1. Identifying opioids with MR preparations
  2. Checking the brand names available in the BNF
  3. Calculating the OME equivalent for each opioid with modified release preparations available to identify the strength that would be needed to be included in the codelist.
  4. Generating a separate draft codelist to diff against this codelist.

Overall all opioids with MR preparations and at correct strengths are included that would expect to see. There are brands which are no longer in use, but can keep in case will pick up historical prescribing. I am happy for this to be signed off

chrisjwood16 commented 7 months ago

Published: BNF code format: https://www.opencodelists.org/codelist/opensafely/long-acting-opioids-greater-than-or-equal-to-120mg-per-day-ome/2261801e/

dm+d format: https://www.opencodelists.org/codelist/opensafely/long-acting-opioids-greater-than-or-equal-to-120mg-per-day-ome-dmd/715e898e/