1)
I think you want this ?
data operate;
input Hospital Treatment $ Severity wt @@;
datalines;
1 a 1 23 1 a 2 7 1 a 3 2
1 b 1 23 1 b 2 10 1 b 3 5
1 c 1 20 1 c 2 13 1 c 3 5
1 d 1 24 1 d 2 10 1 d 3 6
2 a 1 18 2 a 2 6 2 a 3 1
2 b 1 18 2 b 2 6 2 b 3 2
2 c 1 13 2 c 2 13 2 c 3 2
2 d 1 9 2 d 2 15 2 d 3 2
3 a 1 8 3 a 2 6 3 a 3 3
3 b 1 12 3 b 2 4 3 b 3 4
3 c 1 11 3 c 2 6 3 c 3 2
3 d 1 7 3 d 2 7 3 d 3 4
4 a 1 12 4 a 2 9 4 a 3 1
4 b 1 15 4 b 2 3 4 b 3 2
4 c 1 14 4 c 2 8 4 c 3 3
4 d 1 13 4 d 2 6 4 d 3 4
;
proc catmod data=operate order=data ;
weight wt;
response mean;
model Severity=Treatment|Hospital ;
quit;

If you want do multiple dimension of ANOVA ,you could use PROC GLM or GENMOD, since ANOVA is under framework of General Linear Model.
If you are talking about non-parameter version of multiple dimension of ANOVA, I have no idea about it. You could try @StatDave 's method.
2)
If there are no weight varible(a.k.a frequency of obs), you do not need WEIGHT statement.