OHDSI / Vocabulary-v5.0

Build process for the OHDSI Standardized Vocabularies. Currently not available as independent release.
The Unlicense
222 stars 75 forks source link

HCPCS name is not properly updated #971

Open dimshitc opened 8 months ago

dimshitc commented 8 months ago

https://athena.ohdsi.org/search-terms/terms/2718917

It is a teclistamab beginning from July 01, 2023. https://www.hcpcsdata.com/Codes/J/J9380#:~:text=2024%20HCPCS%20Code%20J9380%20%3A%20Injection%2C%20teclistamab%2Dcqyv%2C%200.5%20mg before it was Vincristine apparently OHDSI vocabulary keeps the old name as concept name and new names as synonyms, while it should reflect the latest meaning only, Valid dates are also assigned as a historical dates. Please include it in the next release, as it looks important

I didn't check if there are more of such codes, just this one found accidentally.

cgreich commented 8 months ago

Why is vincristine now teclistamab? One is a traditional tubulin binding chemotherapeutic agent from the 60ies, the other one a CD3 receptor antibody approved a couple years ago. Or what am I missing?

m-khitrun commented 8 months ago

Hello, It is a known issue of HCPCS - reused codes. It's been discussed for years and until now there's no good solution. And unless we have a solution we intentionally keep historical names and dates for them. Synonyms should be fixed to match the names, obviously.

dimshitc commented 8 months ago

So choosing between historical and novel, you chose the historical, so the novel drugs which are mostly the research interest are missing. Can you share the list of such concepts, so we can quickly fix it internally?

m-khitrun commented 8 months ago

@dimshitc The full list of reused codes you may find in the HCPCS section of the Known issues in the vocabularies. There are three drug codes among them:

concept_id HCPCS code Old HCPCS name New HCPCS name Reused code effective date
2718911 J9350 Injection, topotecan, 4 mg (Deprecated) Injection, mosunetuzumab-axgb, 1 mg 2023-01-07
2718383 J1440 Injection, filgrastim (g-csf), 300 mcg (Deprecated) Fecal microbiota, live - jslm, 1 ml 2024-01-01
2718917 J9380 Vincristine sulfate, 5 mg (Deprecated) Injection, teclistamab-cqyv, 0.5 mg 2023-01-07
cgreich commented 8 months ago

Oh. I see what you mean. These are reused J codes. They are not name changes. None of these things are equivalent to each other.

HCPCS procedure drugs will be updated in the next release. Then, you will see both codes with different validity dates. J9380 already died in 2014, for example.

dimshitc commented 8 months ago

@m-khitrun but codes mentioned here have their newer meaning https://forums.ohdsi.org/t/hcpcs-codes-change-their-meaning-over-time/6182 So before we had newer meaning, but after some time it was decided to keep the reused codes with historical meaning. Is it true that reused HCPCS codes have either new meaning in the vocabulary (those from forum post) OR they have old meaning AND are mentioned in the list in Known issues in the vocabularies?

@cgreich no, we will not see codes with different dates in the next release unless we ratify it as a solution and agree to include it in the next release.

cgreich commented 8 months ago

Well, it is kinda sorta a little bit at some point - ratified. But I agree with you. The solution is horrible. We have a better solution: OMOP Extension. But that requires work. Which requires resources. Which is where we are falling short. I'll keep you posted.

dimshitc commented 8 months ago

BTW, maybe it will be easier not to make two concepts with different dates and names, but keep one concept with name like 'Vincristine before 2014-01-01; teclistamab after 2023-01-07' which Maps to Vincristine with valid_end_date = 2014 and invalid_reason =R, Maps to teclistamab with valid_end_date = 2099, invalid_reason ='R' probably change logic in Concept_relationship is easier than the vocabulary logic.

How OMOP Extension will help us? We still need to identify the source code as combination of code and dates.

cgreich commented 8 months ago

How is this going to help? They already have different conceptnames and valid* dates. The problem is the identical concept_code. For standard concepts, that is a problem. For source concepts, it is, too, but mostly during ETL.

The OMOP Extension would create a one-to-one copy (or maybe a set of split up copies) for each of the reused codes, mapped from the HCPCS. The data would contain only the non-ambiguous standard OMOP Extension concepts. We could de-standardize the entire HCPCS, which is a good idea to begin with.

dimshitc commented 8 months ago

how will you connect the HCPCS to the OMOP Extension?

cgreich commented 8 months ago

Maps to.

dimshitc commented 8 months ago

looks like what I just wrote

'Vincristine before 2014-01-01; teclistamab after 2023-01-07' which Maps to Vincristine with valid_end_date = 2014 and invalid_reason =R, Maps to teclistamab with valid_end_date = 2099, invalid_reason =null

** these are OMOP Extension concepts if they are mapped to existing terminologies, they get replaced by them, if not - OMOP Extnension stays

cgreich commented 8 months ago

Exactly. But there are downsides, too. Let's discuss when the time comes. (Not here).

m-khitrun commented 8 months ago

Is it true that reused HCPCS codes have either new meaning in the vocabulary (those from forum post) OR they have old meaning AND are mentioned in the list in Known issues in the vocabularies?

Well, the codes mentioned in that post were updated with their new semantics in 2019. After that, the decision was made to preserve old semantics unless the new approach was implemented. And now there's no ambiguity in our logic: we keep the reused codes with their old semantics and mention them in the Known Issues.

dimshitc commented 6 months ago

In JnJ we currently end up with the following:

  1. We changed the unique definition of concept from (concept_code+vocabulary_id) to (concept_code+vocabulary_id+valid_start_date)
  2. created new concepts for concepts with the new meaning
  3. Assigned Invalid_reason = 'R' to both old and new version of the concept.
  4. Source concept is chosen by ETL by the following rule: If you identify by source_code and vocabulary_Id and resulting OMOP source concepts have invalid_reason ='R', chose concept where event is within the valid start / end date of the concept.

If source concept invalid_reason is null or not equal to 'R', ignore the dates.

This fixed allowed us to track the exposure of mosunetuzumab and teclistamab.

Note, with current state of vocabularies (without custom changes), mosunetuzumab and teclistamab can't be found at all in claims data bases, since these drugs are encoded using HCPCS codes only.

Please let me know if you need more details

dimshitc commented 3 days ago

Ok, probably you don't want to disturb the community by changing vocabulary DDL scripts. People will need to change their constraints. Let's make a non-invasive solution: keep the latest meaning. In this case we can investigate the novel drugs, filtering out by year. otherwise you don't see these new drugs at all.