asmmiz.com web servisi xml yapısı ile çalışmaktadır. Her bir hekimin web servis adresi farklıdır. Randevu web servisi toplamda 3 method dan oluşmaktadır. Bunlar; 1- randevuplaninial 2- randevuplankaydet 3- randevugetir Servis Adres Yapısı: Web servis adresi http://www.asmmiz.com/service/[hekime ait kod] yapısındadır. Örnek: http://www.asmmiz.com/service/9ec2226cab834506b08ae073e89ba782 Methodlar: 1) randevuplaninial : Hekimin asmmiz.com da yapmış olduğu randevu mesai planını verir. XML ile istek yapılır ve randevu planı XML yapısında geri döner. İstek XML yapısı: <xmltur>randevuplaninial</xmltur> <kullaniciadi>username</kullaniciadi> <sifre>password</sifre> <xmltur> tagı yapılacak olan işi belirler. <kullaniciadi> tagı Hekim asmmiz.com daki panelinde belirlemiş olduğu kullanıcı adıdır. <sifre> tagı Hekim asmmiz.com daki panelinde belirlemiş olduğu şifredir. <tarih> randevu plan detayının istenildiği tarihdir. Mutlaka bir tarih belirtilmelidir. Tarih yapısı örnekte olduğu gibi olmalıdır. (dd.mm.yyyy) Sonuç XML yapısı: <kod>1</ kod > < aciklama >İşlem Başarılı</aciklama> <mesailer> <bassaat>09:00:00</ bassaat> <sonsaat>09:45:00</ sonsaat> <hastasayi>5</ hastasayi > </mesailer> http://www.asmmiz.com - 1 -
tagı yapılan işlem ile ilgili durumu belirtir. Mesaj kodları ve açıklamaları dökümanın sonunda verilmiştir. <tarih> tagı randevu planına ait tarihi belirtir. Buradaki tarih istek yapılan tarihdir. <mesailer> istek yapılan tarihe ait planın detayını içerir. < item > plana ait her bir detayı belirler. Tarihe ait saat dilimi kadar < item >< /item > tagları oluşur. < bassaat > saat diliminin başlangıç saatidir. < sonsaat > saat diliminin bitiş saatidir. < hastasayi> saat dilime ait hasta sayısını belirtir. 2. randevuplankaydet : Hekimin kullanmış olduğu Aile Hekimliği programınında yapmış olduğu randevu planını XML formatında asmmiz.com sayfasına kaydetmek için kullanılır. İstek XML yapısı: <xmltur> randevuplankaydet</xmltur> <kullaniciadi>username</kullaniciadi> <sifre>password</sifre> <mesailist> <bassaat>12:00:00</bassaat > <sonsaat>13:00:00</sonsaat> <hastasayi>5</hastasayi> </mesailist> <mesailist> <bassaat>14:00:00</bassaat > <sonsaat>15:00:00</sonsaat> <hastasayi>25</hastasayi> </mesailist> <xmltur> tagı yapılacak olan işi belirler. <kullaniciadi> tagı Hekim asmmiz.com daki panelinde belirlemiş olduğu kullanıcı adıdır. <sifre> tagı Hekim asmmiz.com daki panelinde belirlemiş olduğu şifredir. <tarih> randevu plan kaydedileceği tarihtir. Mutlaka bir tarih belirtilmelidir. Tarih yapısı örnekte olduğu gibi olmalıdır. (dd.mm.yyyy) <mesailist> plana ait her bir detayı belirler. Tarihe ait saat dilimi kadar < mesailist >< / mesailist > tagları oluşur. <bassaat> Randevu saat dilimin başlangıç saat dilimini belirtir. Mutlaka bir saat dilimi belirtilmelidir. Saat yapısı örnekte olduğu gibi olmalıdır. (hh:mm:00) < sonsaat > Randevu saat dilimin bitiş saat dilimini belirtir. Mutlaka bir saat dilimi belirtilmelidir. Saat yapısı örnekte olduğu gibi olmalıdır. (hh:mm:00) http://www.asmmiz.com - 2 -
<hastasayi> Başlangıç ve Bitiş saati arasında bakılacak hasta sayısını belirtir. Mutlaka sayı girilmelidir. Sonuç XML yapısı: <kod>1</ kod > < aciklama >İşlem Başarılı</aciklama> tagı yapılan işlem ile ilgili durumu belirtir. Mesaj kodları ve açıklamaları dokümanın sonunda verilmiştir. 3) randevugetir: Hekimin asmmiz.com sayfasında hastaların alınmış olduğu hekim tarafından onaylanmış randevuları verir. XML ile istek yapılır ve randevu planı XML yapısında geri döner. İstek XML yapısı: <xmltur> randevugetir </xmltur> <kullaniciadi>username</kullaniciadi> <sifre>password</sifre> <hasta_tc>0</hasta_tc> <xmltur> tagı yapılacak olan işi belirler. <kullaniciadi> tagı Hekim asmmiz.com daki panelinde belirlemiş olduğu kullanıcı adıdır. <sifre> tagı Hekim asmmiz.com daki panelinde belirlemiş olduğu şifredir. <tarih> Hastaların almış hekim tarafından onaylamış randevuların getirileceği tarih belirtir.. Mutlaka bir tarih belirtilmelidir. Tarih yapısı örnekte olduğu gibi olmalıdır. (dd.mm.yyyy) <hasta_tc> T.C Kimlik hanesi 0(Sıfır) gönderildiğinde o güne ait tüm onaylanmış hastaları döndürür. Eğer ki hastanın T.C.sini girdiğinizde o güne ait o hastanın onaylanmış randevusunu döndürür. Sonuç XML yapısı: <kod>1</ kod > < aciklama >İşlem Başarılı</aciklama> <randevular> http://www.asmmiz.com - 3 -
< randevuno>1</randevuno> < tcno>12345678910</ tcno> <ad>deneme</ ad> <soyad>deneme</ soyad> < cinsiyet>1</ cinsiyet > < dogumtarih > 1901-05-03 </ dogumtarih > < zaman > 16:04:00 </ zaman > </ randevular> tagı yapılan işlem ile ilgili durumu belirtir. Mesaj kodları ve açıklamaları dokümanın sonunda verilmiştir. <tarih> tagı alınmış randevulu hastaların tarihini belirtir. Buradaki tarih istek yapılan tarihtir. <mesailer> istek yapılan tarihe ait planın detayını içerir. < item > plana ait her bir detayı belirler. Tarihe ait hasta sayısı kadar < item >< /item > tagları oluşur. < randevuno> Randevulu hastanın randevu nosunu belirtir. < tcno > Randevulu hastanın T.C. kimlik numarasıdır. < ad > Randevulu hastanın ismini döndürür. < soyad > Randevulu hastanın soyadını döndürür. < cinsiyet> > Randevulu hastanın cinsiyetini döndürür.(cinsiyet türü: 1:Erkek 2 Kadın) < dogumtarih > Randevulu hastanın doğum tarihini döndürür. Tarih yapısı örnekte olduğu gibi olmalıdır. (YYYY-mm-dd) < zaman > Randevulu hastanın randevu saatini döndürür. Saat yapısı örnekte olduğu gibi olmalıdır. (hh:mm:00) Örnek Uygulama: Bu Örnek uygulama VB.Net kullanılarak yapılmıştır. Dim url = " http://www.asmmiz.com/service/[hekime ait kod] " Dim req As WebRequest = WebRequest.Create(url) Dim xml As String req.method = "POST" req.contenttype = "application/xml" req.headers.add("custom: API_Method") Dim newstream As Stream = req.getrequeststream() xml = "<?xml version=""1.0"" encoding=""utf-8""?>" & vbcrlf & _ "" & vbcrlf & _ "<xmltur>randevuplaninial</xmltur>" & vbcrlf & _ "<kullaniciadi>deneme</kullaniciadi>" & vbcrlf & _ "<sifre>1111</sifre>" & vbcrlf & _ "<tarih>02.01.2012</tarih>" & vbcrlf & _ "" Try newstream.write((new System.Text.UTF8Encoding).GetBytes(xml), 0, xml.length) Dim mywebresp As WebResponse = req.getresponse() http://www.asmmiz.com - 4 -
Dim sr As StreamReader = New StreamReader(myWebResp.GetResponseStream) Dim strhtml As String = sr.readtoend Dim reader As XmlReader = XmlReader.Create(New StringReader(strHTML)) Dim output As StringBuilder = New StringBuilder() Dim ws As XmlWriterSettings = New XmlWriterSettings() ws.indent = True Using writer As XmlWriter = XmlWriter.Create(output, ws) While reader.read() Select Case reader.nodetype Case XmlNodeType.Element writer.writestartelement(reader.name) Case XmlNodeType.Text writer.writestring(reader.value) Case XmlNodeType.XmlDeclaration Case XmlNodeType.ProcessingInstruction writer.writeprocessinginstruction(reader.name, reader.value) Case XmlNodeType.Comment writer.writecomment(reader.value) Case XmlNodeType.EndElement writer.writefullendelement() End Select End While End Using Dim sw As StreamWriter sw = File.CreateText("d:\1.txt") sw.writeline(output.tostring()) sw.close() Uygulamanın Çıktısı: Uygulamanın 1.txt teki çıktısı aşağıdaki gibidir.?xml version="1.0" encoding="utf-16"?> <kod>1</kod> <aciklama>işlem başarılı.</aciklama> <tarih>2012-01-02</tarih> <mesailer> <bassaat>09:00:00</bassaat> <sonsaat>10:00:00</sonsaat> <hastasayi>15</hastasayi> <bassaat>10:00:00</bassaat> <sonsaat>11:00:00</sonsaat> <hastasayi>20</hastasayi> http://www.asmmiz.com - 5 -
<bassaat>11:00:00</bassaat> <sonsaat>12:00:00</sonsaat> <hastasayi>25</hastasayi> </mesailer> Mesaj Kodları: 1 : İşlem başarılı. -1 : Kullanıcı Web Servis Adresi mevcut değil! -3 : Kullanıcı adı ve şifre boş kalamaz. -4 : Kullanıcı adı ve şifre bilgileri hatalı! -5 : Bağlantı Hatası! -6 : XML belgesi hatalı! -7 : XML Türü hatalı veya mevcut değil! -8 : Parametre verileri alınamadı XML yapısını kontrol ediniz. -9 : Tarih formatı hatalı. -10: T.C. Kimlik No hatalı http://www.asmmiz.com - 6 -