It’s a nuisance to do this through the printed name. The printed name isn’t supposed to include articles like “a” or “the” – those come from elsewhere.
It might be easier to write an initial appearance property, either of Steve or the operating table. Then you can write any paragraph you like.
Instead of calling the patient man or Steve, I’ve called him patient because that’s what he is no matter what name we know him as. No definite/indefinite article trickiness. The patient becomes proper-named when we learn he is called Steve.
A patient is on the operating table.
Understand "man" and "patient" as the patient.
The printed name of the patient is "man".
After examining the name badge for the first time:
now the printed name of the patient is "Steve";
now the patient is proper-named.
Understand "Steve" as the patient when the patient is proper-named.
Ah, I didn’t quite understand what you were going for. That should work fine.
You could also do
The printed name of the patient is "[if the patient is proper-named]Steve[else]man[end if]".
This saves you from having to set the printed name property in the rule. But that’s just a matter of style. (I prefer having fewer state changes and more variable text.)