OHDSI Home | Forums | Wiki | Github

Procedure records for drug administration

In talking about CDM v5 for drugs today with the Medicare ETL group, I realized I was not clear on how procedures for drug administration should be recorded. By way of background, a J-code (a specific HCPCS code) generally indicates an infused drug. This is typically accompanied (on a different record) with an administration code (generally injection or infusion). Sometimes an administration code covers more than one drug depending on the payer policy (e.g., an infusion of two drugs at the same time).

This is from the wiki for CDM v5 procedure occurrences (my emphasis on “simultaneously”):

Procedures could involve the application of a drug, in which case the procedural component is recorded in the procedure table and simultaneously the administered drug in the drug exposure table when both the procedural component and drug are identifiable.

I just want to be clear what records are generated.

  • Does the J-code result in a record in the drug exposure table? Sounds like “yes” and that make sense.
  • Does the administration code result in a record in the procedure occurrence table? Sounds like an obvious “yes”.
  • Does the ETL process generate a record in the procedure occurrence table for the J-code? This seems like it should be a “no”.

If the answer to the third bullet is “yes”, I worry a little about double-counting if the J-code shows up in two places. Also this has implications for attributing costs in the cost table.

Any clarification, or other thoughts?

1 Like

Mark:

The answer is yes. No double counting, since we are in two different domains. The patient truly had exposure to a drug, and at the same time a provider stuck a needle into her, i.e. performed a procedure. The fact that the healthcare system lumps them together for reimbursement purposes is irrelevant to the patient experience.

BTW: It’s not just J-Codes. There are procedure drug G and C codes as well.

You are right with the cost. It should be recorded only in one of the two places. But it’s not easy to figure that out if you are trying to derive total cost of procedures or total cost of drugs and the money is recorded in the other table. Not sure. We need to find a solution.

1 Like

Hi Christian:

The fact that the healthcare system lumps them together for reimbursement purposes is irrelevant to the patient experience.

I am not sure I follow. In this example, the reimbursement system has not lumped them together. On one line, there is an administration code to indicate that an administration was given (for example HCPCS code 90765 for IV infusion). And on a separate line, there is a drug code to indicate what was administered (the J-code).

Are you saying that the J-code stays in the procedure_occurrence table and goes in the drug_exposure table?

Almost. The J-code has a duplicate meaning: It indicates that a procedure was performed and it also indicates exposure to a drug. Therefore it goes in the PROCEDURE_OCCURRENCE table, and the RxNorm Concept it maps to goes into the DRUG_EXPOSURE table. If in the source data there is a CPT-4 code 90765 in addition to the J-code then yes, that would be a duplication of the information that an infusion happened (the J-code alone would be sufficient to indicate that fact), and currently we are not resolving that: We don’t have a PROCEDURE_ERA table, which removes similar duplications in the Condition and Drug Domains. We have been thinking about that, but it would require that we enforce the OMOP Standardized Vocabularies axiome in the Procedure Domain that all medical entities exist only once per Domain as a Standard Concept. In other words, the J-code Concept should be a non-standard Concept (relegating it into the procedure_source_concept_id field), while the CPT-4 Concept for infusion should be the only Standard one, with the J-code Concept mapping into it. We are not there yet.

The J-code has a duplicate meaning: It indicates that a procedure was performed and it also indicates exposure to a drug.

I am not sure I agree with that. HCPCS level I codes (identical to CPT codes) do indicate procedures. But J-codes are HCPCS level II codes. These are for supplies (generally, see below with my emphasis added). My interpretation is that J-codes are simply alternatives to NDC or other drug codes. They do not in any way indicate a procedure directly. Perhaps implicitly, but there is no need for implicit inference when the administration procedure will be in the data already.

Level II of the HCPCS is a standardized coding system that is used primarily to identify products, supplies, and services not included in the CPT codes, such as ambulance services and durable medical equipment, prosthetics, orthotics, and supplies (DMEPOS) when used outside a physician’s office. Because Medicare and other insurers cover a variety of services, supplies, and equipment that are not identified by CPT codes, the level II HCPCS codes were established for submitting claims for these items.

Link to CMS website: http://www.cms.gov/Medicare/Coding/MedHCPCSGenInfo/index.html

Hm. Interesting perspective. We have so far interpreted differently. For example the first (randomly queried) J codes are:

Injection, tetracycline, up to 250 mg
Injection, abatacept, 10 mg (code may be used for medicare when drug administered under the direct supervision of a physician, not for use when drug is self administered)
Injection abciximab, 10 mg
Injection, acetaminophen, 10 mg
Injection, acetylcysteine, 100 mg
Injection, acyclovir, 5 mg
Injection, adalimumab, 20 mg

In our interpretation, these are codes for the event and for the drug combined. This is emphasized by the second example (there are quite a few such cases). However, you are right that there are drugs which are not explicitely mentioning a procedure:

Buprenorphine, oral, 1 mg
Buprenorphine/naloxone, oral, less than or equal to 3 mg
Buprenorphine/naloxone, oral, greater than 3 mg, but less than or equal to 6 mg
Buprenorphine/naloxone, oral, greater than 6 mg, but less than or equal to 10 mg
Buprenorphine/naloxone, oral, greater than 10 mg

How sure are you about this? Should we ask somebody with authority in the matter? It would be easy to change the mapping rules on our side and demote the Procedure Concepts.

I agree with @Mark_Danese. There are certain J codes that are reimbursed based on their average sales price, reported to Medicare on a quarterly basis (please see http://www.cms.gov/Medicare/Medicare-Fee-for-Service-Part-B-Drugs/McrPartBDrugAvgSalesPrice/index.html?redirect=/McrPartBDrugAvgSalesPRice/10_VaccinesPricing.asp). This is strictly based on the cost of the drug and does not cover the administration of the drug. Here is documentation for billing chemotherapy administration codes in conjunction with chemotherapy products (aka J codes) for Medicare: http://www.cms.gov/Regulations-and-Guidance/Guidance/Transmittals/downloads/r147cp.pdf

The above link corresponds to what @Mark_Danese mentioned earlier.

@Christian_Reich you are correct that this is not limited to J codes specifically, but could include G and C codes. However, and example of a G code (flu shot) still has an administration code that needs to be billed with it, mimicking the chemo billing I mentioned earlier, except the codes for a flu shot starts with a 9… And the administration code starts with a G (http://www.cms.gov/Outreach-and-Education/Medicare-Learning-Network-MLN/MLNProducts/downloads/qr_immun_bill.pdf).

This seems to be the same with devices where the level 1 hcpcs is for the procedure and the DME hcpcs is for the cost of the actual device.

As to asking someone with authority about this, I have 10 years of medical billing experience, with first hand knowledge of physician claims processing, coding, and reimbursement policy. But you guys don’t have to take my word for it :smile: that’s why I included links.

Jennifer:

Perfect. We got the authoritative voice. :smile:

So, let’s turn this into a heuristic we can roll out with the next vocab release. Please correct if the following is wrong:

  • All J-codes and all C-codes are only mapped to the equivalent RxNorm, creating Drug Exposure records.
  • All G codes except those starting with G9 will also be treated like that. The G9-codes will create simultaneously an RxNorm and a G9-based Procedure Concept as was the case before.
  • Devices should be all set. They get a domain_id = 'Device' and are not recorded as Procedures.

Anything I am missing?

1 Like

From my perspective, that sounds correct. @jenniferduryea is the expert on this, but she is away for the next week. If there are nuances, she can bring them up when she returns. Thanks very much. This will help us with the Medicare ETL as well.

Thank you @Mark_Danese. Technically I’m on vacation but I wanted to respond to this thread in case work will be done this week on this. I don’t have time right now to look up links or sources (limited to iPhone and airport wifi), but generally i think the rules should be:
Hcpcs J codes : drug exposure
Q codes: drug exposure (these are temp codes for new drugs not assigned a j code yet and they could change quarterly)
G codes: procedure occurrence. The G code I mention for flu shot above was for the admin of the flu shot. There is a CPT code for the actual Injection. My impression is that G codes are generally preventative or just special services specifically covered by Medicare. But please give me an example @Christian_Reich of what you have found that could qualify as a drug exposure and I will look up the coding guidelines for this.
C codes: procedure occurrence. These are services that are relatively new and fall out side of the outpatient facility prospective payment system. This is more of an open bag where I could see that some of these codes could be drug exposures (most would be procedures) but I don’t have an example of this off the top of my head. @Christian_Reich please give me an example and I willl look up coding references for that.
A, E, K, and L codes: device exposures.

I hope this gives you a good start. If you have any other questions on other types of fun hcpcs codes, then please let me know.

1 Like

Per the request from @Christian_Reich, we can do a more complete summary when @jenniferduryea returns to the office. But I think the above should be a good start.

Sure. Here you are.replacementPatterns.xlsx (14.1 KB). The Wiki only takes xlsx files, so I saved the csv as xlsx, but otherwise it is identical.

@Christian_Reich – I’m not sure I understand your last post and how it relates to this thread. Specifically, I was hoping you would send me some examples of G and C codes that would map to RXnorm because I am unaware of any codes that would do so.

Per @Mark_Danese, here is a more complete summary of what HCPCS should be mapped to what tables:

  • J Codes mapped to Rxnorm (Drug Exposure table).
  • Q Codes mapped to Rxnorm and possibly Device Exposure table.
    • Q codes are temporary codes for new drugs that do not have a J Code assigned to them yet.
    • Q codes can change every quarter.
    • Some of these codes include skin substitutes and devices (like casts) – I’m not sure if that is considered a device or a drug in CDM.
    • If the Q Code is a drug, there would be an appropriate administration code accompanying that drug on the claim. So this Q code should only be considered for the Drug Exposure table.
  • G Codes mapped to Procedure Occurrence table.
    • Most G Codes are procedure that specifically Medicare covers that does not have a specific CPT code (or HCPCS level I) assigned to it.
    • Some G Codes look like “drug” codes, when they are actually codes for drug testing. These codes are in a range from G6030-G6058 (for 2015).
    • A set of G codes are actually codes for Physician Quality Reporting System (PQRS).
      • The range of codes are from G8000-G8999.
      • These codes are specifically used to participate in the extra bonus (or avoid the penalty now) provided by the PQRS. If physicians report these codes on enough patient claims for the year, they get a little bonus or penalty at the end of the year. These codes are used to describe observations about a patient that cannot be captured in regular claims data.
      • Example: G Code G8930 indicates that an assessment of depression severity was done at the initial evaluation.
      • I’m not sure where those codes belong in CDM but I can definitely say that they are not drug or device exposures. It’s probably best to put them under the Procedure Occurrence table.
      • Since we are talking about PQRS, you should also be aware of CPT Level II codes, which are also used for PQRS and also show up in Medicare claims data. Please let me know (or start a new thread) if you guys need help with CPT Level II codes.
    • The last set of G codes are actually codes for the Medicare Demonstration Project.
      • The range of codes are from G9000-G9999.
      • Medicare Demonstration Projects are little test sites Medicare sets up with certain providers to determine best outcomes for patients and revenue. Some of these projects could last years. These set of G Codes are specific to providers working under a demonstration project that have services not typically covered under Medicare. I would still consider these codes procedures and should be under the Procedure Occurrence table.
  • C Codes mapped to the Procedure Occurrence, Drug or Device Exposure table.
  • E, K and L Codes mapped to Device Exposure table.

If you have any questions, please do not hesitate to ask! I included links in this forum in case anyone was interested.

2 Likes

@jenniferduryea:

Disregard the previous comment. It went to the wrong panel.

This is wonderful. You are a God-send. I’ll formalize these and put them in the description (yet to be written).

In fact, let me make a list of of these domain assignment problems. Maybe we can find a heuristic for them all and have solved the problem. Give me a day.

1 Like

I’m glad I can be of help! Please let me know if you have any other issues with codes and I can look into them for you.

@jenniferduryea et al.:

We are struggling with two questions that stem from your suggestions:

  1. If we say that procedure drugs will only get a record in the drug table and not in the procedure table, we run into the following situation. For many of them we can identify the exact product (clinical drug, drug component or at least ingredient), but for some of them it is not very well defined. For example Q0084 “Chemotherapy administration by infusion technique only, per visit” or, worth, S9497 “Home infusion therapy, antibiotic, antiviral, or antifungal therapy; once every 3 hours; administrative services, professional pharmacy services, care coordination, and all necessary supplies and equipment (drugs and nursing visits coded separately), per diem” cannot be mapped to anything concrete. We now could say that in those cases we don’t use the standard RxNorm Concept, but the original HCPCS code, but that will create problems with the fact that these are not part of the RxNorm system where drug forms, ingredients, drug classes are all linked to the products. In other words, we get these ugly pseudo drug records which are repetitive.

  2. I am not sure what to do with radiochemicals. Should we also treat them like drugs? For example A9585 “Injection, gadobutrol, 0.1 ml”, which looks just like any other J code.

I am tempted to propose the following solution: We still create two records: One in the DRUG_EXPOSURE table (if we can map it) and one in the PROCEDURE table. The procedure table gets the Concept based on the original HCPCS code, irrespective of whether we can map it to RxNorm or not, and whether it is a radiochemical. The fact that there is a parallel CPT-4 code indicating the administration of an injection or infusion doesn’t hurt. It’s normal that we have the same information twice, and we need to deal with it anyway.

The cost, however, would only be recorded in one of the two tables, and since we not always have an RxNorm map it would go into the PROCEDURE_COST table.

Makes sense?

Hi Christian:

So for the JCode concept ids listed below would they have twin concepts that are listed as procedures and not drugs?

Thanks

Jorge

2718851,2718916,
2718918,2718824,2718848,2718849,
2718872,2718895,2718874,2718863,
2718845,2718917,2718846,2718896,
2718844,2718868,2718911,2718840,
2718825,2718837,2718852,2718915,
2718847,2718843,2718841,2718867,
2718850

@Jorge:

No. They are drugs. According to Jen Duryea they are really only used to indicate that a drug was applied. The actual procedure of pricking the poor patient with a needle should be in an acompanying CPT code. I haven’t tested that assumption.

Why?

1 Like

I am having a similar issue with getting the J,G,C HCPCS codes into their correct domain. Do we use the concept_relationship table to flow the HCPCS codes into their correct domain? For many JCodes, we don’t see a relationship_id from source to standard concept_ids. In other cases, we don’t see a ‘maps to’ relationship.

Example: ConceptID 2718872 is not standard but doesn’t have a ‘maps to’ relationship in the relationship table.

ConceptID 2718921 IS standard but doesn’t have a self-map in the relationship table.

In both cases we are losing this data when we do a join into the relationship table to check for source to standard ID mappings. Are we interpreting this correctly?

Thanks!

@meier102:

No need to bother any relationships. Each concept has a domain. So, your J-code concepts

2718872 J9201 Injection, gemcitabine hydrochloride, 200 mg
2718921 J999 Not otherwise classified, antineoplastic drugs

are both domain “Drug”, and hence should be recorded in DRUG_EXPOSURE.

The first one is mapped to an RxNorm concept, which should be used in drug_concept_id. The second one is not. Instead, it is a standard concept by itself and can go right into drug_concept_id. The reason is that “antineoplastic drug” is not a specific ingredient, and therefore cannot be mapped to RxNorm.

t