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
- Heart rate:
sct:364075005(Heart rate) - Supine position:
sct:40199007(Supine body position) - Standing position:
sct:10904000(Orthostatic body position) - POTS:
sct:703273007(Postural orthostatic tachycardia syndrome) - Orthostatic hypotension:
sct:28651003
LOINC Mappings
- Heart rate:
loinc:8867-4(Heart rate) - Systolic BP:
loinc:8480-6(Systolic blood pressure) - Diastolic BP:
loinc:8462-4(Diastolic blood pressure)
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
- Data Classification: Consumer wellness data (non-diagnostic)
- Target Age Range: 13+ (COPPA compliant)
- Devices: Apple Watch (heart rate), iPhone (posture tracking, UI)
- Protocol: NASA Lean Test (10 min supine + 10 min standing against wall)
- Diagnostic Disclaimer: Results are for informational purposes only and should be discussed with a healthcare provider. This is NOT a medical diagnostic tool.