U.S. patent application number 14/047614 was filed with the patent office on 2014-02-06 for system to dynamically collect and synchronize data with mobile devices.
This patent application is currently assigned to MEI Research, Ltd.. The applicant listed for this patent is MEI Research, Ltd.. Invention is credited to Charles Barden, Jon K. Moon, Jared D. Sieling.
Application Number | 20140039916 14/047614 |
Document ID | / |
Family ID | 49262591 |
Filed Date | 2014-02-06 |
United States Patent
Application |
20140039916 |
Kind Code |
A1 |
Barden; Charles ; et
al. |
February 6, 2014 |
SYSTEM TO DYNAMICALLY COLLECT AND SYNCHRONIZE DATA WITH MOBILE
DEVICES
Abstract
The invention enables bi-directional mobile communication by
researchers, clinicians or counselors with their patients and study
participants. An exemplary application is ecological momentary
assessment of psychological and physical status related to weight
management. The system may be combined with objective information
to trigger a communication and enhance responses assessed on food
choices, dietary intake, physical activity, exertion, mood and
companions.
Inventors: |
Barden; Charles; (Waconia,
MN) ; Moon; Jon K.; (Edina, MN) ; Sieling;
Jared D.; (Watertown, MN) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
MEI Research, Ltd. |
St. Louis Park |
MN |
US |
|
|
Assignee: |
MEI Research, Ltd.
St. Louis Park
MN
|
Family ID: |
49262591 |
Appl. No.: |
14/047614 |
Filed: |
October 7, 2013 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13269611 |
Oct 9, 2011 |
8554802 |
|
|
14047614 |
|
|
|
|
61391591 |
Oct 9, 2010 |
|
|
|
Current U.S.
Class: |
705/2 |
Current CPC
Class: |
G16H 10/20 20180101;
G16H 10/60 20180101 |
Class at
Publication: |
705/2 |
International
Class: |
G06F 19/00 20060101
G06F019/00 |
Claims
1-4. (canceled)
5. A survey system, comprising: a mobile personal computing device,
configured to receive a survey comprising at least one of
information, one or more questions, or a request to take an action,
to be presented by the device to a participant having possession of
the device; and wherein the device includes a module configured to
present the survey to the participant when motion recorded from an
accelerometer associated with the device meets a specified
threshold of at least one of magnitude or duration.
6. The system of claim 5, wherein the device further comprises a
module configured to present the survey within at least one of a
specified beginning or ending date or time.
7. The system of claim 5, wherein the device further comprises a
module configured to record at least one of the date or time at
which the survey is presented to the participant.
8. The system of claim 5, wherein the device further comprises a
module configured to record at least one of a date or time when
motion recorded from the accelerometer meets the specified
threshold of at least one of magnitude or duration.
9. The system of claim 5, wherein the device further comprises a
module configured to capture one or more responses to the one or
more questions in the survey.
10. The system of claim 9, wherein the device further comprises a
module configured to record at least one of the date or time at
which the participant completes a particular one of the one or more
responses to the one or more questions in the survey.
11. The system of claim 5, wherein the accelerometer is included
with the device.
12. The system of claim 5, wherein the accelerometer is separate
from the device and in wired or wireless communication with the
device.
13. A method of presenting a survey, the method comprising:
receiving, using a mobile personal computing device, a survey
comprising at least one of information, one or more questions, or a
request to take an action, to be presented by the device to a
participant having possession of the device; and presenting the
survey to the participant when motion recorded from an
accelerometer associated with the device meets a specified
threshold of at least one of magnitude or duration.
14. The method of claim 13, further comprising presenting the
survey within at least one of a specified beginning date or time or
at least one of a specified ending date or time.
15. The method of claim 13, further comprising recording at least
one of a date or time when motion recorded from the accelerometer
meets the specified threshold of at least one of magnitude or
duration.
16. The method of claim 13, further comprising capturing a response
to the one or more questions in the survey.
17. The method of claim 13, further comprising recording at least
one of a presentation date or time at which a question in the
survey is presented to the participant and at least one of a
completion date or time at which the participant completes a
response to the presented item.
18. The method of claim 13, wherein the survey comprises requesting
the participant to take an action.
19. A survey system, comprising: a computer server, configured to
provide a survey comprising at least one of information, one or
more questions, or a request to take an action, to be presented on
a mobile personal computing device; and wherein the server includes
a module adapted to configure the survey to be provided to the
device to cause the device to present the survey when motion
recorded from an accelerometer associated with the device meets a
specified threshold of at least one of magnitude or duration.
20. The system of claim 19, wherein the server includes a web
service module configured to create or configure the information,
or one or more questions, or the request to take an action
comprising the survey.
21. The system of claim 20, wherein the web service is adapted to
enable creating one or more response choices for the one or more
questions in the survey.
22. The system of claim 19, wherein the server includes a module
that is adapted to enable a threshold for at least one of a
magnitude or duration to be specified for motion of the mobile
personal computing device.
23. The system of claim 19, wherein the server includes a module
that is adapted to configure the device to present the survey
within at least one of a specified beginning date or time and at
least one of a specified ending date or time.
24. The system of claim 19, wherein the server includes a web
service adapted to enable more than one participant to be selected
to receive the survey from among a plurality of participants.
Description
CROSS-REFERENCE TO RELATED PATENT DOCUMENT
[0001] This patent application claims the benefit of priority,
under 35 U.S.C. Section 119(e), to Charles Barden U.S. Provisional
Patent Application Ser. No. 61/391,591, entitled "System to
Dynamically Collect and Synchronize Data with Mobile Devices",
filed on Oct. 9, 2010.
FIELD OF THE INVENTION
[0002] This invention relates to software, communications and
methods to assess energy balance; obtain context information on
actions and environment; and support individuals, their clinicians
or other practitioners to promote a healthy lifestyle by managing
weight, diet, addiction and other behaviors. More specifically, the
invention can be used to collect information and responses on food
choices and intake, activity diaries, ratings of exertion, mood,
companions and other input sought by researchers, clinicians,
advisers or counselors.
BACKGROUND OF THE INVENTION
[0003] The weight status of Americans has been declared a serious
public health problem and is already burdening our health care
systems. Obesity and low physical activity are prime risks for
multiple forms of morbidity and mortality including several chronic
diseases (coronary heart disease, Type II Diabetes, arthritis,
sleep apnea and some forms of cancer). Obesity and overweight are a
result of energy imbalance--excess macronutrient intake and low
levels of physical activity.
[0004] Unfortunately, past approaches to weight loss treatments
have proven ineffective for both children and adults, despite
increasing awareness and individual efforts to lose weight.
Traditionally effective treatments for overweight individuals need
to be intensive enough to cause a change in lifestyle. Techniques
to deliver such treatments would overwhelm our healthcare system.
Programs also need to reach people with limited finances and who
live in locations remote from experienced professionals and
clinics. Further, feedback and other support for patients must be
adapted to their daily lives and as concurrently as possible with
behavior that should be altered.
[0005] An exemplary use of the invention is ecological momentary
assessment (EMA). EMA is a timely record of actions and environment
that preserves immediate psychological and physical status. EMA
replaces recall diaries to overcome bias and errors from delayed
records. Simple examples of EMA might have a study participant
provide a rating of perceived exertion (RPE) after an exercise
session or assign a score from a Likert scale to their present
mood.
[0006] Electronic EMA (eEMA) methods are a further improvement that
replace paper surveys and increase privacy. EMA has become a
popular tool to collect data and influence behavior change. EMA
allows researchers and clinicians to obtain behavioral, social
context, and individual cognition in near real time. eEMA has been
demonstrated as superior to other methods, especially paper, for
avoiding recall bias.
[0007] Rofey, et al ["Utilizing Ecological Momentary Assessment in
pediatric obesity to quantify behavior, emotion, and sleep",
Obesity 18(6): 1270-1272, 2010] stated that, " . . . technological
devices that gather objective data have reasonably high compliance
rates, and may inform measurement of treatment outcomes in
adolescents who are obese". Mobile devices, especially
"smartphones" can enhance eEMA with objective measures made by
sensors such as time, location, speed, acceleration, temperature,
light level, and proximity to locations of interest or electronic
devices (including other smartphones) carried by people with a
relation to a participant. These additional objective measures can
be attached to a particular instance of eEMA (such as a Survey) to
provide context. Or, the sensor measurements can be made
continuously and the eEMA coordinated with the concurrent
record.
[0008] There are indications that interventions for weight
management, addictive and other deleterious behaviors can provide
sustained effectiveness. Multiple factors and behaviors need to be
targeted together with timely, personally tailored interventions
supported by actionable information. The interventions need to be
maintained outside of clinic or group settings and respond to the
changing needs of participants. Individualized interventions on
multiple behaviors are most important with individuals who are
refractory managing their weight (US Dept of Health and Human
Services reports). With their rich User Interface and increasingly
capable processors smartphones are able to not only gather eEMA
information enhanced with objective context they can also bring
immediately useful information back to participants in studies or
clinical treatments.
[0009] The invention could be used in any situation in which a
person or entity wishes to collect data from and on individuals who
have agreed to provide that data. For example, this invention could
be used by market researchers wishing to collect data from
potential users of a new product.
OBJECTS OF THE INVENTION
[0010] This invention allows a Researcher, to: [0011] create and
modify Surveys and Items for individual Participants or groups of
Participants: [0012] create Prompts and Annunciations that can be
independent or associated with the Surveys; [0013] associate the
Annunciations and presentation of the Items with Triggers related
to predetermined conditions; [0014] deploy the Surveys to
Participant Devices; [0015] present the Surveys to the Participants
on demand or in response to Triggers and gather Participant
Responses; [0016] gather, organize and attach context to Prompts
and Participant Responses: [0017] return the Participant Responses
to a remote Server or database: [0018] organize and store the
Participant Responses and present them to the Researcher and/or
Participant or to predetermined algorithms for automated
actions.
BRIEF DESCRIPTION OF THE DRAWINGS
[0019] FIG. 1 is a block diagram of the system components and flow
of information.
[0020] FIG. 2 is a flow diagram showing the steps in the process to
create and deploy a Data Request to a Participant Device; collect,
store and upload data to a central Server Database; and extract,
view and analyze the collected data.
[0021] FIG. 3 is an example of a web page to create annunciations,
triggers or prompts.
[0022] FIG. 4 is an example of a web designer form to create Survey
questions.
[0023] FIG. 5 is an entity relationship diagram of the Server
Database tables and their relationship to each other.
[0024] FIG. 6 is an example of a Survey presentation on a
Participant Device.
[0025] FIG. 7 is an example of a Survey question with the branching
option.
[0026] FIG. 8 is a summary view of the dynamic Survey/Trigger
system.
GLOSSARY
[0027] Researcher--an investigator, clinician, other person or
entity desiring to collect information from or interact with one or
more Participants. [0028] Participant--a patient or other person,
often enrolled in a research study, with whom a Researcher wishes
to interact to provide and gather information. [0029] Participant
Device--computing device, typically having a display with touch or
keyboard input, such as a personal computer or mobile device (e.g.,
smartphone or personal digital assistant). [0030] App or
Application--software program automatically performing singular or
multiple related tasks. [0031] Server--a computer, or assemblage of
computers, that link other computers or electronic devices
together, providing services across a network such as the internet.
[0032] Web Server--a computer program running on a server that
delivers (serves) and receives content over the internet. [0033]
Database Server--a computer program that provides database services
to other computing devices, such as personal computers or
Participant Devices. [0034] Data Request--request for data from an
application operating on a device separate from the device
receiving the request. [0035] Survey--a data request or other
assemblage of one or more Items to be presented according to
metadata and other characteristics on a Participant Device [0036]
Item--a Prompt, and associated answers if the Prompt is in the form
of a question, presented to a Participant as part of a Survey
[0037] User Interface--a part of an Application that controls a
display for a Researcher or the Participant that allows the
Researcher or Participant to interact with the system [0038]
Metadata--data that provides context or additional information
about other data and/or its means of presentation. [0039] php
script--a web-based Application that is executed by a Web Server
[0040] XML--extensible markup language is a set of rules for
encoding documents electronically [0041] Transport file--a
structured file, such as XML or Json, containing one or more
Surveys to facilitate download to a Participant device. [0042]
Download--the transfer of a Transport file or other data from a
Server to a Participant device [0043] Upload--the transfer of
Survey information and other data from a Participant device to a
Server [0044] PDA--personal digital assistant [0045] Compile--the
process of creating an Application from source code [0046]
Json--javascript object notation is a format for encoding data or
code electronically [0047] AJAX--asynchronous javascript with XML
is a method to create client based interactive web applications
[0048] Buddy Box--a radio transponder to notify a Participant
Device it is at a specific location. [0049] Geolocation--absolute
position obtained from GPS (a satellite-based navigation system
consisting of a network of orbiting satellites), radio-frequency
communication with cellular towers or other means [0050]
Proximity--location or distance relative to a geolocation, person
or object. [0051] Ping--a computer network administration utility
used to test the reachability of a host on an Internet Protocol
(IP) network and to measure the round-trip time for messages sent
from the originating host to a destination computer [0052]
Annunciation--a sound, vibration, light or other means of notifying
a participant of a prompt. [0053] Trigger--one or more
pre-determined conditions that cause a Survey to be presented on a
Participant Device. [0054] Prompt--information presented to a
participant, including but not limited to, a statement,
recommendation, command or question. [0055] Participant
Response--information provided by a Participant through a
Participant Device. [0056] Context Data--data that describes the
content of the data including but not limited to time and
location.
DETAILED DESCRIPTION OF THE INVENTION
System Overview
[0057] The present invention is a system to allow a Researcher
(101) to easily and dynamically manage the collection and
synchronization of data of various types from one or more
Participants (111) via a Participant Device (108), then to process,
validate and review the returned data. For ease of understanding,
examples in this description employ terminology from
Javascript.RTM. for Android.RTM. on participant devices and on
operations on a server use SQLite.RTM. and php script. One skilled
in the art will be familiar with essentially equivalent operations
and terminology used on other systems.
[0058] FIG. 1 is a block diagram of one implementation of such a
system. In FIG. 1 the boxes are elements of the system and arrows
indicate information flow between elements.
[0059] The Server Database (107) is a relational database such as
provided by MySQL or Oracle. It stores data about the Participants
and the study being conducted by the Researcher, Metadata about the
data to be collected, and the data collected. In our
implementation, the data is stored in tables that are in 3.sup.rd
normal form and data integrity is enforced with foreign keys. An
example of tables and structure for the Server Database is shown in
FIG. 5. This example is for a study using Smartphones as the
Participant Devices and collecting only Participant Response data.
The Server Database will be customized, expanded or contracted for
each study, depending on the data to be collected. Examples of data
that could be collected include physical or physiologic sensor
signals, Participant Responses, images, GPS data and audio notes or
voice annotations by the Participant. The tables in FIG. 5 are:
[0060] Study (501)--master table holding the organization and
Researchers responsible for studies. [0061] Survey (502)--a child
of the Study table dedicated to a unique study. [0062] Questions
(503)--a child of the Survey table that holds unique questions for
a study. [0063] QuestionType (504)--a table holding available types
of questions that enforces referential integrity to the Question
table. [0064] Options (505)--a child of the Question table that
holds multiple options choices for questions. [0065] CellPhoneUsers
(506)--a table that holds the unique ID, such as a Participant
Device IMEI, that is tied to the Survey table via a foreign key.
[0066] Answers (508)--a table that holds all the answers that
Participants answered on their Participant Device and uploaded to
the remote Server [0067] Alerts (509)--a table that holds all the
alerts that will be activated on a Participant Device when a
trigger has been activated. A Researcher interfaces with the system
via web pages served up by the Web Server (102) running the Web App
(103). The Web App allows the Researcher to: [0068] Create a Data
Request, for example, create Surveys, Triggers, Prompts or
Annunciations. Triggers and Prompts allow a Researcher to initiate
an interaction with a Participant, start or stop a software routine
or request specific information recorded by the Participant Device.
[0069] Enter Participant data [0070] Extract and view Participant
Responses and context data related to Participant Responses or
items.
[0071] The Web App interfaces with the Server Database (107) to
store data entered by the Researcher and to extract data for
viewing or analysis by the Researcher. The Web App also will create
transport files based on Researcher input to create a Data Request.
The transport files (104) serve as a mechanism to easily transfer a
Data Request to Participant Devices. This is described in more
detail later.
[0072] Each Participant carries a Participant Device running a
Participant Device App (109) provided by the Researcher. The
Participant Device App interfaces with the Participant via a User
Interface that can present Annunciations and Items setup by the
Researcher. The Participant Device App creates a Participant Device
Database (110), which may be a relational database, to store data
collected by the Participant Device or entered Participant
Responses and to store information about the Data Requests from the
Researcher. The Participant Device App interfaces with the Server
App (105) to download new Data Requests in the form of the
transport files created by the Web App and to upload the data
collected from the Participant Device or entered by the Participant
to the Server Database.
[0073] The Web App, Server App, and Server Database may be located
on a single Server or virtual Server or may be distributed across
multiple Servers.
Detailed Description of Process Implementation
Create Data Request (201)
[0074] The web-based portion of the process has three major
functions:
[0075] 1. The creation of a Data Request via input from a web page
(202)
[0076] 2. Data Request data written to Server Database (203)
[0077] 3. Creation of an transport file (204)
A Data Request is created by presenting a web page that prompts the
Researcher to fill in data. The Web Application Data Request Form
will have two main sections comprising a Trigger scheduler and a
Survey designer.
Trigger Scheduler (FIG. 3)
[0078] A scheduled Trigger will result in the Participant Device
App performing an action initiated by the occurrence of an event,
the Trigger event. Through the Web App, a Researcher will be able
to setup and configure one or multiple Triggers to be scheduled on
one or multiple Participant Devices. The Trigger types can include
but are not be limited to: [0079] time of day [0080] activity based
on internal or external accelerometer data [0081] location based
upon GPS position [0082] location based upon GPS position of
friends [0083] answers to Survey questions The actions can include
but are not limited to: [0084] prompt the Participant to take some
action (such as view or respond to a Survey, take a picture and
store the image, provide voice or text annotation for other data)
[0085] record data from sensors associated with the Participant
Device (such as location transceiver, accelerometer, gyroscope,
light, temperature, or through local area communication)
[0086] The Triggers will have additional options that specify the
details of how the Trigger will be executed (301). When the
researcher completes the Trigger scheduling process, the data is
written to the Server Database (203) via a php script and a
transport file (204) (an XML example is displayed in the data
transfer section below) is created by a php script that contains
tags and attributes that describe the Metadata and the underlying
data. The transport file is stored in a directory on the Server
that is accessible to the Participant Device. An alternative to the
creation of a file would be to create an formatted data stream
instead of a file. This would eliminate the need to manage the
deletion of files after the data is imported into the Participant
Device database.
[0087] The Participant Device Application includes logic to monitor
changes to the Server Database (107) SystemUpdates table and set a
change flag when changes occur. The transport file is downloaded to
the Participant Device and the new Trigger schedule is loaded into
a local relational database (207).
Survey Designer (FIG. 4)
[0088] The Data Request Form also stores and retrieves data from
the Server Database (107) that allows for the management of
multiple Surveys. The Survey designer is a collection of files and
database tables for managing Surveys that encompass a cycle of data
and programming scripts to act on that data and display it and
scripts that collect and store changes to the data and finally
notify Participant Devices of the change. Surveys are prepared for
deployment from tables in the Survey Database and may comprise:
[0089] survey name [0090] id tag to uniquely identify itself [0091]
Researcher [0092] Valid date/time ranges for Presentation [0093]
Display characteristics (e.g., font or color) Surveys are a
collection of Items pointing to a single Survey in a parent-child
relationship where the Survey is the parent and the Items are the
children. The Question table contains the following columns: [0094]
id tag to uniquely identify itself [0095] the text of the question
[0096] type of question [0097] id of parent Survey All questions
are assigned a question type and the list of valid question types
is stored in a table called QuestionType (504). This table is
linked to the Question table and all questions must contain a
question type contained in the QuestionType table. The table
contains the following columns: [0098] id to identify a question
type [0099] description that further describes the question type
The QuestionType table holds values that describe the type of
Participant Response expected in answer to a question, these
include: [0100] Text [0101] Single choice [0102] Multiple choice
[0103] Date/time [0104] Body weight or other numeric [0105] Record
voice or sound [0106] Photo or image
[0107] When Participants are presented with questions with expected
form of answers, including the single choice, multiple choice, text
input, numeric input, image capture and voice record. For single
choice responses the answers may be conveniently presented as radio
buttons. Checkboxes are similarly convenient for multiple choice
responses.
[0108] The data stored in the preceding tables needs to be
displayed on a web page so the surveys can be created and modified.
The first step for processing a Survey is to read the database with
a programming script. Surveys are first presented to the Researcher
as a list on a web page by calling a php script Ajax Test to
retrieve a list of Surveys and present it on the web page.
[0109] From this point the Researcher will be able to manage Survey
questions through controls on the Survey designer component of the
Data Request Form (FIG. 4). Managing survey questions is divided
into five areas: [0110] 1. Adding questions. To add a question, the
Researcher types the question into the question textbox (401). They
will then choose the form of the question by clicking on the
corresponding radio button (402). If the question is a single or
multiple choice type question, the choice options can be created by
clicking on the add question option and typing the option text into
the text box that appears (403). If the Researcher decides this new
option is not needed, it can be removed by selecting the remove
option button. The process for saving the question and possible
options is to first call an AJAX post function in javascript that
collects the entered data and passes it to a php script. The php
script will extract the data and load it into a local array. It
will then write the data into the appropriate tables and return a
status flag reflecting the success of failure of the operation.
[0111] 2. Deleting questions. Existing questions can be deleted by
clicking on a button placed next to all existing questions (404).
The process for deleting a question is accomplished by calling and
AJAX post function in javascript that passes the id of the question
to a php script that runs an SQL query to delete the question which
in turn deletes any options by using a foreign key command, cascade
on delete. [0112] 3. Viewing existing options. Existing question
options can be viewed by clicking on the options button next to it
(405 & 406). The click event calls a javascript function that
loads the options from the Server Database using Ajax programming
techniques. Ajax is used for displaying options dynamically, and it
will eliminate the need to refresh the entire page when only a
small part of the Survey is being modified. [0113] 4. Ordering
Questions. Questions can be reordered by clicking and dragging
questions higher or lower until they are in the order desired. The
reordering is implemented using Javascript and php sort functions.
Survey design attributes such as background color or font can also
be modified (407 and 408). [0114] 5. Branching. The Survey software
is capable of branching to multiple questions based upon the answer
the participant chooses. Questions have a branching attribute which
points to a branching table that changes the order of the questions
and ensures the Survey returns to correct subsequent Survey
question. Branching in the Application would take the following
steps. [0115] a) Researcher selects a question that would branch
(701). [0116] b) Options of the branching questions would be
assigned a destination question (702). [0117] c) Question set as a
destination question would be tagged as a destination question
(703). [0118] d) Logic in Application would ensure question tagged
as destination question proceeds to the next question properly
(704).
Commit Request Form Data to Database (203)
[0119] The data from the Request Form is written to the Server
Database tables that have been designed along relational database
rules. Writing the data to a Server Database instead of directly
writing an XML file allows the data from the Request Form to be
recalled and modified if needed. To save the Survey, the Researcher
clicks the Submit button (409) and a javascript function called
CreateXML collects data entered into the controls on the web page
and passes them down to a php script called SurveySubmit.php. This
php script commits all the data to the Survey, Question and
QuestionOption tables.
Create Transport File (204)
[0120] The transport file is created by reading the Server Database
and writing the data specified in the Request Form in XML format, A
script called surveySubmit.php reads the Survey, Question and
QuestionType tables and creates an XML file like the example below.
The created XML files will be based upon the unique identifier that
is assigned to each Participant Device. Another alternative to the
creation of a file would be to create an XML data stream instead of
a file. This would eliminate the need to manage the deletion of
files after the data is imported into the Participant Device
database.
Transfer Data (205)
[0121] The process to transfer the transport file from the Server
to the Participant Device is initiated from the Participant Device.
Each Participant Device has a unique identifier that is stored in a
table with other useful details about the Participant Device that
is sent to the Server App to identify which transport file to
Download. The data transfer mechanism will be a network protocol
initiated from the Participant Device that will pull the Survey
transport file down from the Server (206). A table called
SystemUpdates holds a list of all updates to system files like the
Survey XML file. The Download process will use the HTTP protocol to
Download the transport file. The transport file, based on XML, will
contain Metadata inserted into XML attributes alongside the actual
questions. Another alternative to initiate the Download of the
transport file would be to use the Android Cloud to Device
messaging system. This would involve registering the Web Server
with Google and creating a series of messages concerning transport
file creation. The Participant Device App would then be modified to
monitor Android Broadcast messages from the Android operating
system. The Participant Device App would receive a message whenever
the Server Database SystemUpdates table changes and could then
start the process to Download the Survey XML data.
Example of a Survey Transport Table Based on XML
TABLE-US-00001 [0122]<?XML version="1.0"?> <root>
<Survey ID=`1` SurveyName=`Meals` color=`White` >
<Question ID=`57` Question=`Where did you eat dinner`
QuestionOrder=`1` > <Option QuestionID=`57` OptionOrder=`1`
Description=`at home`/> <Option QuestionID=`57`
OptionOrder=`2` Description=`at school`/> <Option
QuestionID=`57` OptionOrder=`3` Description=`at a restaurant`/>
</Question> <Question ID=`159` Question=`How would you
rate your weight` QuestionOrder=`2` > <Option
QuestionID=`159` OptionOrder=`1` Description=`1. Good`/>
<Option QuestionID=`159` OptionOrder=`2` Description=`5. Too
Heavy`/> <Option QuestionID=`159` OptionOrder=`3`
Description=`10. Too light`/> </Question> <Question
ID=`161` Question=`What meals did you have today?`
QuestionOrder=`3` > <Option QuestionID=`161` OptionOrder=`1`
Description=`1. breakfast`/> <Option QuestionID=`161`
OptionOrder=`2` Description=`2. lunch`/> <Option
QuestionID=`161` OptionOrder=`3` Description=`3. dinner`/>
<Option QuestionID=`161` OptionOrder=`4` Description=`4. at
least one snack`/> </Question> <Question ID=`160`
Question=`What is your awareness of fats in foods`
QuestionOrder=`4` > <Option QuestionID=`160` OptionOrder=`1`
Description=`1. Not aware of it at all`/> <Option
QuestionID=`160` OptionOrder=`2` Description=`2. Somewhat
aware`/> <Option QuestionID=`160` OptionOrder=`3`
Description=`3. Reasonably aware`/> <Option QuestionID=`160`
OptionOrder=`4` Description=`4. Acutely aware`/>
</Question> <Question ID=`155` Question=`Who are you
with?` QuestionOrder=`5` > </Question> </Survey>
</root>
[0123] The transport file will be downloaded every time the
Participant Device App contacts the Server and determines updates
have been made to the Triggers and Surveys assigned to that
Participant Device. This file contains the instructions for the
creation of Triggers and Prompts on the Participant Device.
[0124] Example of transport alert manager file:
TABLE-US-00002 <root> <Items> <TPAItem ID=`103`
TriggerName=`Test 4` TriggerType=`3` SurveyID=`5`/> <TPAItem
ID=`104` TriggerName=`Post Meal 1` TriggerType=`3`
SurveyID=`0`/> <TPAItem ID=`105` TriggerName=`Post Meal 2`
TriggerType=`3` SurveyID=`2`/> <TPAItem ID=`106`
TriggerName=`Test` TriggerType=`2` SurveyID=`1`/> <TPAItem
ID=`115` TriggerName=`Random Morning` SurveyID=`1`/> <TPAItem
ID=`116` TriggerName=`Final 1` TriggerType=`3` SurveyID=`0`/>
</Items> <Attributes> <Attribute_Trig_TimeBased
ItemID = `103` Start = `09:00:00` End = `12:00:00`/>
<Attribute_Trig_TimeBased ItemID = `104`Start = `00:00:00` End =
`00:00:00`/> <Attribute_Trig_TimeBased ItemID = `105` Start =
`00:00:00` End = `00:00:00`/> <Attribute_Trig_TimeBased
ItemID = `106` TriggerTime = `06:30:00` />
<Attribute_Trig_TimeBased ItemID = `115` Start = `15:00:00` End
= `18:00:00`/> <Attribute_Trig_TimeBased ItemID = `116` Start
= `00:00:00` End = `00:00:00`/> </Attributes>
</root>
Collect Data (208)
[0125] Triggers: The Trigger management logic of the Participant
Device App has two components: Trigger Listeners and Trigger
Handlers. When the transport file is downloaded, the information of
the active Triggers and the corresponding actions are put into the
Participant Device Database (207), and an Trigger configuration
process is run. During the Trigger configuration process, active
Triggers are registered with the Trigger Listeners. The role of the
Trigger Listener is to detect or monitor for Trigger events and at
that time send a message to the Trigger Handler that the event has
transpired. An example of this is the location based trigger event,
in which if a location based Trigger type has been registered, the
Trigger Listener polls the location of the device periodically and
compares to a registered location and radius. If the current
location moves within the distance to the registered location, the
Trigger Listener notifies the Trigger Handler that the location
based event has transpired.
[0126] The Trigger Handler receives a notification that the Trigger
event has occurred and through the Participant Device Database
looks up what action should be taken based on the scheduled
Triggers. The Trigger Handler then runs the logic to give the
Annunciation and take the appropriate action. An example of this is
the action notifying the Participant to take a Survey triggered by
the location of the Participant Device (209).
Collection of Survey Data.
[0127] The screen that displays the Survey questions is not a
standard static screen that is normally displayed in Participant
Devices. The Survey screen for the Mobile Application starts out as
a blank screen. The typical Participant Device screen (a graphical
User Interface screen) is based upon an XML file that is created
before the Application is compiled and any change to the form
requires a compiled Application. The concept of a graphical User
Interface created by a developer during the design phase of an
Application has the advantage of reduced complexity but this
approach results in additional development time and cost when
specifications change. With the dynamic Participant Device screen,
a java function retrieves Metadata information from the Survey
table in the Participant Device Database and creates the basic
design of the screen (FIG. 6).
[0128] The background color, font and border factors are committed
to the screen by reading the values taken from a Participant Device
Database table. It then establishes variables as counters to track
factors such as current question, current session, etc. Two buttons
are displayed on the screen, named Previous and Next and activated
in a prebuilt frameset as a first step in the building of the
screen. These two buttons allow the Participant to navigate through
the Survey (601). Basic screen setup factors such as fonts, colors
and borders are set based on data read from the database (603).
When this has been completed, the first question of the Survey is
pulled from the database. The Survey question is then displayed
(602) below the navigation buttons and the program then determines
the type of question and a function appends an additional view
based on the type of question. (604). There are currently five
types of questions: [0129] Single choice questions displayed as a
list of radio buttons. For single choice question, a series of
radio button controls are created based on the question options and
the options in turn are added to a radio group view and this radio
group is appended to the screen. Each radio button has an
OnClickListener event attached to it so the radio button will
respond to the participant clicking the button. [0130] Multiple
choice questions displayed as a list of check boxes. For multiple
choice questions, a series of checkboxes are created based on the
question options and each checkbox is added to a view. Each
checkbox has an OnClickListener event attached to it so the
checkbox will respond to the participant clicking the checkbox.
[0131] Questions requiring text and displayed as a text box. The
text question has an EditText control appended to the screen and
the EditText control has an OnClickListener event attached to it.
[0132] Date/time related questions displayed as a date time
control. The Date/Time question has a TimePicker popup dialog
control attached to it. This control sets it's date and time to the
current date and time. Within the TimePicker control, an event
function called onTimeSet captures the participant date/time
selection. [0133] Questions requiring a voice recording. The voice
recording screen is created by adding a record image button and a
stop recording image button. The two buttons have a OnClickListener
event attached and the click events will manage a MediaRecorder
control.
[0134] All question items require an event that captures
Participant interaction so the Application will know when an item
has been selected. An individual listener event is assigned to each
detail that will mark all selected items. With the question on the
screen, the Application waits for the Participant to click the NEXT
button (602). The selected values for the question are collected
and written to a table in the Participant Device Database with the
exception of voice recording. Voice recordings are saved as
separate files with the name of the file describing the participant
and date of recording (210). The participant can also choose the
Previous button provided they are past the first question (601).
The function that manages the previous button will remove any
answers from the previous question and then load the appropriate
question. When all of the Survey questions are answered, a function
will group the answers as a unique event by the use of a session
identifier, capture timestamps to measure Participant performance
while answering questions then write the answers to the Answers
table in the Participant Device database (605).
Transfer Data to Server Database (211)
[0135] The transfer of captured Participant Device data will
involve pulling data out of the Participant Device Database and
writing it to a file for transport. This process will be
accomplished by using SQL (Structured Query Language) to create an
output file. The naming of the file will help to identify the
source. The filename will contain the user id and a date timestamp
and a counter to give the file a unique identifier. The file can be
comma delimited, straight text of a binary file, depending on how
the Server App (105) is designed to process the file. The amount
and type of data to transfer will be based upon settings in the
Participant Device App. Once the file has been created, the
Participant Device will invoke the Server App (105) to pull the
file up and process it into the Database Server (106) using the
HTTP post protocol.
[0136] An alternative method to uploading Participant Device data
as a file is to read the Participant Device database and store the
data in an array as key/pair values. The data is uploaded using the
HTTP post protocol as each record is read from the database.
Validation of Data (212)
[0137] Uploaded data will be reviewed by the Server App to ensure
it meets any validation requirements set on the Create Data Request
Form (201). Data will also be validated by use of foreign keys on
the tables that ensure data integrity. Any resulting errors will be
captured, stored and then displayed on an exception web page.
Review/Analyze Data (213)
[0138] With the data loaded into the Database Server, the Server
App will have functions that allow the Researcher a view into the
uploaded data by means of reports and scripts. A web page will be
created that displays the researcher name and institution. The page
will have a calendar control so the researcher can view one or more
days' worth of Survey answers. A list box will contain the names of
the participants that have uploaded data. The answer data will be
pulled from the answer table and joined with the question data and
a timestamp through an SQL query. Further reports can be
constructed as needed. The SQL query will be constructed in a php
script that is called by the web page using AJAX programming
techniques and will require a javascript function to populate the
page.
Alternative Methods for Creating Surveys on Participant Devices
[0139] A Survey may be created for a Participant Device by using
programming tools provided by the Participant Device's software
development kit (SDK). The User Interface is designed in an
integrated development environment and compiled into the
Application when desired. Logic for displaying questions and saving
answers is written specifically for the previously designed User
Interface. Multiple surveys will require the creation of additional
User Interfaces and logic to populate and retrieve data from them.
The entire Application is compiled and loaded into the Participant
Device. This method is effective but requires a programmer to
create the User Interface and any ensuing changes.
[0140] Another method of using a Survey on a Participant Device is
to use a Survey based upon a web page and running that web page
from a browser contained in the Participant Device. This allows for
an easily modified Survey but with the disadvantage of complete
failure if there is no data connection.
[0141] PDA devices are capable of displaying and recording Survey
information but typically do not have wireless connectivity.
Surveys are designed on a personal computer with a custom
Application that creates a Survey file. A Survey Application is
loaded onto the PDA with the Survey file. The Survey Application
reads the Survey file and the answers are copied off the PDA.
Because most PDA do not have wireless connectivity, the PDA must be
physically attached to the personal computer to copy the Survey
file and the resulting answers.
* * * * *