01.05.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!