← go back

Simulating recurring patients to train dental students

by Elias Groot , August 14, 2024

LJZ has developed the first MVP of Cadens, the e-learning platform for that aims to improve current dental education by letting students interact with recurring virtual patients. It was developed for ACTA, the joint dental education institute by the Vrije Universiteit (VU) and the Universiteit van Amsterdam (UvA).

While still in development, the MVP has been formed a great example of modern product development. Teachers can create exercises and virtual patient dossiers using the intuitive drag and drop editor. They can share new exercises with students and groups in less than 5 minutes, powering them to collect statistics and realtime feedback during lectures or as homework.

The drag and drop editor in Cadens, available to teachers

Out of the box, text, images and various types of questions can be added. Teachers can also impose custom navigation on students, forcing them to think about the way they talk with a patient and the necessity of the performed research. The engine has been developed with extensibility and flexibility in mind, so that custom e-learning components can be added on request later. These components can be interactive in their own way, with custom rendering and interactivity based on the needs of education staff.

Students are provided a user-friendly and modern way of navigating through an exercise, with convenient access to patient information and autosaving where applicable. Based on teacher preferences, students will receive feedback immediately or when they hand in their exercise answers.

The student view in Cadens, with a multiple choice question rendered

Teachers get access to realtime statistics that can even be narrowed down to show differences between groups. This way, pitfalls in current education can be spotted quickly and addressed accurately.

The statistics overview in Cadens, accessible to teachers. Showing average taken time and scoring per exercise or per exercise page

The tool has been developed in close collaboration with the teaching staff and students at ACTA, resulting in a user-friendly and complete interface for all parts of the application.

A context menu for an exercise in Cadens, showing many share actions and open in new tab, delete, rename options

Deployment and CI/CD

Cadens consists of many microservices that work together to power the application, audit logging, data storage and backups. All of these microservices are containerized using Docker (as is standard practice at LJZ) and orchestrated by Kubernetes. This allowed us to have scalable and extremely reliable deployments that adhere to the high requirements ACTA puts in place. Deployments are managed through Terraform, which is integrated in our extensive CI/CD-pipeline that checks for security breaches, code style, runs unit tests (using Jest) and runs e2e tests (using Playwright).

Uptime overview for Cadens over the months of March (99.924%, one incident), April (99.941%, one incident) and May 2024 (99.947%, three small outages). The uptime

Releases are created automatically, with semantic versioning based on the Conventional Commit system (read more here). We can go from new commit to deployed release within 15 minutes, which allowed us to work in a very agile fashion, with frequent iterations. Based on ACTA needs, deployments can be moved to the cloud, on-premise or to a hybrid solution with a simple configuration change.

An AI-free promise

While AI tools in many aspects make us much more productive at LJZ, letting it write content for humans to read sounds dystopian to us. That is why we commit to the AI-free promise for all text we write. It might contain some grammar mistakes or spelling issues here and there, but at least it is our own writing and it was written with ❤️.

That's it.

← go back