ITQAN LAB
Design & Technology Studio
Get in Touch Available Now
BMS iLearn: SCORM Training Modules for OPDIVO and Opdualag
Bristol Myers Squibb Pharma / Medical Education

BMS iLearn: SCORM Training Modules for OPDIVO and Opdualag

For Bristol Myers Squibb's iLearn programme, through the agency Evidence Me, we build video training modules for healthcare professionals. Each module comes out of one build as a browser preview and a SCORM 1.2 package for the LMS. Four have shipped so far.

Results

4
Modules shipped
30
Video lessons
SCORM 1.2
LMS package

The Challenge

Bristol Myers Squibb runs iLearn, a training programme for healthcare professionals on OPDIVO and Opdualag. Through the agency Evidence Me, modules kept coming: recorded video lessons that play inside the client’s LMS, track each learner’s progress, and end in a scored assessment.

Before any module reaches the LMS, a review team checks it, and they don’t have LMS accounts. So every module has to ship two ways. And adding a module was meant to be content work only.

What We Built

The programme runs on our SCORM engine. We gave it the iLearn look, then turned it from one course into a programme. Modules sit side by side in the same codebase, and one command picks the active one. The iLearn and BMS branding lives in its own layer, so a new module brings only its lessons, videos and questions.

Four modules have shipped so far:

  1. Neoadjuvant NSCLC
  2. Advanced Melanoma
  3. Advanced Melanoma, Opdualag data
  4. Bladder Cancer, first-line therapy (October 2026)

The title screens of the four modules

The Player

A fixed 1280x720 stage that scales down to fit the LMS window. Lessons sit in the sidebar under a progress bar, and the video takes the rest. Each lesson opens on its title frame, pulled from the video itself, so the learner never stares at a black box while it loads. The learner’s name comes from the LMS and shows at the foot of the sidebar.

The player on the first lesson of the Bladder Cancer module

Lessons in Order

Lessons unlock one at a time. A lesson counts as watched at 90%, and the player won’t let anyone skip past the furthest point they’ve reached. Lessons that belong together fold under one heading in the sidebar. Close the module halfway and it reopens on the same lesson, at the same second.

Grouped lessons in the sidebar, with later lessons still locked

The player also has its own full-screen mode, with a Next control in the video bar, so the learner can move on without leaving full screen.

Final Assessment

The assessment unlocks after the last lesson. Every question needs an answer, the numbered dots show where you are, and the pass mark and number of attempts come from the module’s config. The question text is blurred in these screens. It’s BMS’s training content, not ours to show.

A question in the final assessment, with the text blurred

The results screen after a passed attempt

One Build, Two Outputs

Each module is built once and comes out two ways: a web folder the review team opens in any browser, and a SCORM 1.2 zip for the LMS. The zip also carries small launchers for Mac and Windows. Whoever receives it can unzip it and double-click to watch the module on their own machine. With no LMS around, progress saves to the browser instead. Everything else behaves the same.

The Delivery Page

Modules reach the client through a private page generated from one data file. It lists the modules, and each module page has two buttons: launch the preview, or download the SCORM package. Adding a module means adding an entry to that file. The module descriptions are blurred here.

The delivery page and a module page, with descriptions blurred

The Details That Matter

LMS platforms disagree on small things. Some return an empty value on first launch instead of “ab-initio”. Some drop the session without warning. Some cut saved data past 4096 characters. The player treats an empty value as a fresh start, reconnects when a session is lost, and keeps the learner’s whole state in a compact JSON well under the limit.

Video straight out of the edit can be too heavy for a corporate network, and playback stops every few seconds to buffer. We added an encoding step that caps the bitrate, moves the file’s index to the front, and leaves files that are already fine alone. The originals are kept, so it’s easy to undo.

A finished lesson never slips back to “in progress” when the learner opens the module again. A small thing, but it’s what a manager sees in the LMS report.

Have a project in mind?

Tell us what you’re building. No sales deck — a real person responds within 24 hours with an honest take on whether we’re the right fit.

[email protected]
New Cairo, Egypt — Working globally Clear scope · No surprises Available Now