NextSchoolNextSchool Data API

Adviser Screen (Care Module)

9-domain risk screening with talent/genius flags — list, stats, and nested latest record on Student

Adviser Screening

Adviser screening classifies each student across 9 risk domains (STUDY, HEALTH, FINANCIAL, SECURITY, DRUG, VIOLENCE, SEXUAL, GAME, ELECTRONIC), each with a NORMAL / RISK / PROBLEM state, plus talent/genius/activity flags. Both domain names and states return with Thai labels (nameText, stateText).

All queries require authentication and are school-scoped. The surface is read-only — this API exposes only screening reads. Screenings are captured through the care application.

Overall Classification

Every student resolves to one of these top-level values, computed from the combination of flags and domain states:

ValueRule
NOT_SCREENEDNo screening record exists for the student in scope
SPECIALisGenius is true
PROBLEMAny domain is in PROBLEM state
RISKAny domain is in RISK state (and no PROBLEM)
TALENTNo PROBLEM / RISK but isAcademicSpecial or isActivity
NORMALAll domains are NORMAL and no talent flags

List Students

Deduped per student (prefers the latest screened record when multiple semesters match).

query {
  adviserScreens(classroomId: 42, status: "problem", limit: 50) {
    studentId
    code
    title
    firstname
    lastname
    classroomName
    orderNumber
    screenId
    screenedAt
    overall
  }
}

Parameters

ParameterTypeDefaultDescription
academicYearIdIntactive yearScope to a specific academic year
semesterIdIntScope to a single semester (overrides academicYearId)
classroomIdIntFilter to one classroom
statusStringallspecial | talent | problem | risk | normal | not_screened | all
limitInt50Maximum rows
offsetInt0Skip rows

Aggregate Stats

Counts per-school, per-domain. Useful for dashboard tiles.

query {
  adviserScreenStats {
    totalSpecial
    totalNormal
    totalRisk
    totalProblem
    totalGenius
    totalAcademicSpecial
    totalActivitySpecial
    totalNotScreened
    domains {
      domain         # STUDY | HEALTH | FINANCIAL | …
      domainText     # "ด้านการเรียน" | "ด้านสุขภาพ" | …
      normal
      risk
      problem
    }
  }
}

Latest Screening (nested on Student)

query {
  student(id: 12345) {
    id
    fullName
    classroomName
    adviserScreen {
      id
      overall
      screenedAt
      createdAt
      updatedAt
      remark
      specialFlags {
        isGenius
        geniusDetail
        isAcademicSpecial
        mathDetail
        thaiDetail
        englishDetail
        scienceDetail
        socialDetail
        isActivity
        sportDetail
        musicDetail
        danceDetail
        artDetail
      }
      domains {
        name
        nameText       # "ด้านการเรียน" | "ด้านสุขภาพ" | …
        state
        stateText      # "ปกติ" | "เสี่ยง" | "มีปัญหา"
        riskTags
        problemTags
      }
    }
  }
}

Student.adviserScreen

ArgumentTypeDescription
semesterIdIntOptional. When omitted, returns the most recent screening across all semesters.

Returns AdviserScreen (nullable) — null if the student has never been screened. The domains field always contains all 9 entries in the stable order STUDY, HEALTH, FINANCIAL, SECURITY, DRUG, VIOLENCE, SEXUAL, GAME, ELECTRONIC.

Errors

CodeCause
UNAUTHENTICATEDNo valid JWT or API key
FORBIDDENJWT has no schoolId
NOT_FOUNDStudent not found in your school

On this page