POTS Check Vocabulary v1.2

Orthostatic screening checks using NASA Lean Test protocol

Overview

Namespace URI:
https://vitalvault.org/vocab/pots#
Preferred Prefix:
pots:
Version:
1.2
Status:
Stable
Imports:
vv: (Core Vocabulary v1.0)
Schema File:
pots.ttl (Turtle/RDF)

The POTS Check Vocabulary defines domain-specific concepts for home orthostatic screening checks performed using the NASA Lean Test protocol. Data is consumer-generated wellness information collected via Apple Watch heart rate monitoring and iPhone posture tracking.

Important: This vocabulary describes wellness screening data, not clinical diagnostics. Results are for informational purposes only and should be discussed with a healthcare provider.

Classes

pots:POTSCheckResult

owl:Class

Complete result bundle from a guided home orthostatic screening check using Apple Watch heart rate monitoring and iPhone posture detection.

Subclass of: prov:Entity

Required properties: pots:date, pots:protocol

pots:HeartRateMeasurement

owl:Class

Timed heart rate observation captured during standing phase.

Subclass of: fhir:Observation

Mapped to: SNOMED CT sct:364075005 (Heart rate)

pots:BloodPressureMeasurement

owl:Class

Timed blood pressure observation (systolic/diastolic) captured during check.

Subclass of: fhir:Observation

pots:SymptomEvent

owl:Class

User-reported symptom captured during the standing phase of the check.

pots:PostureStability

owl:Class

Posture quality measurement from Core Motion sensors during standing phase.

pots:TestProtocol

owl:Class

Standardized orthostatic test protocol.

pots:NASALean

pots:TestProtocol

10 minutes supine followed by 10 minutes standing against wall, as specified by NASA research protocols.

See also: NASA Technical Report

Test Metadata Properties

pots:date

owl:DatatypeProperty

ISO 8601 timestamp when the check was performed.

Domain: pots:POTSCheckResult

Range: xsd:dateTime

pots:protocol

owl:DatatypeProperty

Protocol used for the check (currently only "nasaLean").

Domain: pots:POTSCheckResult

Range: xsd:string

pots:baselineDurationSeconds

owl:DatatypeProperty

Duration of the supine baseline phase in seconds (typically 600 for 10 minutes).

Domain: pots:POTSCheckResult

Range: xsd:integer

pots:uprightDurationSeconds

owl:DatatypeProperty

Duration of the standing phase in seconds (typically 600 for 10 minutes).

Domain: pots:POTSCheckResult

Range: xsd:integer

pots:userAgeAtTest

owl:DatatypeProperty

v1.2+

User's age in years at the time of the check, used for age-based threshold calculation.

Domain: pots:POTSCheckResult

Range: xsd:integer

Heart Rate Properties

pots:supineHeartRate

owl:ObjectProperty

Baseline heart rate observation from final 2 minutes of supine phase.

Domain: pots:POTSCheckResult

Range: pots:HeartRateMeasurement

Equivalent to: SNOMED CT sct:78564009 (Heart rate at rest)

pots:standingHeartRates

owl:ObjectProperty

Ordered list of heart rate measurements captured during standing phase.

Domain: pots:POTSCheckResult

Range: rdf:List

pots:recoveryHeartRate

owl:DatatypeProperty

v1.1+

Optional heart rate measurement after returning to supine position.

Domain: pots:POTSCheckResult

Range: xsd:double

pots:maxHeartRateDelta

owl:DatatypeProperty

v1.2+

Pre-computed maximum heart rate increase from baseline using 30-second rolling window average during standing phase.

Domain: pots:POTSCheckResult

Range: xsd:double

Note: This value is calculated using the medically-accurate POTSTestCalculator algorithm, which finds the maximum of all 30-second rolling averages during the standing phase. This is the authoritative delta value used for POTS threshold evaluation.

Blood Pressure Properties

pots:supineBloodPressure

owl:ObjectProperty

Blood pressure measurement taken during or just before supine phase.

Domain: pots:POTSCheckResult

Range: pots:BloodPressureMeasurement

pots:standingBloodPressures

owl:ObjectProperty

List of blood pressure measurements captured at specific minutes during standing phase (typically minutes 1, 3, 5, 7, 10).

Domain: pots:POTSCheckResult

Range: rdf:List

Symptom Properties

pots:symptomEvents

owl:ObjectProperty

List of symptoms reported by user during the check.

Domain: pots:POTSCheckResult

Range: rdf:List

pots:symptom

owl:DatatypeProperty

Type of symptom experienced (e.g., "Dizziness", "Palpitations").

Domain: pots:SymptomEvent

Range: xsd:string

pots:notes

owl:DatatypeProperty

Optional user-provided notes describing the symptom (max 100 characters).

Domain: pots:SymptomEvent

Range: xsd:string

Clinical Flags

pots:potsThresholdMet

owl:DatatypeProperty

True if heart rate increase meets POTS screening criteria (age-adjusted: ≥30 bpm for adults 18+, ≥40 bpm for pediatric 13-17).

Domain: pots:POTSCheckResult

Range: xsd:boolean

pots:orthostaticHypotensionSuspected

owl:DatatypeProperty

True if blood pressure drop suggests orthostatic hypotension (systolic ≥20 mmHg or diastolic ≥10 mmHg drop).

Domain: pots:POTSCheckResult

Range: xsd:boolean

Mapped to: SNOMED CT sct:28651003

pots:orthostaticHypertensionSuspected

owl:DatatypeProperty

v1.1+

True if blood pressure increase suggests orthostatic hypertension (systolic ≥20 mmHg increase).

Domain: pots:POTSCheckResult

Range: xsd:boolean

pots:isIncomplete

owl:DatatypeProperty

True if the check was terminated early or did not complete all phases.

Domain: pots:POTSCheckResult

Range: xsd:boolean

pots:earlyTerminationReason

owl:DatatypeProperty

v1.1+

Human-readable reason why the check was terminated early.

Domain: pots:POTSCheckResult

Range: xsd:string

Posture Quality Properties

pots:postureQualityScore

owl:DatatypeProperty

v1.1+

Letter grade (A-D) indicating overall posture stability during standing phase.

Domain: pots:POTSCheckResult

Range: xsd:string

pots:movementArtifactPercentage

owl:DatatypeProperty

v1.1+

Percentage of standing phase with excessive movement artifacts (0.0 to 100.0).

Domain: pots:POTSCheckResult

Range: xsd:double

pots:postureStabilitySamples

owl:ObjectProperty

v1.1+

List of posture stability measurements from Core Motion during standing phase.

Domain: pots:POTSCheckResult

Range: rdf:List

pots:isStable

owl:DatatypeProperty

Boolean indicating whether posture was stable at this timestamp.

Domain: pots:PostureStability

Range: xsd:boolean

pots:stabilityScore

owl:DatatypeProperty

Numerical stability score from 0.0 (unstable) to 1.0 (perfectly stable).

Domain: pots:PostureStability

Range: xsd:double

Timing Properties

pots:atSeconds

owl:DatatypeProperty

Time offset in seconds from the start of the standing phase.

Range: xsd:integer

Healthcare Standards Alignment

SNOMED CT Mappings

LOINC Mappings

FHIR Observation Pattern

All heart rate and blood pressure measurements use fhir:Observation structure with fhir:code, fhir:valueQuantity, and ucum: units.

Usage Example

@prefix vv: <https://vitalvault.org/vocab/core#> .
@prefix pots: <https://vitalvault.org/vocab/pots#> .
@prefix fhir: <http://hl7.org/fhir/> .
@prefix sct: <http://snomed.info/sct/> .
@prefix ucum: <http://unitsofmeasure.org/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<#pots-check-abc123> a pots:POTSCheckResult ;
    vv:schemaVersion "1.2" ;
    vv:dataProvenance vv:ConsumerGenerated ;
    pots:date "2025-10-31T14:30:00Z"^^xsd:dateTime ;
    pots:protocol "nasaLean" ;
    pots:baselineDurationSeconds "600"^^xsd:integer ;
    pots:uprightDurationSeconds "600"^^xsd:integer ;
    pots:userAgeAtTest "25"^^xsd:integer ;
    pots:supineHeartRate [
        a fhir:Observation ;
        fhir:code sct:364075005 ;
        fhir:valueQuantity [
            fhir:value "72"^^xsd:double ;
            fhir:unit "beats/min" ;
            fhir:system ucum: ;
            fhir:code "/min"
        ]
    ] ;
    pots:maxHeartRateDelta "38.5"^^xsd:double ;
    pots:potsThresholdMet "true"^^xsd:boolean ;
    pots:isIncomplete "false"^^xsd:boolean .

Important Notes