Hello,
Yes you need to consult a doctor as you may need topical and oral antibiotics. You also need to check out your tetanus shot as If it is more than 10 years since the last tetanus booster, then please get a tetanus toxoid shot. Usually the swelling goes on its own within days, but sometimes it may take weeks or months for complete resolution.
Wash the areas several times with fresh water. Do not use any cosmetic products at the sites. You can apply some calamine lotion at the rash as it will help in soothing the skin. Application of mild corticosteroid cream and oral antiinflammatories like ibuprofen/acetaminophen are also helpful. If the symptoms are severe then it will be best to consult a dermatologist.
It is very difficult to precisely confirm a diagnosis without examination and investigations and the answer is based on the medical information provided. For exact diagnosis, you are requested to consult your doctor. I sincerely hope that helps. Take care and please do keep me posted on how you are doing.
Was it a metal hook? You might need a tetnus shot if you can't remember when your last one was. If it doesn't look infected you're probably okay, but 3 weeks is a while for it to still be swollen and tender...you may want to just call your doctor and ask him if he wants you to come in. Better safe than sorry!
Might be a good idea, just to make sure there isn't any infection. The swelling and soreness is normal.