Clinical Encounters is designed to bring patient encounters to students with a focus on the person instead of the case. Part of our goals of achieving this is to include a system for dialogue with the patient. We want users to not only learn and gain experience with handling different kinds of medical cases but to gain experience with patient interactions as well. Our programmer details how we have worked to achieve this.
Initial Goals
The beginning goals for the integrated dialogue system involved a custom system that would allow users to create their own branching dialogue. It would allow for some persistent and some unique characters per dialogue and would be represented using a nesting structure.
Nested dialogue represents a continuation of the conversation while siblings represent a choice. An example of what it looked like is on the side. It took some effort to create the system, and the logic to get everything working smoothly turned out to be a little bit complicated, but it worked. However, it was not without its fair share of issues.
Reworking The Design
There were several concerns with the dialogue at this stage. With the logic as convoluted as it was, attempting to debug any issues resulted in headaches instead of fixes. We created a functioning system for what we wanted, yet it was not intuitive for users to employ it. Finally, our visions and aspirations for the dialogue system were out of scope. To construct a more robust dialogue system we would need to implement a state machine to track where the user is in the dialogue at all time, plus rework the user interface to make it easier to do things like switch dialogue branches. Because of this, we changed direction and opted to remove the branching for a more simple and easy-to-follow linear dialogue.
Removing Branching

So while we weren’t going to be making the next Fungus anymore, we would still allow users to integrate dialogue interactions into their cases, which is an important aspect for us. Since all that needed to change to remove the branching was to remove the nesting, I hot-wired the dialogue manager class to spawn every dialogue as siblings and it worked! The old system was equipped to handle sibling dialogues at the root level so everything continued without problem.
From there we made a few more visual tweaks to the system. We disabled dragging and rearranging to simplify things for the meantime, we changed the ability to drag dialogue options from the characters into the conversation and made the characters buttons, changed the default colors, and changed the solid background into a border.

Our hopes are to fully reintroduce branching dialogues later on through the use of Fungus, Twine, or something similar. Until then, however, branching would still be nice. We devised a solution that would keep some aspect of choice in dialogues while not drastically changing how the dialogue functioned, thus keeping it simple and easy to understand.
We Want Branching After All
The initial plan was to handle the dialogue as a quiz. We would let users take the existing quiz tabs and add a bit of dialogue before each question. They would provide different options to continue the dialogue at certain points in the form of right and wrong things to say and, on selecting the correct choice, the next dialogue could be continued.
From that idea, we thought of moving that functionality directly into the dialogues themselves to make the procedure more streamlined and easy to follow for users and case-readers alike. It took a little bit of reworking of the dialogue system to handle something other than a dialogue choice, but now users are free to add questions or other items with ease.
This is where the dialogue system currently stands today. We are still tweaking and updating it, yet the current implementation is what will stay until we upgrade to the final system. It provides a way to keep what we want without being overly complicated. It also wasn’t a time-intensive upgrade to something that will be changed in the future so the benefits outweigh the cost to re-add a form of choice. All in all, it’s in a nice position to still showcase what we want in the software.
You can read more about the Clinical Encounters platform at its website.









Leave a Reply
You must be logged in to post a comment.