Hastane Yönetim Sistemi
Bu eğitimde, kullanıcıların hastalıklarına göre randevu almalarını sağlayan bir uygulamanın nasıl geliştirileceği gösterilmektedir. Hastalar gün içinde istedikleri saatte program yapabilecek ve doktorlar programlarını takvimlerinde görebilecekler.
Hazırlık ve Tasarım
İsim: Doktorları ve Hastaları göstermek için
Uzmanlık Alanı: Doktorun uzmanlık alanını göstermek için
Telefon: Kişiye ait telefon numarası için
E-posta: Kişiye ait e-posta için
Yaş: Kişinin yaşı
Kilo: Kişinin kilosu
Boy: Kişinin boyu
Adres Adres detayı
Sigorta Poliçe Numarası: Hastayı sigortalayan numara
Sigorta Şirketi: Hastayı sigortalayan şirket
Sebep: Hastanın ziyaret nedeni
Hastalık: Hastanın hastalığı tespit edildiğinde girilmesi için
Tedavi: Doktorun hasta için uygulayacağı tedavi süreci
İlaç: Hastaların hastalıklarını iyileştirmek adına verilen ilaç
Uygulama Geliştirme
Artık uygulama verilerimizi ve kullanıcı arayüzümüzü tasarladığımıza göre, Xpoda Studio kullanarak bir uygulama geliştirmenin zamanı geldi. Xpoda Studio'ya giriş yapın ve yeni bir form ekleyin.
Uzmanlık Formu
Öncelikle bu formda doktorların uzmanlık alanlarını kaydetmek istiyoruz.
Yeni bir form ekleyin ve adını “XP_UZMANLIKLAR” koyun. Sol taraftaki araç çubuğundan yeni bir TextBox ekleyin ve her iki alana da “Uzmanlik_Alanlari” adını verin. İsteğe bağlı olarak bir Etiket ekleyebilir ve bunu da “UZMANLIK ALANLARI” olarak adlandırabilirsiniz. Etiket alanı tıklandığında rengi ve yazı tipi ile dilediğiniz gibi düzenleyebilirsiniz.
Doktor Tanımlama Formu
Bu formda doktorların bilgileri tanımlanacaktır.
Öncelikle tablomuzu ve “XP_DOKTORID” olarak isimlendirelim. Araç kutusundan bir Drop Down Box ekleyip adına "İsim" koyuyoruz. Kullanıcılarımızın doktorlar olduğunu düşünürsek bu verileri veri tabanından çekmemiz gerekir. Bunu yapmak için Sorgu Sihirbazı'nı kullanarak veri tabanımıza yöneldik (sağ bölmede boş SQL Sorgusu alanının altında. Bu doktorları müşterilerimiz olan (XPODA_CLIENT_USERS) tablomuzdan çekmemiz gerekmektedir. Sorgu alanını bu şekilde dolduralım,
SELECT
XPODA_CLIENT_USERS.UserID,
XPODA_CLIENT_USERS.UserFullName
FROM
dbo.XPODA_CLIENT_USERS WITH (NOLOCK)
Bir Drop Down Box daha ekleyip uzmanlık alanlarını aynı diğer alanda olduğu gibi veritabanından çekelim. Bunu yapmak için “XP_UZMANLIKLAR” tablosundan sorgumuzu bu şekilde yazalım;
SELECT
XP_UZMANLIKLAR.UserTableID,
XP_UZMANLIKLAR.Uzmanlik_Alanlari
FROM
dbo.XP_UZMANLIKLAR WITH (NOLOCK)
Ayrıca, telefon numaralarını ekleyebilmek için bir alan eklememiz gerekir. Bunu yapmak için, bir TextBox ekleyelim ve “Telefon” olarak isimlendirelim. Ardından Text Box'ın özellik bölmesinden Mask olarak "Phone" seçelim. Sonrasında bir Text Box daha ekleyelim ve e-posta adreslerini ekleyebilmek için "Eposta" olarak isimlendirelim.
Hasta Tanımlama Formu
Öncelikle tablomuza bir isim vermeli ve “XP_HASTA” olarak adlandırmalıyız. Bu formda ilk olarak hastaları kaydetmemiz gerekiyor. Bunu yapmak için araç kutusundan bir Text Box ekleyelim ve adını "Hasta İsmi" koyalım. Cinsiyetlerini eklemek için bir Drop Down Box ekleyelim ve adını "Cinsiyet" koyalım. Bunu yaptıktan sonra özellikler kısmında Field Style alanını "Constant Value" olarak ayarlayalım ve aşağıya kaydırıp Values alanına bunları yazalım;
Kadın
Erkek
Diğer
Hastanın yaşını, kilosunu ve boyunu girmek için 3 adet Figures Box ekleyip isimlerini uygun şekilde yazıp kaydedin. Telefon Numarasını eklemek için TextBox ekleyip adını "Telefon Numarası" olarak değiştirelim ve özellikler kısmında Mask alanını "Phone" seçelim. Hastaların adreslerini kaydetmek için bir TextBox ekleyelim, adını "Adres" olarak değiştirelim ve birden fazla satır ekleyebilmek için -Multi Line- özelliğini açıp Table Length alanını "200" olarak değiştirelim. Ardından Sigorta Poliçe Numarası kaydetmek için bir Figures Box ekleyip “Sigorta Poliçe Numarası” olarak adlandırın ve Sigorta Şirketini kaydetmek için bir TextBox ekleyip "Sigorta Şirketi" olarak adlandıralım.
Tedavi Talep Formu
Bu alanda, veri tabanımızdan verileri çekmeliyiz. Daha sonra her iki tarafta da (Hastalar ve Doktorlar) geri kalan alanları otomatik olarak doldurmak için verileri çekeceğiz
“Hasta Adı” alanı seçiliyken “XP_HASTA” adlı tablodan verileri çekmek için bu sorguyu kullanın;
SELECT
XP_HASTAID.UserTableID,
XP_HASTAID.Hasta_Isim
FROM
dbo.XP_HASTAID WITH (NOLOCK)
Bunun için formun sol tarafında Hasta İsmi'nden sonra gelen Cinsiyet, Yaş, Kilo, Boy, Telefon, Adres, Sigorta Poliçe Numarası veya Sigorta Şirketi gibi herhangi bir alana tıklandığında "Linked Object” alanını bulup “HastaAdı” aksiyonunda isimlendirdiğimiz gibi “HastaBilgileri” yazmamız ve “Linked Object Area" alanında da aynı isimle tıkladığımız alanı listede bulmamız gerekiyor. Örneğin;
Linked Object: HastaBilgileri
Linked Object Area: Cinsiyet
Hastaların bilgilerini ilgili tablodan çektikten sonra, geri kalan alanları otomatik olarak doldurmak için üzerine bir aksiyon eklememiz gerekir.
Bunu yapmak için, “Hasta İsmi” alanı seçiliyken, özellikler bölmesinden (sağ taraftaki bölme), “Yeni Aksiyon Ekle” butonuna basın (ayarlar simgesinin sağ tarafında) ve Type of Action olarak “On Value Changed" seçeneğini seçin. Değer değiştiğinde “Create a New Data Object” istiyoruz. Bu nesneyi "HastaBilgileri" adlandıralım. Ardından, SQL Query kutusuna bu sorguyu girmeliyiz;
SELECT
XP_HASTAID.UserTableID,
XP_HASTAID.Hasta_Isim,
XP_HASTAID.Cinsiyet,
XP_HASTAID.Yas,
XP_HASTAID.Telefon_No,
XP_HASTAID.Boy,
XP_HASTAID.Kilo,
XP_HASTAID.Adres,
XP_HASTAID.Po_No,
XP_HASTAID.Sigorta_Sirketi
FROM
dbo.XP_HASTAID WITH (NOLOCK)
WHERE XP_HASTAID.UserTableID = '$PHasta_Isim'
Ve ardından aksiyonun en aşağısındaki “Kaydet” butonu ile aksiyonu kaydedelim.
Randevular
Bu alanda veritabanımızdan verileri çekmeliyiz.
Doktor isim verilerini çekmek için “Doktor İsmi” seçiliyken, bu sorguyu kullalım;
SELECT
XPODA_CLIENT_USERS.UserID,
XPODA_CLIENT_USERS.UserFullName
FROM
dbo.XPODA_CLIENT_USERS WITH (NOLOCK)
Doktor alanı için bir SQL sorgusu çalıştırıp geri kalan alanların otomatik olarak dolmasını istiyoruz.
Bunu yapmak için, “Doktor İsmi" seçili iken, özellikler bölmesinden (sağ taraftaki bölme), değeri güncellemek istediğimiz özelliği "On Value Changed" olarak seçelim. Bunu yapmak için “Add New Action" butonuna basın (ayarlar simgesinin sağ tarafında) ve Type of Action olarak "On value changed" seçeneğini seçelim. Operation alanını "Update Value" olarak seçelim. Sonrasında SQL Query alanına aşağıdaki sorguyu girmeliyiz;
SELECT
XP_UZMANLIKLAR.Uzmanlik_Alanlari
FROM
dbo.XP_DOKTORID WITH (NOLOCK)
LEFT OUTER JOIN dbo.XP_UZMANLIKLAR WITH (NOLOCK)
on XP_DOKTORID.Uzmanlik_Alani = XP_UZMANLIKLAR.UserTableID
Ve ardından aksiyonun en aşağısındaki “Kaydet” butonu ile aksiyonu kaydedelim.
Yaptığımız formun studio görünümü bu şekilde olacaktır:
Takvim
Bu takvimde doktorların randevularını göstermek istiyoruz.
“Takvim” seçiliyken, özellikler bölmesinde (sağ taraftaki bölme), List Users alanını "Horizontal", Edit Form alanını verileri almak istediğimiz form olan "Tedavi_Talep_Formu" seçiyoruz. Ardından, User alanını Doktor_Ismi, Heading alanını Hastalık, Başlangıç alanını Başlangıç, Bitir alanıı da Bitir olarak ayarlayın. Sonrasında User Query alanına aşağıdaki sorguyu ekleyelim;
SELECT
XPODA_CLIENT_USERS.UserID,
XPODA_CLIENT_USERS.UserFullName,
XPODA_CLIENT_USERS.UserColor
FROM dbo.XPODA_CLIENT_USERS WITH (NOLOCK)
Nihayet uygulamamızı tamamladık. Uygulamayı görmek adına “Run” butonuna tıklayalım.