Surum bilgileri
Odadent guncel surumleri
Masaustu uygulamasinin en son yayinlanan surumunu ve web sitesinin yayindaki sunumunu burada gorebilirsiniz.
Masaustu Uygulama
Windows kurulum paketi
v1.23.1
# v1.23.1 — v1.23.0 Test Sonrasi Bug Fix + Onam Anamnez Genisletmesi + Mikro UI
**Tarih:** 2026-05-03
## Öne Çıkanlar
- **PDF bos son sayfa bug fix:** Tum form ciktilarinda (Onam/Anamnez, Hasta Raporu, Makbuz, Recete) son sayfa bos kalip sadece footer ile gozukuyordu — duzeltildi.
- **TDB 2026 fiyat listesi calisir hale geldi:** v1.23.0'de 294 kalem fiyat listesine eklenmiyordu (Vite bundle module not found). Artik dogru sekilde import edilir, eksikse her boot'ta tamamlanir.
- **Onam Form'unda Q3-Q7 sorulari sisteme entegre:** Bas/boyun radyoterapi, cerrahi sonrasi kanama, diger tibbi sorun, surekli doktor, hamilelik bilgileri Hasta Form'unda Evet/Hayir + detay olarak doldurulur, Onam PDF'ine otomatik aktarilir. Hasta her seferinde elle yazmak zorunda kalmaz.
- **Hasta arama Turkce karaktere duyarsiz:** "gunes" arayinca "GÜNEŞ", "ASEL GÜNEŞ" hastalari bulunur.
- **Bekleyen kontroller takvim kutusunda sadece bagli olanlar:** Eskiden hasta basina TUM bekleyen kontroller her randevuda tekrarlaniyordu — artik sadece BU randevuya bagli kontroller gozukur.
- **Auto-suggest kontrol modali default secim BOS:** Tedavi tamamlandiginda acilan "Onerilen Kontroller" modali artik default bos — hekim manuel sectikten sonra ekler. Eskiden 3 default kontrol (7g/30g/180g) sessizce yaratiliyordu.
- **Sirali tedavi seansi tamamlama bloku kaldirildi:** Banko 4. seansi tamamlamak isterse 1-3 hala "planlanmis" olabilir (gercekte 4. seans randevusu yapilip gerceklesmis). Sistem artik engellemiyor.
- **Specialty (Cerrahi/Ortodonti/Perio) sutun drag:** Bu sutunlarin baslik kismindaki drag handle ile genislik degisir, DB'ye kaydedilir.
- **ESMM Mikro Grup tam UI:** Settings → E-SMM bolumunde Mikro Grup butonu + Bearer token input + auto-save before test. (Mikro adapter hala iskelet — endpoint URL ve auth contract apidestek@mikro.com.tr ile dogrulanmadan canli makbuz gonderemez.)
## Detaylar
### Kritik Bug Fixleri
- **Randevular sayfasi acilmiyor:** v1.23.0'de `WeeklyCalendar.tsx`'e `useMemo` kullanildi ama import eksikti — sayfa crash ediyordu. Import eklendi.
- **PDF bos son sayfa:** `drawFooter` Y degeri (`pageH - 26`) bottom margin'in (32) altinda kaliyordu, PDFKit `text()` otomatik `addPage()` yapip footer'i sonraki bos sayfaya yaziyordu. Footer renderlenirken margin gecici 0'a indirildi.
- **TDB 2026 MODULE_NOT_FOUND:** `require('../data/tdb2026')` Vite main bundle'inda bulunamiyordu (Vite static analysis dynamic require'i tutmaz). Top-level `import { TDB_2026_ITEMS } from '../data/tdb2026'` ile statik import. Migration recovery agresif yapildi: her boot'ta `SELECT COUNT(*) FROM price_list_items WHERE name LIKE 'TDB:%'` ile fark kontrolu — eksikse fark kadar insert.
- **PriceList visible toggle calismiyor:** `priceList:list` raw SQL sonuc better-sqlite3 + Prisma adapter'inda `COALESCE(visible,1)` BigInt donuyordu. Renderer `i.visible === 1` karsilastirmasi `BigInt(1) === Number(1)` -> `false` => toggle hep "1 (gorunur)" gonderiyordu. Handler artik `Number(r.visible)` cast eder.
- **Recall sweep ambiguous SQL:** `runRecallSweep` SQL'inde `treatment_sessions JOIN treatments` sonra `MAX(completedDate)` cagriliyordu — iki tabloda da kolon var. `MAX(ts.completedDate)` qualified.
- **ESMM Mikro validation reddediliyor:** `esmm:setSettings` handler'inda provider validation listesi `['nilvera', 'elogo', 'uyumsoft']` idi — `'mikro'` yoktu. Kullanici Mikro sectim deyince backend `'Gecersiz saglayici'` atip kayit etmiyor, eski `nilvera` kalip fatura kesiminde Nilvera'ya 404 gidiyordu. Liste `'mikro'` ile genisletildi.
- **PlanAppointmentModal hekim default yanlis:** Modal acilinca `selectedSessions[0]?.treatment?.doctorId` ile default cekiyordu — v1.20.0'dan beri sessiyonlarin kendi `doctorId` override'i var, bu dikkate alinmiyordu. `session.doctorId ?? treatment.doctorId ?? doctors[0].id` zinciri.
- **Hasta arama Turkce karaktersiz:** `toLocaleLowerCase('tr')` lowercase yapar ama diakritikleri korur (`güneş`). Yeni `normalizeTr()` helper transliterate eder (ş→s, ı→i, ğ→g, ü→u, ö→o, ç→c, kombinasyon noktali İ→i). Tam ad search da eklendi (`asel gunes` -> `ASEL GÜNEŞ`).
### UX Iyilestirmeleri
- **Sirali tedavi seansi tamamlama bloku KALDIRILDI:** Banko 4. seansi tamamlamak isterse 1-3 hala "planlanmis" olabilir (gercek hayatta 4. seans randevusu yapilip gerceklesmis olabilir). Hekim kontrolunde, sistem engellemiyor. `treatmentSession:complete` ve `treatmentSession:update` her ikisinden de strict pending check kaldirildi.
- **Auto-suggest kontrol modalinin default secimi BOS:** Tedavi tamamlandiginda acilan "Onerilen Kontroller" modalinde tum oneriler default secili geliyordu. Banko/hekim "Ekle" basinca implant icin 3 default kontrol (7g/30g/180g) sessizce yaratiliyordu. Artik default secim bos, "Once seciniz" butonu disabled. Hekim manuel sectikten sonra ekler.
- **Bekleyen kontroller takvim kutusunda:** Eskiden hasta basina TUM bekleyen kontroller her randevu kutusunda gozukuyordu (her randevuda ayni 4-5 kontrol tekrar). Artik sadece BU randevuya **bagli** (appointmentId === apt.id) kontroller — kutu temiz.
- **K:N rozet kaldirildi:** Randevu kutusunun sag ust kosesinde "🔔 K:4" amber rozet (her hastada gozukuyor, etkili degildi) kaldirildi. Body row'daki "🔔 Implant Kontrol" yeterli.
- **Rozet/tooltip Turkce label:** `pendingFollowUpSummary` artik raw reason kodu (`implant_kontrol`) yerine TR label (`Implant Kontrol`). Tooltip "Kontroller: ...".
- **Treatment summary description kullanir:** Eskiden takvim kutusu `t.type` (orn. `periodontoloji`) gosteriyordu. Artik `t.description` (orn. `Splint (Fiber Berkitmeli)`) — fiyat listesinden gelen tam ad.
- **Specialty (Cerrahi/Ortodonti/Perio) sutun drag:** Bu sutunlarin baslik kismina drag handle (1.5px mavi cubuk) eklendi, surukle ile genislik degisir. DB'ye persist (`specialtyColumnWidths` setting key).
- **SUT/TDB info banner sabit:** PriceListPage ustunde `localStorage.odadent_sut_info_dismissed` ile X butonu vardi — "her zaman gozuksun" istegi uzerine X kaldirildi.
- **ESMM Mikro UI butonu:** Settings → E-SMM bolumunde `Mikro Grup` butonu + Bearer token input + amber uyari notu (apidestek@mikro.com.tr ile iletisime gec).
- **ESMM Test butonu otomatik kaydeder:** Eskiden kullanici Mikro sectim deyip Save'e basmadan "Baglanti Testi" basinca DB hala `nilvera` kayitli, test Nilvera'ya gidiyordu. Test artik once `esmm:setSettings` cagirir, sonra `esmm:testConnection`.
### Onam Form Q3-Q7 Anamnez
Onam formunda yer alan 5 ek soru artik hasta sisteminde **yapilandirilmis** olarak saklanir — eskiden bos cizgilerdi, hasta her seferinde elle dolduruyordu.
- **Schema migration** (additive ALTER TABLE): `patient_anamnesis` tablosuna 7 kolon — `radiotherapy`, `bleedingPostSurgery`, `otherMedicalCondition` + `otherMedicalConditionDetail`, `regularDoctor` + `regularDoctorDetail`, `pregnancyMenstrualInfo`.
- **Hasta Form Tibbi Bilgiler sekmesi:** "Ek Sorular (Onam Formundan)" alt-bolumu eklendi. Her soru `YesNoQuestion` komponenti (Evet/Hayir buton + opsiyonel detay input + medikal aciklama helper text). Ornek helper: "Q3 Radyoterapi — Bas/boyun bolgesine alinan radyoterapi sonrasi dis cekimi osteoradionekroz riski tasir."
- **Hasta Detay AnamnesisPanel:** Q3-Q7 cevaplari amber rozet olarak gozukur ("Bas/boyun radyoterapi", "Diger tibbi sorun: meme kanseri tedavisi", "Surekli doktor: Dr. Ayse / Kardiyoloji" vb.).
- **Onam PDF prefill:** Q3-Q7 satirlarinda artik `Evet` / `Hayir` / `Evet — Aciklama` otomatik basilir.
## Geriye Uyumluluk
- Schema migration ALTER TABLE additive, eski kayitlar bozulmaz.
- Eski client yeni server'a baglanirsa Q3-Q7 alanlarini gormez ama mevcut akislar calisir.
- Yeni Q3-Q7 form alanlari nullable, `null` olarak DB'ye gider.
- Sifir DB veri kaybi.
Son surumu indirodadent.com
Web sitesi yayin surumu
v0.7.1
- Yayin zamani
- 3 Mayıs 2026 00:29
- Commit
- 29d6665
Surum politikasi
- Masaustu uygulama her yeni surumde otomatik olarak guncelleme bildirir (Ayarlar > Guncellemeyi Kontrol Et).
- Her surum notlariyla birlikte yayinlanir, geriye donuk uyumluluk korunur.
- Kritik guvenlik guncellemeleri yayinlandiginda iletisim adresinize bilgilendirme gonderilir.