İçeriğe atla
megapromotingHadi konuşalım

Çözümler · Diş klinikleri

Zorunlu sigorta kapsamı işaretli hizmet listesi, resepsiyon tarafından düzenlenebilir — e-posta ile gönderilen fiyatları olan bir PDF değil.

Bir diş kliniği sitesi tek bir şeye göre değerlendirilir: kişinin ihtiyaç duyduğu hizmeti, fiyatı ve birimiyle birlikte — diş başına, çene başına, seans başına — bulup bulamadığına ve bunun sigorta kapsamında olup olmadığını bilip bilmediğine göre. Geri kalanı dekor. Bunu taşıyan yapıyı ve personelin bunu kendi başına değiştirebildiği paneli kuruyoruz.

Zaten kurduklarımızLucrarea se poate verifica din exterior chiar acum: datele publice ale unui centru stomatologic raional pe care îl administrăm sunt servite ca fișier structurat — 89 de servicii, fiecare cu categorie, subcategorie, denumire, preț, unitate de măsură și un indicator de eligibilitate pentru asigurarea obligatorie, dintre care 27 marcate ca eligibile; 7 categorii și 10 subcategorii, verificate de noi pe 06.09.2026. A doua parte a dovezii e securizarea, cu diff în istoric: la preluare, parola de administrator era comparată în browser și ajungea în pachetul JavaScript public, iar scrierile pe interfața de programare se puteau face de oricine de pe internet. Precizarea corectă, ca să nu ne atribuim mai mult decât e al nostru: prima variantă a site-ului nu e a noastră. Contribuția care se poate arăta cu diff e preluarea, securizarea, tipurile, integrarea continuă și igiena dependințelor.

Bir diş kliniği „hizmet” satmaz. Başka hiçbir alana benzemeyen birimlerle çok uzun bir tarife pozisyonları listesi satar: diş başına, çene başına, çekim başına, tedavi edilen vaka başına, seans başına, ziyaret başına, müdahale başına. İnternette arayan kişi kliniği değil, kendi pozisyonunu arar: bir çekim ne kadar, diş başına mı yoksa ziyaret başına mı ödenir, sigorta kapsamında mı. Buna cevap veren bir site kullanışlıdır; ekli bir PDF’si olan „Fiyatlar” sayfası olan bir site değildir.

Bir kliniğin gerçekliği açısından istenen ikinci şey, listenin programcı olmadan değiştirilebilir olmasıdır. Tarifeler değişir, doktorlar değişir, acil durum programı kışın farklı duyurulur. Her değişiklik bir geliştiriciden geçerse, liste eski kalır ve birkaç ay içinde hastalar geçen yılın fiyatıyla gelir. Kurduğumuz yapı, kamuya açık verileri — hizmetler ve ekip — hem programlama arayüzü hem de sitenin görünen kısmı tarafından okunan yapılandırılmış dosyalarda tutar ve personel bunları bir panelden düzenler.

Üçüncü şey, brief’te kimsenin istemediği ama en çok önem taşıyan şey, o listeye kimin yazabildiğidir. Burada yazdığımız proje devralındığında, internetten herkes programlama arayüzüne bir yazma isteği gönderebiliyordu ve panel parolası tarayıcıya sunulan JavaScript paketine giriyordu — çünkü doğrulama tarayıcıda yapılıyordu. Doğrulamayı sunucuya taşıdık: parola artık sunucudan ayrılmıyor, on iki saat geçerli imzalı bir jeton dönüyor, IP adresi başına onbeş dakikada sekiz deneme sınırı ve sabit zamanlı karşılaştırmalar var; arayüz yalnızca yerel adreste dinliyor, dolayısıyla kamuya açık tek yol web sunucusudur.

Zorunlu sigorta kapsam işareti, ayrı bir cümleyi hak eder; çünkü hasta için en yüksek değere ve klinik için en büyük riske sahip alandır: sonuçları olan bir ifadedir. Bu yüzden o, bizim bir sayfada yazdığımız metin olarak değil, kurum tarafından düzenlenen veri olarak yaşar; biz alanı, gösterimi ve bir dakika içinde düzeltilebilme imkânını kurarız.

Neleri kapsıyor

Diş kliniklerinde somut olarak ne değişiyor

Her hizmet, fiyat tablosunda bir satır değil, kendi birimi olan bir kalemdir

Her hizmetin veri yapısı kategori, alt kategori, ad, fiyat, ölçü birimi ve zorunlu sigorta uygunluk göstergesi içerir. Birimler alanın gerçek birimleridir — diş, çene, çekim, tedavi edilmiş vaka, seans, ziyaret, muayene, anestezi, prosedür, inceleme, müdahale — çünkü birimsiz bir fiyat, tam da kayıt masasının kaçınmak istediği konuşmayı doğurur.

Uzun listenin taranabilir kalması için iki seviyeli taksonomi

Kategori ve alt kategori, düz bir liste değil. Yazdığımız çalışmada: 7 kategori ve 10 alt kategori üzerinde 89’dan fazla hizmet. Büyüklük sırası önemlidir — yüzün altındaki kalemlerde iki seviyeli bir taksonomi yeterlidir; birkaç yüzün üstünde yapı başka bir konu olur ve bunu sonra değil, önce söyleriz.

Sigorta kapsam işareti, kurum verisi olarak

Uygunluk göstergesi her hizmette, genel veriler içinde yer alır ve klinik tarafından düzenlenebilir. Alıntılanan çalışmada 89 hizmetin 27’si uygun olarak işaretlenmiştir. Sigortaya neyin girdiğini biz yazmıyoruz ve biz çıkarsamıyoruz: bu, hasta için sonuçları olan kurum beyanıdır ve her an kurum tarafından düzeltilebilmelidir.

Acil durumlar, ortodonti, implantlar, pedodonti için ayrı ekranlar

Tek bir “Hizmetler” sayfası değil. Site 22 ekrandan oluşur; hizmetler ve fiyatlardan acil durumlara, ortodontiye, implantlara, pedodontiye, şeffaflığa ve geri bildirime kadar. Nedeni pratiktir: Pazar gecesi “diş acil” arayan biri genel bir sayfa istemez ve bir bölüm sayfası, çalışma saatleri ve orada ne yapıldığı hakkında söyleyecek bir şeyi vardır.

Personel düzenler, geliştirici zincire bağlı değildir

Hizmetler ve ekip bir panelden düzenlenir ve yazma işlemleri geçerli bir jeton gerektirir; okumalar herkese açık kalır, böylece site kimlik doğrulama olmadan çalışır. Klinik için sonuç: bir fiyat değişikliği aynı gün içinde yürürlüğe girer, sonraki geliştirme iterasyonunda değil.

Parola sunucudan çıkmaz ve denemeler sınırlandırılır

Kimlik doğrulama sunucuda yapılır ve 12 saat geçerli, HMAC-SHA256 ile imzalanmış bir jeton döndürür; IP adresi başına 15 dakikada en fazla 8 deneme ve sabit zamanlı karşılaştırmalar vardır. İmzalama sırrı otomatik olarak, kısıtlı yetkilere sahip bir dosyada, depolamanın dışında tutulacak şekilde oluşturulur. Bunlar koddaki sayılardır, genel ilkeler değil — okunabilir ve tartışılabilirler.

Programlama arayüzü doğrudan internete açılmaz

Yalnızca yerel adreste dinler, bu nedenle öndeki web sunucusu tek açık yoldur; izin verilen alan adları listesi açıktır ve istek gövdesi 1 MB ile sınırlandırılmıştır. Yazmalar jeton ister, okumalar istemez. Bu olağan bir yapılandırmadır — sorun şu ki, eksik olduğunda dışarıdan, biri onu bulana kadar görünmez.

Sürekli entegrasyon, içinde bir sır bulursa paketi reddeder

Derleyip tipleri doğrulayan kontrol, az sayıda projenin yaptığı başka bir şeyi de yapar: oluşturulan pakette sır arar ve bulursa başarısız olur. Bu, teslim sırasında düzeltilen kusurla doğrudan bağlantılıdır — bir parola, tam da bunu hiçbir şey denetlemediği için genel pakete girmişti. Bunun üzerine, haftalık ritimde bağımlılık güncellemeleri gelir.

Diş kliniği sitesi ne yapmaz

Bir programlamayı tek başına onaylamaz: talebi toplar, onay ise ya bir kişiyi ya da kliniğin programlama sistemine bağlantıyı gerektirir — ayrı bir iştir, kendi koşulları vardır. Bizim yazdığımız klinik bilgisini yayımlamaz: tedavilerle ilgili içerik uzmanların sorumluluğundadır. Ve sigorta kapsamına neyin girdiğine karar vermez.

Traseul

Bir talep sistemden nasıl geçer.

01

Tasarım öncesinde nomenklatürü envanterleriz

İlk teslimat, her birinin birimi ve kapsam işaretiyle birlikte tarif pozisyonları listesidir; kliniğin tuttuğu biçimde olur. Liste yapılandırılmış bir biçimde yoksa — ve genelde hesap dosyası ya da belge olarak vardır — onu biz yapılandırırız, ardından klinik onaylar. Tasarım sonra gelir, çünkü kaç pozisyon olduğuna bağlıdır.

02

Kamu yapısını ve paneli aynı aşamada kuruyoruz

Genel ekranlar ve düzenlendiği panel ayrı ayrı yapılmaz, çünkü aksi halde görüntülenen ama düzenlenemeyen alanlar ortaya çıkar. Siteyi gerçek yüklenmiş verilerle teslim ederiz, dolgu içerikle değil — geçici metinle dolu bir klinik sitesi kimse tarafından değerlendirilemez.

03

Yazıları kapatır ve dışarıdan kontrol ederiz

Sunucuda kimlik doğrulama, imzalı belirteç, deneme sınırı, programlama arayüzü yalnızca yerel adres üzerinden, izin verilen alan adları listesi, istek gövdeleri üzerinde tavan. Dışarıdan yapılan bir kontrolün sonucunu teslim ederiz: kimlik doğrulama olmadan ne okunabilir ve ne yazılamaz.

04

Sadece parolalarla değil, düzenleyen kişi için eğitimle teslim ederiz

Erişimleri, devreye alma belgesini ve tarifeleri ile ekibi değiştirecek kişi için kısa bir eğitimi teslim ederiz. Klinikten biri, sitede görünen bir değişikliği tek başına yapana kadar teslimat tamamlanmış sayılmaz.

1Server web în față2pachet static construit3interfață de programare doar pe adresa locală4fișiere structurate cu serviciile și echipaCitirile trec public; scrierile cer un jeton semnat, valabil 12 ore.
4 straturi

Veriler

Neye dokunuyoruz, nerede duruyorlar ve ne kadar kalıyorlar

Kurallar sektörden sektöre değişir. Bunlar diş kliniklerinde uygulananlardır.

Bir klinik sitesinde ne kamuya açık, ne değil
Kamuya açık: birim ve kapsam işaretiyle birlikte hizmet listesi, ekip, çalışma programı, kurum iletişim bilgileri. Kamuya açık olmayan: bir formdan gelen her şey. Bu ayrım, birisi geri bildirim sayfasına adı ve sorunu ile bir mesaj bırakana kadar açık görünür — bu yüzden formlar ve kamuya açık gösterim asla aynı kaynağı paylaşmaz.
Programlama talebi sağlık verisi içerir
«Alt sol akıl dişim ağrıyor» ifadesi, daha sıkı rejime tabi bir kategoride yer alan, belirlenebilir bir kişinin sağlığı hakkında bilgidir. Pratik sonuçlar uygulamada belirlenir: alınan mesajlara kim erişir, ne kadar saklanır, hangi kanala gelir ve formda hiçbir zaman ne istenmez.
Fiyatlar ve kapsam işareti kuruma aittir
Biz onları yapı ve panel olarak kurarız; içerikleri kliniğe aittir ve onun kararıyla değişir. Materyallerimizde hiçbir tarife rakamını örnek olarak yayımlamayız, yalnızca örnekleme amacıyla bile — bağlamından koparılan bir tarife, klinik hakkında bir ifade haline gelir.
Kamusal verilere kim yazabilir
Yalnızca sunucuda kimlik doğrulama ile, deneme sınırıyla elde edilen geçerli jetona sahip olan kişi yazabilir. Okumalar kamusaldır, çünkü öyle olmak zorundadır. Bu iki cümle arasındaki fark, alıntı yaptığımız projeyi devralırken düzelttiğimiz tam kusurdur.
Depo geçmişinde ne kalır
Bir proje geçmişi, neredeyse her zaman, kimsenin oraya bilerek koymadığı veriler içerir: bir telefon numarası, bir e-posta adresi, içerik yöneticisinin adı. Bunları bu şekilde ele alırız — kamusal materyallere alınmaz ve müşterinin isteği üzerine içerikten çıkarılır.

Bir vaka

Tarayıcıya sunulan pakete giren bir yönetici parolası

Durum

Bir diş kliniği sitesini devralırken, yönetim panelinde yalnızca içeriden görülebilen iki sorun vardı. Birincisi: parola tarayıcıda karşılaştırılıyordu, dolayısıyla kamuya açık JavaScript paketine giriyordu. İkincisi: uygulama arayüzüne yazma istekleri internetten herkes tarafından yapılabiliyordu ve port doğrudan açıktı.

Ne kurduk

Doğrulamayı sunucuya taşıdık: kimlik doğrulama, HMAC-SHA256 ile imzalanmış, 12 saat geçerli bir jeton döndürüyor; adres IP başına 15 dakikada 8 deneme sınırı ve sabit zamanlı karşılaştırmalar var; imzalama sırrı, kendi kendine üretiliyor, kısıtlı yetkilerle, deponun dışında. Uygulama arayüzü yalnızca yerel adreste dinlemeye devam etti; önde web sunucusu, izinli alan adları listesi ve 1 MB ile sınırlandırılmış istek gövdesi var. Servislere ve ekibe yapılan yazmalar jeton istiyor; okumalar kamusal kaldı. Tüm bunların üstünde, derleyen, türleri denetleyen ve içinde bir sır bulursa paketi reddeden sürekli entegrasyon var.

Ne çıktı

Kliniğin kamusal verileri bugün dışarıdan da doğrulanabilir: kategori, alt kategori, fiyat, birim ve sigorta kapsam göstergesi olan 89 hizmet, bunların 27’si uygun olarak işaretli. Değişen şey, bunlara kimin yazabildiği.

Vakanın söylemedikleri

İlk site sürümünü biz yapmadık. Depo geçmişinden, commit’lerin bir kısmı dış geliştiricilere ait. Diff ile gösterebildiğimiz katkı devralmadır: güvenlik, sürekli entegrasyon, türler, bağımlılıklar.

Sorular

Diş kliniklerinden biri ne sorar

Fiyatları size telefon etmeden kendimiz değiştirebilir miyiz?

Evet — işin yarısı bu. Servisler ve ekip bir panelden düzenlenir; yazmalar kimlik doğrulama ister, okumalar kamusal kalır. Bizim önerimiz: teslim sırasında, bununla ilgilenecek kişi değişikliği bizim önümüzde yapsın, böylece bunun bizden değil, kendi elinden çalıştığını bilelim.

Zorunlu sigortaya nelerin girdiğini nasıl gösteririz?

Düzenlediğiniz aynı verilerde, her hizmet üzerinde bir gösterge olarak. Alıntı yaptığımız çalışmada, 89 hizmetin 27’si uygun olarak işaretli. Alanı ve gösterimi biz kuruyoruz; tam olarak neyin uygun olduğu kurumun beyanıdır, çünkü bunun hasta ve klinik için sonuçları vardır.

Fiyat için ölçü birimi neden önemlidir?

Çünkü diş hekimliğinde fiyat ziyaret başına değildir. Diş başına, çene başına, çekim başına, tedavi edilen vaka başına, seans başına olur. Birim olmadan gösterilen fiyat, resepsiyonun günde on kez yaptığı tam konuşmayı doğurur ve daha da kötüsü, hastaya telefonda başka bir şey söylenmiş olduğu hissini verir.

Site programlama yapabilir mi?

Talebi toplayabilir. Bir saatin onayı ya takvime bakan bir kişi ya da kliniğin programlama sistemine bağlantı gerektirir — bu, önceden uyumluluk kontrolü olan ayrı bir iştir. Sadece e-posta gönderen bir formu “çevrimiçi programlama” diye adlandırmayız.

Tedaviler hakkında metinleri kim yazıyor?

Klinik uzmanları. Biz klinik bilgileri yazmıyoruz ve bunları arama için “optimize” etmiyoruz; çünkü bu, bir tıbbi kurum adına tıbbi iddialar formüle etmek anlamına gelir. Yapıyı kuruyoruz, metnin yanıtlaması gereken soruları belirliyoruz ve doğrulandıktan sonra yayımlıyoruz.

Başka biri tarafından yapılmış bir sitem zaten var. Devralabilir misiniz?

Evet, ve burada yazdığımız çalışma tam olarak budur. Bir devralmada önce ne yaparız: dışarıdan nelerin yazılabildiğine, parolaların nerede durduğuna ve tarayıcıya sunulan pakette neyin yer aldığına bakarız. Alıntılanan durumda yönetici parolası herkese açık pakete giriyordu ve yazma işlemleri herkes tarafından yapılabiliyordu. Doğrulamayı sunucuya taşıdık ve yazma işlemlerini kapattık.

Bir tarife değişikliği ne kadar hızlı görülür?

Kaydedilir kaydedilmez, çünkü kamuya açık veriler sizin düzenlediğiniz aynı kaynaktan okunur. Vaad etmediğimiz şey, arama motorlarındaki sonuçların ne hızla güncellendiğidir — bu bize bağlı değildir ve bunu garanti edemeyiz.

İletişim formundaki veriler ne olur?

Uygulama sırasında belirlenir: nereye giderler, kim görür, ne kadar süre saklanırlar ve formda asla ne istenmez. Bir klinikte mesaj çoğu zaman bir sağlık sorununun açıklamasını içerir, dolayısıyla bu “bir lead” değildir, sıkı rejime tabi bir veri kategorisidir — ve bunun işlenmesi kliniğin yayımlanmış politikasında yazılır.

Site sizin tarafınızdan yapıldığını söyleyecek mi?

Yalnızca isterseniz. Çalışmalarımızın bazıları alt kısımda atıf taşır, bazıları taşımaz — bu müşteriye bağlıdır. Bunu belirtiyoruz çünkü bu, kliniklerin sorduğu bir sorudur ve site hiçbir atıf taşımıyorsa, biz de onların onayı olmadan kendimizi yazar olarak sunmayız.

Neyin daha iyi çalışmasını isterdiniz?

Bize sürecinizi anlatın. Neyin kurulmaya değer olduğuna, neyi bağlayabileceğimize ve sonucu nasıl doğrulayacağımıza birlikte karar verelim.

Hadi konuşalım