FURO 2.0

A digital practice environment for clinical reasoning cases

Blog #18

Vacate and vacation

June 23, 2017 - Olaf Kampers

After months of hard work, the new version of FURO is finally close to completion. This week was quite stressful for all of us, since there was still a lot of work that needed to be done. Fortunately, everyone was very dedicated and some of our team members worked close to 40 hours this week to finish all of their tasks. We finished the final report and the trailer today, so some of the biggest tasks have been completed. Next week is the final week of the project, where we can make some final small adjustments to the code.

Since most of the members of our team did not have any experience with developing software in large groups, this project was a very educational experience. We encountered many obstacles along the way and the development process was far from easy. However, we are very satisfied with our final product and hope that it will be utilized in the clinical reasoning courses of the veterinary medicine department next year!

Blog #17

Once more into the fray

June 19, 2017 - Wesley de Ruiter

Into the last good fight I’ll ever know.
Live and die on this day.
Live and die on this day.

Metaphorically speaking if the last sprint of this project would be as a single day, that’s about how we will experience it. Exam week, presentations, deadlines…. All very familiar terms for the weary members of The Wolf Gang. But soon we will have prey: the fruit of our efforts; the sweet taste of redemption; the juicy, tender fabrics of accomplishment.

To get down to a more concrete way of viewing things though, we are currently doing the last week before the last week. This is it, everything has to come together now. And it looks like we’re on schedule, since the AI phase is finished, as well as the separate organ system phases. We’re writing documentation for the back end, and the last fixes for media and hotspot code are on the way. Aside from that a bunch of minor bugfixes and representational issues are being taken care of. We will have on more client meeting next week, so we want to make it all happen.

As for this week, we got the reflection presentations coming up on friday. That’s also the day that the trailer and the end report have to be finished, which are currently in full progress. We just received the final bits of feedback from our supervisor, so we know exactly what has to be done, aiming for the best possible end result. In the week after, we’ll also have the final presentations, so a filmed demo will have to be created as well, aside from the trailer. Then there will also be exams that week so it shall be an eventful time, that’s for sure.

Blog #16

The end is nigh

June 11, 2017 - Wesley de Ruiter

We are nearing the end of the project. Next client meeting will be the last one before everything will be wrapped up. Most other teams are just fixing small bugs and writing documentation, but in our team there is still a lot to be done. We have to get a SAML connection up for server access, which is being arranged for us at the moment. Furthermore, organ system examinations as separate phases (instead of all together in one phase) is still a thing to be realised, as well as the emergency case for animals in a severe condition. Then there is the video functionality which has to be incorporated into the FURO 2.0 code structure for media. Lastly, there are a bunch of smaller fixes throughout the entire program that have to be dealt with.

To end on a positive note, we did finish up on the first version of the end report, but that has to be polished and extended as well to better reflect our project. Together with the end report, we have also been working on the poster of our project, showing off the animal models and highlighting the new abilities of the program. We als found a way to write unit tests for Unity despite the fact that initially it seemed impossible to test scripts derived from MonoBehaviour since they would need to be instantiated (which MonoBehaviour does not allow), so things are looking positive to still provide some tests anticipating the upcoming code review.

Blog #15

Staying Focussed

June 4, 2017 - Wesley de Ruiter

It’s Whitsunday or, as we say in Dutch, Pinksteren! More days off, but postponing does not mean we don’t still have to make our weekly hours. This is really the time to start pouring in extra work in order to satisfy the quota, and so we do. There’s still a lot of work to be done in writing unit and integration tests, writing the final report and fixing a whole bunch of stuff. We had the client meeting this week, and a painfully clear minus for us was things not working smoothly yet on the master, e.g. certain aspects of the program not working as intended. Other than this inconvenience, our client was positive and satisfied about the progress, and we noted a list of usability wants that would improve the details of the program.

Concerning the back end connection and its deletion procedures, we are still working out a problem with tags that prohibit an item from being disposed of. There’s also some fine tuning required to make the use of presets fully functional, such as dealing with the possibility of two teachers consecutively or even concurrently working on a preset. We don’t want one of them saving the work and causing the program to overwrite the work done in by the colleague. Furthermore, we are awaiting more info from our ITS contact Antonie about the SAML connection for login functionality to the UU server.

Blog #14

Knock knock! Who’s there? Docker! Docker who?

May 28, 2017 - Wesley de Ruiter

That’s right, this week we have been working on a Docker setup to use a local database for testing. This is needed as everything still has to be arranged on the actual server, so until we can test live we don’t want to stagnate the progress of other parts of the code, specifically the front end, for being unable to test at all. The media code, which is responsible for regulating image, sound and video files (provided by the teacher) is a good example of this. Testing in the Unity player environment can only do so much, but when we actually want to test a WebGL build, the data has to remain in an accessible database, which is currently not the case: created cases in the teacher side will be erased once you start up a new build in the student side of the program. Speaking of media, in particular video, a small update is worth mentioning. Jonathan has gotten back to us by email and mentioned that it will be more of a hassle to decide whether or not the veterinary department would like to have auto-upload of videos by our program. Since it involves access rights and possible extra costs (e.g. Vimeo Plus upgrade) it will have to be determined more carefully with additional meetings. In short, we won’t have time to await this in the remaining weeks of the project, so we decided to leave this arrangement and corresponding implementation to a follow-up team in a possible continuation of this project.

Meanwhile, it has been a busy week due to midterms. Not all members of the team could afford to be in office all days of the week in favor of learning for their respective exams. On top of that, there was also Hemelvaart this week, which resulted in several university buildings closing down on thursday and friday, preventing any attendance for the remainder of the week. We did what we could of course, partially working from home as well. The refactoring is still in progress but should nearly be finished at last. Now all that remains is to finally get the back end and database working on the UU server, and get everything fully and effectively connected to the front end. We already have an older version running on the server right now, which does indeed function as expected, so we are positive this whole ordeal can be arranged shortly within this sprint.

Blog #13

Summer is right around the corner

May 22, 2017 - Olaf Kampers

After weeks of dull weather, it finally feels like summer is arriving. Wednesday was the hottest day of the week, so most of our group decided to work on the benches outside the building. This seemed like a great idea at first, because we were able to charge our laptops with power provided by the solar panels in front of the building. However because of the intense sunlight, some of our laptops started to get overheated after only a few minutes. So we decided to go back inside pretty soon after. Luckily it wasn't hot at all in the project room, so we were still able to get some work done.

Unfortunately, most of the tasks we planned for this sprint are taking longer than we expected. The refactoring has not been finished yet and there are also some problems with the back end connection. We are having some trouble getting the media files to work in WebGL as well. We still have two more weeks left in this sprint, so that should be more than enough time to finish all of the tasks. There are only six weeks left to work on the project though, so we have to be vigilant.

Blog #12

Sunlight Yellow Overdrive!

May 14, 2017 - Wesley de Ruiter

JoJo!!! Well, not the one you’d expect. In our case, we’re dealing with Jonathan Joosten which is a member of the IT management team of the veterinary department. For the implementation of video functionality we are working on javascript embedding, and rather than retrieving (large) video files from the database it will be more convenient to just get the links and host the video on another site. In this case that would be Vimeo, where the veterinary department already has an official account managed by the aforementioned Jonathan. If we want to programmatically upload videos, provided in the editor by teachers, to that account, it will require upload permission from Vimeo which we expect to be able to arrange with him in the course of the next sprint. Meanwhile, for audio and video (which do work through our database) we have finished the show and play functionality.

In other areas of the project the phase tree editor and its back end connection is being worked on, as well as that of the anamnesis editor. The refactoring of all parts of the front end is still proceeding gradually, and we expect this to be finished early in this sprint. For the coming sprint we have made an exception to have it last three weeks instead of the usual two. This is mainly done to get back on the old bi-weekly meeting times (which were shifted due to our retake week) but it also grants us a good opportunity to have a little more time in finishing a number of things.

Blog #11

A little more pressure

May 7, 2017 - Wesley de Ruiter

As a university student or otherwise inclined to look at project blogs such as ours, you may or may not be familiar with Hofstadter’s Law: It always takes longer than you expect, even when you take into account Hofstadter's Law. That’s kind of the predicament that we are facing now. Everything is not going as smooth as we’d like, and we are experiencing delay. Most notably a working connection between front end and back end is still not established, despite our best efforts.

We’re trying to get everything online before next wednesday (our client meeting), but for now we have to do with other progress in terms of having something to show for. For example, we can now effectively download and upload files to and from the database, which is huge when it can be paired with working play/show functions for image, video and sound. This is also something we are busy with, planned for next week’s milestone in fact, but it’s something that may take some extra time until the end of the sprint.

Lastly, we have some positive news to finish with. Since the departure of Koen, all of the artwork would have had to come from the hands of our only remaining artist, Gert-Jan. However, we have received word from the art department that they have arranged for two other artists, Youri and Dominique, to lend us a hand where possible in producing extra 3D models and textures. It’s good to know that we can count on some external help, since our client has been very enthusiastic about getting many more assets into the program.

Blog #10

Down to ten...

April 30, 2017 - Wesley de Ruiter

Due to events leading up to this week, we had to address commitment issues regarding Koen, one of our artists. Eventually, during this week’s SCRUM meeting, the team decided exclusion for the remainder of the project would be best for all parties. This means our team is now down to ten members, and the rest of the artwork has to be completed by Gert-Jan. Luckily, the artwork is right on schedule with several animal models finished and already incorporated into the program. Additional human models are on the way as planned for this sprint.

Concerning the code, we continued our work on the refactoring and structure mapping. As of right now, we also have UML diagrams of the problem list, the DDx and a couple of miscellaneous program structures. We also worked on improvement regarding the save regulation of phase trees. And even more improvement, in the usability aspect of the program, is the implementation of copy and paste functionality throughout the input fields. Inside a browser (and because of WebGL) this isn’t directly possible, but now there are workarounds in place to take care of this prohibition.

Blog #9

A milestone right around the corner

April 23, 2017 - Wesley de Ruiter

As mentioned, the past two weeks were a bit of a jumble with holidays in between exams and retakes. Naturally, all of this took some focus away from the project. Our supervisor has urged us to be aware of this and to pick everything up with full efficiency now that most distractions are behind us. We still have half a project ahead of us after all!

Most of the work that did get done has been refactoring of the old code base. And while we mapped out general overviews of the front end and back end in the beginning of the project, we now looked into the detailed code structures of the anamnesis and the physical exam phases. That’s also the picture for this blog, looks like a maze doesn’t it? Furthermore, we have continued our work on the front end/ back end connection, as well as a new set of methods to request and retrieve files from the database. Next week, we already reach the second milestone. This one is all about the presets availability in the editor, something we have already been finishing up on. This time we should have everything to show for in our client meeting, and it’s a refreshing change to actually be ahead of schedule for a while.

Happy Holidays

April 17, 2017 - Olaf Kampers

Due to exams, retakes and holidays there's no blog this week. We have decided to extend the length of our current sprint by one week so everyone can spend enough time on their other commitments. The blog of next week will summarize all our activities from this two week period, so stay tuned!

Blog #8

Time flies like an arrow

April 9, 2017 - Wesley de Ruiter

And fruit flies like a banana. But what are time flies? And why do they like an arrow? All jokes aside though, we're already halfway through the project. This week we did the intermediate presentation, highlighting our progress and showing off the new demo. Small shortcoming on our part was that we didn’t have this yet at the client meeting, as we were really fixing things last minute.

The good news is that we are almost done with things that we planned for the second milestone, most notably the full functionality of presets. Most of the work towards the end of this sprint has been to effectively get the new back end connected to the existing front end. One of our team members also has access to the UU server now, so we can start hosting things on there. Lastly, all team members had their mandatory intermediate (individual) meeting with our supervisor, and as a team we have also been evaluated with a full code review conducted by a student assistant. At the time of writing this, we have in fact already received feedback of that assessment and it seems that our code looks good. One point of focus should be more testing to retain quality assurance. We were a bit behind on this due to the development of the new back end, but we have already been taking care of the concerns with explicitly planning more testing for the next sprint.

Blog #7

Some bumps in the road

April 1, 2017 - Olaf Kampers

This definitely wasn’t our most productive week of this project. While the weather outside was clearing up, the mood in our office was getting a little bit gloomy. A large chunk of our group was not able to get a lot of work done because of illness, so they stayed at home most of the week. Meanwhile, the people who were able to make it to the office were experiencing all kinds of problems with their tasks. Some people got inexplicable errors, while others had trouble getting things to work. Not every week can go entirely perfect of course, so we simply need to keep going.

Next week are the intermediate presentations, where we have to show a live demo of our progress so far. There is still a lot of work that needs to be done before the demo. For example, we still need to make some revisions to the back end code, connect our new back end to the front end and make sure all new models are in the game. Let’s hope that everyone is feeling better next week so we can still finish up all of our planned work for this sprint. There is a small vacation coming up in the retake week (for most of us at least), so we only need to give it our all for two more weeks before we can get some well deserved rest.

Blog #6

An offer we can’t refuse

March 26, 2017 - Wesley de Ruiter

Well, two offers actually. Finishing our second sprint this week, we showed the client some of the newly implemented functionality as well as several of the animal models. She was rather pleased with the progress, and it turns out our project gained the attention of people at UMC, the University Medical Center Utrecht. They want to see if a collaboration is possible. Among other things, they want us to include human patients into the program and their students could provide us with the necessary cases and other information. For now our program strictly handles animal treatment, but we think it should be doable to adapt the case-based procedure to fit human treatment as well. As a matter of fact, we already have human models in our program as the owners of animals, so it’s a reasonable step extend the use of these as being patients themselves with some new textures added. UMC students have also developed a script we might be able to use for asking open questions in the anamnesis. Instead of a few fixed question options, you could type in a subject and get a range of questions that you can ask about this, which would obviously add a valuable component to the program flexibility-wise.

During the meeting, we also made acquaintance with the intermediary towards ITS (Information and Technology Services) to get access to the UU server. With regards to future software management, which will happen independently from our team after this project, we are again strongly encouraged to leave our code well documented. A few of our team members will be granted access to the server for use as a testing environment, before it will be switched to production use. Furthermore, in order to get the LDAP login functionality in order, we can contact a former team member of last year who is supposedly knowledgeable about this subject. All things considered, we took some important steps towards the desired end product (and even got an interesting side project) so we can be satisfied about this sprint.

Blog #5

Gaining the distance

March 19, 2017 - Wesley de Ruiter

Halfway through our second sprint, things are looking more positive. The front end progression is going faster than expected. We now have the basic implementation for allowing a student to select the preferred follow-up phase from a list of options, effectively adding the desired flexibility by making an alternate order of phases possible. Moreover, we added consistency in the DDx representation and overhauled the dropdown representation of observation answers. Concerning flexibility on the teacher side, we are well on the way with the (front end part) functionality of allowing the use of presets. As of now, this is just for the anamnesis and the physical examination, but it will soon be extended to the other phases as well. Furthermore, the teacher can now more easily select and specify multiple feedback categories in the editor.

In regards to the back end, the members of our team set out to work on it have been finishing Loopback tutorials. All of the phases in a case need clear database models to be accessed efficiently through the back end, along with their corresponding functions. Out of these, we already completed models for the DDx list, the DDx table, the hotspots in the physical examination and the problem/symptom list. Finally, we have been able to contact the relevant parties for deployment on the UU server. Our program will eventually have to run on this server, so it's a good sign we can start the necessary preparations early.

Blog #4

Simply a train of thought

March 12, 2017 - Wesley de Ruiter

This week we had to give a presentation about the risks of a project and how to deal with them. As it happens, we already had to deal with two issues that proved to be good examples. Firstly our client was prevented from attending the usual bi-weekly meeting due to an emergency at the clinic, so we had to reschedule that to the end of the week. Secondly, as hinted at in our previous blog, the back end will have to be done anew.

This drastic but necessary measure was already suggested upon by members of the former FURO development team. However, we wanted to stave off any definite decisions until we had an overview of all options and ramifications. During the rescheduled meeting we discussed these with the client and she decided that it would be in the best interest of all stakeholders to restructure the back end. Not only to make it more efficient for us to work and extend upon, but also to leave better understandable (and well documented) legacy code as opposed to what had been left to us. The members of our team working on the back end decided on switching to the LoopBack framework for Node.js, leaving Ruby on Rails behind us. With the development of this new aspect of our project, which will now be an official deliverable, the client emphasized that we have to keep the incorporation of presets in mind at all times. That means the information should be able to be stored efficiently into a database and be retrievable at any time, so that partially or fully created cases (which take a lot of time to make) won’t go to waste by becoming inaccessible.

To end on a positive note, everyone in our team now has a better understanding of Unity and the FURO 2.0 code structure. There has already been progress with the availability to skip phases of a case. Now we are working on extending that with a code structure that allows the student to choose its next phase from a given set of follow-up options. The artists have also been finishing various models, including a guinea pig, a parrot and a beagle dog.

Blog #3

No trials without tribulations

March 3, 2017 - Wesley de Ruiter

It seems the back end, written in Ruby, is rather complicated. So much, in fact, that editing and changing it to incorporate the new functionality doesn't seem to be feasible with our timetable and the amount of Ruby knowledge currently in the team. We are therefore considering to make a new back end in Node.js that we can work with more efficiently. A definite decision about this will be made next week in consultation with the client, after some team members have looked into the possibilities compared to Ruby. Luckily, the program consists of separately manageable units: the student side and teacher side (which are both front end), the database, and the back end. If we replace the latter, connecting it again to the other parts should be doable.

Meanwhile, the rest of the team has continued their work on the front end. We have mapped out some of the structures, like how the Unity scenes relate to the phases of a case, and which scripts are used at certain points. The allowance of multiple observation answers (in the physical examination phase) is one of the more specific pieces of code that is being looked into. Lastly, we sent our client a definitive version of the project planning.

Blog #2

Don't walk, don't run, sprint!

February 26, 2017 - Wesley de Ruiter

There is still a lot of the code yet to be understood and mapped out for all of us, so that is one of our main priorities right now. Furthermore, there has been a second meeting with the client, in which veterinary students tested the program in its current state and provided us with feedback. Alongside all of this, we have been working on the project planning, of which we finished a preliminary report and gave a presentation. The backlog has now been fully documented and put into the GitLab issue tracker, and we set a total of 6 milestones for the project.

A lot of work requires some distraction, some team building! Our whole team had dinner together, followed by a fun evening of bowling. With most of the planning and startup stress behind us, we are eager to accelerate from the initial project takeoff into our first SCRUM sprint!

Blog #1

Get your game on!

February 17, 2017 - Wesley de Ruiter

Welcome to our Blog! Last week we already had an initial meeting with the guidance teacher and client, but this week has been our first, full-fledged project week. We are The Wolf Gang, a team consisting of 9 computer science students as well as 2 artists. Our task is to extend FURO, developed by last year's students of this course, which is a practise program for veterinary students in the subject of clinical reasoning. Our renewed version of this program will be known as FURO 2.0!

Up until now, we have been working on getting the GitLab access in order, so we might familiarise ourselves with the code of both the back end and front end. In anticipation of this, we have been working with Ruby and Unity tutorials. Furthermore, we created the initial product backlog by coming up with user stories which we categorised with MoSCoW. Among these, we recognised epics and split these up in separate stories.

The Wolf Gang

Beau Slegt
Product Owner

"Most everyone's mad here."
Cheshire Cat, Alice in Wonderland

Hi! Well as you can see, my name is Beau Slegt. I am 23 years old and a Game Technology student at the UU. This project seems really interesting so I can’t wait to produce an awesome end result. I am the Product Owner in this group. Which means that I am the one who contacts the client and keeps her priorities in mind at all times. Well, that was my small introduction about moi. For any questions about the project: contact us!

Gert-Jan van den Boom

"If at first you don't succeed; call it version 1.0"
David Vassallo

Hi, like you can already tell my name is Gert-Jan and I am a fourth year 3D Game Art and Design intern of the Sintlucas in Eindhoven. Together with my colleague of the GLU we work on making the art side of this software. Although the size of this team is a little bit too big for my taste, I think it will work out.

Joey de Groot
ICT Contact

“Software is a great combination between artistry and engineering.”
Bill Gates

Greetings! My name is Joey and I am in my third and hopefully final year as a Game Technology student at the University of Utrecht. I am the ICT contact of this group, so I handle any hardware requests this group has. This is the first time I have to work in a large group on a project of this size. The project and the group look fun and interesting, so I am looking forward to the coming months.

Max van Eijden
Technical Lead

"In My Egotistical Opinion, most people's C programs should be indented six feet downward and covered with dirt." ~ Blair P. Houghton

Hey! I’m Max and I’m a 21 year old Game Technology student at the University of Utrecht. For this project I have taken up the role of Tech-Lead, meaning it’s my responsibility to manage our version control and to ensure that any of our program that reaches the deployment stage is stable and built in a maintainable fashion. I look forward to working in a big team to tackle one big interesting project for the coming few months. On my time-off from the project I enjoy playing video-games and pen and paper RPGs.

Lars Bruggeman

Any program is only as good as it is useful."
Linus Torvalds

Greetings! I am Lars Bruggeman, a 21 year old Game Technology student at the University of Utrecht, and I’m currently in the third year of my bachelor study. For this project, I will be focusing on developing the back end of the program. I’m looking forward to working with the rest of The Wolf Gang to deliver an excellent product!

Laurisa Maagendans
SCRUM Master

Salutations! My name is Laurisa and I am a 21-year old student at Utrecht University, majoring in Mathematics and Computer Science. For this project, I have taken on the role of SCRUM master, meaning that I am in charge of ensuring proper execution of SCRUM within this project. Working on a project of this proportion surely is a first for me. Instead of being disheartened, I feel determined to make this project a success. There is a vast amount of activities I enjoy doing in my spare time, one of which is creating motion graphics for music videos, often in collaboration with musicians and 2D/3D artists.

Olaf Kampers
Web Master

"What is research but a blind date with knowledge?"
Will Harvey

Yo! My name is Olaf and I'm a 21 year old Computer Science student at Utrecht University. I am the creator of this wonderful website and I work on the back end of our project. On weekdays when I'm not at school I can also be found at a company called Rentman, where I work as a web developer together with Stan. My hobbies include eating, gaming, going to the gym and chilling at Techno Festivals!

Özer Ulusoy
Lecture Contact

Merhaba, my name is Özer Ulusoy. I'm a 22 years old Game Technology student at the University of Utrecht. I’m of Turkish descent, born and raised in The Netherlands and currently living in Schiedam. I am a proud member of The Wolf Gang, where I'm the Lecture Contact Person. Even though this is not the first time I have worked in a similar project with the same group size, it will be the first time where I'm much more deeply involved in the project. The Wolf Gang consists of awesome members and I look forward to working together as a team on the project.

Stan van Meerendonk
Back End Lead

"Common sense is not so common."

Hey! I’m Stan, but they call me Ftem#. I’m a Game Technology student at the University of Utrecht. Right now, I’m the back end lead of this project. I also work parttime as a web developer at a company called Rentman. This project is not going to be easy, but I hope that I can use my knowledge of Javascript and AngularJS to build a great new back end.

Wesley de Ruiter
Secondary Chairman

“When life gives you lemons, don’t make lemonade. Make life take the lemons back! Get mad! I don’t want your damn lemons! What am I supposed to do with these? Demand to see life’s manager! Burn life’s house down!” ~ Cave Johnson

Hi there, my name is Wesley. With this project I'm (hopefully) finishing my last year of the study Game Technology at the University Utrecht. I'm responsible for this website's blog, as well as being stand-in chairman. I've never worked in teams of this proportion before, but I'm excited to be part of The Wolf Gang and help in delivering a satisfying end product. In my spare time I enjoy solving mechanical puzzles and writing fiction.

Contact Us!

Universiteit Utrecht
Department of Information and Computing Sciences
Buys Ballot Building, Room 426
Princetonplein 5, De Uithof
3584 CC Utrecht