I suggest to use the HIGHLOW plot statement, you have to prepare the data accordingly.
See below for an example, that gives you some ideas:
data highlow;
infile cards dlm="," dsd missover;
input
patient : $32. low high type $ labelPoint labelValue $
;
cards;
patient1 someDate,0,20,hospital,10,20
patient1 someDate,20,40,ward,,
patient1 someDate,40,50,hospital,,
patient1 someDate,50,52,home,,
patient1 someDate,52,55,ward,53.5,abc
patient2 01jan2010-25sep2010,0,25,hospital,,
patient2 01jan2010-25sep2010,25,45,home,,
patient2 01jan2010-25sep2010,45,46,ward,,
;
proc sgplot data=highlow;
highlow y=patient low=low high=high / type=bar group=type;
text y=patient x=labelPoint text=labelValue / position=center;
yaxis type=discrete fitpolicy=splitalways;
run;
... View more