Inspiration

I am a radiology resident physician. Traditional PowerPoint presentations are suboptimal for learning about X-ray, CT, and MRIs. In a normal day, a lecture hall has 40 people but only 1 person can discuss the case shown on the projector screen.

At scientific conferences the situation is worse - a lecture hall has hundreds of seats, so when the speaker asks the audience a question "do you guys see anything wrong with this X-ray? Where is the disease?" There is no participation - the speaker has a laser pointer, the audience has nothing.

The entire careers of radiologists and other imaging processionals rely on being able to communicate clearly using images. I created SharedDx to allow real-time collaborative discussion about medical imaging both in a real-life conference setting and in a virtual conference (e.g. conference call).

What it does

  1. SharedDx allows a presenter to create a slide deck using medical images.
  2. Everyone in the audience can jump into the presentation slide using their phone/tablets and point at abnormalities and pose questions to the speaker through a chat window.
  3. A QR code is made available so the audience can use QR scanner on their phone or tablet device to join the discussion. The QR code can be dragged out of the way or hidden.
  4. A timer is available so the presenter can "quiz" the audience to log in and point at where the disease is before time runs out.
  5. A user can follow along with the speaker (if they are on the same slide together), or review the slides on their own from their mobile device (using the Next/Prev buttons).

How I built it

PHP is used to procedurally generate the code for each slide based on XML input (which uses customized tags like ). JavaScript/JQuery/HTML5 for the front-end. And the collaboration is enabled by TogetherJS.

Challenges I ran into

I am not a professional programmer so this is all pretty difficult, but I did learn a great deal in the process.

TogetherJS was easy to use but doesn't synchronize the slides for the different users. It was difficult to tweak the behavior just right. I needed the speaker to have 100% control of her own screen (wouldn't that be disastrous if you're giving a medical talk and your slides jumped around because the audience is messing with you!). However, I also wanted the audience's screen to synchronize with the speaker's when she advances the slides. This means being able to tease out who is the creator, who are the participants, and how to synchronize inputs from different screens.

Accomplishments that I'm proud of

I have never created anything that supported multiple simultaneous users. TogetherJS is very easy to use, but the devil was in the details. I am proud of being able to achieve the behavior I needed in synchronizing between multiple users.

What I learned

For the hackathon I decided functionality / and prototyping were more important than keeping a disciplined code design. But then I quickly learned that PHP and HTML is very - very - messy... if you don't diligently clean up the code as you go, everything sort of mesh together into a mix of PHP/HTML/JavaScript.

What's next for SharedDx

The presentation creation process should be easy, just drag some educational medical images to upload them, then drag the uploaded images to arrange for the order and be done.

Also, ShareDx should support PowerPoint (even if it means just converting all the slides to JPG on server-side), so doctors can make their existing PPT slide decks collaborative without doing extra work.

Built With

Share this project:

Updates