Home

Development of a mobile pharmaceutical information environment

image

Contents

1. of the price list and small map with pharmacy location shown as a pin Main scenario User taps on the pharmacy name in pharmacy list view or disclosure button on map annotation 2 User is redirected to new view with pharmacy detail info 3 Following fields are shown to user chain logo pharmacy name address open hours phone last refresh date of the price list small map image with pharmacy location shown as a pin Alternative 1 1 If there is no Internet connection user will be notified scenario about the situation and no detail view of pharmacy is shown 1 2 User will stay in pharmacy list view 22 2 1 2 6 Searching for the medicine by name Usasmmbaje o Trigger User taps on the Items tab on tab bar and the items search view is activated with search box Result expected User can enter letters from the virtual keyboard and item names matching the search criteria are shown as a list in table to user Main scenario 1 User taps on the Items tab on tab bar 2 Item search view is activated with search field shown 3 User can activate the search box by tapping on it virtual keyboard slides out 4 User enters letters using virtual keyboard to search item he is interested in 5 List of item names matching the search criteria are retrieved from the server 6 List of items retrieved from the server are shown to user as table Alternative 4 1 If there is no Internet connection user will be notifi
2. ieansgrange 3 er Deansgrange Kill Of The Uppe AA Rochestowr Grange Johnst Cornelscourt oogle Cornelscourt Cabinteely Figure 1 20 When user taps on the purple Show on Map button in the pharmacy detail view the map view will be opened with the pharmacy lo cation shown with purple pin on it ai EMT 16 48 82 ta Walgreent u 9 Store Locator Pharmacy Photo a 5 Shop Flu Shot Locator Refill by Scan a B g Weekly Ads Shopping List Settings Figure 1 21 Opening navigation screen of the application Nice icons are used The overall look is clean and polished Only problem seems to be the non scalability of this screen For example if there is a need to add one or several new sub views then all the icons have to be redrawn to make them fit nicely also it is hard to add just one new item here as the current 3 x 3 icon view will not be available any more ai EMT 16 48 82 ta P Store Locator Search by City and State or ZIP code Smithtown Find a Store ojw E R T v u Jo P A s p r e n ak fe z x c visiN E 123 8 spe Done Figure 1 23 In Store Locator it is pos sible to search for stores by city and state or by zip code No surprises here view is clean and understandable maybe it would have been nice to see some way to locate a store using GPS coordinates 15 82 uin Rx Please enter the Rx number you want to refi
3. 2 2 User will stay on the map view with the same position as it was before action 21 2 1 2 4 Browsing the list of pharmacies Use case number Priority Use case name rowsing the list of pharmacies User can browse the list of pharmacies in table view User Application is running and user is in Pharmacies tab User taps on the List button on the Pharmacies tab Result expected List of pharmacies is shown grouped by regions Main scenario 1 User taps on List button 2 List view is activated 3 List of pharmacies is shown to user as a table 4 User can scroll up and down in the table Alternative 3 1 If there is no Internet connection no pharmacies are scenario shown in the table and user is notified about the missing Internet connection 3 2 User will be on the empty Pharmacies list view 2 1 2 5 Viewing detailed information of the pharmacy Viewing detailed information of the pharmacy Description User can see detailed information about the chosen pharmacy fields like open hours address phone and amount of medicines in the price list together with last refresh date of the database are shown lrigger User taps on any of the pharmacy names in list view or disclosure icon on annotation Result expected User will be redirected to detail information view of the chosen pharmacy with following fields displayed pharmacy chain logo pharmacy name open hours address phone last refresh date
4. If GPS coordinates are used then it does not make sense that the user in Estonia is only 0 34 miles away from the store in New York sL EMT 7 16 49 83 i Walgreent Cart 0 Shop Search g Health and Well Being gt Baby and Children gt Beauty gt Personal Care gt Electronics gt For the Home gt Pet Figure 1 28 Categories of the items available in the stores Categories are not alphabetically sorted making it a little confusing to search for a specific category Non standard search box is used aL EMT 16 50 83 aia Y Cart 0 Walzgreent Shoes and Socks 4 Items Sort by Top Sellers Online In Store No Nonsense Essential Basics Girls Black Opaque Tights Medium 8 10 Size Count 1 0 ea 2 3 00 or 1 1 79 Availability Y Online Free Shipping Eligible vin Store Find in Store ADD TO CART ge 5 No Nonsense Essential Figure 1 29 Result of the specific cat egory It can be seen that no standard Cocoa Touch components are used any more but special web page result are displayed Screen looks quite random and detecting important information is not very easy ai EMT 16 51 83 iia Click ee to add item to list Figure 1 31 Again nice feature that al lows user to create the shopping list be fore heading to pharmacy 17 4L EMT 16 50 83 m A Refill Rx by Scan Center the s G on your prescription bottle between
5. Tom Harrington Peter Honeder Ray Kiddy Noel Llopis Joe Pezzillo Florian Pflug Jonathan Saggau Ben Britten Smith iPhone Advanced Projects Apress 2009 l6 David Barnard Joachim Bondo Dan Burcaw David Kaneda Craig Kem per Tim Novikoff Chris Parrish and Brad Ellis Keith Peters J rgen Siebert Eddie Wilson iPhone User Interface Design Projects Apress 2009 17 Dave Mark Jeff LaMarche More iPhone 3 Development Tackling iPhone SDK 3 Apress 2009 18 David Chisnall Objective C Phrasebook Essential Code and Commands Addison Wesley 2011 9 James A Brannan Blake Ward iOS SDK Programming A Beginner s Guide McGraw Hill 2011 10 Vandad Nahavandipoor iOS 4 Programming Cookbook O Reilly 2011 111 Alasdair Allan Learning iPhone Programming O Reilly 2010 12 Maher Ali Advanced iOS 4 Programming Developing Mobile Applica tions for Apple iPhone iPad and iPod touch Wiley 2010 48 Appendix A Resources The source code of the mobile application is available on the CD attached to this thesis AQ
6. can manage your applications After you add new app you need to fill out a form with all the important details about you application like its name description logo image keywords and screenshots of your application Next you can upload your application binary with a special application called Application Loader After upload ing your application binary into iTunes Connect server it will go into the review queue and will be reviewed by Apple employees In about a week you will get an e mail which says if your application was approved or rejected If your app got rejected you need to fix the issues pointed out by the review team and resubmit for the review again If your application got accepted then your application will be available in the App Store for download 38 3 3 Future work The mobile application was developed with minimal needed set of functionality During the research and development some interesting ideas came up that could be potential candidates for future developments There is a sister site of raviminfo ee in Latvia called zales24 lv it should be quite interesting to include the data from that site into the mobile application as well Right now the application was created in only one language it is important to add more translations so English Estonian Finnish Swedish Latvian and Russian would also be available It would be great to add support for mobile ID so that users could check out the digital prescript
7. directed to item detail view where following fields are shown item name pharmacy name price limit price discount price 50 discount price 75 discount price 90 discount price 100 and three buttons Info sheet Image and Diagnose Main scenario User taps on the pharmacy name in pharmacy item list view 2 User will be redirected to item detail view 3 Item name pharmacy name and price fields of item are shown to user together with three buttons Alternative 2 1 If there is no Internet connection user will be notified scenario about the situation 2 2 User will stay on the pharmacy list view 24 2 1 2 9 Viewing the package information sheet for the chosen medicine Use case number 9 Viewing the package information sheet for the chosen medicine Description User can see the detailed information about the chosen item as PDF file This information is taken from the government database and is the same as the information pamphlet that comes with medicine package Actor User Pre conditions User is in item detail view Result expected User will be directed into separate view where the downloaded 77 ataman sheet ia shown inthe frm of PDE Main scenario 1 User taps on the Info button in item detail view 2 Info sheet is downloaded from the server 3 Info pamphlet is shown to user as PDF file in separate view Alternative 2 1 If there is no Internet connection user will get notified scenario about t
8. is a need for mobile application that could be used to see pharmacy locations and available item information in these pharmacies Some of the similar 105 applications were reviewed to get a better understanding on what is already done and what pitfalls to avoid during developments In the end I compiled a short conclusion of good and bad things found during the analysis of applications In au EMT 16 44 81 gt Bondi Junction Sh 1037 1038 Westfield Bondi Junction gt Figure 1 9 All the pharmacies are shown in the list sorted alphabetically No search box is given to filter out pharmacies from the list There seems to be a layout issue with too long ad dress which overlaps with the disclo sure arrow icon 81 id at EMT 7 16 45 BACK Ie Ne Beat Pur d Pompe Dea n uu pets 1 Pr parson 6 thes i sem weaves m SUKIN gt ko ee sanman top Sete cete Rees Ree kee is Figure 1 11 Online shopping view redirects to company s web page This makes the online shopping functional ity virtually unusable because all the problems with small screen and web page designed for regular PC screens are present 12 ai EMT amp 16 44 81 id Canterbury lt SAT 7 AV Armadale e q N M da Camberwell ON Glen Huntly Camegie f Murrumt E de Caulfield Huc ae T wast ne Es lt esdal 3 UMEN oe o t MrKi UT aag Figure 1 10 Specific pharmacy shown on the Google map I
9. lutions can be 320x480 or 640x960 it means that there is a need for images for both resolutions If using the same images that were designed for lower resolution 105 de vices on high resolution iOS device these images will look pixelated and ugly Apple makes it quite easy for developers to be able to overcome this problem There is the naming convention available where you can name you original image as image png and high resolution version as image 2x png Now in your application you are just going to use the original image name and 105 itself chooses the correct image for you on the high resolution devices For the application icon it is important to create the 512x512 px version first as it will be the size that is needed for App Store From this large version you can create all the smaller versions for your application e 57x57 px regular iPhone icon named as Icon png e 114x114 px icon for the high resolution iPhone named as Icon 2x png e 72x72 px icon used on iPad named as Icon 72 png e 29x29 px small icon used on search screen of the iPhone named as Icon Small png 37 e 58x58 px small icon used on search screen of the iPhone with high resolution display named as Icon Small 2x png e 50x50 px small icon used on search screen of the iPad named as Icon Small 50 png 3 2 6 Submitting to the App Store As the App Store review process is quite strict it means that all of the applications are te
10. of the most used ways to show information to user It has several built in methods that developer can override to be able to specify how many sections your table has how many rows are in every section how the information in the cells are formatted and how the tap on the cell is handled Both the map view and table view of the pharmacies are using the PharmacyDe tailViewController which is a subclass of UlViewController and is a simple class for showing detailed information for the given pharmacy 3 2 4 2 Items For item search there is a class ItemSearch TableViewController which is a UITable ViewController subclass ItemSearch TableViewController contains a UlSearchBar in stance variable which is the IBOutlet for according UI element If user enters letters into search box this triggers a searchBar textDidChange method call and new query string is assembled and passed to an instance of UrlDataDownloader class All the interaction with the server is done asynchronously in separate thread which means that the UI will stay responsive while the data is retrieved from the server After the response is retrieved from the server the contents of the table is refreshed and user will see a new information If user taps on any of the items in table this will fire a tableView didSelec tRowAtlndexPath method which initiates a ItemPharmacyTableViewController in stance and pushes it into navigation controller stack ItemPharmacy TableViewCon troll
11. 1 75 diagnose50 diagnose 75 diagnose100 A50 A53 x 111 0 59 NEIE Info S T EM anfol00 rv dermatoveneroloogil atc J014402 actsubst Doxycyclinum diagExpl t name fry text ravimi v ljakirjutamise igus y infoUrl http koodikeskus ravimiamet ee Data PIL PIL_1144976 pdf imageUrl http www magnum ee pictfiles 7145 jpg J J The root node is item details which contains an array with just one element in it That element contains following attributes itemId unique id of the item itemName item name producerNam item producer name pharmacyName name of the pharmacy where this item is sold price regular price of the item priceLimit limit price of the item priceDisc50 price of the item with 50 dis count priceDisc75 price of the item with 75 discount priceDisc90 price of the item with 90 discount priceDisc100 price of the item with 100 discount diagnose50 diagnoses for 50 discount diagnose75 diagnoses for 75 and 90 discount diagnose100 diagnoses for 100 discount info50 information for 50 diagnoses info75 information for 75 and 90 diagnoses info100 information for 100 diagnoses atc ATC of the item actSubst active substance of the item diagExpl array of diagnose explanations infoUrl url wher
12. 2 Search result page where pharmacies are shown Full name ad dress phone and links to map and full details are shown The design of this view looks quite random and hard to erasp sign 1 2 1 CVS Pharmacy This is the official iPhone application from the second largest pharmacy chain in USA after Walgreens The application has quite extensive functionality but the usability is not very user friendly The application has the possibility to search pharmacies by address or by GPS coordinates Opening hours contact phone and full address are shown in detailed view of the pharmacy A drug database is available with detailed information about every drug There is also a nice feature for registered users to be able to refill the prescription using the application Usability does not look very good because standard Cocoa Touch provided elements are not used and the application is just showing web pages inside the application which probably made the application development a lot easier for multiple platforms However the cost of this shortcut is less user friendly application More detailed information is located under the screenshots in following figures 1 1 1 2 1 3 1 4 1 5 1 6 1 2 2 Pulse Pharmacy Like the CVS Pharmacy the Pulse pharmacy application is also created by the phar macy chain to promote their pharmacies Application contains store locator online shopping featured products and loyalty registration parts D
13. 82 uid E Back Store Locator Walgreens 10 W MAIN ST 9 Smithtown NY 11787 Walgreens now offers the H1N1 vaccine at this location 0 34 miles R Call Store 631 724 0381 Get Directions Map Location Figure 1 27 about a specific pharmacy Very well Store Hours M F 7 00AM 12 00AM Sat 7 00AM 12 00AM Sun 7 00AM 12 00AM Services Open 24 hours Pharmacy Hours M F 8 00AM 10 00PM Sat 8 00AM 10 00PM Sun 8 00AM 10 00PM Store Highlights Open 24 hours Inkjet refills Digital photo A Ink cartridge refills pickup 7 available for many brands Printer cartridge of printers rafille information designed view All the needed info is fit on one small screen of an iPhone Address together with explicit phone number and call button are shown first Open hours and additional services are shown below 16 sL EMT gt 16 49 82 ui Store Locator Walgreens 10 W MAIN ST Smithtown NY 11787 gt Ne 631 724 0381 Q o34miles Walgreens 712 Smithtown Byp Smithtown NY 11787 gt Me 631 979 3404 9 174mies Walgreens 1860 Veterans Memorial Hwy Islandia NY 11749 gt Me 631 851 8940 O 3 99 miles Walgreens 2215 Middle Country Rd entoro HA o Figure 1 26 Pharmacies shown as a list Standard Apple provided table is used making the view look clean and polished It is a nice touch that special icons are designed for phone and dis tance The distance shown is a bit con fusing
14. PTEEK gt 4 77 UUS APTEEGI HARUAPTEE m 4 79 Price 4 77 TAMME APTEEK T 4 77 Limit Price 4 78 APTEEK 902 m Disc Price 50 3 98 gt ii APTEEGI HARUAP 1km Disc Price 75 2 15 AV KAUBAHALLI APTEEK Ak Disc Price 90 1 62 4 79 KESKLINNA APTEEK T TRT Disc Price 100 1 27 Figure 4 7 Nearest pharmacies where Figure 4 8 Item price view given item is currently available Al Back Prices Limit Price 4 78 Disc Price 50 3 98 Disc Price 75 2 15 Disc Price 90 1 62 Disc Price 100 1 27 pw Info Sheet gt Diagnoses gt Image gt Items Figure 4 9 Buttons to info sheet diag noses and image views ATC e C01 6 S DAMESSE TOIMIVAD RAVIMID H PERTOONIA RAVIMID C03 6 DIUREETIKUMID C04 PERIFEERSED VASODILATAATORID C05 6 VASOPROTEKTORID C07 BEETA BLOKAATORID C08 6 KALTSIUMIKANALI BLOKAATORID C09 RENIIN ANGIOTENSIIN S STEEMI TOI SC Figure 4 11 ATC list view Figure 4 13 Uninstalling the applica tion Prices Diagnose Info Item name 8 ATC IBUMETIN TBL 600MG N50 NYCOMED MO1AE01 Ibuprofenum Diagnoses 75 amp 90 APOT M05 M08 M30 M33 M35 M15 M19 M45 M46 rv le 63 aastastele Diagnoses 100 C00 D48 Figure 4 10 Diagnose info view Raviminfo Figure 4 12 Closing the applicat
15. The need for accessing information everywhere With constant evolution of mobile handheld devices like smart phones more and more people are using them for tasks that were previously available on personal computers only like listening music watching videos playing games and accessing the Internet Fast wireless networks are getting very common and more important cheap for ev erybody Free WiFi is very widespread in different cities over Estonia mainly in the centers of the cities but also in a lot of stores restaurants and office buildings Dif ferent cheap data plans are available from all of the 3 mobile providers EMT Elisa Tele2 It is possible to get an unlimited 3G data plan for 5 month from all of these providers With all this it means that people are spending more time away from their computers doing other useful things but are still very interested in accessing information from wherever they happen to be using their smart phones Using regular web pages with the small screen of the smart phone is not comfortable Therefore it is common that special applications are provided by the web page owners to give their users a better experience in retrieving the information they offer The main motivation for creating a special mobile application for accessing the info available on raviminfo ee web site was to offer a better user experience for smart phone owners To be able to search for pharmacies as well as medicines available in thes
16. UNIVERSITY OF TARTU FACULTY OF MATHEMATICS AND COMPUTER SCIENCE Institute of Computer Science Information Technology speciality Martin Vels Development of a mobile pharmaceutical information environment Bachelor Thesis 6 EAP Supervisor Ulrich Norbisrath PhD Supervisor Siim Uibokand MSc Apteekide Infoteholoogia OU AMO ouar E May 2011 DU Pel VISOL ratas May 2011 A May 2011 Allowed to defense PEOL SSON nadas E May 2011 TARTU 2011 Contents Acknowledgements A Introduction 5 1 Related work and theoretical background 6 1 1 The need for accessing information everywhere 0 0 6 12 mat Doe m E ee 6 EZE AON Pharmacy gt darte os ack Be as mt kom ede e ie 8 1 22 Pube PATH a mit pane gow Bare xod Soe eo sem d cm 8 1 2 9 JEhatmae Lb D zu aca a a 4 40 A re thes 9 E2 E Wabo saa nm sa a ate A 9 1 225 Apotheken s a e m homo a HL Ae ee CUR A ON eem ee 9 EZO SONGS e an Ge eras Ncw Ge RRS O SOM Ede aes 10 1264 6004 2 amp amp 4 4 8 8 amp doe RA Eo REL 10 1262 NON 50 606d tub 4 m da ou pede eae e SG xn 11 LS AROUND as Eros EA o 11 2 Requirement analysis 19 2 1 Functional requirements a a a a a s 19 2 1 1 Summary of the use cases a 19 2 1 2 Detailed use cases e o 20 2 1 2 1 Browsing the pharmacies using the map 20 2 1 2 2 Reloading the pharmacy data from the server 21 2 1 2 3 Positioning the map view to user s ph
17. ard UI elements like tab bars navigation controllers buttons tables and views were used Distances from user to pharmacy shown 10 Both the map and list view shown for pharmacies Possibility to filter info from tables with search box Special icons designed for map annotations and actions inside application Scan code reading with the camera of the phone au EMT 16 44 81 ite PULSE PHARMACY Wr STORE LOCAT Mj onune sorri y FEATURED PRODU 3 LOYALTY REGISTRATION eee A pulse Figure 1 7 Initial screen of the applica tion with all four possible sub modules displayed store locator online shop ping featured products and loyalty reg su EMT gt 16 44 81 i Postcode or Suburb cawceL Figure 1 8 Pharmacy location can be searched by postal code or address en tered manually As can be seen no standard navigation nor UI elements are used istration Loyalty program is a free program which gives users bonus points for purchases and discount vouchers af ter certain amount of points are col lected 1 2 6 2 Not so good e Non standard UI elements used users have to think how the interface works e Info shown in web view meaning that the application is just a shell for a web browser e User is redirected to a website which is designed for regular computer e Distances shown from the user location to pharmacies are not realistic 1 3 Roundup In this chapter I described why there
18. aying info is mak ing the application look clean and pol ished XKECTCAODOVTOZSr cxL TIONMOOD 4 82 ma sal EMT 16 47 Locator Details Abbey Health Care Unit 1 Dun Laoghaire Industrial Estate Dun Laoghaire Co Dublin Pharmacist G Diamond amp This is a late night pharmacy Figure 1 19 Detailed information about a specific pharmacy Using but tons for phone number and locations on the map makes it very easy to under stand for users Clear and explicit way to show that the pharmacy is opened all night is used 14 4L EMT 16 48 1 82 ma Map List Late Night rhe Q amp Abbey Health Care Unit 1 Dun Laoghaire Industrial Est amp Ardfallen Late Night Med 2 Ardfallen Mall Douglas Road Co amp Arthurs Quay Pharmacy Arthurs Quay Patrick St Co Limerick amp Blake s Pharmacy Main St Celbridge Celbridge Co Kil amp Boots Chemists Liffy Valley Shopping Centre Lucan SCAODTVOTZr zR To voo 0 ep Locator Figure 1 18 Like the list view of the pharmacies the late night view has the same features but it makes it more convenient for the user to filter out only the pharmacies that are opened all night Certainly a great feature to make an application more user friendly aL EMT 7 16 47 4 82 ma List Late Night Mountashton 4 3 KAT IN i Abbey Health Care Unit 1 Dun Laoghaire Industrial Estate Potte DOGpa e oe P3
19. cons how to distribute your application to beta testers and how to distribute your application into App Store 3 2 3 Interacting with the server As was mentioned several times before the application does not store any of the data locally Application is retrieving everything that will be shown to the user in real time from the server Data that is returned from the server is in JSON format I am using a third party library for parsing the JSON messages because Apple does not provide a class for this There are XML parsers available from Apple but I did not want to use XML as it is more inconvenient to use the classes provided by Cocoa Touch The XML messages are also larger in size which means that downloading the data from server will take longer and this makes the application slower for the end user To send a query to server following url is used http api raviminfo ee There are currently five different queries that can be sent to server 3 2 3 1 Pharmacy list This query is used for retrieving the list of pharmacies from the server with all the ac cording attributes The main query string sent to server is g p however there can be three more parameters sent These parameters are latitude longitude and onlyNear est Latitude and longitude are real numbers indicating the location coordinates of the mobile device which is sending the query and onlyNear parameter can be 0 or 1 in dication wether user
20. e limit price and prices for 50 75 90 and 100 discounts figure 4 8 In the bottom of the screen there are three buttons Info sheet Image and Diagnose figure 4 9 Info sheet button 43 will open a separate view where the package info sheet pdf is shown Image button will open a separate view where item image is shown Diagnose button will open a separate view where all the diagnose codes are shown for the discount prices figure 4 10 4 7 Browsing the ATC table User has to tap on ATC tab on tab bar to enter the ATC view In ATC view user can see a table with ATC codes and according ATC group names User can tap on any of the blue disclosure icons to see sub level of any given ATC code figure 4 11 If user is not on the top level of the ATC hierarchy tapping the cell will redirect to item search view with given ATC code entered in search box 4 8 Closing the application To close the application user has to press the Home button of his iPhone This will put the application in the background If user wants to completely close the application he has to enter the task view of the iPhone by double tapping on the Home button In the task view user has to touch any of the icons listed for couple of seconds until the red icons appear on the upper left corner of the icons figure 4 12 After entering the application closing mode user can tap on the red icon to close any of the ap
21. e pharmacies using special application designed especially for iPhone is more convenient than browsing the regular raviminfo ee web page with web browser of the mobile phone 1 2 Similar projects The raviminfo ee contains the information for over 250 pharmacies all over Estonia and these pharmacies are the ones using the special software RAX and its successor Noom to send their stock level information into raviminfo server There is another similar web site in Estonia called apteegiinfo ee that contains information for pharmacies that are using different software Hansasoft There are about 120 pharmacies with price lists available in apteegiinfo ee There is also a mobile version of that web site available but unfortunately it is virtually unusable on iPhone because the page is rendered as a very narrow ribbon in the center of the page To be able to see what is actually displayed on screen it is needed to manually resize the page using pinching gesture every time the new page is loaded Outside Estonia there are several mobile applications available from different com panies that are mainly concentrating on showing pharmacy locations on the map as well as displaying the contact information like phone numbers and open hours How ever there are not similar databases with pharmacies together with their near real time price lists available online I was searching for mobile applications for iPhone that would be similar to the one I was p
22. e Be 9 bo e J24 Mo bleapplicati n gt ESTRADA e IRSE AUS Poe es DOLI Pharmacies s sa ama ar BS ee oe Bede o iiic WAIT D2 d SUE A tee i em 8 2 b denario Seg alie d S20 UXEUWOLR TESTECUONS lt a 4 2 63 oh abe PE EU EM ES ped 3 2 6 Submitting to the App Store masias m Re wea 6 9 0 PNE WOLK 6 44 4 es de a UN A xoxo ESSE AAA Oui ROAU e x wes dad oe dee Gb A aA ee od 4 User manual 4 1 Installing the application ue 03 fecu 49 wins aca M ll Kod Be RoHS RP ed d 4 2 Launching the application 4 3 Browsing the pharmacies x x cam Dice Pea eS ae dd BRAS 4 4 Searching for items isidro Deoa ko BoR amp gm 4E S524 4 So oS 4 5 Browsing the pharmacies where selected item is available 4 6 Detailed item info in selected pharmacy 4 7 Browsing the ATC table ve kose iex wok vs E he we SA eK A A AES 4 8 Closing the application e eb ox qub Sox 4 Sa m ee 3e oso poe 4 9 Uninstalling the application esla pre koma ee SUR vn eS e Conclusion Summary in Estonian Bibliography Appendix A Resources 29 29 30 30 30 31 31 32 33 34 30 30 36 96 37 of 38 39 39 40 AQ AQ 43 43 43 43 44 44 44 45 46 48 49 Acknowledgements First I would like to thank my supervisors Siim Uibokand and Ulrich Norbisrath I would like to thank Siim for giving me the idea for the thesis and helping to test the application I would like to thank Ulrich for his advice on wri
23. e able to manipulate the objects on the screen with gestures e Feedback it means that every action that user does should have some kind of feedback for example an animation some kind of alert or progress bar e Metaphors it means that objects and actions in an application should be metaphors for objects and actions in the real world The best known exam ple for such a metaphor is a folder people can put things in folder in real world as well as in computer world e User Control it means that user should be the one who controls the application not vice versa If the controls and behavior of the application is familiar to user then he feels more in control and gets better result with the application 16 43 80 ES Advanced Search City New York State Ny More Options a w e R r v u rJo P A s p rje u k zixicivisiv v Figure 1 1 Store locator search page contains possibility to search manually by the city and state as well as using the GPS coordinates from the phone Interface does not look polished field and buttons are not with consistent de miu Advance d Search Store 2716 129 FULTON STREET NEW YORK NY 10038 Phone 212 233 5023 Pharmacy 24 Hour Store Photo Get Map amp Directions Full Store Details Store 2058 158 BLEECKER STREET NEW YORK NY 10012 Phone 212 982 3133 Pharmacy 24 Hour Store Photo Get Map amp Directi Full Store Details Figure 1
24. e package info sheet can be downloaded imageUrl url where item image can be downloaded 34 3 2 3 5 Atc list This query is used for retrieving the list of ATC codes and names by the ATC code beginning The query will look like this 7q a Additional parameter can be used to specify which sub tree of the ATC is wanted q ad amp atc lt ATC code gt Fragment of the returned message from the server in JSON format for the query q aszatc A01 is following tate ol Wale 02 AU n ANTATSIIDID honour 1 tana 14028 n HAAVANDTOVE RAVIMD Euri 1 The root node is atc which contains an array of subitems of the given ATC code Following attributes are available for every array element a ATC code n name of the ATC group c number of subitems for this given ATC code 3 2 4 Mobile application In this subsection I will give an overview how the mobile application is organized into modules and what is The main m file of the application is very simple import lt UIKit UIKit h gt int main int argc char rargvl l i NSAutoreleasePool pool NSAutoreleasePool alloc init int retVal UIApplicationMain argc argv nil nil pool release return retVal The most important part here is the UlApplicationMain function which creates the application object and application delegate and sets up the event cycle The application delegate itself will declare t
25. ebilehe populaarsus on aastatega pidevalt kasvanud ning ha enam inimesi kasutavad seda veebilehte kui ainsat v imalust et saada infot apteekides m davate ravimite ja teiste apteegikaupade kohta Kuna peaaegu iga inimene kasutab t nap eval mobiiltelefoni ja ha suurem hulk inimesi kasutab nutitelefoni siis oli raviminfo ee arengu j rgmine loogiline etapp luua spetsiaalne tarkvararakendus nutitelefonile Pilootprojektina valisin arendusplatvormiks Apple i poolt loodud operatsioonis steem 105 mis on m eldud erinevatele mobiilsetel seadmetele nagu iPhone iPad ja iPod Touch Bakalaureuset tulemusena valmiski mobiilirakendus mille abil on v imalik saada infot Eesti apteekide asukoha lahtioleku aegade ja kontaktandmete kohta Mobiilirakenduse arendusel kasutati Apple i arenduskeskkonda XCode program meerimiskeeleks Objective C ning raamistikuks Cocoa Touch Kogu arendusprotsess on dokumenteeritud kasutades levinud FURPS mudelit K ik kasutuslood on samuti detailselt esitatud Mobiilirakendus koosneb kolmest loogilisest osast apteekide vaatest nimetuste otsinguvaatest ning ATC e hierarhilise toimeainete andmebaasi vaatest Rakendus v imaldab kasutajal n ha apteekide asukohta geograafilisel maakaardil samuti on v i malik apteekide nimekirja vaadata grupeerituna regioonideks T iendav v imalus on n ha kasutajale parajasti l himate apteekide nimekirja Nimetust otsing v imaldab leida kasutajat huvitava nimetuse hetkel apteek
26. ed scenario about the situation 4 2 No items are retrieved from server and table of items will be empty Alternative 5 1 No items are matching the criteria entered by user thus scenario the answer from the server is empty list 5 2 No items will be shown to user in table 23 2 1 2 7 Viewing the list of pharmacies selling the chosen medicine Viewing the list of pharmacies selling the chosen medicine Description User can see and browse the list of pharmacies that are currently selling the item that was chosen by user from the item list view User User has searched the items by name from the item search view Trigger User taps on any of the names in items list table that were retrieved based on the search criteria entered by the user Result expected List of pharmacies which are selling currently the chosen item are shown in table Main scenario 1 User taps on the item name in item search result table 2 New view is shown with pharmacy list that are currently selling the chosen item 3 User can scroll up and down on the list Alternative 1 1 If there is no Internet connection user will get notification scenario about the situation 1 2 User will stay on the item search result list view 2 1 2 8 Viewing the detailed information for the chosen medicine Uscwemuber 8 OoOO Pre conditions User is in the list view of pharmacies selling the chosen medicine User taps on the pharmacy name Result expected User will be
27. er is a subclass of UITableViewController and it will retrieve the information about the pharmacies that the selected item is available in from the server This class is again using UrlDataDownloader to retrieve the data from server Table is filled with infor mation asynchronously after the data has been downloaded If user taps on any of the pharmacy names it will result in call of tableView did SelectRowAtIndexPath method in ItemPharmacy TableViewController instance The ItemPharmacyDetailViewController instance is created and pushed into navigation controller stack ItemPharmacyDetail ViewController is a subclass of UIViewController and is responsible for showing the price information of the selected item in selected pharmacy If there are diagnoses image or package info sheet information available in retrieved JSON message then according buttons are enabled for the user If user taps on the package info sheet button it will fire the showInfoSheet method in detail view controller and a new WebViewController instance is created and shown as a modal view WebViewController uses WebKit API which is basically the Safari browser and loads the given url into it If user taps on the image button it will fire the showImage method which creates a WebViewController instance and displayed as a modal view just like it was done with package info sheet 36 If user taps on the diagnoses button the showDiagnoses method is used to create a I
28. esign of the application does not use any of the standard UI elements from Cocoa Touch which makes it harder to learn for first time users More detailed explanations for every part of the application can be seen next in the table with screenshots More detailed information is located under the screenshots in following figures 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 mt EMT 16 43 80 ES Back 129 FULTON STREET sl EMT Advanced Search ty College 9 Store 2716 129 FULTON STREET NEW YORK NY 10038 Phone 212 233 5023 Pharmacy 24 Hour Store Photo Get Map 8 Directions Store Hours Mo Fr Open 24 hours Sa Open 24 Hours Su Open 24 Hours Pharmacy Hours Mo Fr 08 00 AM 09 00 PM Sa 09 00 AM 06 00 PM Su 09 00 AM 06 00 PM Figure 1 3 Standard Google provided Figure 1 4 Full details of a spe map is used to show the location of the cific pharmacy are shown with full selected store It is a good idea to have name phone number address and open possibility to get directions from cur hours Also link to map and directions rent location of the user to the selected are shown pharmacy 1 2 3 PharmacyI RL Nycomed Irish Pharmacy Finder provides users with comprehensive information about heartburn and its treatment This application also contains a listing of almost 1 600 pharmacies across Ireland including pharmacy name address telephone number and GPS coordinates The user can search pharmac
29. ge and the Cocoa Touch framework provided by Apple Interaction with the server is done through a special API The API is using the HTTP protocol for data transfer GET requests are used for sending queries to server and data is returned from the server in the JSON format The application is complete working as expected and submitted into Apple App Store There are a lot of new ideas about what new functionalities could be implemented in this application One of the most interesting and important ideas is to add information about the Latvian pharmacies that are currently available in raviminfo ee sister site called zales24 lv Also it would be interesting to add possibility for users to find out about the interactions between different medicines This can help reducing the threat that two or more medicines are consumed together that could result in fatalities There are also other mobile platforms available that are interesting and there are ideas to develop similar application for the Android and Windows Phone platforms As the raviminfo ee is already a very well established web site in its niche it will be interesting to see how popular the mobile application will be among its users 45 Mobulse farmatseutilise infokeskkonna arendus Martin Vels Bakalaureuset 6 EAP Sisukokkuvote Juba ligikaudu k mme aastat on aadressil www raviminfo ee olnud k igile k ttesaadav apteekide ja ravimite andmebaas ning otsingumootor Mainitud ve
30. he UITabBarController instance variable which will be used as an IBOutlet in MainWindow xib Xib files are XML files that contain the interface objects and their relationships with the Objective C code Xib files are created using special tool called Interface Builder which is integrated into XCode IDE since the version 4 0 In MainWindow xib I created the tab bar controller which is connected to the UlTabBarController instance in application delegate object For every tab bar item pharmacies items ATC there is a navigation controller associated with it Navigation controllers are useful for creating view hierarchies The idea behind navigation controller is a simple stack New view controllers can be pushed into stack and popped out if these view controllers are no longer needed Next I will give a more detailed overview about these three different parts of the application 30 3 2 4 1 Pharmacies For pharmacies I am using two different ways to display information map view and list view For map view I created a PharmacyMapViewController which subclasses UIViewController and uses MapKit and CoreLocation API s The MapKit API is showing a Google Map based map which can hold annotation pins on given coordinates CoreLocation API is used for retrieving the GPS coordinates of the mobile device For the list view of pharmacies I created a Pharmacy TableViewController which subclasses the UITableViewController UlTableViewController is one
31. he situation 2 2 No data is downloaded form the server 2 3 User will stay in item detail view 2 1 2 10 Viewing the item image Result expected User will be directed into separate view where the image is shown Main scenario 1 User taps on the Image button in item detail view 2 Image is downloaded from the server 3 Image is shown to user in separate view Alternative 2 1 If there is no Internet connection user will get notified scenario about the situation 2 2 No data is downloaded form the server 2 3 User will stay in item detail view 29 2 1 2 11 Viewing the diagnosis related information for the chosen medicine Use case name Viewing the diagnosis related information for the chosen Description User can see detailed information about the IN o Actor User Pre conditions User is in item detail view User taps on the Diagnoses button in item detail view Result expected User will be redirected into special view where detailed information about the diagnoses are shown for the chosen item Main scenario 1 User taps on the Diagnoses button in item detail view 2 User will be directed into item diagnoses view 3 Following fields are shown to user item name producer name ATC Active substance separate fields for Diagnoses 50 75 90 100 information fields for diagnoses 75 90 100 legend field with explanations about the abbreviations used in diagnoses info fields Alternative 2 1 If Internet con
32. iPhone you have to buy a developer license from Apple This license costs 99USD and is valid for one year It is possible to develop the application using the iPhone simulator but there are limitations present For example you can not use GPS coordinates with simulator which was important in my case Also the simulator runs on a fast computer which means that you are unable to see how your application really performs on a mobile device so it is important to test your appli cation on a real device Without the developer license it is also not possible to send your application into Apple App Store which is the only legal way to distribute your application to other iOS devices 3 2 2 Knowledge needed for development To be able to develop for 105 device with XCode the developer needs to know the Objectice C programming language Objective C is an object oriented programming language that is built on top of the C language You can get a short overview of the language from this Wikipedia article I was studying this language from these two books 1 and 2 I really liked the first one as it was very well written and explained all the needed principles The second book was also quite good but was not as well written in my mind as the 1 However each one of these books would be a nice start to get familiar with Objective C language I would also recommend 8 as it has a great collection of quick tips and tricks for setting your answers for s
33. ides m giolevate nimetuste hulgast Nimetuste kohta on v imalik n ha detailset infot nagu erinevad hinnad tootja ja toimeained pakendi infoleht diagnoosid millega vastavat ravimit toihib v lja kirjutada ja pakendi pilt ATC tabel v imaldab otsida hierarhilisest toimeainete andmebaasist ning leida vastava ATC koodi alusel parajasti apteekides m davaid nimetusi Tulevikus on kavas rakendust edasi arendada lisada raviminfo ee L ti s sarlehe zales24 lv andmed ning lisada v imalus ravimite koostoimete leidmiseks spetsiaalsest andmebaasist Samuti on idee laiendada platvormide hulka millel loodud mobiilirak endus t taks plaanis on Andoroidi ja Symbiani v i Windows Phone 7 platvormile rakenduse loomine 46 Kokkuv ttes saab elda et t oli edukas sest valmis Apple i rakendustepoest k igile vabalt k ttesaadav ning kasulik mobiilirakendus mis v imaldab leida kiiresti ja mugavalt infot l hedalasuvate apteekide kohta ning otsida ravimite kohta k ivat infot 47 Bibliography 1 Mark Dalrymple Scott Knaster Learn Objective C on the Mac Apress 2009 2 Stephen G Kochan Programming in Objective C 2 0 Addison Wesley 2009 13 Dave Mark Jeff LaMarche Beginning iPhone 3 Development Exploring the iPhone SDK Apress 2009 4 Dave Mark Jack Nutting Jeff LaMarche Beginning iPhone 4 Develop ment Exploring the 105 SDK Apress 2011 15 Joachim Bondo Dylan Bruzenak Steve Finkelstein Owen Goss
34. ies by name around me or by location Detailed information about the night pharmacies is also available More detailed in formation is located under the screenshots in following figures 1 15 1 16 1 17 1 18 1 19 1 20 1 2 4 Walgreens Application from the biggest pharmacy chain in USA Application contains possibility to order refills using the camera of the phone to scan the barcode of the package Also nearest store locator using GPS positioning is available A weekly Ad section gives an overview of the in store savings available There is also a functionality for creating a shopping list available More detailed information is located under the screenshots in following figures 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 2 5 Apotheken Simple and straight forward application for finding pharmacies in Austria It shows just pharmacy locations as map and list Detailed information about the pharmacies is also available Clean and polished application More detailed information is located under the screenshots in following figures 1 33 1 34 1 35 1 36 NI CS 16 44 81 ES CVS pharmacy Close Drug Info Drug Information Center aA aC aD aK aL aN aO aU aV aZ ACETAMINOPHEN CODEINE ACETAMINOPHEN AND CODEINE PHOSPHATE ACIPHEX ACTONEL ACTOS ACYCI OVIR 4 O Q NXxz cuo onmnov ozzr zxce rzommooomr Figure 1 5 Drug information database has extensive list of drugs available F
35. iled view of a specific pharmacy Information is presented in a clear and explicit way Maybe the phone number should have been in the first part of the scree instead of the sec ond half which can only be accessed af ter scrolling down 18 ait EMT E Apotheken O B ren Apotheke Herrengasse 11 8010 Graz Apotheke Zum guten LeonhardstraBe 6 8010 Graz Jakomini Apotheke Jakominiplatz 15 8010 Graz SchloBberg Apotheke Hofgasse 3 8010 Graz Landschafts Apotheke SackstraBe 4 8010 Graz b amp b amp Finden Sie viel mehr mit der ffnungszeiten App OJ Map eS POETA IA DATA a Figure 1 34 The list view of the phar macies It would be nice to have a search bar functionality available here to quickly filter out pharmacies by name DETAILS Phone 43 316 713280 Figure 1 36 Second half of the detailed view of the specific pharmacy Nice touch is the small image from the map so that the location of the pharmacy can quickly be seen from the detailed view Chapter 2 Requirement analysis As there already was a web based version for raviminfo ee it was only natural that the requirements for the mobile version were similar However some of the differences were also present and the following chapter will give an overview of the requirements of the application that will be created using the FURPS model 2 1 Functional requirements Functional requirements are written down as use ca
36. imple questions like how to convert strings into numbers with Objective C This is very useful if you just need some refresher on any of these issues When starting actually developing for the 105 you need to get to know the Cocoa http en wikipedia org wiki Objective C 30 Touch and the principles and ideas behind the iOS application development I started with the books 3 and 4 which is basically the same book as 3 with updates regarding to 105 4 These books were also very well written and gave an overview of all the major ideas of the 105 development systematically All the code examples in these books are also available online but it is recommended to type the code in manually to learn more efficiently I went through almost all of the code examples and can say that this was very useful Using the XCode code sense feature which really helps you to write code very quickly as it provides you with the available method variable and class names as you type makes the coding a very pleasurable activity I was also reading a lot of other books about the 105 development but not from cover to cover but just using some of the chapters that were currently needed to get a better understanding about some of the problems that occurred All the books that were used are listed in bibliography part of this document I will mention some of the books below next to some of the implementation parts for example about how to create application i
37. ion Delete Raviminfo Deleting Raviminfo will also delete all of its data Delete Cancel Figure 4 14 Uninstall confirmation alert view 42 4 3 Browsing the pharmacies There are two ways to get information about pharmacies first there is a map view of the pharmacies and then there is list view of the pharmacies User can open pharmacy section by tapping on the Pharmacies tab on tab bar In pharmacies view there are two buttons in the upper area of the screen Map and List User can see pharmacies on the map if tapping on the Map button and see pharmacies as a list by tapping the List button In the map view user can see pharmacies on the map of Estonia and tap on the pharmacy icons After tapping on the icon small annotation will be displayed with possibility to see detailed information about the pharmacy figure 4 3 In the list view user can see pharmacies as a grouped list figure 4 4 with sections named as regions and pharmacies sorted alphabetically in these sections User can tap on any of the pharmacy cell and will be redirected to detailed view of the pharmacy In the detail view of the pharmacy figure 4 5 user can see pharmacy name ad dress phone number last data refresh date and small map with pharmacy location shown as a pin To return from the detail view user hast tap on the Back button in navigation bar 4 4 Searching for items User has to tap on
38. ions written out for them by their doctors As the mobile phone has a camera it would be interesting to add bar code scanning functionality to make finding items by scan code very simple and convenient There could be possibility for users to set up reminder events like time when medicine needs to be taken using the application There is a database for medicine interactions available that could be used by the application so users could find out if two medicines can be used together or not I am also considering other mobile platforms like Android Windows Phone OS 7 and Symbian It would be interesting to develop similar application for other mobile platforms in the future 3 4 Roundup In this chapter I described the design and implementation of the mobile application The application is available for everybody in Apple App Store for free A list of ideas for future development was also given 39 Chapter 4 User manual In this chapter I will give an overview on how end users can use the mobile application 4 1 Installing the application Installing the application on iPhone will be very simple user needs to launch the App Store application and search for Raviminfo After the application is found the user just needs to tap on the Install button and enter his iTunes password After the installation process is finished user will see new application called Raviminfo on his iPhone screen figure 4 1 4 2 Launching the a
39. irst letter of the active substance can be used to jump to specific names De sign is not using standard Cocoa Touch tables but a html page instead This makes the design look a bit unusual for iPhone users Real time search bar is missing which is quite widely used feature to filter out items from the long list Navigation bar has no regular but tons like Back to move back one step in view hierarchy No tab bar is shown beneath the table like it was on the other views of the application 1 2 6 Conclusion MIC 16 44 CVS pharmacy cl Drug Info Al ACETAMINOPHEN CODEINE 30 MG 60 MG TAB E ACETAMINOPHEN CODEINE 300 MG 60 MG TAB White to off white M within a square Generic Name Acetaminophen Codeine Phosphate Brand Names TYLENOL WITH CODEINE NO 4 TYLENOL W CODEINE 4 There may be other brand names for this drug N lt Xyg lt CAODOTVOZSZPRLCETTIONMOOD emita to odorat savont Figure 1 6 Detailed information about a certain drug It is nice that it has image of the pills so an user can iden tify the pills visually as well Informa tion has subsections for certain parts like generics and brand names How ever the problems with the design are similar like were described above there is no Back button on navigation bar and tab bar is missing To conclude the overview of these applications I will list the things that I liked and did not like in following lists 1 2 6 1 Good e Stand
40. ish needed functionality User interface follows the Human Interface Guidelines provided by Apple This will help user to be able to start using the application as quickly as possible avoiding the long learning process that would be the case if completely new user interface would be used All the views of the application are designed following the previously mentioned HIG only using standard UI components provided by the Apple development tools Installation of the application is done using the App Store of Apple that can be accessed using the iOS device e g iPhone or iTunes software on a computer Internet connection is needed for the application to work All the information that is shown to user will be downloaded from the central database using HTTP protocol 2 2 2 Reliability The application should handle all the errors without quitting unexpectedly that could arise while interacting with the central database over the Internet or dis playing the information The application may not contain any known critical functional errors on com mitting to Apples App Store All known critical functional errors must be fixed before the commit This does not apply to non functional nor unknown functional errors 2 2 3 Performance Application is depending on the Internet to be able to work This means that the application will not have its own database of medicines saved on the device This also means that the speed of the app
41. lanning on develop It was looking for medical and pharmacy applications There are dozens of different medical applications available in App Store Most of the medical applications are quite expensive and containing more of the medical databases than pharmacy contacts and product databases available in these pharmacies So the following iPhone applications were found from the Apple App Store that were built to help users to locate pharmacies nearby e CVS Pharmacy e PulsePharmacy e Pharmacylrl e Walgreens e Apotheken I will give a short overview of these applications and will provide some screenshots for every one of these applications I am also giving my opinion for every screenshot about what seems to be nice and what does not look too good I am using the knowledge sathered from Apple HIG document to give my opinion about the applications There are following major principles in HIG that should be followed in creating a great mobile application e Aesthetic integrity it is a measure of how well the appearance of the application integrates its function e Consistency it means that application should use system provided controls views and icons correctly and that all the terms and icons are meaning the same things throughout the application e Direct Manipulation it means that user should be able to see their actions have immediate visible results that they could rotate the screen to affect the objects on screen and to b
42. lication is dependent on the speed of the Internet connection user has The data queried from the server is plain text It should take no more than 5 seconds for any of the views to load its content from the central server Only a portion of the data will be returned from the server based on the query sent 1 http developer apple com library ios documentation UserExperience Conceptual Mo bileHIG Introduction Introduction html 21 by the application The next portion will be downloaded if needed user has reached the end of the visible table This way the user interface will be very responsive and there is no need to download large amounts of data as a whole but it can be divided into smaller parts and downloaded only if there is a need for the additional data 2 2 4 Supportability There will be no personal assistance available for the application users There will be short manual available for the application that will describe the main functionality briefly In case of problems there will be contact information shown on the web page of raviminfo ee 2 3 Roundup In this chapter I reviewed the functional and non functional requirements for the mobile application A detailed list of functional requirements in the form of use cases was also given 28 Chapter 3 Mobile Application Raviminfo In this chapter I will give an overview of implementation of the mobile application This chapter will be divided into three maj
43. ll Refill from Account Refill Rx by Scan Figure 1 22 A little confusing view because under the pharmacy user prob ably expected to find a list of pharma cles or a map but instead prescription number field is shown for refilling Also it is confusing because there was Re fill by Scan icon on the opening screen now the same functionality is also avail able in Pharmacy view as a button ssl EMT 1 6 48 Store Locator 82 uin Multiple cities found ur search for Smithtown matched at least 10 locations Please select one to continue or search again Smithtown NY Suffolk County gt Smithtown NH Rockingham County gt Smithtown AL Mobile County gt Smithtown MS Wayne County gt Smithtown NC Beaufort County gt Smithtown NC Perguimans County gt Smithtown NC Yadkin County gt Smithtown PA Bucks County gt Figure 1 24 Search results from Store Locator Clean and polished look nice to see all the available locations with the same name together so the correct one can be located aL EMT 16 49 82 uid P Store Locator Setauket f q Eme 4 24 Walgreens Store E W MAIN ST Smithtown NY 11787 dm Em KA on Long Island MacArthur 4 Su Figure 1 25 All Walgreens stores are shown on the standard Google map It is a nice touch that special icons are used instead of standard pins to show the positions of the stores aL EMT 16 49
44. n reasons for using the original raviminfo ee web site First one is to get information about pharmacies like where they are located and what are their opening hours and other contact information Second one is searching for the medicines from the pharmacies together with the price information as well as all the detailed information about these medicines Implementing these two functionalities was also the main scope for the mobile application However since mobile devices are more limited especially in screen sizes compared to regular computers with large screens the main difference is the data presentation I had to make compromises for fitting all the needed data into small screen of the mobile phone In addition as mobile devices often have GP5 built in this gave an interesting possibility to be able to show users information about the nearest pharmacies to make the user experience even more comfortable and pleasing This thesis is divided into four chapters The first chapter gives an overview why such a mobile application could be useful and describes some of the similar mobile applications available on iOS The second chapter contains the requirement analysis for the application In the third chapter the design and implementation of the application is described In the fourth chapter a short end user manual is available to give a brief overview on how to use the application Chapter 1 Related work and theoretical background 1 1
45. nction getDistance latitude1 longitudel latitude2 longitude2 dist acos cos deg2rad latitudet cos deg2rad 1atitude2 cos deg2rad 1ongitudei1 deg2rad longitude2 sin deg2rad latitude1 sin deg2rad latitude2 X X J3 return round dist self EARTH_RADIUS 3 3 2 3 2 Item search This query is used for retrieving the list of items matching the search string entered by the user The main query will look like this q i amp search search string gt The search parameter contains the actual string that user wanted to look up in database Result of the query q i amp search ibu will be following JSON message items i a MM0034978 32 n IBUMETIN TBL 400MG N10 p NYCOMED F t Hae MMOOSASTI n IBUMETIN TBL 400MG N30 p NYCOMED F 13 The root node is items which holds the possible items as an array For every item there are following attributes available a aptcode the unigue ID for the item n 66 93 item name p producer name 3 2 3 3 Item in pharmacies This query is used for retrieving the list of pharmacies that the selected item is available in The main query will look like this q ip amp aptcode lt item unique id gt There can be additional parameters added like in pharmacy list query This means that latitude longitude and onlyNearest parameters can be used F
46. nection 3 2 User will be on the Map view without Map shown on it 20 2 1 2 2 Reloading the pharmacy data from the server Use case number 2 Poy E lrigger User taps on the Reload button which looks like a round Result expected Data is reloaded from the server and fresh info shown on the add n ERE Main scenario 1 User taps on Reload button 2 Activity indicator is shown while data is received from the server 3 Fresh info is shown on the map or list view Alternative 3 1 If there is no Internet connection no map is shown and scenario user is notified about the missing Internet connection 3 2 User will stay on the map or list view of the pharmacies 2 1 2 3 Positioning the map view to user s physical location Use case number 3 Pod Use case name ositioning the map view to user s physical location Description User can make the map view to show his position on using the coordinates of the mobile device Trigger User taps on the Position button which looks like a circle and cross on it Result expected Map view is animated to user s location and blue pin is dropped on the map indicating the the location of the user Main scenario 1 User taps on Position button 2 Map view animates to user s location 3 Blue pin is shown on the map indicating the position of the user Alternative 2 1 If coordinates can not be determined user will get scenario notification about the situation
47. nection is missing user will get notification scenario about the situation 2 2 User will stay in item detail view 2 1 2 12 Browsing the ATC list Anatomical Therapeutic Chemical Result expected ATC view is activated and user will see a table filled with ATC tree items Main scenario 1 User taps on the ATC tab on tab bar 2 ATC view is activated and data downloaded from server 3 Table view is shown to user with AT C codes and group names shown in it Alternative 2 1 If Internet connection is missing user will get notification scenario about the situation 2 2 User will be in empty AT C view 2 2 Non functional requirements Non functional requirements are divided into following sub categories usability reli ability performance and supportability More detailed overview about every category is given below 26 2 2 1 Usability Application works on an iPhone which is a smart phone with relatively small screen compared to computer monitors Screen resolution is 480x320 or 960x640 pixels depending on the version of the iPhone The larger resolution 960x640 will in our case only mean better dpi dots per inch the textual information fitted on the screen is still the same as on the smaller 480x320 resolution screen Both displays are only 3 5 inch 89 millimeters in diagonal Considering the size of the screen only minimal amount of user interface elements need to be shown on the screen to allow user to accompl
48. or sections design implementation and future work In the end there will be a short roundup Diagrams and code samples will be given to get better understanding of the implementation details 3 1 Design First I will give an overview of how the information flows starting from the pharmacy and ending with the mobile application First the pharmacy information system will send the information about the items into data collection server After the data is processed it will be sent to raviminfo ee server where it is saved into MySQL database This server is responsible for serving the www raviminfo ee web site and now also the API that is used by the mobile application The API is written in PHP and uses simple GE T queries sent by the mobile application After the query is processed and according data retrieved from the MySQL database the result will be assembled in JSON format and sent back to mobile application over HTTP As the mobile application is written in Objective C and uses Cocoa Touch frame work it is obvious that the object oriented paradigm is used as well as MVC design pattern The MVC pattern consists of three parts model view and controller Models are responsible for keeping the application data Views display the data to application user and get responses from the user Controllers are mediating the logic between the models and views This pattern is widely used and helps to reuse the existing compo nents By using the Cocoa T
49. ouch framework it is natural to use MVC pattern through out the whole application development Every view that is created will contain both a controller and a view and it is up to developer how the data is organized in models In 105 development there are several ways to store data I am using dictionaries and arrays for this as the application doesn t need to save data persistently and all the needed data is retrieved from the server in real time The application is divided into three logical parts pharmacies items and ATC Anatomical Therapeutic Chemicals All these parts are controlled by the tab bar controller Inside the tab bar controller navigation controllers are used Navigation controllers are useful for showing hierarchical data because the idea behind navigation controllers are simple stacks Top level or root controllers can push new view controllers into the stack which in turn can push new view controllers into the navigation stack If the view controller has done it s job it will be popped out of the navigation stack 29 Data Collection Server Raviminfo ee server met XA Pharmacy N Figure 3 1 An overall diagram of how data flows from pharmacy to mobile application 3 2 Implementation 3 2 1 Tools needed for development For implementation I used the XCode IDE which is freely available from the Apple website The development tools are free but if you are interested in developing using your 105 device like
50. pany logo to user in more natural way than using banners inside applica tion 13 81 id sL EMT 16 45 BACK MEME TER Aic CSI SUBMIT Figure 1 14 View where potential loyal customers can register and provide in formation about them to the store No description is available inside the ap plication what this loyalty registration means for the user or what kind of ben efits it will give User has to go to the company web site to read more info about the program where it is called Customer Rewards Program instead sr EMT 7 16 47 4 82 ta List Late Night Medipharm 16 South Great Georges Street Dublin 2 a pa 2 Locator Figure 1 16 Map view of the pharma cies Standard Google map is used and standard Cocoa Touch user interface elements like navigation bar above as well as tab bar below the screen are used Clean and familiar way to dis play information to users ai EMT 16 47 1 82 liu Map List Late Night lt lt M TT Q op P Hartnett Unit 3 Balbriggan Shopping Centre Bal Cogaslann Pharmacy Stamullen Co Me 31 Bridge Street Tralee Co Kerry Abbey Health Care 14 Uam Var Ave Bishopstown Co Cork amp Abbey Health Care Unit 1 Dun Laoghaire Industrial Est A TATA A a QA e Locator Figure 1 17 List view of the pharma cies Standard table view with quick search and alphabet index are shown Again using standard and familiar components for displ
51. plications currently running To close Raviminfo application user has to find the Raviminfo icon from the list and tap on the red icon 4 9 Uninstalling the application User can uninstall the Raviminfo application by locating the application icon on his iPhone desktop and tap and hold on that icon for couple of seconds until the icon starts to shake and black icon appears on the upper left corner of that icon figure 4 13 After tapping on that black icon with cross on it user will get a confirmation dialog that asks if user is sure about uninstalling the application figure 4 14 After agreeing on removing the application from the device the application will get uninstalled 44 Conclusion As the main outcome of my Bachelor thesis a mobile application called Raviminfo was developed It consists of three main functionalities possibility to get information about pharmacies in Estonia the possibility to search for items available in these pharmacies and the possibility to browse the ATC table and search items by the ATC code It is possible to see locations of the pharmacies on the geographical map and it is possible to find the distances of the pharmacies from the application user s physical location It is possible to see detailed information about the items sold in pharmacies for example different prices package info sheet image and diagnoses are available The application was developed using the Objective C langua
52. pplication Launching the application is also very simple user has to find the previously installed application on his iPhone desktop and tap on the icon of the application Application will start in pharmacy map view mode where user can see the pharmacy icons near his location figure 4 2 Figure 4 1 Launching the application Figure 4 2 Pharmacies on the map 40 Nearest VAKSALI APTEEK 97 m Vaksali 17 50410 Tartu KASTANI APTEEK 378 m Lembitu 2 50406 Tartu RAEKOJA APTEEGI HARUA 582 m Riia 13 3 51010 Tartu UUS APTEEGI HARUAPTEE 615 m Puusepa 8 51014 Tartu TAMME APTEEK TU 798 m Puusepa 1a 50406 Tartu S BRA MAXIMA APTEEK 871 m V ru 55f 50111 Tartu VEERIKU APTEEK 902 m Vitamiini 1 51014 Tartu RAVANA APTEEGI HARUAP iim Bii 510 rti Pharmacies Pharmacies Figure 4 3 Showing the annotation of Figure 4 4 Listview with the nearest a pharmacy pharmacies IBUMETIN TBL 400MG N10 NYCOMED VAKSALI APTEEK IBUMETIN TBL 400MG N30 NYCOMED Vaksali 17 50410 Tartu IBUSTAR TBL 400MG N10 BERLIN CHEMIE AG IBUMETIN TBL 200MG N100 Phone 372 730 1275 NYCOMED IBUMETIN GEL 5 50G a ajule a r v u iole NEA s p r e n Ges UT 7 Te v e w ve Open E N 8 18 R 8 17 Date 27 05 2011 21 MX 2805 JA A Figure 4 5 Pharmacy detail view Figure 4 6 Item search view Back Prices IBUMETIN TBL 600MG N50 NYCOMED 4 77 KASTANI APTEEK VAKSALI A
53. ragment of the re sult in JSON format for the query q ip amp aptcode MM0007145 amp latitude 59 433818 amp longitude 24 770077 onlyNearest 1 is following item pharmacies a Nearest pus i 1 MM0007145 pr ala at n SELMA APTEEK DP OE er di1 368 m iz 1 MM0007145 51912461 n ANNA APTEEK Dur A orm di 423 m iz j ly The root node is item pharmacies which holds the array of regions or just one array item called Nearest Objects in the array have two attributes n for name and p for pharmacies For every pharmacy object these attributes are available 1 item unique 1D pi pharmacy unique ID n pharmacy name p price with currency symbol di distance of the pharmacy from the location of the mobile device 99 3 2 3 4 Item details This query is used for retrieving the detailed information about a certain item The query will look like this q id amp aptcode lt item id gt amp client id lt client id Re turned message from the server in JSON format for the query g id amp aptcode MM0007145 client id 31937 is following item_details itemId MM0007145 itemName DOXY M RATIOPHARM TBL 100MG N10 producerName RATIOPHARM GmbH pharmacyName SELMA APTEEK price 223 Ss priceLimit 1 89 priceDisc50 2 37 priceDisc75 priceDisc90 priceDisc100
54. ses For every use case special template will be used which consists of following points e Use case number e Priority e Use case name e Description of a situation e Actor e Pre conditions e Trigger e Result expected e Main scenario e Alternative scenario s 2 1 1 Summary of the use cases 1 Browsing the pharmacies using the map 2 Reloading the pharmacy data from the server 3 Positioning the map view to user s physical location 4 Browsing the list of pharmacies 19 5 Viewing detailed information of the pharmacy 6 Searching for the medicine by name 7 Viewing the list of pharmacies selling the chosen medicine 8 Viewing the detailed information for the chosen medicine 9 Viewing the package information sheet for the chosen medicine 10 Viewing the item image 11 Viewing the diagnosis related information for the chosen medicine 12 Browsing the ATC list Anatomical Therapeutic Chemical 2 1 2 Detailed use cases 2 1 2 1 Browsing the pharmacies using the map Browsing the pharmacies using the map U Application is running User taps on the Pharmacies tab on the tab bar Map is shown with pharmacies marked as pins on it Main scenario 1 User taps on Pharmacies tab on tab bar 2 Map view is activated 3 Map is displayed with pharmacies show on it as pin icons Alternative 3 1 If there is no Internet connection no map is shown and scenario user is notified about the missing Internet con
55. sted by the Apple employees If any of the issues are discovered the application will be rejected and you will get just a very short note about what caused the rejection However that only means that you get noted about first problem that the review team discovered and if you have more issues you will only get info about them after you have fixed the first problem and resubmitted your application To be able to submit you application into App Store there are several important things that needs to be done first Most important part of course is to make sure the application does not crash Other issues that can result in rejection of the application 11 e Incorrect version number e Incorrect icon image e Using Apple artwork in your application e Using copyrighted material in your application e Violating the HIG guidelines e You application is copying the functionality of some other existing application e Not giving correct notifications in case of missing network connection e Using a large amount of network bandwidth e Using incorrect keyboard type e Incorrect minimal OS version is specified in compiler settings e Description of the application is missing e Functionality of the application is too minimal e Application does not work as advertised I completed the application and submitted it into App Store The process was not triv ial First you have to connect Itunes Connect website at https itunesconnect apple com There you
56. t is standard way to show locations and should be famil iar for users The annotation could have more details written in it but it is good that disclosure icon is used for ex pressing the more detailed information available 81 aa BACK FEATURED PRODUCTS at EMT 7 16 45 Rapid Burn Dual Action Weightloss System 90 Tablets Rapid Burn Fat Trapper amp gt Rapid Burn Metabolism Booster Figure 1 12 Featured products view shows some of the products that are currently promoted by the chain Again no possibility to filter these products using a search bar 81 a uL EMT 16 45 PRODUCT DETAIL life All seeds contain an individual life force and when eaten will help you focus on your tasks of life by providing you with their pure energy source Prices quoted are Online prices these may vary in store Figure 1 13 Detailed information view for a specific featured product No pos sibility to see what are the locations where this item can be purchased nor the specific price for this item in any of the stores Only short information given about the price may be varying in different stores which makes the price info not very useful for the users aL EMT 7 3 16 46 4 81 US NYCOMED 3 Figure 1 15 Initial splash screen of the application used quite a lot in applica tion during the initial load of the data so user should not watch empty screen Also gives a great possibility to display com
57. teed arrows Make sure it appears in focus for quicker scansi b 504 9 AM SN Enter Rx Number Figure 1 30 Interesting feature allow ing the user to scan barcode from the package Definitely a nice to have fea ture that makes it easy for users to get quick information about some spe cific drug using the camera of their phone instead of entering the name of the drug manually with a not so comfortable virtual keyboard sL EMT 16 51 83 m Your Account A Login gt Walgreens Ed About gt lt Feedback and Share gt B Terms of Use gt BN Notice of Privacy Practices gt i Online Privacy amp Security gt Figure 1 32 Settings view of the appli cation It is a bit unusual to have the settings directly inside the application but not in the Settings application like it usually the case with iPhone appli cations However the execution of the view is nice and clean ad EMT Apotheken Univer Krankenhaus der sabethinen Gr 1 Elis Du um Finden Sie viel mehr mit der ffnungszeiten App Figure 1 33 Map view of the pharma cles Special icons are used instead of standard pins Night pharmacies are using an additional moon icon which make them nicely distinct from the rest Details Adler Apotheke Hauptplatz 4 8010 Graz Monday 08 00 18 00 Tuesday 08 00 18 00 Wednesday 08 00 18 00 Thursday 08 00 18 00 Friday 08 00 18 00 Saturday 08 00 12 00 Figure 1 35 Deta
58. temDiagnoseViewController instance and created instance is pushed into navigation controller stack ItemDiagnoseViewController is a subclass of UITableViewController and it uses srouped table view to display the information retrieved from the server using the instance of the UrlDataDownloader class 3 2 4 3 ATC For ATC list there is a class AtcTableViewController which is a subclass of UITable ViewController It uses the instance of the UrlDataDownloader class download the JSON messages from the server If the result from the server shows that there are subitems available for the selected ATC code then in AtcTableViewController method tableView didSelectRowAtIndexPath an instance of the AtcTableViewController is created and pushed into navigation controller stack If there are no more sub levels of ATC left then an instance of ItemSearchTableViewController is created instead and pushed into navigation controller stack resulting in item search by the ATC code 3 2 5 Artwork restrictions Because of different screen resolutions available on iOS devices there are some im portant notes about the images used in iOS applications There are currently three different screen resolutions available e 320x480 px used in iPhones and iPod Touches prior to version 4 e 640x960 px used in iPhones and iPod touches from version 4 e 768x1024 px used in iPad and iPad2 As the physical screen size of the iPhones and iPod Touches are the same but reso
59. the Items tab in tab bar to open the item search view In search view there is a search box where user can tap on After tapping on the search box a virtual keyboard will slide open and user can start entering item name After every letter entry real time search is performed and result retrieved from server Results of the search are automatically shown in table below the search bar figure 4 6 After user taps on any of the search results he will be redirected to a view where all the pharmacies are shown where this item is currently available figure 4 7 4 5 Browsing the pharmacies where selected item is available Default view of the item pharmacies is maximum 20 nearest pharmacies User can also tap on the navigation bar button called All to see all the pharmacies the selected item is available at the moment In the list view user can see the pharmacy name the price of the item in that pharmacy and distance between user location and the pharmacy location User can return to search view by tapping on the Back button on navigation bar If user wants to see more detailed information about the item in any of the pharmacy listed he can tap on the table row 4 6 Detailed item info in selected pharmacy In detailed information view of the item user can see the full name of the item and pharmacy All the possible prices are shown below the item and pharmacy names There can be six different prices available regular pric
60. ting the thesis and his time spent on giving me the feedback for the thesis I would also like to thank Aarne Jaansalu for helping me out with the mobile application icon and pharmacy logos shown in the application Lastly I am also very grateful to my family especially my girlfriend Helina and son Martin for always supporting me Introduction For almost a decade the medicine and pharmacy database search engine http www raviminfo ee has been available on the web I am the author of that web site and it has been nice to see that the popularity of the site is constantly growing More and more people are using it as the Estonia s best source for getting information about drugs and other products sold in pharmacies As almost every person is using mobile phone and more and more people are using smart phones the only logical continuation for developing that site further was to create a native mobile application As pilot platform we chose 105 Apple s operating system for all the mobile devices like iPhones iPod Touches and iPads The main reason for developing the application for 105 was my interest in smart phone niche and in Apple devices in particular Further more as I was also leading and developing similar project LasaLara learn ing environment for the iPhone for the course Software Project it seemed logical to go on with the chosen path and create another useful application that every person could use There are two mai
61. wanted to see all of the pharmacies or only the ones which are near the location where the user currently is If these parameters are used the query string will look like this q p amp amp latitude 59 433818 amp longitude 24 77700 7 1 amp onlyNearest 1 Fragment of the result message in JSON will look like this i regions i ns TALLINN p 452 DIO O n AASA APTEEK Kat 20 IDOL ol p 372 608 6565 a Mustakivi tee 3A 13912 Tallinn 642420 o EE 10 21 L j P 12 20 1 59 4380086 24 8713330 vdi st 163 km The root node is regions which holds all the possible regions as an array For every region there are two attributes n for name of the region and p for the array of pharmacies in that region In the pharmacy array there are the objects of the pharmacies with following attributes i id of the pharmacy n name of the pharmacy d last data refresh date p phone number a address c pharmacy chain id o open hours and days I location coordinates di distance from the mobile device which sent the query Distance is calculated on server side using the great circle distance algorithm List ing of the php code that calculates the distances for pharmacies is following class Location const EARTH_RADIUS 6371 x http en wikipedia org wiki Great circle_distance public static fu
62. ysical location 21 2 1 2 4 Browsing the list of pharmacies 22 2 1 2 5 Viewing detailed information of the pharmacy 22 2 1 2 6 Searching for the medicine by name 23 2 1 2 7 Viewing the list of pharmacies selling the chosen medicine 24 2 1 2 8 Viewing the detailed information for the chosen medicine 24 2 1 2 9 Viewing the package information sheet for the chosen SGH ser ue E Give AP Wo eS ok ee A be SS 20 2 1 2 10 Viewing the item image 20 2 1 2 11 Viewing the diagnosis related information for the cho sen medicine 2 2 2 26 2 1 2 12 Browsing the ATC list Anatomical Therapeutic Chem Gillis aa eo ms eh a 26 2 2 Non functional requirements 2015 X a as X mea a Puha RR 26 Z Wears o amp Ghee Spake E Jie Oe ed ul ei i itd diete 21 222 ARCADIA a ee Se mda ep ANA 27 22 RETOMAR DET SOUP ORC AM a dy S8 pos dva Se ee Se ee a 20 RO 4 uss 404 sh ek BE eS Oa 12 OS EE ES 3 Mobile Application Raviminfo pub LDG OLE wo incs Bro ELE Y Eom Meta But PME e e 0 2 JmplemeDb3tlOD g a dix deae Ras e Ses 3 2 1 Tools needed for development 3 2 2 Knowledge needed for development 3 2 3 Interacting with the server soe oco dec Rome RSP lol Pharmacy Deb es eii gati 65244652 644 644 SS MEM SEARCY yaoa se arse Bw 4 wr Oo SEM Bex ep ES 3 2 3 3 tem in pharmacleS x 25x 4 4 SMG 4 EH RR 8 o AVE detallie A Dod ACE 6 othe d ome Res e

Download Pdf Manuals

image

Related Search

Related Contents

e-MANUAL  PROPRIÉTÉS : AVANTAGE DU SYSTÈME à BIDON : MODE D    Samsung ST5000 Užívateľská príručka  UNICORE Commandline Client: User Manual  旅客船セブンアイランド虹旅客負傷事件  HTR-5960  C2G 12ft Flexima HD15 M/M UXGA Monitor Cable  Sigunit L50 AFX.cdr - Pretensur, SA de CV  Avaya BayRS 15.4.0.0 User's Manual  

Copyright © All rights reserved.
Failed to retrieve file