Closed sebbacon closed 5 years ago
Have sent this as an enquiry to BSA today
Have just nudged them
A new mapping has been supplied by email, with the following comments
Please find the attached new prototype BNF SNOMED mapping. This new version will be available on the BSA website soon. This new mapping file will have some of your missing link answered.
There are (and will be) still some BNF not mapping to SNOMED. One of the main reason for that is due to BNF and SNOMED are held in two different system, and we are currently in a process of streamlining it and bringing it into one system.
Current Structure: Missing | Current Structure: Mapped | Future Structure | Comments |
---|---|---|---|
Medihoney A-Bact Honey 50g Wound Dress H/Base Top Applic (20030300023) | Medihoney A-Bact Honey 20g Wound Dress H/Base Top Applic (20030300020) | Medihoney Antibacterial Medical Honey dressing (Derma Sciences Europe, Ltd) (20030300020) | All prescribing against both Current BNF will be accumulated against the Future Structure |
IntraSite Gel 15g Wound Dress H/Gel Ster (20030500010) | IntraSite Gel 8g Wound Dress H/Gel Ster (20030500005) | IntraSite Gel dressing (Smith & Nephew Healthcare Ltd) (20030500005) | |
Sod Bicarb_Oral Soln 420mg/5ml (0101012B0AABWBW) | Sod Bicarb_Liq Spec 420mg/5ml (0101012B0AAAUAU) | Sodium bicarbonate 420mg/5ml (1mmol/ml) oral solution (0101012B0AAAUAU) | |
Nicotine_Chewing Gum 4mg S/F (Icy Wte) (0410020B0AABTBT) | Nicotine_Chewing Gum 4mg S/F (0410020B0AABDBD) | Nicotine 4mg medicated chewing gum sugar free (0410020B0AABDBD) |
The new mapping gives us all the VMPs, AMPs, VMPPs, and AMPPs for each BNF code:
Outside of appliances, this means there are 252 BNF Codes in the prescribing data without mappings, which is a significant improvement. I'm not sure what "All prescribing against both Current BNF will be accumulated against the Future Structure" means, but I think it might mean that they'll add the 252 codes to the next mapping release.
Further clarification:
The BNF - SNOMED mapping file published on NHS BSA website only includes products that can be mapped from dm+d to MDR (i.e. NHS BSA's legacy drug database).
Prescription data may still include a small number of prescription items which are not listed on dm+d. This is due to the following reasons:
1) Our MDR legacy drug database being used to process late submitted prescriptions (Late prescriptions are where dispensing contractors submit prescriptions not in the normal processing month)
2) Prescriptions prescribed in England and dispensed in Scotland / Wales
3) Prescription dispensed in Isle of Man and Channel Islands.
In the above scenarios the operator can choose products from the MDR drug lookup which are not listed on dm+d. In these cases these BNF records will not be included in the BNF - SNOMED mapping data.
We are currently in the process of moving to one drug database which will be dm+d. This means that in the near future unmapped BNF prescribing will not be available for the operators to pick when processing prescriptions
We have checked a few unmapped BNF codes and this is due to the above reason. You could send us the 252 BNF codes which you mentioned in your email for us to verify and confirm.
Also I would like to refer to JJ's email dated "24th July 2018 15:24" where she mentioned about the BNF - SNOMED Mapping data's timeline against prescription data.
To clarify my comment "All prescribing against both Current BNF will be accumulated against the Future Structure" in my previous email, what I meant by future structure is the prototype mapping file I sent to you. Hopefully this answers your question 1 fully.
@inglesp pls digest and comment as you see fit
The edge case where a BNF code maps directly to a Pack (rather than a Product and all its Packs) doesn't appear to be mapped consistently. Have sent this email to BSA:
Thanks for this. I have a further question.
Looking at bnf code 0206010F0AACHCH. Its MDR description is Glyceryl Trinit_Sub A/Spy 400mcg (200D)
It appears four times in the mapping, as four AMPPs:
- Glyceryl trinitrate 400micrograms/dose aerosol sublingual (Kent Pharmaceuticals Ltd) 200 doses
- Glyceryl trinitrate 400micrograms/dose aerosol sublingual (Actavis UK Ltd) 200 doses
- Glyceryl trinitrate 400micrograms/dose aerosol sublingual (A A H Pharmaceuticals Ltd) 180 doses
- Glyceryl trinitrate 400micrograms/dose aerosol sublingual (A A H Pharmaceuticals Ltd) 200 doses
Note the last two, i.e. that AAH Pharma appear to make 180D and 200D packs yet both are mapped to the code that appears to be for the 200D packs.
This is just an example, there are several other cases where a BNF code which indicates a Pack (rather than the usual Product) appears to be mapped inconsistently to VMPPs or AMPPs, if we judge its pack size by its MDR name.
Here's the file as provided to me BNF_SNOMED_MAPPING_201806_csv.zip
Currently loaded in bigquery here
I have some questions about the SNOMED mapping data, which I think can only be answered by combining it with the rest of the dm+d data. @sebbacon, you may already have done this.
I'd like to break up the data into diamonds, where each diamond is identified by its VMP. (Does that make sense?)
Then, questions:
No I've not already done this.
I can't remember how you arranged them to look like a diamond but I get the gist!
I would expect everything that maps to a BNF code to have a VMP in its "diamond". Everything with a BNF code must be prescribable (or recently so) so:
- every VMP must have at least one VMPP
- every VMP should have at least one AMP
- every VMPP should have at least one AMPP
This is what I mean about the diamond -- it's written up on the wiki.
I think my questions above are worth answering, because if we're linking BNF codes to packs, as suggested here, we'll need to know when we use the pack name and when we use the product name.
Some invariants, according to the data in BNF_SNOMED_MAPPING_201806_csv:
However...
In July we identified several cases in the June mapping of a single VMP having multiple BNF codes, and we explained this by observing that the BNF codes appeared to map to individual VMPPs.
For instance, here is one VMP that had (in the June mapping) four different BNF codes.
VMP ID | dm+d name | BNF code | BNF name |
---|---|---|---|
3412311000001102 | Absorbent cotton gauze type 13 light BP 1988 sterile 90cm | 20040200120 | Absorbent Cott Gz 90cm x 5m Ster |
20040200100 | Absorbent Cott Gz 90cm x 1m Ster | ||
20040200130 | Absorbent Cott Gz 90cm x 10m Ster | ||
20040200110 | Absorbent Cott Gz 90cm x 3m Ster |
This corresponds to the four VMPPs that belong to the VMP:
VMP ID | VMPPID | VMPP name |
---|---|---|
3412311000001102 | 1180811000001103 | Absorbent cotton gauze type 13 light BP 1988 sterile 90cm 1 m |
3412311000001102 | 999011000001100 | Absorbent cotton gauze type 13 light BP 1988 sterile 90cm 3 m |
3412311000001102 | 1207011000001106 | Absorbent cotton gauze type 13 light BP 1988 sterile 90cm 5 m |
3412311000001102 | 978411000001106 | Absorbent cotton gauze type 13 light BP 1988 sterile 90cm 10 m |
However, in BNF_SNOMED_MAPPING_201806_csv, only 20040200100
is present, where it is mapped to the VMP and the four VMPPs.
What are we to make of this?
Either:
I have posed the question (and chased the other VMPP/dose issue) this morning by email
BNF_SNOMED_MAPPING_201806_csv (from https://github.com/ebmdatalab/openprescribing/issues/1029#issuecomment-426950613 on 2018-10-04) does not have the same data as June 2018 Snomed mapping.xlsx, which is currently available from https://www.nhsbsa.nhs.uk/prescription-data/understanding-our-data/bnf-snomed-mapping.
Specifically: BNF code 20040200100
is in BNF_SNOMED_MAPPING_201806_csv.csv
(as described in https://github.com/ebmdatalab/openprescribing/issues/1029#issuecomment-427663269) but is not in June 2018 Snomed mapping.xlsx
.
And there are 321,265 rows in BNF_SNOMED_MAPPING_201806_csv.csv
, and 143,417 in June 2018 Snomed mapping.xlsx
.
June 2018 Snomed mapping.xlsx
just contains AMPPs and VMPPs, while BNF_SNOMED_MAPPING_201806_csv.csv
also contains AMPs and VMPs.
The date of June 2018 Snomed mapping.xlsx
is 2018-06-29.
The date of BNF_SNOMED_MAPPING_201806_csv.csv
is 2018-09-10.
So BNF_SNOMED_MAPPING_201806_csv.csv
is more recent.
I'm not sure what data I was referring to above (in https://github.com/ebmdatalab/openprescribing/issues/1029#issuecomment-427663269) when I said "in July".
Another question I asked by email (unanswered):
And another question in addition to the one regarding 0206010F0AACHCH above.
In the published June mapping, there are a few examples of BNF codes which each map to their own VMPP but one VMP. For example, BNF codes 20040200120 and 20040200100 both to Absorbent Cott Gz 90cm x 5m Ster (VMP 3412311000001102), with respective VMPPs 1180811000001103 and 999011000001100 (these are bandages of 1m and 3m lengths). (This is true of 2 BNF codes in total in the case of this product).
In the July mapping you supplied (in the new format), only 20040200100 is present, where it is mapped to the VMP and the four VMPPs. What happened to the BNF code 20040200120 (and, indeed, 20040200110 and 20040200130?
Some notes from today's call:
Can we get an improved BNF->dm+d map?
Yes. The spreadsheet that we have been sent by the BSA allows us to link BNF codes to the majority of dm+d products.
I will adapt import_snomed_mapping
in the dmd2
app to work with the existing code in the dmd
app. Then we can close this issue.
See https://github.com/ebmdatalab/openprescribing/wiki/Mapping-from-dm-d-objects-to-BNF-codes for a more detailed writeup.
Can we get an improved BNF->dm+d map?
Yes, and we're using it!
We use this spreadsheet to map from BNF Codes to dm+d.
It is published quarterly:
We have noticed some missing mappings, so we've compared the current BNF mapping with the March prescribing data per the above notes.
There are 1220 BNF Codes in the prescribing data, for which there are no mapping provided to dm+d. This means about 5% of all codes have no mapping. Full table here. Mitigating this is that these account for only 0.03% of all prescribed items. A manual spot check of the missing data suggests it is possible to map all of them (see examples below).
It would be useful to know either:
Examples of missing mappings that appear technically possible: