Identifying updates to the VMP <DRUG_FORM> code attribute in Dictionary of medicines and devices (dm+d)
As part of the UK Medicines Terminology Futures project new more detailed drug forms are being added to Dictionary of medicines and devices (dm+d). Further information about the change updating the NHS dm+d ‘<DRUG_FORM>’ coded attribute within the Virtual Medicinal Product concept class is available.
This update gives guidance on how to identify the new drug forms and the Virtual Medicinal Products (VMPs) that have been linked to the new drug forms. Appendix 1 New drug forms, lists the new drug forms and the relevant less detailed existing drug forms.
The existing drug forms are still valid forms and will continue to exist and be used for example, where the VMP:
- has the route ‘Route of administration not applicable’
- has no route information
- where the VMP has 3 or more routes
No drug forms will be removed from the XML files although some may no longer be associated with any VMPs.
There are 2 phases to this work, the drug forms being changed in each phase are identified in Appendix 1.
Assumptions
It is assumed that users:
- Understand dm+d terminology and know what VTMs, VMPs, etc. concepts are.
- Already get dm+d data and have access.
- Know how to write queries in their environment whether a database, querying the Terminology Server or some other method.
Additional information is available:
Accessing dm+d data
dm+d data is available from:
- TRUD, NHS England’s web site for downloading Terminology data. These are the data files that can be loaded into a database or similar
- the Terminology Server: a Web API that can be queried directly. The Terminology Server is kept up to date by sourcing the data from TRUD as it becomes available
Examples of how to query the relevant dm+d data sources to identify VMPs with the new or existing drug form codes are given below.
Identifying new drug form codes
The drug form is recorded in dm+d within the VMP concept class.
The whole of dm+d data is released each week therefore this document describes how to retrieve only VMPs with a specific drug form code. To identify the new drug form codes, see Appendix 1.
It is difficult to identify those VMPs that have had their drug form code changed to a new drug form code as opposed to new VMP concepts that have been added with a new drug form code and never had an existing drug form code. This section shows how to identify VMPs with the new drug forms (listed in Appendix 1 new drug forms). The history data section of this document might be helpful in identifying VMPs that have changed drug form.
Querying XML Data Files
The entity relationship diagram below is the basic structure of linking VMP concepts to their assigned form.
This is an example SQL statement that will enable most SQL databases to query the above structure.
This code list of FORMCD codes should contain the codes of the newly created forms that you are interested in for example 420692007 Oral capsule.
SQL
select VMP.VPID
, VMP.NM
, VMP.INVALID
, df.FORMCD
, FORM.[DESC] FORM_DESC
from VMP
join DRUG_FORM df
on df.VPID = VMP.VPID
join FORM
on FORM.CD = df.FORMCD
where df.FORMCD in (
'420692007',
'385175008',
'421628006',
'385149009',
<Other newform codes go here>
)
Querying the Terminology Server
To query the Terminology Server, you will do the following RESTful HTTP request to the NHS England FHIR Terminology Server Web API.
RESTful method: POST
URL: https://ontology.nhs.uk/production1/fhir/ValueSet/$expand
Body in JSON
{
"resourceType": "Parameters",
"parameter": [
{
"name": "valueSet",
"resource": {
"resourceType": "ValueSet",
"compose": {
"include": [
{
"system": "https://dmd.nhs.uk",
"filter": [
{
"property": "parent",
"op": "=",
"value": "VMP"
},
{
"property": "FORMCD",
"op": "in",
"value": "420692007,385175008,421628006,385149009"
}
]
}
]
}
}
}
]
}
- the list of FORMCD codes contains the new drug form codes being queried
- the number of codes in the list is restricted, but the maximum number is unknown
- the JSON above can also include additional parameters such as the pagination parameters of count and offset and/or the additional text filter parameter
History data
This section advises how the history data might be used along with the identifying new drug form codes and the new drug form codes found in Appendix 1.
Over time the code allocated to a VMP concept in dm+d may have been been updated as dm+d aligns to the SNOMED CT data. dm+d holds the history of VMP codes, using the history data it is possible to identify if the Form Code is likely to have changed.
By getting all the historic codes for a given VMP code we can identify the earliest start date that the VMP concept was added to dm+d, if this date is earlier than the dates below it is likely that the VMP changed from an existing Drug Form code to a new Drug Form code
- Sample batch, ointment extraction date Monday 28 August 2023
- Phase 1 extraction date from dm+d Monday 20 November 2023
- Phase 2 extraction date from dm+d over several weeks in Quarter 1 2024
See dm+d History Data File Guide for detailed information about the history data.
Querying the XML Data Files
The entity relationship diagram below is the basic structure of linking VMP concepts to the VMP history data.
SQL code that will get the oldest start date for a VMP concept. This date can then be used to identify if it is before the relevant date. In the SQL below replace <VMP.VPID> with the current VMP identifier.
SQL
Select
MIN(STARTDT)
from VMP_HISTORY
where IDCURRENT = <VMP.VPID>
Querying the Terminology Server
The terminology server will return a list of all the codes for a VMP, to identify the earliest start date will require processing in the local programming language.
See dm+d Code System in NHS Terminology Server for more detail about dm+d history code data in the terminology server.
The following information will allow the querying of the Terminology Server to return all historic VMP code information for the current VMP identifier. In the URL below replace <VMP.VPID> with the current VMP identifier, 1 or more codes will be returned.
RESTful method: GET
URL: https://ontology.nhs.uk/staging/fhir/ConceptMap/$translate? url=https://dmd.nhs.uk/conceptmap/history&system=https://dmd.nhs.uk&code=<VMP.VPID>&reverse=true
Body in JSON: N/A
Contact us
If any further information is required contact [email protected].
Appendix 1 New drug forms
The following codes were correct at the time the document was published.
There are two phases to the drug forms work.
Phase 1 drug form changes
This table lists the existing drug forms and the new drug forms which are being used to update VMP concepts. Please note that for VMPs with no route information, route of administration not applicable, where there are 3 or more routes or VMPs marked as invalid, these VMPs will retain the existing drug form.
Code 385049006 Capsule
New code | New description |
---|---|
420692007 | Oral capsule |
385175008 | Vaginal capsule |
Code 385099005 Cream
New code | New description |
---|---|
421628006 | Cutaneous cream |
385149009 | Nasal cream |
385182007 | Rectal cream |
764477003 | Transdermal cream |
385165005 | Vaginal cream |
Code 421166008 Foam
New code | New description |
---|---|
385103000 | Cutaneous foam |
385168007 | Vaginal foam |
Code 385100002 Gel
New code | New description |
---|---|
421949005 | Cutaneous gel |
1230220004 | Periodontal gel |
764802001 | Transdermal gel |
Code 385043007 Granules
New code | New description |
---|---|
420509004 | Oral granules |
385028005 | Granules for oral solution |
385029002 | Granules for oral suspension |
41623311000001105 | Granules for intrauterine suspension |
1209112001 | Granules for oral or rectal suspension |
41625711000001105 | Granules for gastroenteral or oral suspension |
Code 385101003 Ointment
New code | New description |
---|---|
425753008 | Cutaneous ointment |
385135000 | Ear ointment |
762893001 | Transdermal ointment |
41627611000001108 | Cutaneous or nasal ointment |
Code 739002006 Paste
New code | New description |
---|---|
385102005 | Cutaneous paste |
763445009 | Dental paste |
385079004 | Oromucosal paste |
Code 385055001 Tablet
New code | New description |
---|---|
421026006 | Oral tablet |
385178005 | Vaginal tablet |
Phase 2 drug form changes
The tables below list the existing drug forms and the new drug forms which are being used to update VMP concepts. Please note that for VMPs with no route information, route of administration not applicable, where there are 3 or more routes or VMPs marked as invalid, these VMPs will retain the existing drug form.
Code 385286003 Implant
New Code | New description |
---|---|
42550111000001107 | Sealant matrix |
42550211000001101 | Powder solvent and matrix for implantation matrix |
785910004 | Prolonged-release intralesional implant |
42550311000001109 | Prolonged-release intravitreal implant |
764296002 | Prolonged-release subcutaneous implant |
Code 16602411000001103 Implantation suspension
New code | New description |
---|---|
42550411000001102 | Prolonged-release intraarticular implantation suspension |
42550511000001103 | Prolonged-release intraosseous implantation suspension |
Code 3092911000001109 Irrigation
New code | New description |
---|---|
42550811000001100 | Powder and solvent for solution for intraocular irrigation* |
42550911000001105 | Intraperitoneal irrigation solution |
785899003 | Ocular irrigation solution |
*The code {42550811000001100} was released in the dm+d extract 15 January 2024 with the description ‘Powder and solvent for intraocular instillation irrigation‘. The description was renamed ‘Powder and solvent for solution for intraocular irrigation’ in the dm+d extract 29 January 2024.
Code 16605211000001107 Irrigation solution
New code | New description |
---|---|
42550611000001104 | Cutaneous irrigation solution |
42550711000001108 | Cutaneous or intravesical irrigation solution |
42550911000001105 | Intraperitoneal irrigation solution |
Code 739005008 Powder
New code | New description |
---|---|
385139006 | Ear powder |
385112003 | Cutaneous powder |
1230325007 | Powder for suspension for endotracheopulmonary instillation |
896760006 | Powder for oral or rectal suspension |
385041009 | Oral powder |
385026009 | Powder for oral solution |
385027000 | Powder for oral suspension |
42552111000001106 | Powder for gastroenteral or oral liquid |
Code 420699003 Liquid
New code | New description |
---|---|
42551111000001101 | Buccal liquid |
42552011000001105 | Cutaneous liquid |
42551011000001102 | Cutaneous or ear solution |
42551211000001107 | Cutaneous or inhalation liquid |
42551311000001104 | Cutaneous or oromucosal liquid |
42551411000001106 | Dental liquid |
42551511000001105 | Endocervical solution |
385250004 | Suspension for endotracheopulmonary instillation |
42551611000001109 | Oromucosal liquid |
42551711000001100 | Intraarterial solution |
42551811000001108 | Intraperitoneal solution |
422336005 | Nasal solution |
1209096001 | Oral or rectal solution |
42551911000001103 | Oral or rectal suspension |
385170003 | Vaginal solution |
42552211000001100 | Oral liquid |
42552311000001108 | Gastroenteral or oral liquid |
Last edited: 3 June 2025 3:27 pm