Answer:
B
Step-by-step explanation:
When plugged into the sentence, it would be Robert has been ill for three weeks. He's still in the hospital. Had been and was both reference that Robert had been ill in the past, so that wouldn't work as he's still ill in the present. As for C, it frankly just doesn't work or make any grammatical sense whatsoever.