{
  "name": "PRAXIS Motor Phenotype Ontology",
  "version": "1.0.0",
  "status": "active",
  "date": "2026-10-20",
  "publisher": "Omega Wellness Center Inc.",
  "license": "CC BY 4.0",
  "url": "https://mypraxisos.com/ontology/",
  "principle": "Every primitive names the everyday activity it is measured from without asking; every value is interpreted against the person's own baseline.",
  "counts": {
    "primitives": 30,
    "live": 20
  },
  "lenses": {
    "PT": "physical therapy",
    "OT": "occupational therapy",
    "SLP": "speech-language pathology"
  },
  "primitives": [
    {
      "id": "speech.rate",
      "domain": "Speech",
      "name": "Speech rate",
      "source": "Talking",
      "age": "3 y+",
      "why": "Motor speech; fatigue; regression",
      "live": true,
      "lens": "SLP",
      "unit": "/min",
      "definition": "syllable-like peaks per minute of voiced time",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "speech.rate",
        "display": "Speech rate"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "speech.rate",
        "domain_id": "Measurement",
        "measurement_source_value": "speech.rate"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "speech.pause_ratio",
      "domain": "Speech",
      "name": "Pause ratio",
      "source": "Talking",
      "age": "3 y+",
      "why": "Planning load; prosody",
      "live": true,
      "lens": "SLP",
      "unit": "1",
      "definition": "proportion of window silent",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "speech.pause_ratio",
        "display": "Pause ratio"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "speech.pause_ratio",
        "domain_id": "Measurement",
        "measurement_source_value": "speech.pause_ratio"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "speech.pitch_var",
      "domain": "Speech",
      "name": "Pitch variability",
      "source": "Talking",
      "age": "3 y+",
      "why": "Prosody; affect under load",
      "live": true,
      "lens": "SLP",
      "unit": "1",
      "definition": "coefficient of variation of F0",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "speech.pitch_var",
        "display": "Pitch variability"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "speech.pitch_var",
        "domain_id": "Measurement",
        "measurement_source_value": "speech.pitch_var"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "aac.message_length",
      "domain": "AAC",
      "name": "Mean message length",
      "source": "Composing on the board",
      "age": "2 y+",
      "why": "Communication outcome, not just access",
      "live": true,
      "lens": "SLP",
      "unit": "{words}",
      "definition": "mean words per spoken message",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "aac.message_length",
        "display": "Mean message length"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "aac.message_length",
        "domain_id": "Measurement",
        "measurement_source_value": "aac.message_length"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "aac.vocab_breadth",
      "domain": "AAC",
      "name": "Vocabulary breadth",
      "source": "Composing on the board",
      "age": "2 y+",
      "why": "Guards expressive range against adaptation drift",
      "live": true,
      "lens": "SLP",
      "unit": "{words}",
      "definition": "distinct words used per session",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "aac.vocab_breadth",
        "display": "Vocabulary breadth"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "aac.vocab_breadth",
        "domain_id": "Measurement",
        "measurement_source_value": "aac.vocab_breadth"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "fine.stroke_jerk",
      "domain": "Fine motor",
      "name": "Stroke smoothness",
      "source": "Drawing, doodling, handwriting",
      "age": "4 y+",
      "why": "Dysgraphia; praxis; medication",
      "live": true,
      "lens": "OT",
      "unit": "1",
      "definition": "log dimensionless jerk (lower = smoother)",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "fine.stroke_jerk",
        "display": "Stroke smoothness"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "fine.stroke_jerk",
        "domain_id": "Measurement",
        "measurement_source_value": "fine.stroke_jerk"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "fine.stroke_tremor",
      "domain": "Fine motor",
      "name": "In-stroke tremor",
      "source": "Drawing",
      "age": "4 y+",
      "why": "Tremor; anxiety load",
      "live": true,
      "lens": "OT",
      "unit": "{pixel}",
      "definition": "RMS deviation from smoothed path",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "fine.stroke_tremor",
        "display": "In-stroke tremor"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "fine.stroke_tremor",
        "domain_id": "Measurement",
        "measurement_source_value": "fine.stroke_tremor"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "fine.tap_precision",
      "domain": "Fine motor",
      "name": "Tap precision",
      "source": "Using any communication board or app; the Play game",
      "age": "2 y+",
      "why": "Praxis; access to communication",
      "live": true,
      "lens": "OT",
      "unit": "1",
      "definition": "1 − mean normalised distance from target centre",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "fine.tap_precision",
        "display": "Tap precision"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "fine.tap_precision",
        "domain_id": "Measurement",
        "measurement_source_value": "fine.tap_precision"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "fine.tap_rhythm_cv",
      "domain": "Fine motor",
      "name": "Tap rhythm variability",
      "source": "Ordinary tapping and typing; the Play game",
      "age": "4 y+",
      "why": "Timing control; fatigue",
      "live": true,
      "lens": "OT",
      "unit": "1",
      "definition": "coefficient of variation of inter-tap interval",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "fine.tap_rhythm_cv",
        "display": "Tap rhythm variability"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "fine.tap_rhythm_cv",
        "domain_id": "Measurement",
        "measurement_source_value": "fine.tap_rhythm_cv"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "fine.aac_selection",
      "domain": "Fine motor",
      "name": "AAC selection time & miss rate",
      "source": "Composing messages",
      "age": "2 y+",
      "why": "Drives interface adaptation",
      "live": true,
      "lens": "OT",
      "unit": "ms",
      "definition": "time from target onset to selection",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "fine.aac_selection",
        "display": "AAC selection time & miss rate"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "fine.aac_selection",
        "domain_id": "Measurement",
        "measurement_source_value": "fine.aac_selection"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "fine.hold_tremor",
      "domain": "Fine motor",
      "name": "Hold tremor",
      "source": "Holding the phone",
      "age": "3 y+",
      "why": "Medication effects; anxiety load",
      "live": true,
      "lens": "OT",
      "unit": "m/s2",
      "definition": "RMS high-pass acceleration while held",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "fine.hold_tremor",
        "display": "Hold tremor"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "fine.hold_tremor",
        "domain_id": "Measurement",
        "measurement_source_value": "fine.hold_tremor"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "fine.typing_rhythm",
      "domain": "Fine motor",
      "name": "Typing rhythm & error rate",
      "source": "Keyboard use (content never stored)",
      "age": "8 y+",
      "why": "AAC access; change",
      "live": false,
      "lens": "OT",
      "unit": "ms",
      "definition": "inter-key interval",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "fine.typing_rhythm",
        "display": "Typing rhythm & error rate"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "fine.typing_rhythm",
        "domain_id": "Measurement",
        "measurement_source_value": "fine.typing_rhythm"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "gait.step_time_cv",
      "domain": "Gait",
      "name": "Step-time variability",
      "source": "Walking with the phone in a pocket",
      "age": "2 y+",
      "why": "Sensory load, fatigue, regression",
      "live": true,
      "lens": "PT",
      "unit": "%",
      "definition": "coefficient of variation of step interval",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "gait.step_time_cv",
        "display": "Step-time variability"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "gait.step_time_cv",
        "domain_id": "Measurement",
        "measurement_source_value": "gait.step_time_cv"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "gait.stride_regularity",
      "domain": "Gait",
      "name": "Stride regularity",
      "source": "Walking",
      "age": "2 y+",
      "why": "Coordination; parkinsonian change",
      "live": true,
      "lens": "PT",
      "unit": "1",
      "definition": "autocorrelation at stride lag",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "gait.stride_regularity",
        "display": "Stride regularity"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "gait.stride_regularity",
        "domain_id": "Measurement",
        "measurement_source_value": "gait.stride_regularity"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "gait.cadence",
      "domain": "Gait",
      "name": "Cadence & walking bouts",
      "source": "Walking",
      "age": "2 y+",
      "why": "Participation; bradykinesia",
      "live": true,
      "lens": "PT",
      "unit": "/min",
      "definition": "steps per minute",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "gait.cadence",
        "display": "Cadence & walking bouts"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "gait.cadence",
        "domain_id": "Measurement",
        "measurement_source_value": "gait.cadence"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "gait.turn_smoothness",
      "domain": "Gait",
      "name": "Turning smoothness",
      "source": "Walking",
      "age": "3 y+",
      "why": "Postural control; freezing",
      "live": true,
      "lens": "PT",
      "unit": "1",
      "definition": "1/(1+CV of yaw rate during turns)",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "gait.turn_smoothness",
        "display": "Turning smoothness"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "gait.turn_smoothness",
        "domain_id": "Measurement",
        "measurement_source_value": "gait.turn_smoothness"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "gait.toe_walking",
      "domain": "Gait",
      "name": "Toe-walking proportion",
      "source": "Home video (opt-in)",
      "age": "2–12 y",
      "why": "Tone; common autism feature",
      "live": true,
      "lens": "PT",
      "unit": "%",
      "definition": "share of stance frames with heels raised",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "gait.toe_walking",
        "display": "Toe-walking proportion"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "gait.toe_walking",
        "domain_id": "Measurement",
        "measurement_source_value": "gait.toe_walking"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "gait.arm_swing_asym",
      "domain": "Gait",
      "name": "Arm-swing asymmetry",
      "source": "Home video (opt-in)",
      "age": "3 y+",
      "why": "Unilateral change; parkinsonian sign",
      "live": true,
      "lens": "PT",
      "unit": "%",
      "definition": "|L−R| wrist excursion / max",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "gait.arm_swing_asym",
        "display": "Arm-swing asymmetry"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "gait.arm_swing_asym",
        "domain_id": "Measurement",
        "measurement_source_value": "gait.arm_swing_asym"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "posture.sway",
      "domain": "Posture",
      "name": "Postural sway",
      "source": "Standing still with the phone",
      "age": "3 y+",
      "why": "Balance; medication",
      "live": true,
      "lens": "PT",
      "unit": "cm/s2",
      "definition": "RMS horizontal acceleration while standing",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "posture.sway",
        "display": "Postural sway"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "posture.sway",
        "domain_id": "Measurement",
        "measurement_source_value": "posture.sway"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "posture.sit_to_stand",
      "domain": "Posture",
      "name": "Sit-to-stand duration",
      "source": "Getting up",
      "age": "3 y+",
      "why": "Strength; slowing",
      "live": false,
      "lens": "PT",
      "unit": "s",
      "definition": "transition duration",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "posture.sit_to_stand",
        "display": "Sit-to-stand duration"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "posture.sit_to_stand",
        "domain_id": "Measurement",
        "measurement_source_value": "posture.sit_to_stand"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "posture.trunk_alignment",
      "domain": "Posture",
      "name": "Head / trunk alignment",
      "source": "Home video (opt-in)",
      "age": "6 m+",
      "why": "Infant asymmetry; posture",
      "live": true,
      "lens": "PT",
      "unit": "deg",
      "definition": "shoulder–hip line from vertical",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "posture.trunk_alignment",
        "display": "Head / trunk alignment"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "posture.trunk_alignment",
        "domain_id": "Measurement",
        "measurement_source_value": "posture.trunk_alignment"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "praxis.reach_straightness",
      "domain": "Praxis",
      "name": "Reach path straightness",
      "source": "Play, feeding (video opt-in)",
      "age": "6 m+",
      "why": "Motor planning",
      "live": false,
      "lens": "OT",
      "unit": "1",
      "definition": "path length ratio",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "praxis.reach_straightness",
        "display": "Reach path straightness"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "praxis.reach_straightness",
        "domain_id": "Measurement",
        "measurement_source_value": "praxis.reach_straightness"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "praxis.bilateral_index",
      "domain": "Praxis",
      "name": "Bilateral coordination index",
      "source": "Two-hand play, typing",
      "age": "1 y+",
      "why": "Midline crossing",
      "live": false,
      "lens": "OT",
      "unit": "ms",
      "definition": "two-hand timing offset",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "praxis.bilateral_index",
        "display": "Bilateral coordination index"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "praxis.bilateral_index",
        "domain_id": "Measurement",
        "measurement_source_value": "praxis.bilateral_index"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "praxis.transition_latency",
      "domain": "Praxis",
      "name": "Transition latency",
      "source": "Responding to a prompt",
      "age": "2 y+",
      "why": "Initiation; catatonia-pattern slowing",
      "live": false,
      "lens": "OT",
      "unit": "ms",
      "definition": "cue to movement onset",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "praxis.transition_latency",
        "display": "Transition latency"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "praxis.transition_latency",
        "domain_id": "Measurement",
        "measurement_source_value": "praxis.transition_latency"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "stereotypy.episodes",
      "domain": "Stereotypy",
      "name": "Repetitive-movement episodes",
      "source": "Any day (coded as regulation)",
      "age": "1 y+",
      "why": "Load indicator; never a target",
      "live": false,
      "lens": "OT",
      "unit": "/d",
      "definition": "episodes per day (coded as regulation)",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "stereotypy.episodes",
        "display": "Repetitive-movement episodes"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "stereotypy.episodes",
        "domain_id": "Measurement",
        "measurement_source_value": "stereotypy.episodes"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "infant.gm_complexity",
      "domain": "Infant",
      "name": "General movement complexity",
      "source": "Home video of a baby lying awake",
      "age": "2–5 m",
      "why": "Earliest detection window",
      "live": false,
      "lens": "PT",
      "unit": "1",
      "definition": "variability/fluency index",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "infant.gm_complexity",
        "display": "General movement complexity"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "infant.gm_complexity",
        "domain_id": "Measurement",
        "measurement_source_value": "infant.gm_complexity"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "infant.milestone_timing",
      "domain": "Infant",
      "name": "Motor milestone timing",
      "source": "Home video + caregiver note",
      "age": "3–18 m",
      "why": "Delay pattern",
      "live": false,
      "lens": "PT",
      "unit": "mo",
      "definition": "age at onset",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "infant.milestone_timing",
        "display": "Motor milestone timing"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "infant.milestone_timing",
        "domain_id": "Measurement",
        "measurement_source_value": "infant.milestone_timing"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "sleep.nocturnal_movement",
      "domain": "Sleep",
      "name": "Nocturnal movement index",
      "source": "Wearing a watch at night",
      "age": "1 y+",
      "why": "Sleep disorder",
      "live": false,
      "lens": "PT",
      "unit": "1",
      "definition": "movement index",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "sleep.nocturnal_movement",
        "display": "Nocturnal movement index"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "sleep.nocturnal_movement",
        "domain_id": "Measurement",
        "measurement_source_value": "sleep.nocturnal_movement"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "autonomic.hrv",
      "domain": "Autonomic",
      "name": "Resting HRV",
      "source": "Wearing a watch",
      "age": "3 y+",
      "why": "Stress; pain; sensory load",
      "live": false,
      "lens": "OT",
      "unit": "ms",
      "definition": "RMSSD",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "autonomic.hrv",
        "display": "Resting HRV"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "autonomic.hrv",
        "domain_id": "Measurement",
        "measurement_source_value": "autonomic.hrv"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    },
    {
      "id": "context.env_load",
      "domain": "Context",
      "name": "Environmental load",
      "source": "Ambient loudness (number only)",
      "age": "all",
      "why": "Environment as dosage",
      "live": true,
      "lens": "OT",
      "unit": "dB",
      "definition": "ambient loudness, number only",
      "fhir": {
        "system": "https://mypraxisos.com/ontology/v1",
        "code": "context.env_load",
        "display": "Environmental load"
      },
      "omop": {
        "vocabulary_id": "PRAXIS",
        "concept_code": "context.env_load",
        "domain_id": "Measurement",
        "measurement_source_value": "context.env_load"
      },
      "reference": "person-referenced: interpreted against the person's own rolling baseline (median/MAD), never a population norm"
    }
  ]
}