Open Source Repository of Code to Parse Data Generated by Moyo App
The data collected by the AMoSS mobile app is information about activity, location context, and social networking.
Storage path in s3 will be "amoss-mhealth/study/10-digit-id/startOfWeek millis/data_file" the subfolder will be created every week set by whenever a users phone passing the threshold of monday at 10am for whatever timezone they are currently in
- File Name: unix_time_stamp with 1 digit dropped with .acc extension (example: 495597707.acc)
- Header: "time,x,y,z"
- File Name: offset on location 20 degress on long and lat .loc extension (example: location.loc) will need to change to 495597707.loc because sub folders are change to weekly every monday at 10am instead of daily
- Header: "time,latitude,longitude"
- File Name: .wt extension (example: weight.wt) for same reason as location file will change to 495597707.weight
- Header: "weight/lbs,date"
- File Name: will updated every time a user charge to phone .txt extension (example: charging.txt) for same reason as location file will change to 495597707.charging
- Header: "is_charging,time"
- File Name: counts how many time a message has words from a category in liwc .sms extension (example: socact.sms) for same reason as location file will change to 495597707.sms
- Header: "category/meta=value"
- Key Info: for key "type" the values are
Value | Meaning |
---|---|
0 | type all |
1 | type inbox |
2 | type sent |
3 | type draft |
4 | type outbox |
5 | type failed |
6 | type queued |
- File Name: .call extension (example: socact_call.call) for same reason as location file will change to 495597707.call
- Header: "hashed-ph-number,call-type,call-date,call-duration"
- Call duration is in seconds
- File Name: make requests to google api's for location context information such as restaurants and whatever establishments are around .csv extension (example: Places.csv) for same reason as location file will change to 495597707.places
- Header: "Timestamp,Name,Address,Estab.#,Likelihood"
- File Name: make requests to google api's for weather information .csv extension (example: Weather.csv) for same reason as location file will change to 495597707.weather
- Header: "Timestamp,Temperature,Feels Like,Dew,Humidity,Cond#"
File extensions | type |
---|---|
mz | mood zoom survey |
ms | mood swipe survey |
acc | accelerometer |
phq | phq9 survey |
sms | default sms app data |
call | call data |
weather | google api weather |
places | google api places |
weight | participants inputted weight |
charge | every time participant plugs in or out phone |
dismiss | when participant dismissed a survey notification |
tz | records changes in timezone |
kccq | kccq survey |
Filename e.g. 495597707.mz
Header Values |
Question | Answer |
---|---|---|
1 | Anxious | 1-7 low to high |
2 | Elated | 1-7 low to high |
3 | Sad | 1-7 low to high |
4 | Angry | 1-7 low to high |
5 | Irritable | 1-7 low to high |
6 | Energetic | 1-7 low to high |
7 | What was the main cause of your stress today? | 0-6 |
Mood Zoom Question 6 # |
Answer |
---|---|
0 | no answer |
1 | health |
2 | work/study |
3 | money |
4 | relationship |
5 | family |
6 | other |
Example File: |
0,1,2,3,4,5,6
1,1,1,1,2,3,4
If multiple answers or chosen input will have multiple numbers e.g. 123
Filename e.g. 495597707.ms
Mood Swipe Key | MoodSwipe Value |
---|---|
1 | angry |
2 | sad |
3 | neutral |
4 | happy |
5 | excited |
Example File:
Mood
3
###PHQ9
Filename e.g. 495597707.phq
Question Key | Question Value |
---|---|
0 | Little interest or pleasure in doing things |
1 | Feeling down, depressed, or hopeless |
2 | Trouble falling or staying asleep, or sleeping too much |
3 | Feeling tired or having little energy |
4 | Poor appetite or overeating |
5 | Feeling bad about yourself or that you are a failure or have let yourself or your family down |
6 | Trouble concentrating on things, such as reading the newspaper or watching television |
7 | Moving or speaking so slowly that other people could have noticed? Or the opposite — being so fidgety or restless that you have been moving around a lot more than usual |
8 | Thoughts that you would be better off dead or of hurting yourself in some way |
Answer Key | Answer Value |
---|---|
0 | Not at all |
1 | Several days |
2 | More than half the days |
3 | Nearly every day |
Example File:
Question,Answer
0,1
1,2
2,3
3,0
4,0
5,0
6,2
7,1
8,1
###KCCQ
Filename e.g. 495597707.kccq
Question Key | Question Value |
---|---|
1 | Heart failure affects different people in different ways. Some feel shortness of breath while others feel fatigue. Please indicate how much you are limited by heart failure (shortness of breath or fatigue) in your ability to do the following activities over the past 2 weeks. |
2 | Over the past 2 weeks, how many times did you have swelling in your feet, ankles or legs when you woke up in the morning? |
3 | Over the past 2 weeks, on average, how many times has fatigue limited your ability to do what you wanted? |
4 | Over the past 2 weeks, on average, how many times has shortness of breath limited your ability to do what you wanted? |
5 | Over the past 2 weeks, on average, how many times have you been forced to sleep sitting up in a chair or with at least 3 pillows to prop you up because of shortness of breath? |
6 | Over the past 2 weeks, how much has your heart failure limited your enjoyment of life? |
7 | If you had to spend the rest of your life with your heart failure the way it is right now, how would you feel about this? |
8 | How much does your heart failure affect your lifestyle? Please indicate how your heart failure may have limited your participation in the following activities over the past 2 weeks. |
Answer Key Q1 | Answer Value Q1 |
---|---|
1 | Extremely Limited |
2 | Quite a bit Limited |
3 | Moderately Limited |
4 | Slightly Limited |
5 | Not at all Limited |
6 | Limited for other reasons or did not do the activity |
Answer Key Q2 | Answer Value Q2 |
---|---|
1 | Every Morning |
2 | 3 or more times per week but not every day |
3 | 1-2 times per week |
4 | Less than once a week |
5 | Never over the past 2 weeks |
Answer Key Q3-4 | Answer Value Q3-4 |
---|---|
1 | All of the time |
2 | Severak times per day |
3 | At least once a day |
4 | 3 or more times per week but not every day |
5 | 1-2 times per week |
6 | Less than once a week |
7 | Never over the past 2 weeks |
Answer Key Q5 | Answer Value Q5 |
---|---|
1 | Every night |
2 | 3 or more times per week but not every day |
3 | 1-2 times per week |
4 | Less than once a week |
5 | Never over the past 2 weeks |
Answer Key Q6 | Answer Value Q6 |
---|---|
1 | Every night |
2 | 3 or more times per week but not every day |
3 | 1-2 times per week |
4 | Less than once a week |
5 | Never over the past 2 weeks |
Answer Key Q7 | Answer Value Q7 |
---|---|
1 | Not at all satisfied |
2 | Mostly dissatisfied |
3 | Somewhat satisfied |
4 | Mostly satisfied |
5 | Completed satisfied |
Answer Key Q8 | Answer Value Q8 |
---|---|
1 | Severly Limited |
2 | Limited Quite a bit |
3 | Moderately Limited |
4 | Slightly Limited |
5 | Did not limit at all |
6 | Does not apply or did not do for other reasons |
Example File:
1,134
2,2
3,3
4,5
5,5
6,4
7,2
8,511
Use pipeline_Moyo.m to load the files produced by the smartphone app into MATLAB environment. This function uses the functions inside "data_loading" folder and takes three inputs:
pathToData: Path of smartphone data files
pathToRepo: Path of OS Moyo repository
pathToSave: Path you prefer to save your files
Use the loadAcc.m (uses processaccel.py) function to load it, then accFiltAmoss.m to bandpass filter and then convertAccToEpochs_oakley.m to convert to counts.
More functions related to movement data can be found in the open source actigraphy toolbox:
https://github.com/cliffordlab/OS_Actigraphy_Toolbox
All EPIC FHIR EMR data collected are de-identified by filtering PHI before storing in the cloud. Documentation for data being collected can be found here: https://open.epic.com/Interface/FHIR
All data available from the Health API is categorized as different types of summary data. Push integrations receive this data directly from the Push notification POST body, but Ping/Pull integrations must call the Health API with requests signed with the Consumer Key (representing the partner) and the UAT (representing the user) via OAuth. The summary data should be archived by the partner, as the Health API only keeps user data for fifteen days from the upload date.
Documentation for Garmin's summary data types are availble for registered users. To access this please contact the developers.