private void handleSpecialistQueues() {
		for (int i = 1; i < 8; i++) {
			HospitalPart hp = HospitalPart.values()[i];
			Sector sec = sectors.get(hp);
			LinkedBlockingDeque<Patient> q = doc_queues.get(hp);

			if (sec.hasBusyDoc()) {
				int[] tmp = sec.getFinishTimes();
				for (int j = 0; j < sec.getDocCount(); j++) {
					if (tmp[j] == clock) {
						Patient patientOut = sec.goOut(j, hp.toString(),
								q.size());
						// System.out.println(q.size());
						if (q.size() > 0) {
							// for (Patient patient : q) {
							// System.out.println("@@@@@@@@@@@@@");
							// System.out.println(patient.getPatientId());
							// if ( sec.isBusy() )
							// System.out.println("WtF ?!");
							// }
						}

						SpecialistWorkType workType = random
								.getSpecialistWorkType();
						if (workType == SpecialistWorkType.HOSPITALIZE) {
							// HospitalPart hp2 = random.getHospitalizeRoom();
							doUrganceStuff(patientOut);
							// doc_queues.get(hp2).add(patientOut);
						}
					}
				}
			}
//			System.out.println("HERE::   " + sec.isBusy() + " " + q.size());
			if (q.size() > 0 && !sec.isBusy()) {
				Patient p = q.poll();
				int docId = sec.setPatient(p);
				// TODO expo
				 sec.setFinish_time((int)Distributions.ExponentialRandomNumber(sec.lamda ), docId);
				// + clock);
//				sec.setFinish_time(10 + clock, docId);
				Hospital.log("biya tooo " + hp, clock, p, hp.toString(),
						q.size());

			}
		}
	}