Pharmacy First - Sinusitis treatment full dmd codelist

PH3656 / 8760

OpenSAFELY

Jan 26, 2026

REGISTERING DOI...

OpenCodelists Phenotype
  1. Overview

    Codelist ID
    opensafely/pharmacy-first-sinusitis-treatment-full-dmd-codelist
    Version ID
    4cd0c053
    Coding System
    dm+d codes
    Collections
    OpenCodelistPhenotype Library
    Tags
    No data
  2. Definition

    This codelist was taken from OpenCodelists, created by OpenSAFELY. We recommend viewing this Phenotype on the OpenCodelist website to view the most recent version.

    This codelist is used to identify supply of any medication included in the Pharmacy First Patient Group Directions for treatment of sinusitis.

    It is specific to only the strength/formulations included in the PGDs for sinusitis (including both brands and generics).

    © University of Oxford for the Bennett Institute for Applied Data Science 2025. This work may be copied freely for non-commercial research and study.

  3. Methodology

    PGDs:

    https://www.england.nhs.uk/wp-content/uploads/2023/11/PRN01010-6a.-Sinusitis-fluticasone-nasal-spray-patient-group-direction-Pharmacy-First.pdf

    [ttps://http://www.england.nhs.uk/wp-content/uploads/2023/11/PRN01010-6b.-Sinusitis-mometasone-nasal-spray-patient-group-direction-Pharmacy-First.pdf

    https://www.england.nhs.uk/wp-content/uploads/2023/11/PRN01010-6c.-Sinusitis-phenoxymethylpenicillin-patient-group-direction-Pharmacy-First.pdf

    https://www.england.nhs.uk/wp-content/uploads/2023/11/PRN01010-6d.-Sinusitis-clairthromycin-patient-group-direction-Pharmacy-First.pdf

    https://www.england.nhs.uk/wp-content/uploads/2023/11/PRN01010-6e.-Sinusitis-doxycycline-patient-group-direction-Pharmacy-First.pdf

    https://www.england.nhs.uk/wp-content/uploads/2023/11/PRN01010-6f.-Sinusitis-erythromycin-patient-group-direction-Pharmacy-First.pdf

    The following SQL code was used to build the codelist natively in dmd to ensure products without a corresponding BNF code were also included.

    SELECT DISTINCT
    dmd_type, dmd_id, dmd_name, bnf_code
    FROM
    `chris.union_amp_vmp`
    WHERE
    (
      ingredient = 426409006  -- fluticasone furoate
      AND
      ingredient_count = 1 -- ensure not combo product
      AND
      strength_num = 27.5
      AND
      formroute LIKE '%.nasal'
    )
    OR
    (
      ingredient = 395802006 -- Mometasone furoate
      AND
      ingredient_count = 1
      AND
      formroute LIKE '%.nasal'
      AND
      strength_num = 50
    )
    OR
    (
      vtm = 'Phenoxymethylpenicillin' 
      AND formroute IN ('tablet.oral') 
      AND strength_num IN (250)
    )
    OR
    (
      vtm = 'Phenoxymethylpenicillin' 
      AND formroute IN ('solution.oral', 'suspension.oral')
      AND (((5/strength_den)*strength_num) IN (125, 250)) -- strength is often expressed as mg/ml - this calculation converts to dose per 5ml as expressed in inclusion criteria
    )
    OR
    (
      vtm = 'Clarithromycin'
      AND formroute IN ('tablet.oral')
      AND strength_num IN (250, 500)
    )
    OR
    (
      vtm = 'Clarithromycin' 
      AND formroute IN ('solution.oral', 'suspension.oral')
      AND (((5/strength_den)*strength_num) IN (125, 250)) -- strength is often expressed as mg/ml - this calculation converts to dose per 5ml as expressed in inclusion criteria
    )
    OR
    (
      vtm = 'Doxycycline'
      AND
      strength_num IN (50, 100)
      AND
      formroute IN ('capsule.oral')
    )
    OR
    (
      vtm = 'Doxycycline'
      AND
      strength_num IN (100)
      AND
      form = 'Dispersible tablet'
    )
    OR
    (
      ingredient = 372694001 -- use ingredient code for erythromycin base substance here not vtm as a number of different erythromycin salts
      AND
      formroute IN ('tablet.oral', 'tabletgastro-resistant.oral')
      AND
      strength_num IN (250, 500)
    )
    OR
    (
      ingredient = 372694001 -- use ingredient code for erythromycin base substance here not vtm as a number of different erythromycin salts
      AND
      formroute IN ('solution.oral', 'suspension.oral')
      AND 
      (((5/strength_den)*strength_num) IN (125, 250, 500)) -- strength is often expressed as mg/ml - this calculation converts to dose per 5ml as expressed in inclusion criteria
    )
    
    

    Updated 20/10/2025

    Updated PGDs reviewed:

    https://www.england.nhs.uk/wp-content/uploads/2023/11/PRN01010-6a.-sinusitis-fluticasone-nasal-spray-patient-group-direction-pharmacy-first.pdf

    https://www.england.nhs.uk/wp-content/uploads/2023/11/PRN01010-6b.-sinusitis-mometasone-nasal-spray-patient-group-direction-pharmacy-first.pdf

    https://www.england.nhs.uk/wp-content/uploads/2023/11/PRN01010-6c.-sinusitis-phenoxymethylpenicillin-patient-group-direction-pharmacy-first.pdf

    https://www.england.nhs.uk/wp-content/uploads/2023/11/PRN01010-6d.-sinusitis-clarithromycin-patient-group-direction-pharmacy-first.pdf

    https://www.england.nhs.uk/wp-content/uploads/2023/11/PRN01010-6e.-sinusitis-doxycycline-patient-group-direction-pharmacy-first.pdf

    https://www.england.nhs.uk/wp-content/uploads/2023/11/PRN01010-6f.-sinusitis-erythromycin-patient-group-direction-pharmacy-first.pdf

    These products have been removed from latest PGDs:

    Erythromycin 500mg/5mL oral suspension (or oral solution)

    Erythromycin 500mg/5mL sugar free oral suspension (or oral solution)

    Decision made to keep them in the codelist to capture any use prior to PGD update.

    Codelist update using existing SQL query.

  4. References

  5. Clinical Codelist

  6. API

    To Export Phenotype Details:

    FormatAPI
    JSON site_root/api/v1/phenotypes/PH3656/version/8760/detail/?format=json
    R Package

    # Download here

    library(ConceptLibraryClient)


    # Connect to API

    client = ConceptLibraryClient::Connection$new(public=TRUE)


    # Get details of Phenotype

    phenotype_details = client$phenotypes$get_detail(
     'PH3656',
     version_id=8760
    )

    Py Package

    # Download here

    from pyconceptlibraryclient import Client


    # Connect to API

    client = Client(public=True)


    # Get details of Phenotype

    phenotype_detail = client.phenotypes.get_detail(
     'PH3656',
     version_id=8760
    )

    To Export Phenotype Code List:

    FormatAPI
    JSON site_root/api/v1/phenotypes/PH3656/version/8760/export/codes/?format=json
    R Package

    # Download here

    library(ConceptLibraryClient)


    # Connect to API

    client = ConceptLibraryClient::Connection$new(public=TRUE)


    # Get codelist of Phenotype

    phenotype_codelist = client$phenotypes$get_codelist(
     'PH3656',
     version_id=8760
    )

    Py Package

    # Download here

    from pyconceptlibraryclient import Client


    # Connect to API

    client = Client(public=True)


    # Get codelist of Phenotype

    phenotype_codelist = client.phenotypes.get_codelist(
     'PH3656',
     version_id=8760
    )

  7. Version History

    Version IDNameOwnerPublish date
    8761 Pharmacy First - Sinusitis treatment full dmd codelist ieuan.scanlon2026-01-26 23:28
    Pharmacy First - Sinusitis treatment full dmd codelist ieuan.scanlon2026-01-26 23:28