Tüm projeler

Sağlık teknolojisi / Teknik proje incelemesi

BTM Health.

Hekimler için mobil uygulama,
yönetim paneli ve hesaplama altyapısı

Referans destekli yapay zekâyı ve TUS / DHY tercih araçlarını birleştiren hekim odaklı platform. Mobil uygulama, admin paneli, backend ve arka plan hesaplama sistemlerinde uçtan uca teknik sorumluluk üstlendim.

Referans destekli yapay zekâPrekura worker’larıOperasyon paneliİzlenebilir veri

01 / Ürün

BTM’de neler
geliştirdim?

BTM, hekimlerin adli tıp kaynaklarına başvurmasına ve TUS / DHY dönemlerinde kadroları karşılaştırmasına yardımcı oluyor. Her iki deneyimi de mobil uygulamada geliştirdim; veri modellerini ve erişim kurallarını ihtiyaçlarına göre ayrı ele aldım.

Mobil uygulamanın yanında API’ları, veritabanı modellerini ve belge inceleme, resmî veri aktarımı ve hesaplama yönetimi için admin araçlarını geliştirdim. Mobil ve admin aynı backend’i kullanıyor; kullanıcıların ve yöneticilerin yetkileri ayrı tanımlanıyor.

BTM AI: referans destekli değerlendirme.

Vaka bulgularını, sohbet geçmişini ve referans dokümanı kontrollü bir LLM isteğinde birleştiren mobil sohbeti ve backend akışını geliştirdim. Erişim, sohbet sahipliği ve kullanım limitleri sunucuda kontrol ediliyor.

Gemini · Edge Functions · Mobil sohbet

Prekura: veriye dayalı tercih deneyimi.

Kadro keşfi, filtreler, harita görünümleri, geçmiş sonuçlar ve döneme özel tercih listeleri geliştirdim. TUS kadroları hastane–branş birleşimi olarak modellenirken DHY’nin farklı kura ve tercih kuralları ayrı ele alınıyor.

TUS / DHY · Geçmiş sonuçlar · Tercih yönetimi

Admin: ürünün arkasındaki yönetim araçları.

Belge inceleme, kadro yönetimi, moderasyon ve hesaplama takibi için Next.js panelini geliştirdim. Operatör kararlarını yetki kontrollü backend işlemlerine ve mobil deneyime bağladım.

Next.js · Sunucu tarafı yetkiler · Operasyon

02 / BTM AI

Referans kılavuza dayanan
AI sohbeti

Gemini’yi referans dokümana ve sohbet geçmişine bağladım. Kaynağın sınırları içinde kalma, eksik bilgiyi belirtme ve belirsiz bulgularda açıklama isteme talimatları ekledim. Belge hazırlama, yetkilendirme ve kayıt işlemlerini uygulama yönetiyor.

Yanıtları parça parça göstermek için SSE akışını ve mobilde parça birleştirmeyi geliştirdim; kısmi yanıtları ve kesintileri ayrı ele aldım. Yeniden kullanım öncesi referans sürümü ve sağlayıcıdaki dosyanın geçerliliği kontrol ediliyor.

ÖSYM sonuç belgelerinin okunması ve doğrulanması

ÖSYM sonuç belgelerinde metin içeren PDF’ler doğrudan ayrıştırılıyor; taranmış içerikte Gemini ile metin çıkarılabiliyor. Ardından deterministik parser puan alanlarını yorumlayıp doğruluyor. Kaynak OCR gerektirse bile veri kuralları incelenebilir kalıyor.

BTM AI, hekimin değerlendirmesine destek olmak için referans kılavuzdaki bilgileri sunuyor. Yanıtları parça parça gösteren streaming desteğini de geliştirdim; bu özellik uygulamanın yayın ayarlarından açılabiliyor.

03 / Prekura hesaplamaları

TUS ve DHY hesaplamalarını
nasıl geliştirdim?

TUS’un puan temelli yerleştirmesi ve DHY’nin kura senaryoları için ayrı motorlar geliştirdim. Yoğun hesaplamalar PostgreSQL iş kuyrukları ve Node.js worker thread’leri kullanan arka plan servislerinde çalışıyor.

Her hesaplamanın girdilerini saklıyor, aynı hesabı tekrarlayabilmek için sabit bir rastgelelik başlangıç değeri kullanıyorum. Girdi ve çıktı hash’leri, kullanılan veriyi takip etmeyi sağlıyor. TUS puanlarını yuvarlama farklarını önlemek için tamsayı olarak temsil ediyorum. Bu kontroller hesabın tekrarlanabilmesini sağlıyor; gerçek yerleştirme sonuçlarını ne kadar doğru tahmin ettiğini ise ayrıca değerlendirmek gerekiyor.

01

Toplu hesaplama

Admin’den başlatılan hesaplamalar aday, tercih ve kadro girdilerini sabitliyor. Node.js worker thread’leri TUS yerleştirmelerini veya DHY senaryolarını hesaplıyor; sonuçları aşamalı hazırlayıp tamamlanan çalışmayı yayımlıyor.

02

Tercih değişikliklerinden sonra yeniden hesaplama

Tercih ve profil değişiklikleri yeni revizyon oluşturuyor. Eski hesaplamanın yeni girdinin sonucunu ezmesini önlemek için iş sahipliği, heartbeat, yeniden deneme ve eski iş yönetimi geliştirdim. Final hesaplamalar öncelikli çalışıyor.

03

DHY senaryo hesaplamaları

Ayrı bir worker DHY’nin kura modelini uyguluyor. Hızlı girdi değişiklikleri hesaplamadan önce birleştiriliyor. Süreli iş sahipliği ve heartbeat mekanizmaları işleri koordine ediyor; final hesaplamalara öncelik veriliyor.

04

Kontrollü sonuç yayını

Shadow, pilot ve açık modlar hesaplama ile kullanıcıya yayını ayırıyor. Bildirim outbox’ı gönderim öncesi aktif dönemi, yayın modunu ve kullanıcı iznini yeniden kontrol ediyor; tekrarlı gönderimleri önlüyor ve geçersiz cihaz token’larını temizliyor.

Yerleştirme tahminleri için ayrı bir test ortamı

Farklı aday dağılımlarını denemek için ayrı bir hesaplama sistemi geliştirdim. Her denemede kullanılan model sürümünü ve sonuçları ayrı kaydettim; gerekli model dosyaları eksik veya geçersizse hesaplamanın başlamasını engelledim.

Araştırma ve test

Olasılık hesaplamalarını kullanıcıya açılmadan da çalıştırılabilecek şekilde tasarladım. Sentetik adaylarla çalışan ulusal model ise araştırma ve test amacıyla ayrı tutuluyor.

04 / Yönetim paneli

Günlük operasyonlar için
yönetim paneli

Next.js admin panelini; kullanıcının belge göndermesi, mesaj şikâyet etmesi veya tercih değiştirmesi sonrasında yapılacak işler etrafında geliştirdim. İnceleme kuyrukları, filtreler, kararlar ve hesaplama detayları bu olayları yönetilebilir operasyon akışlarına dönüştürüyor.

01

Doğrulama kuyrukları

Panelde bekleyen belgeler filtrelenebiliyor, yetkili kullanıcılar belgeleri süreli bağlantılarla inceleyip kararlarını kaydedebiliyor. Sunucu, erişim vermeden önce kullanıcının yetkisini kontrol ediyor.

02

Backend’de uygulanan moderasyon

Yöneticiler şikâyet edilen yorum ve mesajları inceleyebiliyor, engellenen kullanıcıları yönetebiliyor. Engelleme kuralları backend’de de uygulanıyor.

03

Kadrolar ve hesaplama çalışmaları

Yöneticiler panelden döneme ait kadroları düzenleyebiliyor, hesaplamaların girdilerini, ilerlemesini ve sonuçlarını inceleyebiliyor. Uzun süren hesaplamalar arka plan servislerinde devam ediyor.

04

İzlenebilir değişiklikler

Önemli değişikliklerde işlemi kimin yaptığını ve ilgili alanların önceki ve sonraki değerlerini kaydediyorum. Yöneticiler bu geçmiş üzerinden alınan kararları inceleyebiliyor.

Sunucu tarafında yetkilendirme

Kullanıcı sahipliği ve satır düzeyinde veri erişimi kontrollerinin yanında rol ve işlem yetkilerini sunucuda uyguladım. Belge inceleme için süreli erişim yalnızca yetkilendirmeden sonra açılıyor; hassas operasyonlar açık kontrollerle korunuyor.

05 / Resmî veriler

Tercihleri koruyarak
kadro verilerini güncelleme

Resmî kadro verisini kaynak kaydı, ayrıştırma, hazırlık, inceleme ve yayın aşamalarından geçiren aktarım ve doğrulama araçları geliştirdim. Yeni verinin tercih bağlantılarını bozmaması için mevcut kadro kimlikleri ve tarihçe korunuyor.

Kaynak özetleri, aktarım kayıtları ve doğrulama raporları yayını izlenebilir kılıyor. Onaylanan veri canlıya ulaşmadan önce script’ler ve insan kontrolü birlikte kullanılıyor.

  1. 01

    Kaynağı kaydet

    Resmî kaynak ve kaynağı tanımlayan bilgiler kaydedilir.

  2. 02

    Ayrıştır ve hazırla

    Kayıtlar inceleme için hazırlık alanına alınır.

  3. 03

    İncele ve doğrula

    Kayıt eşleşmeleri, toplamlar ve mevcut tercih bağlantıları kontrol edilir.

  4. 04

    Yayımla

    Onaylanan veriler yayımlanır ve aktarım kaydı saklanır.

3.825kadro kaydı
15.501toplam kontenjan

130. DHY dönemine ait 3.825 kadro kaydını ve toplam 15.501 kontenjan bilgisini sisteme aktardım.

06 / Mimari ve yayın

Üç uygulama.
Ortak bir backend.

Mobil uygulamaReact Native / Expo
Operasyon paneliNext.js / Sunucu tarafı yetkiler
Ürün web sitesiNext.js / Hesap bağlantıları

Yetkili veri erişimi + sunucu işlemleri

Supabase / PostgreSQLOrtak veri, kimlik ve servis katmanı
  • Auth / RLS
  • Dosya depolama
  • Gerçek zamanlı veri
  • Edge Functions
  • İş kuyrukları

Uygulamanın yönettiği entegrasyonlar + arka plan hesaplamaları

Gemini / Yapay zekâ ve OCRNode.js / Prekura worker’larıRevenueCat / Expo Push
Özet sistem mimarisi. Sentry mobil hataları raporlar; servis süreleri ve worker heartbeat kayıtları backend etkinliğini takip etmeye yardımcı olur.

Tekrarlanan ve sırası değişen abonelik bildirimleri

Tekrarlanan veya sırası değişmiş RevenueCat webhook olayları için abonelik hakkı yönetimini geliştirdim. Böylece erişim ve kullanım limitleri teslim sırası sorunlarından korunuyor. Push akışında tekilleştirme kayıtları ve cihaz token’ı temizliği kullanılıyor.

Uygulama yayınları ve bakım

EAS build’leri, OTA yapılandırması, sürüm bakımı ve Sentry entegrasyonu üzerinde çalıştım. Parser, yerleştirme motoru ve abonelik olayı testleri iş kurallarını destekliyor; worker durumları ve heartbeat kayıtları uzun süren işleri görünür kılıyor.

07 / Teknolojiler

BTM’de kullandığım
teknolojiler

Mobil
React Native, Expo, TypeScript, EAS Build / OTA
Web ve admin
Next.js, React, sunucu tarafı işlem yetkileri
Backend ve veri
Supabase Auth, PostgreSQL, RLS, Storage, Realtime, Edge Functions
Hesaplama
Node.js worker thread’leri, PostgreSQL iş kuyrukları, TUS yerleştirme, DHY Monte Carlo
Yapay zekâ ve belgeler
Gemini, referans doküman bağlamı, SSE, PDF ayrıştırma / OCR
Ürün operasyonları
RevenueCat, Expo Push, Sentry, veri aktarımı ve doğrulama araçları

BTM’de mobil uygulamayı, admin panelini, yapay zekâ entegrasyonunu ve arka plan hesaplama servislerini geliştirdim. Veri modellerini, abonelik entegrasyonunu ve sürüm bakımını da üstlendim.

Ürün akışından arka plan işine

Birlikte
geliştirelim.