Optimizing Hospital-wide Patient Scheduling