I think the easiest thing to do here is to use a syntax. You can do it by point/click in the compute thing (use the IF function) but somehow I often end up making mistakes there not in the syntax.
Syntax is basically a typed set of commands (file -> open -> syntax).
you can use an If-function for this. Basic layout:
if (something with an old variable) newvariable = value.
If (gender = 1 & weeklyconsumption > 14) heavydrinker = 1.
If (gender = 1 & weeklyconsumption < 14) heavydrinker = 0.
if (gender = 0 & weeklyconsumption > 20) heavydrinker = 1.
if (gender = 0 & weeklyconsumption < 20) heavydrinker = 0.
The syntax above is to create a variable called Heavydrinker.
If females (gender = 1) drink > 14 alcoholic consumptions per week they are considered heavy drinkers, for males it is >20. Here we indicate that if someone is a female AND they drink more than 14 consumptions per week, the new variable heavydrinker gets a 1 (etc.).
For you, it makes sense to first recode Mantouxtestreadingscore and Radiological to make the missings have a 0 (makes the rest easier).
recode Mantouxtestreadingscore Radiological (sysmis = 0).
first make a new string variable with the name NEWVAR (replace this with whatever name you want).
then use if-function to make a new variable.
if (Mantouxtestreadingscore = 0 & Radiological = 0) NEWVAR = "normal".
if ((Mantouxtestreadingscore = 1 | Mantouxtestreadingscore = 3) & (Radiological = 0 | Radiological =1)) NEWVAR = "Infected".
if ((Mantouxtestreadingscore = 1 | Mantouxtestreadingscore = 3) & (Radiological = 3)) NEWVAR = "Diseased".
note that you do not have anything for people that have 1/3 on radio and nothing on mantoux, but I don't know if that can happen.