Simulating an Emergency Room – 6/21/12
My name is Cordell Zebrose, I’m a senior at Worcester Polytechnic Institute, and I’m one of the three programmers currently working on OnCall at SIP. OnCall is an iOS game built to help communication between medical and nursing students. It does this by simulating an emergency room and forcing players to make decisions similar to what they would have to make in a real emergency room. One of our first challenges with OnCall was determining a way to simulate cases within the small scope of the project. It was a balance between the time we had and the realism we wanted. We wanted a realistic simulation which could viably be completed in a couple months.
Our first idea was to use decision trees to trace the progression of a case from start to finish. The problem was that the longer a case was, the decision tree would create exponentially more work. Every possible situation would have to be entered manually into the system. While this wasn’t necessarily a problem the first couple of times, it would be a big problem for future scalability.
Clearly, we needed another method. Our solution was to systematically generate symptoms from a list and then tie treatments to specific symptoms. We needed to create a database of symptoms for each condition, then generate the case so we could randomly pick which symptoms the patient had and which symptom was the patient’s chief complaint. Afterwards, we’d attach symptoms that the patient was experiencing to certain treatments which the nurse could administer. Once a treatment was given, the patient would be cured of some symptoms. A patient was cured once all the symptoms connected to his condition were cured. We liked the idea of systematically generating symptoms from a database, but the execution needed some work. The main problem was that it wasn’t a very good simulation and therefore wouldn’t work well as a teaching tool. So, we went back to the drawing board, with the idea of creating a symptoms database and possibly a database for treatments and tests too.
After some more brainstorming, we came up with a system, which we think will meet all the requirements. We want to have a list of vitals and test results that will return either a positive/negative value or a number. These vitals have a range where the patient is considered stable. Each test or treatment which the nurse or doctor administers will increase certain vitals, decrease certain vitals and do nothing to some vitals. In addition to this, there will be a protocol of treatments that the doctors must give the patient in-order to cure him of his underlying condition(s). Over time, the patient’s vitals would change and the doctors would need to stabilize his vitals while treating for the underlying condition. If the patient’s vitals ever left the stable range, then he would code. All available doctors & nurses will be able to respond to the code, in an attempt to save the patient.
Now that we have a basic system in place for creating cases, we can start working on an electronic prototype of the game and understand the software architecture that we’ll need to implement the final version. – Cordell Zebrose