private void handlePublicQueue() {

		HospitalPart hp = HospitalPart.PUBLIC;
		Sector sec = sectors.get(hp);
		LinkedBlockingDeque<Patient> q = doc_queues.get(hp);

		if (sec.hasBusyDoc()) {
			int[] tmp = sec.getFinishTimes();
			for (int i = 0; i < sec.getDocCount(); i++) {
				if (tmp[i] == clock) {
					Patient p = sec.goOut(i, "Public", q.size());
				}
			}
		}
		if (!sec.isBusy() && q.size() > 0) {
			Patient p = q.poll();

			PublicWorkType part = random.getPublicWorkType();
			int docId = 0;
			switch (part) {
			case PRESCRIBE:
				Hospital.log("biya tooo Public", clock, p, hp.toString(),
						q.size());
				docId = sec.setPatient(p);
				sec.setFinish_time(15 + clock, docId);
				break;
			case HOSPTILIZE:
				Hospital.log("biya tooo Public", clock, p, hp.toString(),
						q.size());
				docId = sec.setPatient(p);
				sec.setFinish_time(25 + clock, docId);
				break;
			case REFER:
				Hospital.log("biya tooo Public", clock, p, hp.toString(),
						q.size());
				doSpecialistStuff(p);
				break;

			default:
				System.out.println("never2");
			}
		}
	}