Complex Schedule Algorithm

Description
<h2><br/></h2><p>Hello!  This is long, but please bear with me.  :-)</p><p><span>I work in a mental health office where we see our patients 3-5 hours per day, 2-5 days per week.  We have approximately 20 therapists and 35 patients.  Each patient is assigned to specific therapists and group therapies that are each 1 hour long.</span></p><p><span>EXAMPLE:<br/>Patient:  John Doe<br/>Groups he can attend:  Art Therapy, Process Group, Tai Chi Group<br/>Groups he should never attend:  Body Image Group<br/>Therapists he sees: Dr. Wittert (Life Coaching) twice, Dr. Thornton (Case Management), Dr. Harris (Psychiatrist), Robert (Primary Therapist) twice, McAndrews (Acupuncture) twice<br/>Scheduling restrictions:  Unavailable after 4pm daily, prefers to come in after 10am</span></p><p>The therapists tell us which hours they're available to see patients each week, and then we create all the patient schedules based on availability.  We run into issues because 35 patients are seeing the same 20 therapists, and most of the therapists come in 5-6 hours per day.  Patients should also never have more than 1 hour break per day, so their appointments need to be back to back.</p><p>Creating this schedule is like working on a Rubik's cube.  Therapists can only see one patient at a time unless it's group therapy.  We can only have 8 patients max in each group.  </p><p><span>Currently, we are using Google Calendar to drag and drop appointments, but things change each week (a therapist goes out of town, a patient needs to see a specific therapist more often, etc a new patient comes into the program, etc) so we're unable to keep a set schedule every single week.</span><br/></p><p>What I would LOVE is to have some sort of algorithm/program that I can enter in the therapists and the hours they're able to work/restrictions, then enter in the patients and which therapists they need to see, how many times per week they need to see them, which groups they should and shouldn't attend (group schedules are the same every week), and any scheduling restraints they may have.  Once I enter in that information, I'd like to just press, &#34;Configure,&#34; and have it spit out schedules for each patient.</p><p>I was trying to work with OptaPlanner, but I think the programming I need is much too advanced for me to actually figure this out on my own.  In addition, I need something that will have a user friendly interface and will easy to navigate/operate.  If it was built within Google Apps (Google calendar, Sheets, Docs, etc. whatever) that would be HUGE.  I'd add another 1k bonus.</p><p>Can you help me?</p>
Discussion
  • {{comment.username}}
Status
Active
submission(s) pending review
Bounty expires in
Bounty expired
Bounty
500
Tags
(no tags)