Open sebbacon opened 7 years ago
@richiecroker this is the ticket I referenced in the followup email to Graham
@sebbacon this goes back to the issue in the other thread. We need to look at the full BNF descriptor - soi for things like GTN spray which comes in two pack sizes, this is clearly expressed in the descriptor:
Glyceryl Trinit_A/Spy 400mcg 180D CFF 0206010F0AACFCF
Glyceryl Trinit_Sub A/Spy 400mcg (200D) 0206010F0AACHCH
And an interesting further thought: these, although in effect the same, won't show up as chemical-dose pairs...
But if they're consistent, I really don't think it matters.
Regarding pack sizes, it is inconsistently expressed in the descriptor. I think about 40% of products come in more than one pack size, but only a select few (I make it 191) get their own BNF codes.
But I think you're onto something because special containers that get per-pack codes are in the "consistent" list above.
Perhaps there's supposed to be a rule that all special container pack sizes should get their own BNF code, and should be recorded per-pack against that code. That would make sense.
Then the exceptions we're finding are where a pack-size-specific BNF code has not been issued for a special container, when it should have been.
For exampe, the Climgest comes in 28s and 84s but only has one code; the Fluticasone propionate is 60s, 120s and 150s and has separate codes.
Agreed that it doesn't matter - but I thought I'd capture some examples of where it is consistent as it may help Graham or someone else understand what's going on better. And I think we now have a good hypothesis.
Just to note we're awaiting feedback from Graham who said on Jan 6
I will have my team liaise with the drug data maintenance team to understand what is going on with these. Once the investigation is complete I will come back to you with the reasoning.
Response from NHS BSA:
Glycopyrronium/ Seebri An error that concerned Seebri on the drug database was corrected for October 2016 prescriptions. The 6 & 30 packs of Seebri both had container sizes set to a value of 1 and not 6 & 30 respectively that they should have had.
The Drug Tariff entry of the Glycopyrronium Brom_Inh Cap 55mcg + Dev that appeared from August 2016 onwards is correct.
But figures historically (prior to Aug16) are incorrect as they were based on Seebri’s as there was no generic available.
ThickenUp powder (190700000BBCJA0) There are complexities regarding the authoring of the size of sachets in general, some have a container size of 1 and some have the weight of the sachet as the size. This is a historic issue. Work is under way to review this and agree a way forward.
Climagest 2mg tablets (0604011L0BGAAAH) and Lidocaine 2.5% / Prilocaine 2.5% cream (1502010J0____BY) Both had container size attributes incorrectly listed . This has now been amended on the drug database.
Flumetasone 0.02% / Clioquinol 1% ear drops (1201010F0AAAAAA) The drug databases are correct for this product.
I've responded:
1. Retrospective fixes
When you say (for example of Lidocaine 2.5%) "this has been amended on the drug database", what exactly does this mean, i.e. which drug database?
Is quantity information in prescribing data added by your team in preparation for the data release, or is it copied directly from prescriptions and therefore wrong in the original prescriptions (which presumably originate in dm+d)? In other words, it is possible to regenerate historic prescribing data with correct quantities as a result of you having amended the database?
I ask because we are working on an analysis of prescribing data. Does this mean the changes you've made will only be reflected in data released since the change? (and if so, from which date?)
2. Sachets and creams
You mention that the sachets issue that affects ThickenUp has yet to be resolved.
In our analysis, we've found considerable variation in the price paid for cutaneous creams (mainly Aveeno, E45, Sudocrem and Balneum Plus - about £1.7m per month). It's hard to tell if their variation is due to inconsistencies in how quantity is recorded, rather than underlying dispensing variation (as you've indicated is the case for ThickenUp). When you mention "complexities regarding the authoring of the size of sachets in general", is it likely the same issues apply to these cutaneous creams? If so, it seems we should probably drop these from our analysis.
Rather than drop individual BNF codes as we find problems with them, it would be better to know if there's a pattern for knowing what items have potential problems. For example, one hypothesis we developed was that special containers that get unique per-pack-size codes in the BNF are not affected by this issue, whereas special containers which have multiple pack sizes but only one BNF code are affected. Are you able to describe which kinds of products are affected by the problem in general terms like this?
A new example:
Estriol 0.01% cream with applicator
has BNF code 0702010F0AAACAC
and VMPP 3194311000001106
.
Not sure if this is relevant...
The NCSO list references Estriol 0.01% cream with applicator
with pack size 80g
.
dm+d has the following VMPPs:
Estriol 0.01% cream 80 gram
Estriol 0.01% cream with applicator 1 pack
I'd asked @richiecroker which of the two to match the NCSO entry against, and he said the latter.
A new unusual one: Latanoprost. 5ml appears to be charged as 2 bottles (2.5ml) but 2ml as 1. Most practices seem to prescribe in pairs of bottles, so ones that prescribe in single bottles appear as outliers.
The latanoprost issue could also apply to other products dispensed in units of non-integer quantities that have to be rounded to whole numbers.
Here's a script that creates a shortlist of items where this could be an issue (i.e. the qtyval
contains a decimal point) AND where we have identified PPU savings:
SELECT distinct p.bnf_code, b.presentation, v.qtyval, sum(quantity) as quantity, SUM(ppu.possible_savings) AS possible_savings,
max(price_per_unit) as max_ppu, min(price_per_unit) as min_ppu
FROM ebmdatalab.dmd.vmpp v LEFT JOIN ebmdatalab.dmd.product p on v.vpid = p.vpid
INNER JOIN `ebmdatalab.hscic.ppu_savings` ppu on p.bnf_code = ppu.bnf_code AND formulation_swap is null
LEFT JOIN ebmdatalab.hscic.bnf b on p.bnf_code = b.presentation_code
WHERE CAST(qtyval AS string) LIKE '%.%' and p.bnf_code is not null
GROUP BY p.bnf_code, b.presentation, v.nm, v.qtyval
ORDER BY bnf_code
Of course the smaller the qtyval
, the greater the potential effect of the rounding.
...and here are the current values for Helen's query, for the record:
Also to add that there is a lookup table for DMD "uom" fields ("unit of measure") and Lantanoprost is indeed specified to be measured in ml
.
See also https://github.com/ebmdatalab/openprescribing/issues/937#issuecomment-517208150
Specifically they (BSA) say that some EHRs have a facility to convert between packs and doses, which then gets misused.
Regarding latanoprost (discussed above), BSA have confirmed that all qty is rounded down: https://github.com/ebmdatalab/openprescribing/issues/1373#issuecomment-507981656
This ticket is an expansion of the discussion in #2.
We know of at least one product which is recorded both by the pack and by the dose. Some products appear consistently to be recorded by the pack. Here are some examples. They are all special containers.
0302000N0BCAEBF
Seretide 125 Evohaler (GlaxoSmithKline UK Ltd)0302000N0BDABBK
Flutiform 250micrograms/dose / 10micrograms/dose inhaler (Napp Pharmaceuticals Ltd)1202010M0AAACAC
Fluticasone propionate 50micrograms/dose nasal spray (this one has a cheaper alternative too)0105020D0AAACAC
Prednisolone 20mg/application foam enema0206010F0AACGCG
Glyceryl trinitrate 400micrograms/dose aerosol sublingual spray0301011R0BEAIAP
Ventolin 100micrograms/dose EvohalerSome examples where they are prescribed both by pack and dose are:
'0301020S0____AA
)190700000BBCJA0
) - 91% prescribed as packs (should be by gram)0604011L0BGAAAH
). In September 2016, 26% were recorded by the (28-tablet) pack, rather than by tablet.1502010J0____BY
) - 14% were prescribed by packet - most frequently when prescribed by name rather than generically1201010F0AAAAAA
) - this would appear to be another case where the brand (Locorten Vioform) is recorded by dose and the generic by pack.0107010S0AAAGAG
)The other problem is we've no real way of knowing if this is happening for non-special-containers, because (for example) we can't know if
1
represents a very expensive pill or a cheap pack. We've attempted various heuristics and have yet to identify a smoking gun here.