Cep Telefonu İle Acil Çağrı Otomasyonu - Fırat Üniversitesi
Cep Telefonu İle Acil Çağrı Otomasyonu - Fırat Üniversitesi
Cep Telefonu İle Acil Çağrı Otomasyonu - Fırat Üniversitesi
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Fırat</strong> <strong>Üniversitesi</strong>-Elazığ<br />
CEP TELEFONU İLE ACİL ÇAĞRI OTOMASYONU<br />
Tuncay AYDOĞAN 1 , Abdülkadir ÇAKIR 1 , Mustafa Ali AKCA 1 , Yunus Emre POLAT 1<br />
ÖZET<br />
Bu çalışmada, acil durumlarda hasta veya yaralının cep<br />
telefonundan tek tuş ile yardım çağırması amacıyla bir<br />
uygulama geliştirilmiştir. Çalışmada cep telefonu GSM<br />
(Global System for Mobile Communications) operatörüne<br />
gönderdiği bir SMS (Short Message Service) mesaj ile konum<br />
bilgisini yine bir SMS olarak GSM operatöründen alır ve bu<br />
bilgileri önceden telefona kayıtlı bir acil sağlık veya yardım<br />
hizmeti veren kurum veya kişiye SMS olarak göndererek<br />
konumunu bildirir. <strong>Acil</strong> yardım isteğini alan bilgisayar SMS<br />
içeriğini yorumlar, yardım operatörü de ilgili yardım<br />
birimlerini hasta veya yaralıya yönlendirir.<br />
Anahtar Kelimeler: GSM modem, acil yardım, cep telefonu<br />
java programlama<br />
1. GİRİŞ<br />
Ülkemizde acil sağlık hizmetleri 11.05.2000 tarihli 24046<br />
sayılı Resmi Gazete’de yayınlanan yönetmelikle<br />
düzenlenmiştir [1]. Yönetmelik kapsamında acil sağlık<br />
hizmetlerinde hizmet akışı aşağıdaki gibi üç adımda<br />
özetlenebilir [2];<br />
1. En fazla 4 dakika sürmesi öngörülen “acil sağlık yardım<br />
çağrısının alınması ve çağrının değerlendirilmesi”<br />
2. 1-3 dakika içerisinde çıkış yapılacak biçimde<br />
gerçekleştirilen “yönlendirme”<br />
3. Yerinde müdahale, nakil reddi veya acil servise nakil<br />
işlemlerinden birisi ile tamamlanacak “Talebin yönlendirilen<br />
birim tarafından karşılanması”<br />
Ancak bu hizmet akışının öncesinde ve 1., 2. adımlarında<br />
olay yerine ulaşıma gecikmeye neden olan bazı durumlar söz<br />
konusudur. Öncelikle hasta, yaralı veya yakınlarının 112’yi<br />
araması gerekmektedir, telefona cevap veren görevlinin<br />
sorularına cevap verilmelidir. Şikâyetin tanımlanması, telefon<br />
numarasının verilmesi, ambulansın adrese çabuk ulaşabilmesi<br />
için otobüs güzergâhından durak belirterek veya en yakın okul,<br />
cami, karakol gibi bilinen bir bekleme noktası belirlenerek<br />
adresin tarif edilmesi, mümkünse bir kişinin ambulansı<br />
karşılamak üzere bulundurulması istenebilir, gerekebilir.<br />
Günümüzde acil sağlık hizmetleri bu ilk iki adımı ortalama<br />
5 dakikada başarıyla tamamlamaktadır. Ancak hasta veya<br />
yaralının yalnız olma, telefon kullanamama veya konuşamama,<br />
kendisinin veya yakınlarının olay yerini tarif edememe gibi<br />
bazı özel durum ve koşullarda bu süre uzayabilmektedir. Oysa<br />
kalp krizi, zehirlenme, trafik kazası gibi acil durumlarda,<br />
yaşam kurtarıcı etkinin sağlanabilmesi için, ileri düzey yaşam<br />
desteğinin erken dönemde başlatılması gerekmektedir. Çoğu<br />
kez, olay yerinin telaşı içerisinde ambulans çağrılması ihmal<br />
edilmektedir. Bu nedenle yaralıların ambulans beklenmeden<br />
başka bir araçla taşınmaları sakınca ortaya koymaktadır.<br />
Bu çalışma ile GPS (Global Positioning System) küresel<br />
konumlanma sistemi ve GSM altyapısından faydalanılarak,<br />
1 Elektronik Bilgisayar Eğitimi Bölümü<br />
Süleyman Demirel <strong>Üniversitesi</strong> TEF<br />
tuncayaydogan@sdu.edu.tr<br />
98<br />
mobil cihazlarla kullanılabilecek hasta veya yaralıya en kısa<br />
sürede ulaşılabilmesine olanak sağlayan alternatif bir sistem<br />
otomasyonu prototipi geliştirilerek uygulanmıştır.<br />
1.1. Java ile <strong>Cep</strong> <strong>Telefonu</strong>nda SMS Programlama<br />
Mevcut pazardaki telefonlar %90’ın üzerinde java<br />
uygulamaları sorunsuz olarak destekleyebilmektedir. Netbeans<br />
programı ile cep telefonuna yazılan java uygulamaları Java<br />
ME olarak kategorize edilmektedir [3].<br />
NetBeans, Sun Microsystems tarafından geliştirilen bir<br />
Java geliştirme ortamıdır. Ücretsiz, açık kaynak kodlu bir<br />
IDE(Tümleşik Geliştirme Ortamı), Java, C/C++ ve Ruby<br />
diliyle profesyonel masaüstü, kurumsal, web ve mobil<br />
uygulamaları geliştirmek için gerekli tüm araçları içerir.<br />
Windows, Linux, Mac OS X ve Solaris'te dahil olmak üzere<br />
birçok platformda çalışır. Zengin JavaScript düzenleme<br />
özellikleri, Spring web framework kullanım desteği ve daha<br />
sıkı bir MySQL entegrasyonuna sahiptir.<br />
Netbeans Java ME uygulamalarında kullanılan başlıca<br />
modüller aşağıda tanıtılmıştır;<br />
waitScreen, arka planda bazı komutlar çalışırken ön<br />
planda görsellerin gösterilmesini sağlayan ekrandır. Bu ekran<br />
üzerine yazı ve resim eklenebilir.<br />
splashScreen, waitScreene benzeyen bir yapıya sahiptir<br />
ancak waitScreenden farklı olarak timeout özelliği ile<br />
milisaniye cinsinden belirlenen bir süre sonra otomatik olarak<br />
istenilen sayfaya yönlendirmeyi sağlar.<br />
smsComposer, ile istenilen numaraya, istenilen metni ister<br />
el ile ister otomatik olarak SMS şeklinde gönderilmesini<br />
sağlar. Bu modül başka bir modülün arka planında ek olarak<br />
çalışabildiği gibi kendi başına normal telefonlardaki SMS<br />
gönderme hizmeti gibi çalışa da bilir.<br />
form, bir form üzerinde textbox, combobox, text field,<br />
choice element, list element gibi elemanları oluşturmak için<br />
kullanılır.<br />
smsListener, cep telefonlarının SMSleri aldığı 50000<br />
numaralı portu dinleyerek gelen SMSleri gelen kutusuna<br />
düşmeden önce görmemizi sağlayan modüldür.<br />
1.2. GSM/GPRS Modem<br />
Literatürde GSM/GPRS modemlerin kullanıldığı çok<br />
sayıda araştırma ve uygulamaya rastlanmaktadır [4-7].<br />
Günümüzde bu teknolojinin kullanımı daha da<br />
yaygınlaşmıştır.<br />
Çalışmada aşağıdaki teknik özelliklere sahip DESTECH<br />
model GSM/GPRS Modem kullanılmıştır [8]. Quand-Band<br />
850/900/1800/1900 Mhz, Yüksek performanslı ARM7<br />
işlemci, GPRS multi-slot class 10/8, GPRS mobil istasyon<br />
class B, GSM faz 2/2+'ya uyum, Class 4(2W @850/900 Mhz),<br />
Class 1(1W @1800/1900 Mhz), AT Komutları ile kontrol<br />
edilebilir, 2 Adet RS232 seri iletişim arabirimi, RS232<br />
arabirimi ile programlanabilme, Besleme gerilimi: 5-12V,
Düşük güç tüketimi: 1.5mA (Uyku modu), Çalışma sıcaklığı: -<br />
40 C to +85 C.<br />
2. SİSTEM TASARIMI VE UYGULAMASI<br />
Geliştirilen acil çağrı otomasyonu” sisteminin yapısı GSM<br />
operatör hizmetleri ve cep telefonu yazılımı ile konum<br />
belirleme, konumu merkeze iletme işlevi ve bir PC yazılımı<br />
olarak gerçekleştirilen merkezi yönetim, yönlendirme<br />
işlevlerinin yürütüldüğü bölümlerinden oluşmaktadır.<br />
Sistemde cep telefonu ve PC dışında kullanılan tek donanım<br />
GSM modem ve çevre birimleridir.<br />
Sistemin genel çalışma protokol yapısı aşağıdaki beş<br />
adımda gerçekleşmektedir. İlk üç adım cep telefonu, sonraki<br />
iki adım da PC yazılımı ile yürütülmektedir.<br />
1.adım: <strong>Cep</strong> telefonuna koordinat ve adres bilgilerinin<br />
alınması<br />
2.adım: <strong>Cep</strong> telefonundan otomatik olarak koordinatların<br />
istenmesi<br />
3.adım: <strong>Cep</strong> telefonuna gelen koordinat mesajının acil servise<br />
yönlendirilmesi<br />
4.adım: <strong>Acil</strong> servise gelen mesajın okunması<br />
5.adım: <strong>Acil</strong> servise gelen mesaj içeriğinin yorumlanması<br />
2.1. <strong>Cep</strong> telefonuna koordinat ve adres bilgilerinin<br />
alınması<br />
Ülkemizde TURKCELL, VODAFONE, AVEA GSM<br />
operatörlerin verdiği bir hizmet ile<br />
7777'ye NEREDEYIM yazıp mesaj gönderdiğinde Adres<br />
bilgisi, en yakın noktalar ve telefonları, coğrafi standartlara<br />
uygun olarak konum bilgisi, Polis ve Sağlık acil durum<br />
telefonları mesaj olarak telefonuna gelir. Gönderilen konum<br />
bilgisi şehir içerisinde yaklaşık 300-500 metre, şehir dışında<br />
yaklaşık 1-1,5km hassasiyetle sağlanmaktadır [9].<br />
Örnek Mesaj;<br />
BULUNDUGUNUZ BOLGE: Istanbul, Beyoglu,<br />
Asmalimescit, Guven Sk.<br />
SIZE EN YAKIN NOKTALAR: Kasımpasa karakolu 502m<br />
(02121234567), Beyoglu dispansereri 45m (02121234567),<br />
Sisli Etfal 2km (02121234567)<br />
COGRAFI KONUMUNUZ: 30derece 43dk 22sn Kuzey ,<br />
41derece 23dk 34sn Dogu)<br />
Polis Imdat 155, Alo Jandarma 156, Hızır <strong>Acil</strong> 112, İtfaiye<br />
110<br />
2.2. <strong>Cep</strong> telefonundan otomatik olarak koordinatların<br />
istenmesi<br />
Netbeans Java ME ile yazacağımız cep telefonu<br />
uygulaması ilk aşamada koordinat isteme mesajını operatöre<br />
otomatik olarak göndermesi gerekir. Operatörden gelen<br />
koordinat mesajını da alıp acil servise yönlendirmesi ve<br />
yardım beklemesi gerekmektedir.<br />
Şekil 1’deki Netbeans akış şemasında görüldüğü gibi<br />
kullanıcı programa girdiğinde ilk olarak Mobil Device ekranı<br />
çalışmaktadır. Daha sonra bu ekran form’a<br />
yönlendirilmektedir. Formdaki “Yardım İste” Butonuna<br />
basıldığı zaman WaitScreen2 isimli sayfaya yönlenip<br />
smsComposer desteği ile operatörden koordinatlar<br />
istenecektir. Netbeans uygulamsı ilk başta bir smsComposer<br />
bağlanır ve “Port Number : 50000”, “Message :<br />
NEREDEYIM”, Phone Number : 7777” sabitleriyle ayarlanır.<br />
99<br />
Elektrik-Elektronik ve Bilgisayar Sempozyumu 2011<br />
Bu ayarlara göre kodları aşağıda verilen getSmsComposer<br />
isimli fonksiyon programdaki “Yardım İste” butonuna<br />
bağlanarak SMS gönderme işlemi sağlanmış olur.<br />
Şekil 1: SMS Yönlendirme İşlemlerinin Netbeans Akış<br />
Şeması<br />
Koordinat mesajı istenirken telefon işletim sistemi<br />
güvenliğine bağlı olarak onay isteyebilmektedir. Koordinat<br />
mesajı yaklaşık olarak 20-30 saniye içerisinde telefona<br />
operatör tarafından gönderilir.<br />
public SMSComposer getSmsComposer() {<br />
if (smsComposer == null) {<br />
// write pre-init user code here<br />
smsComposer = new SMSComposer(getDisplay());<br />
smsComposer.setTitle("");<br />
smsComposer.addCommand(SMSComposer.SEND_CO<br />
MMAND);<br />
smsComposer.setCommandListener(this);<br />
smsComposer.setBGColor(-3355444);<br />
smsComposer.setFGColor(-16777216);<br />
smsComposer.setPhoneNumber("7777");<br />
smsComposer.setMessage("NEREDEYIM");<br />
smsComposer.setPhoneNumberLabel("");<br />
smsComposer.setMessageLabel("");<br />
// write post-init user code here<br />
} return smsComposer;<br />
}<br />
2.3. <strong>Cep</strong> telefonuna gelen koordinat mesajının acil servise<br />
yönlendirilmesi<br />
Bu işlem için uygulamaya bir adet smsListener<br />
eklenmiştir. smsListener ayarlara göre 50000 numaralı porta<br />
gelen mesajları dinleyerek gelen mesajı metin formatında<br />
işlenecek biçimde hazırlamaktadır. Daha sonra gelen mesajın<br />
içeriği string fonksiyonları ile değerlendirilerek koordinat<br />
mesajımı yoksa başka bir mesajmı olduğunu ayrıt edilir.<br />
Koordinat mesajı ise bu mesaj bir önceki aşamadaki<br />
smsComposer ile acil servise iletilir.<br />
Şekil 1 de görüldüğü üzere program başladığında “form”<br />
isimli yardım isteme menüsüne gidilir. Daha sonra kullanıcı<br />
telefonundaki “Yardım İste” menüsüne basarak “waitscreen” e<br />
yönlendirilir. Waitscreen de koordinat isteme mesajı<br />
gönderilir. Waitscreende işlem başarılı bir şekilde<br />
gerçekleştirilirse kullanıcı sırasıyla koordinatların beklendiği<br />
spashscreen ve koordinatların otomatik olarak yönlendirilecek<br />
splashscreen2 yönlendirme menüsüne aktarılır.
<strong>Fırat</strong> <strong>Üniversitesi</strong>-Elazığ<br />
2.4. <strong>Acil</strong> servise gelen mesajın okunması<br />
<strong>Cep</strong> telefonundan acil servise gelen mesaj bir GSM<br />
Modem tarafından alınır ve seri port yardımı ile PC yazılımına<br />
alınarak yorumlanır. GSM modem mesajları simkart<br />
hafızasında sakladığı için 150 karakterden fazla olan mesajları<br />
parça parça mesajlar halinde saklanmaktadır. Bu çalışmada<br />
üretilen mesajımda yer bilgisi uzunluğuna bağlı olarak 3-4<br />
parça mesaj haline gelebilir. Bunun yanında bazen hattaki<br />
tıkanıklık dolayısı ile son parça modeme geç düşebilmektedir.<br />
Bunun için seri porttan okuduğumuz mesaj içeriğinin tamamen<br />
istediğimiz formata uygun hale gelince kadar beklenerek<br />
yorumlanması gerekmektedir.<br />
PC uygulamasının seri portu kullanılabilmesi için C#<br />
System.IO.Ports sınıfını eklemek gerekmektedir. Port açmak<br />
ve SMS’leri okumak için kodları aşağıda görülen metodlar<br />
oluşturulmuştur.<br />
public SerialPort OpenPort(string p_strPortName, int<br />
p_uBaudRate, int p_uDataBits, int p_uReadTimeout, int<br />
p_uWriteTimeout)<br />
{receiveNow = new AutoResetEvent(false);<br />
SerialPort port = new SerialPort();<br />
port.PortName = p_strPortName; //COM1<br />
port.BaudRate = p_uBaudRate; //9600<br />
port.DataBits = p_uDataBits; //8<br />
port.StopBits = StopBits.One; //1<br />
port.Parity = Parity.None; //None<br />
port.ReadTimeout = p_uReadTimeout; //300<br />
port.WriteTimeout = p_uWriteTimeout; //300<br />
port.Encoding = Encoding.GetEncoding("iso-8859-1");<br />
port.DataReceived += new<br />
SerialDataReceivedEventHandler(port_DataReceived);<br />
port.Open();<br />
port.DtrEnable = true;<br />
port.RtsEnable = true;<br />
} catch (Exception ex)<br />
{ throw ex;<br />
} return port;<br />
}<br />
public ShortMessageCollection ReadSMS(SerialPort port)<br />
{ShortMessageCollection messages = null;<br />
try<br />
{ExecCommand(port,"AT", 300, "Telefon bağlanmadı");<br />
ExecCommand(port,"AT+CMGF=1", 300, "Mesaj<br />
Formatı Ayarlanmadı.");<br />
ExecCommand(port,"AT+CSCS=\"PCCP437\"", 300,<br />
"Karakter Seti Ayarlanamadı");<br />
ExecCommand(port,"AT+CPMS=\"ME\"", 300, "Mesaj<br />
Hafızası Seçilemedi.");<br />
// string input =<br />
ExecCommand(port,"AT+CMGL=\"ALL\"", 5000,<br />
"Hafıza Okunamadı");<br />
string input = ExecCommand(port, "AT+CMGL=\"?\"",<br />
5000, "Mesajlar Okunamadı");<br />
messages = ParseMessages(input);<br />
}catch (Exception ex)<br />
{throw new Exception(ex.Message);<br />
}if (messages != null)<br />
return messages;<br />
else return null;<br />
}<br />
100<br />
2.5. <strong>Acil</strong> servise gelen mesaj içeriğinin yorumlanması<br />
Gelen mesaj içerisindeki koordinat, il, ilçe, mahalle, en<br />
yakın birimleri string işlemlerine tabi tutularak<br />
ayrıştırılmaktadır. Daha sonra bu kayıt veri tabanına aktarılıp,<br />
google map destekli harita üzerinde koordinatın işaret ettiği<br />
yerler otomatik olarak gösterilmektedir.<br />
string konum = metin.Substring(metin.IndexOf("bolge:")<br />
+ 6, metin.IndexOf("Cografi") - 21);<br />
string noktalar =<br />
metin.Substring(metin.IndexOf("noktalar:") + 9,<br />
metin.IndexOf("<strong>Acil</strong>") - metin.IndexOf("noktalar:") - 11);<br />
string kuzey =<br />
metin.Substring(metin.IndexOf("konumunuz:") + 10,<br />
metin.IndexOf("kuzey") - metin.IndexOf("konumunuz") -<br />
11);<br />
string dogu = metin.Substring(metin.IndexOf("kuzey,") +<br />
7, metin.IndexOf("dogu") - metin.IndexOf("kuzey") - 8);<br />
OleDbCommand cmd = new OleDbCommand("insert into<br />
TEMP<br />
(NUMARA,MESAJ,KUZEY,DOGU,KONUM,NOKTAL<br />
AR) values('" + textBox3.Text + " ', '" + yeni + "', '" +<br />
kuzey + "', '" + dogu + "', '" + konum + "', '" + noktalar + "'<br />
)", con);<br />
cmd.ExecuteNonQuery();<br />
label11.Text = System.DateTime.Now.ToString();<br />
con.Close();<br />
kayitsay();<br />
kayitlar();<br />
if (kayit == 1)<br />
{<br />
kayitlar();<br />
getir(1);<br />
label21.Text = "1";<br />
}<br />
listBox1.Items.Clear();<br />
}<br />
icerik = "";<br />
}<br />
}<br />
}<br />
2.6. PC yazılımı arayüzü<br />
Şekil 2: Gelen <strong>Çağrı</strong> Bulunan Adres PC Arayüzü<br />
Şekil 2’de görülen Otomasyon sistemi PC arayüzü bir<br />
form üzerinde yukarıda hasta işlemleri, hastane işlemleri, polis
merkezi işlemleri ve itfaiye işlemleri menülerinin bulunduğu<br />
bir menü çubuğu, aşağıda bağlantı butonları, acil çağrı<br />
bilgileri ve bağlantı butonları sağ tarafta acil çağrı mesaj<br />
içeriği ve sol ortada çağrının geldiği koordinatların gösterildiği<br />
bir harita bulunmaktadır.<br />
Şekil 3: Hastane İşlemleri Arayüzü<br />
Şekil 4:Hasta İşlemleri Arayüzü<br />
<strong>Çağrı</strong>lar gelme sırasına göre veritabanına kaydedilmekte,<br />
operatör bu sıraya göre çağrılarla ilgilenmekte, isterse önceki<br />
çağrıları tekrar inceleyebilmektedir. Operatör ekranındaki<br />
mesaj bilgilerine göre hasta, hastane, polis merkezi ve itfaiye<br />
işlemleri menülerinden yönlendirmeler yapabilmektedir.<br />
Yönlendirme sonucunu hastaya mesaj göndererek veya<br />
tamamlandı biçiminde sonuçlandırarak kayıt altına<br />
alabilmektedir (Şekil 3, Şekil 4).<br />
101<br />
Elektrik-Elektronik ve Bilgisayar Sempozyumu 2011<br />
3. SONUÇLAR<br />
Şekil 5: <strong>Cep</strong> <strong>Telefonu</strong> <strong>İle</strong> <strong>Acil</strong> <strong>Çağrı</strong> <strong>Otomasyonu</strong><br />
Bu çalışmada cep telefonunun tek tuşu ile yardım çağrısı<br />
yapılabilecek bir sistem tasarımı ve uygulaması yapılmıştır<br />
(Şekil 5). Sistem cep telefonu, GSM modem ve bir PC<br />
uygulama yazılımından meydana gelmiştir. <strong>Cep</strong> telefonu<br />
yazılımı Netbeans ile gerçekleştirilmiş ve başarıyla<br />
denenmiştir. Oluşturulan altyapı çeşitli güvenlik ve yardım<br />
çağrısı senaryolarına göre uyarlanabilecek biçimde<br />
geliştirilmiştir.<br />
4. KAYNAKLAR<br />
[1] http://www.saglik.gov.tr/TR/dosya/1-15932/h/acil.doc<br />
[2] http://www.etlikihtisaseah.gov.tr/phpsite/<br />
[3] www.netbeans.org<br />
[4] Derici S., “GPRS <strong>İle</strong> Sistem Denetimi”, 5. Uluslararası<br />
<strong>İle</strong>ri Teknolojiler Sempozyumu (IATS’09), Karabük, Türkiye,<br />
2009.<br />
[5] Yüksel M. E., Zaim A. H., “GSM/GPRS Aygıtları<br />
Üzerinden Çok Dilli SMS Gönderme”, Akademik Bilişim,<br />
Harran <strong>Üniversitesi</strong>, Şanlıurfa, 2009.<br />
[6] İnal K., Akcayol M. A., “GSM Tabanlı Akıllı Ev<br />
Uygulaması”, Bilişim Teknolojileri Dergisi, 2(2),39-45, 2009.<br />
[7] Yüce K. Y., Bilge U. ve Saka O.,“MATDS: Mobil Astım<br />
Takip ve Değerlendirme Sistemi”, 2.Ulusal Tıp Kongresi, 26-<br />
32, 2005.<br />
[8] http://www.masterdecos.com/urunler_modem.asp<br />
[9]<br />
http://212.252.168.225/bireysel/servisler/hayatinizikolaylastiri<br />
n/turkcellneredeyim