Skip to main content

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:

  1. Understand dm+d terminology and know what VTMs, VMPs, etc. concepts are.
  2. Already get dm+d data and have access.
  3. 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.

Querying XML data files

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"
                }
              ]
            }
          ]
        }
      }
    }
  ]
}
Note
  • 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.

Querying the XML data files

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