The Short Answer:
Yes…unless you are willing to risk losing your job.
The Longer Answer:
You can refuse to take a drug test following an on-the-job injury. However, if you refuse the drug test, you are jeopardizing your employment.
For non-union workers, the choice is simple. If you refuse a drug test, you can be fired. (Most people do not know this: as a non-union worker, you can be fired for no reason or just about any reason that does not violate public policy – requiring you to take a drug test does not violate public policy).
For union workers, the union contract will govern whether you are required to take a drug test. If the contract requires that you take a drug test and you refuse, you can be terminated.
You have breached the union contract and the union will likely have no recourse on your behalf. If your employer demands that you take a drug test, consult with your shop steward or union official before you comply.