9 min read

Browser-Based DICOM Processing for Orthopaedic AI: Why We Made the Call

We chose to run orthopaedic AI directly in the browser, with DICOM never leaving the session boundary. Here is the architecture, the tradeoffs, and the regulatory case for client-first inference in clinical pilots.

Salnus Research
DICOMBrowser-Based AIClient-Side InferenceKVKKGDPRClinical PilotOrthopaedic AIIsolation ArchitectureCornerstone3DONNX Runtime WebPrivacy by Design

When we set out to put orthopaedic AI into clinical use, we ran into the same architectural fork that most medical imaging startups eventually face. The default path is the one almost everybody takes: upload DICOM studies to a cloud backend, run inference on a GPU server, return results. It works, it scales, and the tooling is well understood. We chose the other path. DICOM stays in the browser, inference runs in the surgeon's session, and the server never sees the pixel data.

This post is the technical and regulatory case for that decision. It is also, honestly, an attempt to write down the reasoning before the pilot starts driving feedback that will inevitably revise parts of it.

The Server-Side Default

The standard architecture for clinical imaging AI follows a familiar pattern. A DICOM study is uploaded to an object store, indexed in a database, queued for inference, processed on a GPU, and the resulting segmentation or measurement is written back to the database. The frontend reads the result and displays it. This is how most PACS-integrated AI products work, and it is how most cloud-based orthopaedic planning tools operate today.

The advantages are real. Server-side inference centralises model versioning, makes A/B testing tractable, and removes the need to worry about client hardware variability. If a surgeon opens the platform on a low-power laptop, the cloud GPU still runs the model in the same time. Audit logging is straightforward because every inference event passes through a controlled backend. From an MLOps perspective, the server-side default is the path of least resistance.

The disadvantages compound when the data being processed is medical imaging in a regulated jurisdiction. DICOM studies contain pixel data plus patient metadata, and the moment they cross the server boundary, the system inherits responsibility for that data under KVKK in Turkey and GDPR in the EU. This means an audit trail of who accessed what, when, and why. It means a documented data processing agreement with every institution. It means a clear answer to where the data lives, how long it is retained, who has access, and what happens when a patient exercises their right to erasure. None of these are insurmountable, but each of them adds a regulatory surface area that has to be defended through the full lifecycle of the product.

For a clinical pilot, particularly one where the institutions involved have not yet signed long-form data sharing agreements, the server-side default creates an early-stage friction that we wanted to avoid.

The Browser-First Option

The alternative is to do the inference on the client. The DICOM study is loaded into the browser, the model runs in the browser via ONNX Runtime Web or WebGPU, the results are rendered locally, and the server receives only the derived artifacts the user explicitly chooses to upload, typically anonymised mesh files or measurement reports. The pixel data never leaves the device.

This is not a new idea in medical imaging. Cornerstone3D, OHIF, and several other open source projects have been making browser-based DICOM viewing production-grade for years. What is newer is that the model runtime in the browser has caught up to the point where clinically relevant inference is feasible without a server round-trip. ONNX Runtime Web with WebGPU acceleration can run modest segmentation networks at interactive speeds on a recent MacBook or Windows laptop with integrated graphics. For the orthopaedic CT and knee X-ray models that matter to us, this is enough.

The browser-first architecture rearranges the privacy story in a structural way. If the pixel data never reaches our server, our server cannot leak it, cannot be subpoenaed for it, and cannot lose it in a breach. The data processing question becomes much simpler because we are not processing patient data in the regulatory sense. The surgeon is processing it, on their own device, in their own session. We are the tooling, not the processor.

Session Boundary: The KVKK and GDPR Mechanics

The legal framing matters because it shapes which compliance regime applies. Under both KVKK and GDPR, a controller is the entity that determines the purposes and means of processing personal data. A processor is the entity that processes data on behalf of a controller. The controller carries most of the regulatory burden, including breach notification, data subject rights, and impact assessments.

When a clinical AI vendor ingests DICOM data on a server, they typically take on the role of processor under a data processing agreement with the hospital. This is the standard model. The hospital is the controller, the vendor is the processor, and the DPA defines the boundary.

When the inference runs in the browser and the server never receives pixel data, the vendor is closer to a software supplier than a processor. The hospital remains the controller. The browser session is an extension of the hospital's own processing environment. The vendor provides the tool, and the tool runs entirely inside the controller's perimeter.

This is the architectural translation of "DICOM never leaves the session boundary." The session is the surgeon's browser tab. Within that boundary, the controller's existing data handling policies apply. Outside that boundary, we as the vendor see only what the surgeon has explicitly chosen to share, which in our case is anonymised geometry, not pixel data.

We are not naïve about this. Browser-based does not mean the regulatory questions disappear. It does mean they take a different shape, one that is materially easier to defend for a pre-MDR-CE-marked product running a clinical pilot.

The Five Tradeoffs We Accepted

The browser-first architecture is not free. There are real costs, and they shaped which clinical use cases we prioritised first.

1. Client hardware floor. Inference performance varies meaningfully with the surgeon's device. On a MacBook Pro M-series or a Windows laptop with discrete GPU, our segmentation models run at acceptable speed. On a budget Chromebook, they will not. We set a minimum hardware spec and accept that the addressable market within our pilot is constrained by it.

2. Model size budget. A 200 MB model is a non-starter for browser delivery. We work within a roughly 30-60 MB total weight budget per inference task, which forces architectural choices, model distillation, and quantisation. This is a real constraint that shapes which models we can ship and which we cannot.

3. First-load latency. Models have to be fetched, cached, and warmed up. The first inference is always slower than subsequent ones. We mitigate with aggressive caching and lazy loading, but the cold-start cost is structural.

4. Inference observability is harder. When inference runs on a server, we can log every input, every output, every model version, every latency measurement. When it runs in the browser, we get only what the client chooses to send back, and we have to be careful about what we ask for so we do not accidentally reintroduce the privacy questions we designed around. We accept reduced observability and rely on the surgeon to report anomalies.

5. Browser API surface stability. WebGPU is still maturing. ONNX Runtime Web is updated frequently. We have to track upstream changes and validate that our inference pipeline keeps producing identical outputs across browser versions. This is real ongoing work.

These costs are real, but they are predictable, and we judged them as worth paying for the structural privacy advantages.

Where We Landed: Hybrid C-Lite

In practice, no clinical AI system is purely client-side. We rely on the server for authentication, account management, model delivery, mesh storage for STL artifacts the surgeon explicitly chooses to save, and audit logging of non-pixel events. What never crosses the server boundary is the DICOM pixel data itself.

We call this internally the Hybrid C-Lite architecture. The C is for client, and the Lite indicates that the server retains a minimal role focused on identity, model artifacts, and the derived geometry the surgeon explicitly persists. The pixel data stays in the session. Everything else has its own data handling story, documented separately, with per-user encrypted storage for the geometry layer.

The architecture decision was finalised in late May 2026 after we surfaced an isolation issue in an earlier hybrid pattern that briefly leaked between user contexts in IndexedDB. The lesson from that incident shaped the current design. Each user's session has a derived encryption key, every persisted artifact is encrypted with that key, and there is no shared storage namespace across users on the client side.

What the Pilot Will Validate

A clinical pilot is the only way to find out whether the architectural choices we have made survive contact with how surgeons actually use the tool. The pilot will tell us whether the browser-based inference path is acceptable in operative-day workflows, whether the cold-start latency is tolerable when a surgeon is making preoperative decisions under time pressure, and whether the absence of server-side audit logs is acceptable to the institutions that need to satisfy their own internal compliance teams.

We are opening the clinical pilot waitlist now. The first wave is invite-only and we are looking for orthopaedic surgeons, radiologists, and institutions willing to run the platform in real preoperative planning, give us frank feedback about where the architecture serves them and where it breaks, and help us shape the second wave.

If you are reading this and any of it resonates with how you think about clinical AI deployment, the waitlist is open at salnus.com/waitlist.

Closing Note

We made the browser-first call because we wanted the privacy story to be a structural property of the system rather than a layer of policy on top of a standard cloud architecture. We accepted the costs that come with that. The clinical pilot is where we find out whether the surgeons we built this for agree that the tradeoffs are the right ones. The architecture is documented. The compliance posture is defensible. The pilot is the next step.

Ortopedik YZ'yi klinik kullanıma sokmaya karar verdiğimizde, medikal görüntüleme şirketlerinin er ya da geç karşılaştığı aynı mimari çatallanmaya rastladık. Varsayılan yol, neredeyse herkesin tercih ettiği yoldur: DICOM çalışmalarını bulut tarafına yükle, GPU sunucusunda inference çalıştır, sonuçları döndür. Çalışıyor, ölçekleniyor, araç ekosistemi olgun. Biz diğer yolu seçtik. DICOM tarayıcıda kalıyor, inference cerrahın oturumunda çalışıyor, sunucu piksel verisini hiçbir zaman görmüyor.

Bu yazı, bu kararın teknik ve düzenleyici gerekçesi. Aynı zamanda dürüst olmak gerekirse, pilot başlamadan önce mantığı yazıya dökme girişimi; çünkü pilot bu mantığın bir kısmını kaçınılmaz olarak revize edecek.

Sunucu Tarafı Varsayılan

Klinik görüntüleme YZ'sinde standart mimari tanıdık bir desende ilerler. DICOM çalışması bir nesne deposuna yüklenir, veritabanında indekslenir, inference için kuyruğa alınır, GPU'da işlenir, ve elde edilen segmentasyon veya ölçüm veritabanına yazılır. Önyüz sonucu okur ve görüntüler. Bugünkü PACS entegre YZ ürünlerinin çoğu böyle çalışıyor ve bulut tabanlı ortopedik planlama araçlarının büyük kısmı da bu şekilde işliyor.

Avantajlar gerçek. Sunucu tarafı inference, model versiyonlamayı merkezileştirir, A/B testini kolaylaştırır, ve istemci donanımı varyasyonunu önemsiz hale getirir. Düşük güçlü bir laptop'ta açan cerrah için bulut GPU yine aynı sürede modeli çalıştırır. Denetim kaydı doğrudan yönetilebilir çünkü her inference olayı kontrollü bir backend'den geçer. MLOps perspektifinden sunucu varsayılanı en az direnç gösteren yoldur.

Dezavantajlar, işlenen verinin düzenlemeye tabi bir yargı bölgesindeki medikal görüntüleme olduğunda katlanarak büyür. DICOM çalışmaları piksel verisi artı hasta meta verisi içerir, ve sunucu sınırını aştığı anda sistem KVKK (Türkiye) ve GDPR (AB) altında bu verinin sorumluluğunu üstlenir. Bu, kimin neye, ne zaman, neden eriştiğine dair denetim kaydı demektir. Her kurumla belgelenmiş veri işleme sözleşmesi demektir. Verinin nerede yaşadığına, ne kadar süreyle saklandığına, kimin eriştiğine, ve hastanın silme hakkını kullanması durumunda ne olacağına dair net bir cevap demektir. Bunların hiçbiri aşılamaz değil, ama her biri ürünün tüm yaşam döngüsü boyunca savunulması gereken bir düzenleyici yüzey alanı ekler.

Henüz uzun süreli veri paylaşım anlaşmaları imzalanmamış kurumlarla yürütülecek bir klinik pilot için sunucu varsayılanı, kaçınmak istediğimiz erken aşama bir sürtünme yaratıyordu.

Tarayıcı Öncelikli Seçenek

Alternatif, inference'ı istemcide yapmak. DICOM çalışması tarayıcıya yüklenir, model ONNX Runtime Web veya WebGPU ile tarayıcıda çalışır, sonuçlar yerel olarak render edilir, ve sunucu yalnızca kullanıcının açıkça yüklemeyi seçtiği türetilmiş artifaktları alır; genellikle anonimleştirilmiş mesh dosyaları veya ölçüm raporları. Piksel verisi cihazı terk etmez.

Bu, medikal görüntülemede yeni bir fikir değil. Cornerstone3D, OHIF ve birkaç açık kaynak proje yıllardır tarayıcı tabanlı DICOM görüntülemeyi üretim seviyesine taşıyor. Daha yeni olan şey, tarayıcıdaki model çalışma zamanının artık klinik açıdan anlamlı inference'ı sunucu round-trip'i olmadan yapılabilir hale gelmesi. ONNX Runtime Web ile WebGPU hızlandırması, entegre grafiklere sahip yakın tarihli bir MacBook veya Windows laptop'ta mütevazı segmentasyon ağlarını etkileşimli hızda çalıştırabiliyor. Bizim için önemli olan ortopedik BT ve diz röntgeni modellerinde bu yeterli.

Tarayıcı öncelikli mimari, gizlilik hikayesini yapısal olarak yeniden düzenler. Piksel verisi sunucumuza hiç ulaşmıyorsa sunucumuz onu sızdıramaz, onun için celp edilemez, ve ihlal durumunda kaybedemez. Veri işleme sorusu çok daha basitleşir çünkü düzenleyici anlamda hasta verisi işlemiyoruz. Cerrah kendi cihazında kendi oturumunda işliyor. Biz aracız, işlemci değil.

Oturum Sınırı: KVKK ve GDPR Mekaniği

Hukuki çerçeve önemli çünkü hangi uyumluluk rejiminin geçerli olduğunu şekillendiriyor. Hem KVKK hem GDPR altında, veri sorumlusu kişisel veri işlemenin amaçlarını ve araçlarını belirleyen taraftır. Veri işleyen ise veri sorumlusu adına veri işleyen taraftır. Veri sorumlusu düzenleyici yükün büyük kısmını taşır: ihlal bildirimi, veri sahibi hakları, etki değerlendirmeleri.

Bir klinik YZ tedarikçisi DICOM verisini sunucuda işlediğinde, hastane ile yapılan bir veri işleme sözleşmesi altında genellikle veri işleyen rolünü üstlenir. Standart model budur. Hastane veri sorumlusudur, tedarikçi işleyendir, ve VIS sınırı tanımlar.

Inference tarayıcıda çalıştığında ve sunucu piksel verisi almadığında, tedarikçi bir veri işleyenden çok bir yazılım tedarikçisine yakındır. Hastane veri sorumlusu olarak kalır. Tarayıcı oturumu, hastanenin kendi işleme ortamının bir uzantısıdır. Tedarikçi aracı sağlar, ve araç tamamen veri sorumlusunun perimetri içinde çalışır.

"DICOM oturum sınırını terk etmiyor" ifadesinin mimari karşılığı budur. Oturum, cerrahın tarayıcı sekmesidir. Bu sınır içinde veri sorumlusunun mevcut veri işleme politikaları geçerlidir. Bu sınır dışında, tedarikçi olarak biz yalnızca cerrahın açıkça paylaşmayı seçtiğini görürüz; bizim durumumuzda bu, piksel verisi değil anonimleştirilmiş geometridir.

Bu konuda saf değiliz. Tarayıcı tabanlı olmak düzenleyici soruların yok olduğu anlamına gelmez. Soruların farklı bir şekil aldığı anlamına gelir; bu da MDR CE öncesi klinik pilot yürüten bir ürün için maddi olarak savunması daha kolay olan bir şekildir.

Kabul Ettiğimiz Beş Taviz

Tarayıcı öncelikli mimari ücretsiz değil. Gerçek maliyetleri var ve hangi klinik kullanım senaryolarını önce ele aldığımızı şekillendirdiler.

1. İstemci donanım tabanı. Inference performansı cerrahın cihazına göre anlamlı şekilde değişiyor. MacBook Pro M serisi veya ayrık GPU'lu Windows laptop'ta segmentasyon modellerimiz kabul edilebilir hızda çalışıyor. Bütçe Chromebook'ta çalışmıyor. Minimum donanım gerekliliği belirledik ve pilot içindeki hedef kitlemizin bu gereklilik tarafından kısıtlandığını kabul ediyoruz.

2. Model boyutu bütçesi. 200 MB'lık bir model tarayıcıya teslimat için işe yaramaz. Inference görevi başına yaklaşık 30-60 MB toplam ağırlık bütçesinde çalışıyoruz; bu da mimari seçimleri, model damıtmayı ve kuantizasyonu zorunlu kılıyor. Hangi modelleri gönderebileceğimizi ve hangilerini gönderemeyeceğimizi şekillendiren gerçek bir kısıt.

3. İlk yükleme gecikmesi. Modeller alınmalı, önbelleğe alınmalı ve ısıtılmalı. İlk inference daima sonrakilerden yavaştır. Agresif önbellekleme ve geç yükleme ile azaltıyoruz, ama soğuk başlangıç maliyeti yapısal.

4. Inference gözlemlenebilirliği zorlaşıyor. Inference sunucuda çalıştığında her girdiyi, her çıktıyı, her model versiyonunu, her gecikme ölçümünü loglayabiliriz. Tarayıcıda çalıştığında yalnızca istemcinin geri göndermeyi seçtiğini alırız; ve gizlilik sorularını yanlışlıkla yeniden gündeme getirmemek için ne istediğimizi dikkatli seçmek zorundayız. Azalmış gözlemlenebilirliği kabul ediyor ve anomalileri bildirmek için cerraha güveniyoruz.

5. Tarayıcı API yüzeyi stabilitesi. WebGPU hala olgunlaşıyor. ONNX Runtime Web sık güncelleniyor. Upstream değişiklikleri takip etmek ve inference pipeline'ımızın tarayıcı versiyonları arasında özdeş çıktılar üretmeye devam ettiğini doğrulamak zorundayız. Bu gerçek bir devam eden iştir.

Bu maliyetler gerçek ama tahmin edilebilir, ve yapısal gizlilik avantajları için ödenmeye değer olarak değerlendirdik.

Vardığımız Yer: Hibrit C-Lite

Pratikte hiçbir klinik YZ sistemi saf istemci tarafında değil. Sunucuya kimlik doğrulama, hesap yönetimi, model teslimi, cerrahın açıkça kaydetmeyi seçtiği STL artifaktları için mesh depolaması ve piksel olmayan olayların denetim kaydı için güveniyoruz. Sunucu sınırını hiç aşmayan şey DICOM piksel verisinin kendisi.

İçeride buna Hibrit C-Lite mimarisi diyoruz. C istemci için, Lite ise sunucunun kimlik, model artifaktları ve cerrahın açıkça kalıcı hale getirdiği türetilmiş geometriye odaklanan minimal bir rol koruduğunu gösteriyor. Piksel verisi oturumda kalır. Diğer her şeyin kendi veri işleme hikayesi var; ayrı belgelenmiş, geometri katmanı için kullanıcı başına şifreli depolama ile.

Mimari karar Mayıs 2026 sonunda, IndexedDB'de kullanıcı bağlamları arasında kısa süreyle sızıntı yapan daha önceki bir hibrit desende izolasyon sorununu yüzeye çıkardıktan sonra kesinleştirildi. O olaydan çıkarılan ders mevcut tasarımı şekillendirdi. Her kullanıcının oturumunun türetilmiş bir şifreleme anahtarı var, kalıcı her artifakt o anahtarla şifrelenir, ve istemci tarafında kullanıcılar arasında paylaşılan bir depolama ad alanı yok.

Pilot Neyi Doğrulayacak

Klinik pilot, yaptığımız mimari seçimlerin cerrahların aracı gerçekten nasıl kullandığıyla teması hayatta kalıp kalmadığını öğrenmenin tek yolu. Pilot bize, tarayıcı tabanlı inference yolunun ameliyat günü iş akışlarında kabul edilebilir olup olmadığını, soğuk başlangıç gecikmesinin cerrah zaman baskısı altında ameliyat öncesi karar verirken tolere edilebilir olup olmadığını, ve sunucu tarafı denetim kayıtlarının olmamasının kendi iç uyumluluk ekiplerini tatmin etmesi gereken kurumlar için kabul edilebilir olup olmadığını söyleyecek.

Klinik pilot bekleme listesini şimdi açıyoruz. İlk dalga davetli, ve platformu gerçek ameliyat öncesi planlamada çalıştırmaya, mimarinin onlara nerede hizmet ettiği ve nerede bozulduğu hakkında açık geri bildirim vermeye, ve ikinci dalgayı şekillendirmeye yardım etmeye istekli ortopedi cerrahları, radyologlar ve kurumlar arıyoruz.

Bunu okuyorsanız ve herhangi bir kısmı klinik YZ konuşlandırması hakkındaki düşüncenizle örtüşüyorsa, bekleme listesi salnus.com/waitlist adresinde açık.

Kapanış

Tarayıcı öncelikli kararı verdik çünkü gizlilik hikayesinin, standart bir bulut mimarisi üzerine eklenmiş bir politika katmanı olmaktansa sistemin yapısal bir özelliği olmasını istedik. Bunun getirdiği maliyetleri kabul ettik. Klinik pilot, bunu inşa ettiğimiz cerrahların tavizlerin doğru olduğuna katılıp katılmadığını öğreneceğimiz yer. Mimari belgelenmiş. Uyumluluk duruşu savunulabilir. Sıradaki adım pilot.

Reviewed by the Salnus biomedical engineering team.

← All Posts

Orthopaedic AI Research Updates

Monthly research digest, product updates, and clinical AI insights.

Unsubscribe anytime.

Browser-Based DICOM Processing for Orthopaedic AI: Why We Made the Call, Salnus Blog