opensafely-core / opensafely-core/opencodelists

Separate CTV3 and TPP-CTV3 coding systems

Open
#1,448 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

coding system releases
Dominant language
Python
Stars
60
Forks
16
Avg merge
4d 12h
Merged PRs (30d)
17

Description

CTV3 is a retired coding system. We have the last (April 2018) release in OpenCodelists, and to this we add TPP's CTV3 codes, plus TPP-specific extensions (Y codes).

OpenCodelists calls this "CTV3", but it isn't really; it's CTV3 plus TPP extensions, plus some codes that are in the April 2018 CTV3 release but are not in TPP. As of 16th Nov 2022, CTV3 codes that are not in TPP are all concepts with "redundant" status.

OpenCodelists uses both raw CTV3 and TPP CTV3 codes when doing searches, but TPP only when building the hierarchy/tree.

Proposal: split CTV3 and TPP-CTV3 into separate coding systems in OpenCodelists. For the most part, they're treated separately anyway, and have their own models which will be quite easily separated.

All CTV3 codelists currently in OpenCodelists are really TPP-CTV3. "Raw" CTV3 is unlikely to be used for new codelists (and certainly not for any that are to be used in OpenSafely), but we can maintain it for non-OpenSafely users.

This means that new imports for TPP-CTV3 only need to import the TPP models.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the coding-system models and the import, search, and hierarchy/tree paths described in the issue. Confirm how raw CTV3 and TPP-CTV3 are currently handled, then separate them so existing codelists remain TPP-CTV3 and new TPP-CTV3 imports use only the TPP models.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.