Ojej, co za obrzydliwy kod 
Jakiego typu jest NazwaPacjenta? NSDictionary, czy NSMutableDictionary? Jak to pierwsze, to zmień.
Po drugie - w którym miejscu sprawdzasz, czy NSDictionary jest puste?
Powinieneś tuż po przypisaniu do dict (czyli dict=...) dać:
NSLog(@"%d", [dict count]);
Czy w tym miejscu count zwraca 0?
Jeśli tak, to bardzo dziwna sprawa, bo przypisanie jest dosyć prostą sprawą. Sprawdź dla pewności co przypisujesz, tj. wypisz sobie owe:
Do tego pytanie, co zwraca:
Kod:
[[ObjectContainer getInstance] valueForKey:[NSString stringWithFormat:@"pacjent-%i", x]],
[[ObjectContainer getInstance] valueForKey:[NSString stringWithFormat:@"pacjent-%i", (x-1)]],
i do tego pytanie, co zwraca:
Kod:
[[ObjectContainer getInstance] valueForKey:[NSString stringWithFormat:@"pacjent-%i", x]],
[[ObjectContainer getInstance] valueForKey:[NSString stringWithFormat:@"pacjent-%i", (x-1)]],
Na koniec, just in case, co oznacza ta linijka?
Kod:
([[[ObjectContainer getInstance] valueForKey:[NSString stringWithFormat:@"pacjent-d-%i", x]] isEqualToString:[[ObjectContainer getInstance] valueForKey:[NSString stringWithFormat:@"pacjent-d-%i", (x+1)]]])
Dwie uwagi na koniec:
NazwaPacjenta - instancje obiektów nazywa się z małej litery, czyli powinieneś był dać nazwaPacjenta (za to nazwy klas daje się z dużej). Nie zmienia to działania programu, ale zwiększa znacząco czytelność.
Po drugie - XML jest passe - gdyby webservice zwracało wyniki w JSONie, to miałbyś dużo łatwiejszą pracę (jedna funkcja zamieniłaby Ci wszystkie wyniki na NSDictionary).