Skip to main content

CodelistEntry

A single permitted value in a codelist.

Usage

Source

CodelistEntry(
    value,
    label,
    description=None,
    synonyms=None,
    is_deprecated=False,
    is_extended=False,
)

A Codelist is a list of CodelistEntry objects, each pairing a coded value (the value that appears in the data, such as "F") with a label that says what it means (such as "Female"). Codelist entries are created when import_metadata() reads a codelist, and can also be created directly to build a codelist by hand.

Parameters

value: Any

The coded value, as it appears in the data.

label: str

A human-readable label for the value.

description: str | None = None

A longer description of the entry. The default is None.

synonyms: list[str] | None = None

Other terms with the same meaning, such as the synonyms listed in CDISC Controlled Terminology. The default is None.

is_deprecated: bool = False

Whether the entry has been retired. A deprecated entry stays in the codelist (and in to_dict()) but is left out of the permitted values given by to_set(). The readers don’t currently set this flag, but you can for codelists you build yourself. The default is False.

is_extended: bool = False
Whether the entry is a sponsor extension to an extensible codelist: a value that isn’t in the published terminology but was added for a study. Define-XML marks these with def:ExtendedValue="Yes". The default is False.

Examples

Each codelist imported from a file holds its entries in codes. Here are the entries of the Sex codelist in the bundled CDISC Controlled Terminology file:

import pointblank as pb

ct = pb.import_metadata(pb.load_metadata_example("sdtm_ct.xml"), codelist="Sex")
sex = ct.get_codelist("Sex")

for entry in sex.codes:
    print(entry.value, "->", entry.label)
F -> Female
M -> Male
U -> Unknown
UNDIFFERENTIATED -> Undifferentiated

The values are the codes used in the data, and the labels say what they mean. An entry can also be created directly, for example to build a codelist that isn’t in any file:

entry = pb.CodelistEntry(value="NASOGASTRIC TUBE", label="Nasogastric tube", is_extended=True)

entry
CodelistEntry(value='NASOGASTRIC TUBE', label='Nasogastric tube', description=None, synonyms=None, is_deprecated=False, is_extended=True)

Setting is_extended=True records that this value was added to an extensible codelist rather than taken from the published terminology, so extended_values() will list it.

See Also

Codelist

The list of entries that a codelist is made of.