Two options for iOS data storage: CoreData vs. SQLite

Did research finding ways to setup a database for iOS. Looks like there are two main ways of executing this.

SQLite:

  • SQLite is, as advertised, lightweight.
  • SQLite uses less memory and storage space.
  • SQLite can be tedious and error-prone to code.
  • SQLite is supported on Android and Microsoft Windows Phone.

Core Data

  • Longer learning curve: it takes some study to understand.
  • Objects are easier to work with.
  • Underlying storage details are handled atomically (support for iCloud).
  • Undo and Redo features

Though SQLite database is the default persistent store for Core Data on iPhone, Core Data is not a relational database. It is actually a framework that lets developers store (or retrieve) data in database in an object-oriented way. With Core Data, you can easily map the objects in your apps to the table records in the database without even knowing any SQL.

 

Gone through some tutorials:

1. https://www.udemy.com/sqlite-programming-on-iphone-for-beginners/

2. http://www.appcoda.com/sqlite-database-ios-app-tutorial/

3. http://www.raywenderlich.com/913/sqlite-tutorial-for-ios-making-our-app

 

 

Work Breakdown for Dec 2nd 2014

Server/Email Communication

  • Find a suitable OS and build in VM (Roger & Randy)
  • Setup a database (Roger & Randy)
  • Setup network access to database (Roger & Randy)
  • Have iPhone query server (Kevin)

SMS Communication (Stephen)

  • Send SMS messages from iPhone (Stephen)
  • Receive SMS messages from iPhone (Stephen)

User Interface (Kevin)

  • Interface must have a field to supports SMS communication (Kevin)
  • Interface must have a field to supports server communication (Kevin)
  • Evolutionary prototype of DocTalk GUI (Kevin)

Proposal Concepts

proposal 1(App with SMS)
Description:
This concept is to develop a pure mobile app that uses the SMS protocol and a 3G network connection to send secure text messages and encrypted files

proposal 2 (Email wrapper)
Description:
This version will be based on sending everything as a secure (encrypted) email to a server in the hospital. users can access and view messages for them and respond.

proposal 3 (App with P2P communication)
Description
This concept would have an app directly connect mobile devices to each other over the internet and transferring files securely between devices.

Team Agreement

1)      Team Goal

As a project team we will work together to develop a web and/or mobile application which will allow easy communication between medical professionals.

2)      Effective Communication

We will:

a)      Use email to communicate as a group, github to share files, and Asana to track)

b)      Respond promptly to emails (within twenty-four hours)

c)       Be clear and to the point

d)      Listen carefully to one another

e)      Keep on track

f)      Have weekly meetings to discuss progress

3)      Roles and Responsibilities

Assign a team member to each role or decide on how these roles will be rotate.

Team Lead (identifies and distributes tasks, track timeline and budget): Roger Soderling

Communications (communicates with the industry partner): Randy Or

Recorder (takes and distributes notes for team meetings): Stephen Tai

Time keeper (moves agenda forward and ensures time is well spent): Kevin Wagner

*Roles and Responsibilities will be reassigned as needed

 

4)      Decision Making Process

We will:

a)      Make decisions that help achieve the team goal

b)      Use available data (or seek out data) to make informed decisions

c)      Discuss necessary criteria for making decisions (ex. cost, time, impact)

d)      Get input from everyone on the team including Dr. Murphy when appropriate before        making a final decision

e)      Voice concerns about decisions with everyone

5)      Conflict Negotiation

We will:

a)      Listen openly to other points of view

b)      Discuss issues at an appropriate time and place

c)      Seek common ground and potential solutions

d)      Address issues in a timely way

6)      Commitment and Participation

We will:

a)      Come prepared to meetings and working sessions

b)      Actively contribute to discussions and decision making

c)      Give everyone equal opportunity to participate and contribute

d)      Complete assigned tasks on time

e)      Be open to new ideas and approaches

f)       Seek solutions and build on others ideas

 

Tentative project requirements/constraints

Requirements

  • The main goal of this project is to provide medical professionals with a tool to allow secure and robust transfer of communication (text, images, videos, audio) between healthcare professionals.
    • simplifying and securing messaging between healthcare professionals
  • User Interface
    • Easy to use
    • Visually appealing
  • Messaging
    • Read messages (text)
    • Read sent messages (text)
    • Send messages (text)
    • Receive files (images, videos, audio)
    • Download sent files (images, videos, audio)
    • Send files (images, videos, audio)
    • Messages should have a doctor, patient, subject and priority fields
    • Message search
    • Message sort
    • Message forwarding
    • Message reply
    • Delete messages(just on sender’s phone)
    • Prioritize messages (red=urgent, green=unimportant, etc..)
    • Sending message unknown contact throws a warning requiring confirmation
  • Contacts
    • Add contacts
    • Remove contacts
    • Maintain contact list (on or off the device)
    • Contact search (existing)
    • Contact search (new contact based on profile settings)
  • Settings/Profile
    • Only authorised users can use the application
    • Create an account
        • Enter name
        • Enter email
        • Enter phone number
        • Hospital
        • Set/change password
        • Password recovery
        • Profile picture
      • Delete account
      • Auto delete messages after <time period> (sent and received)

Nice to haves

    • Video conferencing
    • Group chat
      • Patient subscription (possibly hospital/dept subscription)
    • Auto messages delete (you can only read a message once)
    • Patient identification via wrist band image
    • Read receipt (Notify sender when the message has been read)
    • Drafts

Constraints

    • must follow certain health care protocols and distribution of private patient information (Healthcare Canada and HSSBC Approval)
    • Users must be doctors (later on maybe nurses and some others)
    • Secure
      • user authentication
      • data transfer must use acceptable encryption
      • log in/log out
        • auto logout on loss of network connectivity
        • login timeout (logout on app losing focus)
      • more investigation needs to be conducted to find what is sufficient
    • If we develop an app it needs to be easily accessible (unclear how to do this)
    • If we develop a web page it needs to be compatible with firefox and chrome

First meeting notes

– IP -> Dr. Murphy will talk to Prof Kruchten about it.
– This is going to be a free app.
– Most of the physician use Iphone
– seems like we are leaning towards developing the app on the web first.  Later we will make the connection between android to the web app.
– This app will run on chrome/ firefox, but not likely internet explorer.
– the hospital is using internet explorer 6 currently
– The android app will serve as a wrapper for our web app.
– we need a local server.  Dr. Murphy said that he can probably set up a server in the radiology department no problem.
– We may have skype/uber-conference meeting with Dr.Murphy later instead of face to face, details still need to be worked out.
Three things that he emphasized
1. security
2. user interface
– SIMPLE, SIMPLE, SIMPLE
– should be appealing
3. functionality
– text
– images sending
– video sending
– voice messaging ( one of the more important/nice feature to have)
– login
 -Dr. Murphy suggested a character recognition feature for camera.  Basically we take a picture of the patient’s medical sticker and the app will bring out the patient’s info and display in some generic format
Questions
– one server per hospital or one central server?
– how do we get people to sign up for the app?
– how do people verify who they are?  physician number maybe??
– will we consider opening this app people beyond just Doctors?  like nurses, administrative people?
– what are the regulations regarding to privacy?  Dr. Murphy said we should look into Health Canada/HSSBC, and probably send them an email.
TO DO:
– Dr has a few useful links that he will share with us sometime later.
– Dr. wants to see our blog
– Dr wants to be added to asana
– Research about similar apps : QLIQ soft, tiger text
– work out a clear list of what functions our app will have at the initial stage, send it to Dr. Murphy
– send a copy of Project proposal to Dr. Murphy
– something about dropbox??