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

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.

  • The M3 score ranges from 0-108

    • Greater than 32 is
      flagged as High

    • Functional impairment is 1 if any of the five
      questions (Q5 & Q24-27) are positive

  • Below are 4 clinical conditions

    • Depression

      • 0-6 => None

      • 7-12 => Mild

      • 13-19 => Mod

      • 20-28 => High

    • Bipolar

      • 0-3 => None

      • 4-7 => Mild

      • 8-11 => Mod

      • 12-16 => High

    • Anxiety

      • 0-10 => None

      • 11-21 => Mild

      • 22-33 => Mod

      • 34-48 => High

    • PTSD

      • 0-3 => None

      • 4-7 => Mild

      • 8-11 => Mod

      • 12-16 => High

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