Sonde Health API Platform Documentation
M3 Android Edge Test Cases
Overview:
The M3 Checklist is a 27-question evaluation that screens for symptoms of anxiety disorders, bipolar disorder, depression, and post-traumatic stress disorder (PTSD). This assessment is nationally recognized, peer-reviewed, and clinically validated. Its purpose is to identify potential mental health concerns related to mood and anxiety.
The questions are divided into 4 subgroups along with the main M3 score; the score is calculated as follows:
For 29 questionnaire sets:
Questions 1-9 Depression (includes major depression and dysthymia) - Take a higher score for questionnaires 6 and 7. Also, take a higher score on questionnaires 8 and 9.
Questions 10-21 Anxiety (includes panic disorder, agoraphobia, OCD, PTSD, and social phobia)
Questions 15-18 PTSD
Questions 22-25 Bipolar Disorder (includes type 1 and type 2, current and past).
Variant | Description | Labels and Score |
---|---|---|
v1 | Mental fitness is a category of health/wellness that encompasses both psychiatric aspects, including depressive symptoms (e.g., pleasure or enjoyment, feelings of hope or lack thereof, altered behavior patterns) and also (mental) fatigue. |
|
Steps to integrate M3:
There are two steps for integrating the M3
Get Questionnaire
Get Score of Questionnaire
Step 1 - Get Questionnaire
To get the questionnaire from Sonde EDGE SDK call the below API
getM3Questionnaire requires application context
getM3Questionnaire returns M3Result
If M3Result is successful you will get “M3Result.QuestionnaireSuccess“.
M3Result.QuestionnaireSuccess consists of “m3Questionnaire“.
M3Questionnaire consists of List<Questionnaire>
The questionnaire consists of a header, text & options.
The option is a List<Option> consists of text & answerIndex.
you can access the question data as shown in the following code snippet
Â
val m3QuestionnaireResult =
SondeEdgeSdk.getM3Questionnaire(context)
if (m3QuestionnaireResult is M3Result.QuestionnaireSuccess) {
val m3QuestionOne = m3QuestionnaireResult.m3Questionnaire.m3questions[0].text
val m3QuestionOneHeader = m3QuestionnaireResult.m3Questionnaire.m3questions[0].header
val m3QuestionOneOptions = m3QuestionnaireResult.m3Questionnaire.m3questions[0].options[0]
val m3ChoiceOneText = m3QuestionOneOptions.text
val m3ChoiceOneAnswerIndex = m3QuestionOneOptions.answerIndex
} else if (m3QuestionnaireResult is M3Result.Failure) {
// log error
}
Â
Upon selection of an answer by the user add the answerIndex of that choice into the m3Choice list
make sure to add the correct answerIndex provided by Sonde EDGE SDK for that particular choice
Example :
val m3Choice = mutableListOf<Int>()
m3Choice.add(m3ChoiceOneAnswerIndex)
Â
Step 2 - Get Score
To get the M3 score, call “getM3Evaluation“ method with the following arguments
context - application context
MetaData(gender: USER_GENDER, yearOfBirth: USER_BIRTH_YEAR,partnerId: Partner_ID_IF_ANY),
M3Choices(m3Choice)
//m3Choice is a list of int which contains answerIndex of each question according to choice in a correct sequence
val m3EvaluationResult = SondeEdgeSdk.getM3Evaluation(
context,
MetaData(gender, birthyear, partnerIdentifier),
M3Choices(m3Choice)
)
“getM3Evaluation“ returns M3Result.
If M3Result is successful you will get “M3Result.EvaluationSuccess“. M3Result.EvaluationSuccess consists of M3Evaluation
M3Evaluation consists of the following parameters
finalScore: Int
severity: String
subScore: List<M3SubScore>
questionResponse: List<QuestionResponse>
isSuicidalIdeation: Boolean
isFunctionalImpairment: Boolean
M3SubScore consists of
disorderName: String
score: Int
severity: String
QuestionResponse: is list of choices provided to Sonde Edge SDK.
You can access the results of M3 as shown in below code snippet.
The score object consists of 6 values
finalScore : This score is calculated based on the user’s response to the respective questions.
subScore : It contains 3 values score, disordeName, and severity. It contains 4 disorder types Depression, Anxiety, Bipolar, and PTSD.
questionResponses: this is the response the user has provided for the respective question
isSucidalIdeation : The flag is set as true or false on the basis of the answers provided.
isFunctionalImpairment: The flag is set to true or false on the basis of the answers provided.
severity: This value is divided into unlikely, low, medium, and high, which indicates the intensity.
Sonde Health