As we continue to develop the Clinical Encounters platform, we wanted to share our journey. Here, one of our programmers details where we started and where we’re at now.
Clinical Encounters is not what it used to be. In its original incarnation, the framework was a JavaScript-based web application that presented a limited number of interactive clinical cases to learn from. This allowed it to be run on many different platforms using Apache Cordova and Adobe PhoneGap. While this made it easy to port the application to any device, it had many drawbacks. The most critical drawback was that each case was somewhat hard-coded, which made writing and editing cases very difficult and time-consuming. There was no visual editor either, so even small changes to the layout and user interface could require a lot of manual edits to the code.
This prompted us to consider a new approach. By relying on the engine and visual editor tools of Unity we were able to recreate much of the original experience using reusable templates. This meant that our developers could edit the appearance of each component much more efficiently, and use those components to build and edit new cases in a more WYSIWYG environment. You can still find the first Unity version here.
One of the lingering issues with the previous version was that it was not set up to handle expansion well. Even after switching to Unity, constructing new cases took time and required software developer tools and skills. All case creating and editing had to be done in the Clinical Encounters project with the Unity editor, which only we had the access to. So, in order to solve these problems, we revamped the system.
With a new vision for the program and a fresh start, we set out on building something that medical professionals, teachers, and others could use to create medical cases for learners. The newest version of Clinical Encounters is similar in many ways by appearance, but a lot of work has been done to make the whole experience better. Now, case creation is handled dynamically and is set up in such a way that, with a little instruction, others will be able to create their own cases in the app itself.
Part of the issue with managing and expanding the old app is the fact that every part of each case existed in the editor all at once. That means that every tab was enabled or disabled, but never spawned or destroyed. This would slow down the editor as it tried to handle all of the different UI elements and could make navigating through the sea of game objects in Unity’s object hierarchy no fun at all. Now, adding tabs happens inside the app itself. The only tab in existence is the one which the user is viewing, making it both easier on the engine and easier on developers.
So when users add their own tab, a new reference to that tab is created so that the correct tab can be spawned in when requested. The expandability of this is easier too, as any new tabs can be implemented with just a tab preset/prefab and a title to reference it by. With all of this combined, we now have the basis for an extendable medical case builder that can be used by many to much more easily create any type of case which would suit their needs.
You can read more about the Clinical Encounters platform at its website.
Leave a Reply
You must be logged in to post a comment.