Skip to main content

Overview

MiTensión classifies blood pressure readings using the American Heart Association (AHA) guidelines. The classification system evaluates both systolic (“La Alta”) and diastolic (“La Baja”) values to determine the blood pressure state.

Classification Levels

The app uses six distinct classification levels, each with its own color coding for quick visual identification:

Low Blood Pressure

Hypotension (Baja)Systolic < 90 mmHg OR Diastolic < 60 mmHg

Normal

Normal RangeSystolic 90-119 mmHg AND Diastolic 60-79 mmHg

Elevated

Elevated (Elevada)Systolic 120-129 mmHg AND Diastolic < 80 mmHg

High Stage 1

Hypertension Stage 1 (Alta 1)Systolic 130-139 mmHg OR Diastolic 80-89 mmHg

High Stage 2

Hypertension Stage 2 (Alta 2)Systolic 140-179 mmHg OR Diastolic 90-119 mmHg

Hypertensive Crisis

Crisis HipertensivaSystolic > 180 mmHg OR Diastolic > 120 mmHg

Classification Logic

The classification algorithm evaluates readings in order of severity, from most critical to least:
The most critical condition is checked first:
if (sistolica > 180 || diastolica > 120) {
    return EstadoTension.CRISIS_HIPERTENSIVA
}
Hypertensive crisis requires immediate medical attention. If either value exceeds these thresholds, the reading is classified as a crisis regardless of other factors.
If not in crisis, check for Stage 2 hypertension:
if (sistolica >= 140 || diastolica >= 90) {
    return EstadoTension.ALTA_2
}
This uses the OR operator, meaning either value meeting the threshold qualifies.
Check for Stage 1 hypertension:
if (sistolica >= 130 || diastolica >= 80) {
    return EstadoTension.ALTA_1
}
Elevated blood pressure requires BOTH conditions:
if (sistolica >= 120 && diastolica < 80) {
    return EstadoTension.ELEVADA
}
Note the AND operator: systolic must be elevated (≥120) AND diastolic must remain normal (<80).
Low blood pressure is checked:
if (sistolica < 90 || diastolica < 60) {
    return EstadoTension.BAJA
}
If none of the above conditions are met, the reading is classified as normal:
else {
    return EstadoTension.NORMAL
}

Color Coding System

Each classification level has a specific color for visual identification throughout the app:
ClassificationColorHex ValuePurpose
Baja (Low)Blue#0000FFIndicates hypotension
NormalDark Green#008000Healthy blood pressure
Elevada (Elevated)Orange#FFA500Warning sign
Alta 1 (Stage 1)Red#FF0000Moderate concern
Alta 2 (Stage 2)Crimson#DC143CHigh concern
Crisis HipertensivaDark Red#8B0000Critical condition

Implementation Reference

The classification system is implemented in EstadoTension.kt:
enum class EstadoTension {
    CRISIS_HIPERTENSIVA,
    ALTA_2,
    ALTA_1,
    ELEVADA,
    NORMAL,
    BAJA
}

fun clasificarTension(sistolica: Int, diastolica: Int): EstadoTension {
    return when {
        sistolica > 180 || diastolica > 120 -> EstadoTension.CRISIS_HIPERTENSIVA
        sistolica >= 140 || diastolica >= 90 -> EstadoTension.ALTA_2
        sistolica >= 130 || diastolica >= 80 -> EstadoTension.ALTA_1
        sistolica >= 120 && diastolica < 80 -> EstadoTension.ELEVADA
        sistolica < 90 || diastolica < 60 -> EstadoTension.BAJA
        else -> EstadoTension.NORMAL
    }
}
The classification function is located at app/src/main/java/com/fxn/mitension/util/EstadoTension.kt:21

Usage in the App

The classification system is used throughout MiTensión to:
  • Color-code calendar entries - Days are marked with colors corresponding to average readings
  • Provide visual feedback - Immediate classification after entering measurements
  • Display legend - Users can view the classification guide from the menu
  • Track trends - Historical data shows patterns in blood pressure categories

Key Considerations

The OR operator is used for most classifications, meaning if EITHER systolic OR diastolic meets the threshold, that classification applies. The only exception is “Elevated” which requires systolic ≥120 AND diastolic <80.
Classifications follow the American Heart Association (AHA) guidelines, as noted in the code comments.

Build docs developers (and LLMs) love