Urine Drug Testing for Opioids and Marijauna

  • Marissa Mapa
  • Robert Arnold MD

Download PDF

Background     Urine drug testing (UDT) is widely used for testing for opioids and illicit drugs. There are two types of UDT: a screening test and a confirmatory test.  The screening test uses an immunoassay to look for the parent drug and/or metabolite.  Most UDTs screen for marijuana, cocaine, opiates, PCP, and amphetamines; some also test for benzodiazepines and methadone.  The confirmatory urine drug test is done by gas chromatography/mass spectrometry (GC/MS) or high-performance liquid chromatography (HPLC); this test is highly specific and is typically used when testing for the presence of a specific drug is needed. 

UDT Interpretation   A UDT cannot tell the amount of drug ingested/used or the time of use or the source of drug (intravenous vs. oral vs. inhaled).  Detection time of a substance in urine is typically 1-3 days.  The rate of excretion varies depending on differences in metabolism/ urinary function.  Thus, obtaining history as to when a suspected drug was last used needs to be correlated to the timing of the test.  Lipid-soluble drugs (e.g. marijuana) may remain in body fat and be detectable for a week or more.

Typically the screening immunoassay UDT detects the amount of drug present in urine above a predetermined “cut-off” concentration.  Thus, a substance may be present, but if the concentration of that drug is below the cut-off, the result will be negative.  If you suspect drug use or desire the confirmation of this substance, ask the urine to be tested with a “no cut-off” or “no threshold testing” or ask for a confirmatory test with GC/MS or HPLC.

If specimen tampering is suspected, ensure the urine is compatible with human physiology.  The urine temperature should be 90-100°F; pH between 4.5 – 8.0; and a spot check of urinary creatinine should be greater than 20 mg/dL.  A creatinine less than 20 mg/dL is considered dilute; less than 5 mg/dL is not consistent with human urine and the sample should be discarded.

The screening immunoassay test has limited specificity for opiates.  The test cannot differentiate morphine from codeine (natural occurring opiates) and will not reliably detect synthetic or semi-synthetic opioids.  A confirmatory test is required to test for all opioids.  

Knowledge of opiates’ metabolism is needed for UDT interpretation. For example, codeine and heroin are both metabolized to morphine, through different pathways and different intermediary metabolites.  A prescription for codeine may yield an appropriate positive result for codeine and morphine in the urine.  However, if codeine is prescribed and only morphine is found in drug testing, the most consistent interpretation is the unknown use of morphine or heroin.  Prescribed morphine will result in only morphine in a sample and not codeine.

The presence of marijuana is detected by the presence of tetrahydrocannabinol (THC), its active ingredient.  The screening immunoassay UDT is unable to distinguish between smoked marijuana and the synthetic preparation dronabinol (Marinol). 

False positive immunoassays are the result of cross reactivity. Quinolones, specifically levofloxacin and ofloxacin, may give a positive result for opiates. 

The cost of a UDT differs from lab to lab and especially in the number of substances tested.  The screening test costs between $69 to $148; the confirmatory test ranges from $92 to $165.


  1. Gourlay D, Heit H, Caplan Y.  Urine Drug Testing in Primary Care:  Dispelling the Myths and Designing Strategies. Monograph PharmaCom Group, Inc; 2002.
  2. Heit HA, Gourlay DL. Urine drug testing in pain medicine.  J Pain Symptom Manage. 2004; 27:260-7.

Version History:  This Fast Fact was originally edited by David E Weissman MD and published in April 2004. Re-copy-edited in April 2009; references updated; copy-edited again June 2015.