Overview

Namespace URI:
https://ns.cascadeprotocol.org/checkup/v1#
Preferred Prefix:
checkup:
Version:
3.0
Status:
Stable
Imports:
cascade: (Core Vocabulary v1)
clinical: (Clinical Vocabulary v1)
health: (Health Vocabulary v1)
Schema File:
checkup.ttl (Turtle/RDF)

The Checkup Vocabulary defines structured health data for patient intake forms and pre-visit preparation. It enables aggregation of EHR-imported data, HealthKit wellness data, and manually entered health information into a comprehensive patient profile suitable for healthcare visits.

Use Case: Cascade Checkup is a consumer health app that helps patients prepare for annual physicals by aggregating their health data and generating professional intake forms for healthcare providers.
Download TTL Back to Documentation

Core Classes (14 total)

checkup:IntakeFormData

owl:Class

Aggregated patient data formatted for healthcare intake forms. Contains all sections needed for a complete pre-visit profile including demographics, medications, allergies, conditions, and visit concerns.

checkup:PatientProfile

owl:Class

Deprecated v2.0

DEPRECATED: Use cascade:PatientProfile from core.ttl v2.0. Patient demographics promoted to core vocabulary for Solid WebID Profile alignment.

checkup:InsuranceInfo

owl:Class

Patient insurance coverage details for intake forms. Includes provider, member ID, coverage type, and primary care provider information.

checkup:MedicationSummary

owl:Class

Current medication with enriched adherence and tolerability data. Links to clinical:Medication source records and tracks self-reported adherence barriers and side effects.

checkup:AllergySummary

owl:Class

Known allergen with reaction type and severity. Tracks data provenance (EHR verified, self-reported) and links to clinical:AllergyIntolerance source records.

checkup:ConditionSummary

owl:Class

Active or resolved health condition with ICD-10 coding. Includes onset information and current status for clinical context.

checkup:FamilyHistoryEntry

owl:Class

Single family member health condition for risk assessment. Captures relative type, condition, and age at diagnosis for inherited condition screening.

checkup:VitalSignsTrend

owl:Class

Deprecated v1.4

DEPRECATED: Use health:MetricTrend (Layer 2) for trend data and checkup:WellnessSummary (Layer 3) for patient-facing trend aggregation. Will be removed in v1.5.

checkup:ScreeningStatus

owl:Class

Patient status for recommended preventive screening. Tracks last completed date, next due date, and applicable USPSTF/ACS guidelines.

checkup:VisitIssue

owl:Class

Health issue or symptom the patient wants to discuss at their visit (chief complaint). Includes severity, duration, and user-assigned priority for visit planning.

checkup:SuggestedQuestion

owl:Class

AI-generated or template question for the patient to ask their provider. Based on conditions, medications, symptoms, or health trends identified in their profile.

checkup:DiagnosticTestResult

owl:Class

Reference to a diagnostic test from an external Cascade app (e.g., POTS Check, glucose monitoring). Provides summary for intake forms and links to detailed results in pod.

checkup:SupplementSummary

owl:Class

v1.1+

Dietary supplement, OTC product, or herbal remedy with regulatory classification and evidence strength. Separate from MedicationSummary to reflect different regulatory status and data requirements. Links to clinical:Supplement source records.

Sub-Concern Classification v2.0

Every checkup: class is annotated with cascade:subConcern to document its functional role within the vocabulary. This self-documenting taxonomy supports migration planning and vocabulary organization.

Sub-Concern Description Classes
summary Genuine L3 — aggregates L2 data into patient-facing records MedicationSummary, SupplementSummary, AllergySummary, ConditionSummary, FamilyHistoryEntry, ImmunizationSummary, LabResultSummary, ProcedureSummary
analytics L3 insights — AI-generated or computed patient-facing analysis WellnessSummary, TrendInsight, CorrelationInsight, KeyIndicator, AttentionItem, VisitPrepSummary, SuggestedQuestion, DiscussionTopic, MedicationChangeRecord
intake Data collection — captures new patient-reported data IntakeFormData, VisitIssue, IntakeQuestionnaireResponse, ResponseItem, DiagnosticTestResult
self-report Patient-reported outcomes — subclass of health:SelfReport (WS7 complete) DailyCheckIn
financial Insurance/billing — migrating to coverage: (WS4) InsuranceInfo
app-config Application settings — target path /settings/checkup/ (Phase B) CheckInSettings
structural Technical references, not domain concepts WellnessProfileReference, ScreeningStatus
deprecated Superseded by other patterns VitalSignsTrend, WellnessBaseline, ActivitySummary, HealthRecord, ClinicalSummary, ReviewOfSystems, DataProvenance, PatientProfile

Insight & Correlation Classes v1.4

Layer 3 classes that synthesize across data domains to produce patient-facing insights. These enable wellness trend summaries, medication-metric correlations, health scoring, attention items, and visit preparation.

checkup:WellnessSummary

owl:Class · rdfs:subClassOf prov:Entity

Layer 3 patient-facing summary of wellness data. Aggregates trends and baselines from health: Layer 2 properties into a patient-readable format.

checkup:TrendInsight

owl:Class · rdfs:subClassOf prov:Entity

A patient-readable observation derived from trend data. Example: "Your resting heart rate has dropped 5 bpm since you started walking 10k steps/day."

checkup:CorrelationInsight

owl:Class · rdfs:subClassOf prov:Entity

Links two data domains with an observed temporal relationship. Example: medication start date correlates with metric change. Temporal correlation only — never implies causation.

checkup:KeyIndicator

owl:Class · rdfs:subClassOf prov:Entity

A distilled, patient-friendly health metric chosen for its predictive value and simplicity. Used for dashboard summaries and health scores. Status values: good, watch, attention.

checkup:AttentionItem

owl:Class · rdfs:subClassOf prov:Entity

Flags when a metric deviates significantly from personal baseline, data has gone stale, or a trend crosses a threshold. Rule-based, not clinical advice. Reasons: baseline_deviation, stale_data, threshold_crossed. Severity: info, watch, action.

checkup:VisitPrepSummary

owl:Class · rdfs:subClassOf prov:Entity

A curated, one-page clinical summary designed for a 15-minute appointment. Auto-generated from metric changes, medication context, and patient questions, then user-edited before export.

Adherence & Discussion Classes v1.5

Patient-reported adherence tracking and visit discussion preparation. Supports daily medication check-ins and AI-generated discussion topics.

checkup:DailyCheckIn

owl:Class · rdfs:subClassOf health:SelfReport

Patient-reported daily medication adherence check-in capturing response status, missed medications, and optional notes. Extends health:SelfReport base class (v2.1) which provides common self-report properties (reportDate, reportType, completionStatus, reportContext, reportNotes). Apps implement the SelfReportable protocol pattern to bridge Swift models to the ontology.

checkup:DiscussionTopic

owl:Class · rdfs:subClassOf prov:Entity

AI-generated or user-created topic for discussion during a healthcare visit. Topics are derived from medication data, adherence patterns, supplement interactions, or user input.

checkup:CheckInSettings

owl:Class

Application configuration for daily check-in notification scheduling and day-of-week preferences.

Intake Questionnaire Classes v1.6

FHIR-inspired intake questionnaire responses using LOINC panel codes as identifiers and SNOMED CT for coded answers. Uses native Cascade Protocol serialization with a mechanical transformation path to FHIR QuestionnaireResponse JSON for clinical interoperability.

checkup:IntakeQuestionnaireResponse

owl:Class · rdfs:subClassOf prov:Entity

Response to a standardized intake questionnaire section. Uses LOINC panel codes as questionnaire identifiers (e.g., 71421-2 for Social History) and SNOMED CT codes for standardized answers.

checkup:ResponseItem

owl:Class · rdfs:subClassOf prov:Entity

A question-answer pair within an intake questionnaire response. Uses LOINC item codes as link identifiers and SNOMED CT codes for coded answers. Supports nested sub-items via childItem for hierarchical questionnaire structures.

Wellness & Activity Classes v1.7

Aggregated wellness baselines and activity summaries from consumer device data. These classes provide Layer 3 summaries for intake form wellness sections.

checkup:WellnessBaseline

owl:Class · rdfs:subClassOf prov:Entity

v1.7 Deprecated v1.11

Aggregated wellness baseline snapshot from consumer device data. Combines resting heart rate, HRV, VO2 Max, walking heart rate, respiratory rate, and walking steadiness into a single measurement point for trend comparison.

Properties: baselineTimestamp, measurementPeriod, restingHeartRate, hrvSDNN, vo2Max, walkingHeartRate, respiratoryRateBaseline, walkingSteadiness

checkup:ActivitySummary

owl:Class · rdfs:subClassOf prov:Entity

v1.7 Deprecated v1.11

Aggregated activity and sleep metrics over a measurement period. Layer 3 summary combining steps, exercise, energy, stand hours, and sleep data.

Properties: summaryPeriodStart, summaryPeriodEnd, averageDailySteps, exerciseMinutes, standHours, activeEnergyBurned, sleepDuration, sleepQuality

Clinical Summary Classes v1.7

Patient-facing summaries of clinical data for intake forms. These classes use a mixed namespace pattern where checkup: properties handle app-layer enrichment while clinical: properties provide standardized clinical data.

checkup:ImmunizationSummary

owl:Class · rdfs:subClassOf prov:Entity

v1.7

Patient-facing immunization record for intake forms. Uses mixed namespace pattern: checkup: properties for app-layer enrichment (vaccineCategory) alongside clinical data fields.

Properties (16): vaccineName, administrationDate, immunizationStatus, vaccineCode, vaccineCategory, manufacturer, lotNumber, expirationDate, doseNumber, doseQuantity, administrationRoute, administrationSite, administeringProvider, administeringLocation, immunizationNotes, immunizationSourceRecord

checkup:LabResultSummary

owl:Class · rdfs:subClassOf prov:Entity

v1.7

Patient-facing lab result summary for intake forms. Uses mixed namespace pattern: checkup:labCategory for app-layer categorization, clinical: properties for standardized lab data.

Properties: labCategory (additional lab data fields use clinical: namespace)

checkup:WellnessProfileReference

owl:Class · rdfs:subClassOf prov:Entity

v1.7

Lightweight pointer to the patient's full wellness profile stored in the SDK HealthProfile. Uses rdfs:seeAlso to link to the wellness data file.

checkup:ProcedureSummary

owl:Class · rdfs:subClassOf prov:Entity

v1.8

Patient-facing procedure record for intake forms. Uses the mixed namespace pattern: checkup: properties for app-layer fields (procedureName, procedureCategory, procedureLocation), clinical: properties for standardized clinical data (procedureStatus, performedDate, bodySite, performer, outcome, snomedCode, cptCode).

Properties: 4 checkup: + 7 clinical: cross-references

checkup:MedicationChangeRecord

owl:Class · rdfs:subClassOf prov:Entity

v1.9

A recorded change to a medication or supplement since the last visit snapshot. Tracked for the "Changes Since Last Visit" report section. Consumed by PlainTextReportGenerator, PatientBriefSections, and ProviderViews.

Properties: 5 (changeType, changedField, changeRecordPreviousValue, changeRecordNewValue, changeDate)

Three-Layer Analysis:

  • Layer 1: No standard equivalent. FHIR tracks medication versions via Provenance resources but has no discrete change record.
  • Layer 2: Not applicable — change tracking is app-layer behavior.
  • Layer 3: checkup:MedicationChangeRecord — Cascade-proprietary. Captures deltas between visit snapshots for patient-facing reports.

checkup:VisitPrepTray v3.1

owl:Class · rdfs:subClassOf prov:Entity · cascade:subConcern "intake"

Per-appointment visit preparation container grouping issues, discussion topics, questions, and notes. Uses a typed payload wrapper (VisitItemPayload) to preserve type richness from VisitIssue, DiscussionTopic, and SuggestedQuestion. Interactive input container built before a visit; distinct from checkup:VisitPrepSummary (rendered output).

Properties: 7 on VisitPrepTray (prepTitle, appointmentDate, prepProviderName, specialty, visitPrepStatus, prepCompletedDate, hasTrayItem) + 5 on VisitTrayItem (payloadType, intentCategory, isResolved, sourceSection, sourceRecordId)

Three-Layer Analysis:

  • Layer 1: No standard equivalent. FHIR has no visit preparation tray concept. Closest: Encounter.reasonReference linking conditions to appointments.
  • Layer 2: Not applicable — visit preparation is patient-curated, not clinical or device data.
  • Layer 3: checkup:VisitPrepTray — Cascade-proprietary. Organizes visit prep items by appointment with intent categories: discuss, schedule, inform, ask.

checkup:VisitTrayItem v3.1

owl:Class · rdfs:subClassOf prov:Entity

A typed item within a VisitPrepTray. Wraps existing types (VisitIssue, DiscussionTopic, SuggestedQuestion) or holds note/custom content with an intent category (discuss, schedule, inform, ask) and resolution tracking.

Properties: payloadType, intentCategory, isResolved, sourceSection, sourceRecordId

Insight & Correlation Properties v1.4

WellnessSummary Properties

checkup:wellnessTrend

owl:ObjectProperty

Link to a health:MetricTrend for a wellness metric.

Domain: checkup:WellnessSummary

Range: health:MetricTrend

checkup:wellnessBaselineDate

owl:DatatypeProperty

Date of the baseline snapshot this summary compares against.

Domain: checkup:WellnessSummary

Range: xsd:dateTime

TrendInsight Properties

checkup:insightText

owl:DatatypeProperty

Patient-readable description of the insight.

Domain: checkup:TrendInsight

Range: xsd:string

checkup:insightSourceTrend

owl:ObjectProperty

The health:MetricTrend this insight is derived from.

Domain: checkup:TrendInsight

Range: health:MetricTrend

checkup:insightGeneratedBy

owl:ObjectProperty

The agent that produced this insight. Supports both software agents (e.g., cascade:DataSource for rule engines) and human agents (clinicians). Aligns with W3C PROV-O prov:wasGeneratedBy pattern.

Domain: checkup:TrendInsight

Range: prov:Agent

CorrelationInsight Properties

checkup:correlationMetric

owl:ObjectProperty

The wellness metric involved in the correlation.

Domain: checkup:CorrelationInsight

Range: health:MetricTrend

checkup:correlationEvent

owl:ObjectProperty

The clinical event (medication start/stop, condition onset) involved in the correlation.

Domain: checkup:CorrelationInsight

checkup:correlationText

owl:DatatypeProperty

Patient-readable description. Must use temporal language only ("started approximately after"), never causal language ("caused by").

Domain: checkup:CorrelationInsight

Range: xsd:string

checkup:correlationTimeLag

owl:DatatypeProperty

Days between the clinical event and the observed metric change onset.

Domain: checkup:CorrelationInsight

Range: xsd:integer

KeyIndicator Properties

checkup:indicatorMetric

owl:DatatypeProperty

The metric key this indicator represents (e.g., "restingHeartRate").

Domain: checkup:KeyIndicator

Range: xsd:string

checkup:indicatorValue / indicatorUnit / indicatorLabel / indicatorStatus

owl:DatatypeProperty

Value (xsd:decimal), unit (xsd:string), patient-friendly label, and traffic-light status (good, watch, attention).

Domain: checkup:KeyIndicator

AttentionItem Properties

checkup:attentionReason / attentionMetric / attentionText / attentionSeverity

owl:DatatypeProperty

Reason (baseline_deviation, stale_data, threshold_crossed), metric key, patient-readable explanation, and severity (info, watch, action).

Domain: checkup:AttentionItem

Range: xsd:string

VisitPrepSummary Properties

checkup:visitPrepDate / visitPrepComparisonDate

owl:DatatypeProperty

Current date and previous snapshot comparison date.

Domain: checkup:VisitPrepSummary

Range: xsd:dateTime

checkup:visitPrepChange

owl:ObjectProperty

A metric change included in this visit prep.

Domain: checkup:VisitPrepSummary

Range: health:MetricTrend

checkup:visitPrepCorrelation

owl:ObjectProperty

Domain: checkup:VisitPrepSummary

Range: checkup:CorrelationInsight

checkup:visitPrepAttention

owl:ObjectProperty

Domain: checkup:VisitPrepSummary

Range: checkup:AttentionItem

checkup:visitPrepUserNotes

owl:DatatypeProperty

Patient-authored questions and concerns for the visit.

Domain: checkup:VisitPrepSummary

Range: xsd:string

checkup:noteContent v1.7

owl:DatatypeProperty

Free-text notes for visit preparation. Merges previously separate VisitPrepNotes content into VisitPrepSummary.

Domain: checkup:VisitPrepSummary

Range: xsd:string

Patient Profile Properties

checkup:patientName

owl:DatatypeProperty

Full legal name of the patient for intake forms.

Domain: checkup:PatientProfile

Range: xsd:string

checkup:dateOfBirth

owl:DatatypeProperty

Patient date of birth for age calculation and screening eligibility.

Domain: checkup:PatientProfile

Range: xsd:date

checkup:biologicalSex

owl:DatatypeProperty

Biological sex for medical screening logic: male, female, intersex.

Domain: checkup:PatientProfile

Range: xsd:string

checkup:ageGroup

owl:DatatypeProperty

Demographic classification: pediatric (0-17), young_adult (18-39), adult (40-64), senior (65+).

Domain: checkup:PatientProfile

Range: xsd:string

Medication Properties

checkup:medicationName

owl:DatatypeProperty

Name of the medication (generic or brand).

Domain: checkup:MedicationSummary

Range: xsd:string

checkup:dose

owl:DatatypeProperty

Medication dose with units (e.g., '10mg', '500mg').

Domain: checkup:MedicationSummary

Range: xsd:string

checkup:adherenceStatus

owl:DatatypeProperty

Self-reported adherence: taking_as_prescribed, usually_take, sometimes_miss, often_miss, stopped.

Domain: checkup:MedicationSummary

Range: xsd:string

checkup:sideEffects

owl:DatatypeProperty

List of reported side effects as comma-separated string.

Domain: checkup:MedicationSummary

Range: xsd:string

Medication Properties - Phase 3 Extensions v1.2

checkup:episodeId

owl:DatatypeProperty

Link to canonical MedicationUseEpisode in CascadeSDK. Enables longitudinal tracking.

Domain: checkup:MedicationSummary

Range: xsd:string

checkup:startDate

owl:DatatypeProperty

Date when patient started taking this medication.

Domain: checkup:MedicationSummary

Range: xsd:date

checkup:indication

owl:DatatypeProperty

Why the patient takes this medication (patient's understanding of the reason).

Domain: checkup:MedicationSummary

Range: xsd:string

checkup:patientCost

owl:DatatypeProperty

Patient's out-of-pocket cost for medication or supplement.

Range: xsd:decimal

checkup:costFrequency

owl:DatatypeProperty

Frequency of cost: per_month, per_refill, per_dose, per_bottle, annual.

Range: xsd:string

checkup:functionalImpact

owl:DatatypeProperty

How this medication helps the patient functionally (e.g., "helps me sleep").

Domain: checkup:MedicationSummary

Range: xsd:string

checkup:concernsForDoctor

owl:DatatypeProperty

Concerns the patient wants to discuss with their healthcare provider.

Domain: checkup:MedicationSummary

Range: xsd:string

Medication Verification Properties v1.7

checkup:needsVerification

owl:DatatypeProperty

Whether this medication needs patient verification.

Domain: checkup:MedicationSummary

Range: xsd:boolean

checkup:verificationReason

owl:DatatypeProperty

Why verification is needed: historical, duplicate, conflicting_sources.

Domain: checkup:MedicationSummary

Range: xsd:string

checkup:lastVerifiedDate

owl:DatatypeProperty

When the patient last verified this medication.

Domain: checkup:MedicationSummary

Range: xsd:dateTime

checkup:importSessionId

owl:ObjectProperty

Link to the import session that created this medication record.

Domain: checkup:MedicationSummary

Range: xsd:anyURI

Supplement Summary Properties v1.1+

checkup:supplementName

owl:DatatypeProperty

Name of the supplement or OTC product.

Domain: checkup:SupplementSummary

Range: xsd:string

checkup:regulatoryStatus

owl:DatatypeProperty

Regulatory classification distinguishing from FDA-approved medications: dietarySupplement (DSHEA), otcDrug (FDA OTC monograph), homeopathic, herbalRemedy, unknown.

Domain: checkup:SupplementSummary

Range: xsd:string

checkup:evidenceStrength

owl:DatatypeProperty

Level of clinical evidence: strongEvidence, moderateEvidence, limitedEvidence, traditionalUse, noEvidence, unknown.

Domain: checkup:SupplementSummary

Range: xsd:string

checkup:supplementDose

owl:DatatypeProperty

Dose with units (e.g., "2000 IU", "500mg").

Domain: checkup:SupplementSummary

Range: xsd:string

checkup:supplementBrand

owl:DatatypeProperty

Brand name if known (e.g., "Nature Made", "Garden of Life").

Domain: checkup:SupplementSummary

Range: xsd:string

checkup:supplementForm

owl:DatatypeProperty

Physical form: capsule, tablet, softgel, liquid, powder, gummy, spray, patch, tea, tincture, other.

Domain: checkup:SupplementSummary

Range: xsd:string

checkup:reasonForUse

owl:DatatypeProperty

User-provided reason for taking supplement (e.g., "bone health", "sleep support").

Domain: checkup:SupplementSummary

Range: xsd:string

checkup:dsldId

owl:DatatypeProperty

NIH Dietary Supplement Label Database identifier for lookup.

Domain: checkup:SupplementSummary

Range: xsd:string

checkup:doctorAware

owl:DatatypeProperty

Whether the patient's healthcare provider knows about this supplement. Used to identify supplements that should be discussed at visits.

Domain: checkup:SupplementSummary

Range: xsd:boolean

Visit Issue Properties

checkup:issueCategory

owl:DatatypeProperty

Category of health issue: pain, skin, digestive, respiratory, cardiovascular, mental_health, neurological, musculoskeletal, urinary, medication, screening, general, other.

Domain: checkup:VisitIssue

Range: xsd:string

checkup:issueDescription

owl:DatatypeProperty

Free text description of the health issue.

Domain: checkup:VisitIssue

Range: xsd:string

checkup:issuePriority

owl:DatatypeProperty

User-ranked importance (1 = highest priority).

Domain: checkup:VisitIssue

Range: xsd:integer

checkup:issueSeverity

owl:DatatypeProperty

Severity of the issue: mild, moderate, severe.

Domain: checkup:VisitIssue

Range: xsd:string

Suggested Question Properties

checkup:questionText

owl:DatatypeProperty

The suggested question to ask the provider.

Domain: checkup:SuggestedQuestion

Range: xsd:string

checkup:questionCategory

owl:DatatypeProperty

Category: treatment_options, side_effects, prevention, lifestyle, referral, diagnosis, prognosis, medication, screening.

Domain: checkup:SuggestedQuestion

Range: xsd:string

checkup:basedOnCondition / basedOnMedication / basedOnIssue / basedOnTrend

owl:ObjectProperty

Links to the condition, medication, visit issue, or vital signs trend that triggered this question.

Domain: checkup:SuggestedQuestion

Additional Source Properties v1.7

checkup:basedOnTemplate

owl:DatatypeProperty

Template name the question was generated from.

Domain: checkup:SuggestedQuestion

Range: xsd:string

checkup:basedOnScreening

owl:ObjectProperty

Link to the screening record the question relates to.

Domain: checkup:SuggestedQuestion

Range: xsd:anyURI

Diagnostic Test Properties

checkup:testType

owl:DatatypeProperty

Type of diagnostic test: pots_check, blood_pressure_series, glucose_series, ecg, sleep_analysis, other.

Domain: checkup:DiagnosticTestResult

Range: xsd:string

checkup:resultSummary

owl:DatatypeProperty

Brief text summary suitable for intake forms.

Domain: checkup:DiagnosticTestResult

Range: xsd:string

checkup:flaggedForDiscussion

owl:DatatypeProperty

Whether user wants to discuss this result with provider.

Domain: checkup:DiagnosticTestResult

Range: xsd:boolean

checkup:potsThresholdMet

owl:DatatypeProperty

Whether the POTS diagnostic threshold was met (HR increase >= 30 bpm). Used for POTS Check results.

Domain: checkup:DiagnosticTestResult

Range: xsd:boolean

Data Provenance Properties

checkup:provenanceType

owl:DatatypeProperty

Source type: ehr_verified, self_reported, scanned, device, ai_extracted, imported.

Range: xsd:string

checkup:provenanceSource

owl:DatatypeProperty

Specific source identifier: MyChart, Apple Health, manual entry, etc.

Range: xsd:string

Adherence & Discussion Properties v1.5

DailyCheckIn Properties

checkup:checkInDate

owl:DatatypeProperty

Date of the check-in (normalized to midnight).

Domain: checkup:DailyCheckIn

Range: xsd:dateTime

checkup:checkInResponse

owl:DatatypeProperty

Adherence response: allTaken, missedSome, skippedToday.

Domain: checkup:DailyCheckIn

Range: xsd:string

checkup:missedMedicationIds

owl:DatatypeProperty

Comma-separated UUIDs of missed medications (when response is missedSome).

Domain: checkup:DailyCheckIn

Range: xsd:string

checkup:submittedAt

owl:DatatypeProperty

Timestamp when the check-in was submitted.

Domain: checkup:DailyCheckIn

Range: xsd:dateTime

DiscussionTopic Properties

checkup:topicText

owl:DatatypeProperty

Main discussion topic text.

Domain: checkup:DiscussionTopic

Range: xsd:string

checkup:topicCategory

owl:DatatypeProperty

Category: medication, supplement, adherence, interaction, lifestyle, general.

Domain: checkup:DiscussionTopic

Range: xsd:string

checkup:topicSource

owl:DatatypeProperty

How the topic was generated: ai_generated, user_created, template.

Domain: checkup:DiscussionTopic

Range: xsd:string

checkup:relevanceScore

owl:DatatypeProperty

Computed relevance score (0.0 to 1.0) for prioritizing topics.

Domain: checkup:DiscussionTopic

Range: xsd:decimal

CheckInSettings Properties

checkup:checkInEnabled / notificationHour / notificationMinute / enabledDays

owl:DatatypeProperty

Configuration for daily check-in notifications: enabled state (xsd:boolean), notification hour and minute (xsd:integer), and enabled days of the week (xsd:string).

Domain: checkup:CheckInSettings

Intake Questionnaire Properties v1.6

IntakeQuestionnaireResponse Properties

checkup:questionnaireId

owl:DatatypeProperty

LOINC panel code identifying the questionnaire section (e.g., 71421-2 for Social History).

Domain: checkup:IntakeQuestionnaireResponse

Range: xsd:string

checkup:questionnaireTitle

owl:DatatypeProperty

Human-readable title of the questionnaire section.

Domain: checkup:IntakeQuestionnaireResponse

Range: xsd:string

checkup:responseItem

owl:ObjectProperty

Link to a ResponseItem containing a question-answer pair.

Domain: checkup:IntakeQuestionnaireResponse

Range: checkup:ResponseItem

checkup:completedAt

owl:DatatypeProperty

Timestamp when the questionnaire was completed.

Domain: checkup:IntakeQuestionnaireResponse

Range: xsd:dateTime

ResponseItem Properties

checkup:itemLinkId

owl:DatatypeProperty

LOINC item code identifying the question (e.g., 72166-2 for Tobacco smoking status).

Domain: checkup:ResponseItem

Range: xsd:string

checkup:itemText

owl:DatatypeProperty

Human-readable question display text.

Domain: checkup:ResponseItem

Range: xsd:string

checkup:itemAnswer / itemAnswerCode / itemAnswerCodeSystem

owl:DatatypeProperty

Answer values: free-text answer (xsd:string), coded answer value using SNOMED CT or LOINC (xsd:string), and code system URI (xsd:anyURI, e.g., http://snomed.info/sct/).

Domain: checkup:ResponseItem

checkup:childItem

owl:ObjectProperty

Nested sub-item for hierarchical questionnaire structures.

Domain: checkup:ResponseItem

Range: checkup:ResponseItem

IntakeFormData Links

checkup:hasQuestionnaireResponse

owl:ObjectProperty

Link from IntakeFormData to a completed intake questionnaire response.

Domain: checkup:IntakeFormData

Range: checkup:IntakeQuestionnaireResponse

IntakeFormData Links v1.7

checkup:hasImmunization

owl:ObjectProperty

Link to an immunization summary entry.

Domain: checkup:IntakeFormData

Range: checkup:ImmunizationSummary

checkup:hasLabResult

owl:ObjectProperty

Link to a lab result summary entry.

Domain: checkup:IntakeFormData

Range: checkup:LabResultSummary

checkup:hasWellnessBaseline

owl:ObjectProperty

Link to the wellness baseline snapshot.

Domain: checkup:IntakeFormData

Range: checkup:WellnessBaseline

checkup:hasActivitySummary

owl:ObjectProperty

Link to the activity and sleep summary.

Domain: checkup:IntakeFormData

Range: checkup:ActivitySummary

checkup:hasProcedure v1.8

owl:ObjectProperty

Link to a procedure summary entry.

Domain: checkup:IntakeFormData

Range: checkup:ProcedureSummary

checkup:hasChange v1.9

owl:ObjectProperty

Link from a MedicationSummary or SupplementSummary to a medication change record.

Range: checkup:MedicationChangeRecord

Wellness Baseline Properties v1.7

checkup:baselineTimestamp

owl:DatatypeProperty

Timestamp when this baseline snapshot was computed.

Domain: checkup:WellnessBaseline

Range: xsd:dateTime

checkup:measurementPeriod

owl:DatatypeProperty

Description of the data period used to compute this baseline (e.g., "7 days", "30 days").

Domain: checkup:WellnessBaseline

Range: xsd:string

checkup:restingHeartRate

owl:DatatypeProperty

Average resting heart rate during baseline period (bpm).

Domain: checkup:WellnessBaseline

Range: xsd:double

checkup:hrvSDNN

owl:DatatypeProperty

Average heart rate variability (SDNN) during baseline period (ms).

Domain: checkup:WellnessBaseline

Range: xsd:double

checkup:vo2Max

owl:DatatypeProperty

Most recent VO2 Max value during baseline period (mL/kg/min).

Domain: checkup:WellnessBaseline

Range: xsd:double

checkup:walkingHeartRate

owl:DatatypeProperty

Average walking heart rate during baseline period (bpm).

Domain: checkup:WellnessBaseline

Range: xsd:double

checkup:respiratoryRateBaseline

owl:DatatypeProperty

Average respiratory rate during baseline period (breaths/min).

Domain: checkup:WellnessBaseline

Range: xsd:double

checkup:walkingSteadiness

owl:DatatypeProperty

Walking steadiness classification during baseline period: OK, Low, Very Low.

Domain: checkup:WellnessBaseline

Range: xsd:string

Activity Summary Properties v1.7

checkup:summaryPeriodStart

owl:DatatypeProperty

Start date of the activity summary period.

Domain: checkup:ActivitySummary

Range: xsd:dateTime

checkup:summaryPeriodEnd

owl:DatatypeProperty

End date of the activity summary period.

Domain: checkup:ActivitySummary

Range: xsd:dateTime

checkup:averageDailySteps

owl:DatatypeProperty

Average number of steps per day during the period.

Domain: checkup:ActivitySummary

Range: xsd:integer

checkup:exerciseMinutes

owl:DatatypeProperty

Total or average exercise minutes during the period.

Domain: checkup:ActivitySummary

Range: xsd:integer

checkup:standHours

owl:DatatypeProperty

Average daily stand hours during the period.

Domain: checkup:ActivitySummary

Range: xsd:integer

checkup:activeEnergyBurned

owl:DatatypeProperty

Average daily active energy burned in kcal during the period.

Domain: checkup:ActivitySummary

Range: xsd:double

checkup:sleepDuration

owl:DatatypeProperty

Average sleep duration in hours during the period.

Domain: checkup:ActivitySummary

Range: xsd:double

checkup:sleepQuality

owl:DatatypeProperty

Qualitative sleep quality assessment: good, fair, poor.

Domain: checkup:ActivitySummary

Range: xsd:string

Immunization Summary Properties v1.7

Uses mixed namespace pattern: checkup: properties for app-layer enrichment alongside clinical data fields. 16 properties total.

checkup:vaccineName

owl:DatatypeProperty

Name of the vaccine administered.

Domain: checkup:ImmunizationSummary

Range: xsd:string

checkup:administrationDate

owl:DatatypeProperty

Date the vaccine was administered.

Domain: checkup:ImmunizationSummary

Range: xsd:dateTime

checkup:immunizationStatus

owl:DatatypeProperty

Status: completed, entered-in-error, not-done.

Domain: checkup:ImmunizationSummary

Range: xsd:string

checkup:vaccineCode

owl:DatatypeProperty

CVX vaccine code for standardized identification.

Domain: checkup:ImmunizationSummary

Range: xsd:string

checkup:vaccineCategory

owl:DatatypeProperty

Categorization for intake form display: routine, travel, occupational, other.

Domain: checkup:ImmunizationSummary

Range: xsd:string

checkup:manufacturer

owl:DatatypeProperty

Vaccine manufacturer name.

Domain: checkup:ImmunizationSummary

Range: xsd:string

checkup:lotNumber

owl:DatatypeProperty

Vaccine lot number.

Domain: checkup:ImmunizationSummary

Range: xsd:string

checkup:expirationDate

owl:DatatypeProperty

Vaccine expiration date.

Domain: checkup:ImmunizationSummary

Range: xsd:date

checkup:doseNumber

owl:DatatypeProperty

Dose sequence number in multi-dose series.

Domain: checkup:ImmunizationSummary

Range: xsd:integer

checkup:doseQuantity

owl:DatatypeProperty

Dose quantity administered.

Domain: checkup:ImmunizationSummary

Range: xsd:string

checkup:administrationRoute

owl:DatatypeProperty

Route of vaccine administration: intramuscular, subcutaneous, oral, etc.

Domain: checkup:ImmunizationSummary

Range: xsd:string

checkup:administrationSite

owl:DatatypeProperty

Body site where vaccine was administered: left arm, right arm, etc.

Domain: checkup:ImmunizationSummary

Range: xsd:string

checkup:administeringProvider

owl:DatatypeProperty

Name of the provider who administered the vaccine.

Domain: checkup:ImmunizationSummary

Range: xsd:string

checkup:administeringLocation

owl:DatatypeProperty

Location where vaccine was administered.

Domain: checkup:ImmunizationSummary

Range: xsd:string

checkup:immunizationNotes

owl:DatatypeProperty

Additional notes about the immunization.

Domain: checkup:ImmunizationSummary

Range: xsd:string

checkup:immunizationSourceRecord

owl:ObjectProperty

Link to the source clinical:Immunization record.

Domain: checkup:ImmunizationSummary

Range: xsd:anyURI

Procedure Summary Properties v1.8

Uses mixed namespace pattern: checkup: for app-layer fields, clinical: for standardized clinical data (defined in clinical.ttl).

checkup:procedureName

owl:DatatypeProperty

Name of the medical procedure.

Domain: checkup:ProcedureSummary

Range: xsd:string

checkup:procedureCategory

owl:DatatypeProperty

Categorization for intake form display: surgical, diagnostic, therapeutic, other.

Domain: checkup:ProcedureSummary

Range: xsd:string

checkup:procedureLocation

owl:DatatypeProperty

Facility or location where the procedure was performed.

Domain: checkup:ProcedureSummary

Range: xsd:string

checkup:procedureSourceRecord

owl:ObjectProperty

Link to the source clinical:Procedure record.

Domain: checkup:ProcedureSummary

Range: xsd:anyURI

Cross-referenced clinical: properties: procedureStatus, performedDate, bodySite, performer, outcome, procedureSnomedCode, cptCode

Medication Change Record Properties v1.9

Tracks changes to medications and supplements between visit snapshots for the "Changes Since Last Visit" report section.

checkup:changeType

owl:DatatypeProperty

Type of change: added, stopped, doseChanged, frequencyChanged, adherenceChanged, statusChanged.

Domain: checkup:MedicationChangeRecord

Range: xsd:string

checkup:changedField

owl:DatatypeProperty

Name of the field that was changed (e.g., dose, frequency).

Domain: checkup:MedicationChangeRecord

Range: xsd:string

checkup:changeRecordPreviousValue

owl:DatatypeProperty

Value of the field before the change.

Domain: checkup:MedicationChangeRecord

Range: xsd:string

checkup:changeRecordNewValue

owl:DatatypeProperty

Value of the field after the change.

Domain: checkup:MedicationChangeRecord

Range: xsd:string

checkup:changeDate

owl:DatatypeProperty

Date when the change occurred.

Domain: checkup:MedicationChangeRecord

Range: xsd:dateTime

Lab Result Summary Properties v1.7

Uses mixed namespace pattern: checkup:labCategory for app-layer categorization. Standardized lab data fields use clinical: namespace properties.

checkup:labCategory

owl:DatatypeProperty

Intake form display category: metabolic, hematology, lipid, thyroid, vitamin, other.

Domain: checkup:LabResultSummary

Range: xsd:string

Usage Example

@prefix cascade: <https://ns.cascadeprotocol.org/core/v1#> .
@prefix checkup: <https://ns.cascadeprotocol.org/checkup/v1#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<#intake-form-abc123> a checkup:IntakeFormData ;
    checkup:schemaVersion "1.0" ;
    checkup:generatedAt "2026-01-05T14:30:00Z"^^xsd:dateTime ;
    checkup:hasPatientProfile <#patient-profile> ;
    checkup:hasMedication <#medication-1> ;
    checkup:hasSupplement <#supplement-1> ;
    checkup:hasVisitIssue <#issue-1> .

<#patient-profile> a checkup:PatientProfile ;
    checkup:patientName "Jane Smith" ;
    checkup:dateOfBirth "1985-03-15"^^xsd:date ;
    checkup:biologicalSex "female" ;
    checkup:ageGroup "adult" ;
    checkup:provenanceType "ehr_verified" .

<#medication-1> a checkup:MedicationSummary ;
    checkup:medicationName "Lisinopril" ;
    checkup:dose "10mg" ;
    checkup:frequency "once_daily" ;
    checkup:adherenceStatus "taking_as_prescribed" ;
    checkup:indication "blood pressure" ;
    checkup:episodeId "med-episode-lisinopril-001" ;
    checkup:provenanceType "ehr_verified" .

<#supplement-1> a checkup:SupplementSummary ;
    checkup:supplementName "Vitamin D3" ;
    checkup:supplementDose "2000 IU" ;
    checkup:supplementFrequency "once_daily" ;
    checkup:supplementBrand "Nature Made" ;
    checkup:regulatoryStatus "dietarySupplement" ;
    checkup:evidenceStrength "moderateEvidence" ;
    checkup:reasonForUse "bone health" ;
    checkup:doctorAware "true"^^xsd:boolean .

<#issue-1> a checkup:VisitIssue ;
    checkup:issueCategory "cardiovascular" ;
    checkup:issueDescription "Occasional heart palpitations when stressed" ;
    checkup:issuePriority "1"^^xsd:integer ;
    checkup:issueSeverity "mild" .

Integration with Other Vocabularies

  • Core Vocabulary: Uses cascade:schemaVersion and cascade:DataProvenance for versioning and provenance tracking. cascade:DataSource (v1.1) for source identity.
  • Health Vocabulary: checkup:WellnessSummary references health:MetricTrend for Layer 2 wellness trend data. Insight classes link to Layer 2 observations.
  • Clinical Vocabulary: Links to clinical:Medication, clinical:AllergyIntolerance, and clinical:Condition source records imported from Apple Health.
  • POTS Vocabulary: checkup:DiagnosticTestResult can reference pots:POTSCheckResult for orthostatic screening results.
  • FHIR: Maintains alignment with FHIR resource structures for clinical interoperability. IntakeQuestionnaireResponse (v1.6) is structurally inspired by FHIR QuestionnaireResponse with a mechanical transformation path.

SHACL Validation Shapes

Validation shapes for this vocabulary are defined in checkup.shapes.ttl (v2.0).

The shapes file validates all active checkup classes and their required properties. Key shapes include:

  • checkup:IntakeFormDataShape — Validates the top-level intake form aggregate with required links
  • checkup:MedicationSummaryShape — Validates medication summaries with episode linkage
  • checkup:SupplementSummaryShape — Validates supplement summaries with required regulatoryStatus
  • checkup:IntakeQuestionnaireResponseShape — Validates FHIR-inspired questionnaire responses
  • checkup:ResponseItemShape — Validates questionnaire response items with nested sub-items

In v2.0 of the shapes file, shapes for the 8 deprecated classes removed in checkup v3.0 have been dropped, ensuring validation only targets active vocabulary terms.

Changelog

Version 3.1 (2026-02-22)

  • Added checkup:VisitPrepTray class (7 properties: prepTitle, appointmentDate, prepProviderName, specialty, visitPrepStatus, prepCompletedDate, hasTrayItem) for per-appointment visit preparation containers
  • Added checkup:VisitTrayItem class (5 properties: payloadType, intentCategory, isResolved, sourceSection, sourceRecordId) for typed items within a tray
  • Added checkup:hasVisitPrep ObjectProperty and checkup:activeVisitPrepId DatatypeProperty as aggregate links on IntakeFormData
  • Active classes: 28 (was 27). Part of Health Map v3 Pre-Phase Track A (Task A7).

Version 3.0 (2026-02-18)

  • Removed 8 deprecated classes: PatientProfile, InsuranceInfo, VitalSignsTrend, WellnessBaseline, ActivitySummary, ScreeningStatus, FamilyHistoryEntry, DiagnosticTestResult
  • Clean break: all deprecated classes now fully removed from checkup.ttl (previously marked owl:deprecated true)
  • Demographics via cascade:PatientProfile (core v2.0+), insurance via coverage:InsurancePlan (coverage v1.0)
  • Updated checkup.shapes.ttl to v2.0 — shapes for removed classes dropped
  • Part of Schema Refactoring Plan Phase 4 (CLN1)

Version 2.2 (2026-02-17)

  • Updated InsuranceInfo class comment to reference coverage: namespace properties
  • Version bump to match checkup.ttl owl:versionInfo
  • Part of Schema Refactoring Plan Phase 3 (WS4 integration)

Version 2.1 (2026-02-17)

  • DailyCheckIn now rdfs:subClassOf health:SelfReport (was prov:Entity)
  • Base self-report properties (reportDate, reportType, completionStatus, reportContext, reportNotes) promoted to health: namespace via health:SelfReport base class
  • Apps implement the SelfReportable protocol pattern to bridge Swift models to the ontology
  • Part of Schema Refactoring Plan Phase 3 (WS7)

Version 2.0 (2026-02-17)

  • Deprecated checkup:PatientProfile (use cascade:PatientProfile from core.ttl)
  • Deprecated 8 Tier 3 patient profile properties (preferredLanguage, maritalStatus, raceEthnicity, preferredPharmacy, hasLivingWill, hasPowerOfAttorney, hasDNR, advanceDirectiveNotes) — migrated to cascade:/dct: namespace
  • Part of Schema Refactoring Plan Phase 3 (WS6a)

Version 1.11 (2026-02-18)

  • Updated InsuranceInfo class comment to reference coverage: namespace for mixed namespace pattern
  • Part of Schema Refactoring Plan Phase 2 (WS4)

Version 1.10 (2026-02-17)

  • Added cascade:subConcern annotations to all classes for functional role classification
  • Added Sub-Concern Classification table documenting 9 sub-concern categories across all classes
  • Deprecated WellnessBaseline and ActivitySummary (sub-concern: deprecated)
  • Part of Schema Refactoring Plan Phase 1 (WS2)

Version 1.9 (2026-02-10)

  • Added MedicationChangeRecord class for tracking medication/supplement changes between visit snapshots (5 properties)
  • Added hasChange link on MedicationSummary and SupplementSummary
  • Enables persistence of "Changes Since Last Visit" report data across save/reload cycles
  • Property names prefixed (changeRecordPreviousValue, changeRecordNewValue) to avoid collision with VitalSignsTrend properties

Version 1.8 (2026-02-10)

  • Added ProcedureSummary class with mixed namespace pattern (4 checkup: properties + 7 clinical: cross-references)
  • Added hasProcedure aggregate link on IntakeFormData
  • Added procedure serialization and deserialization in CheckupSerializer/CheckupDeserializer

Version 1.7 (2026-02-10)

  • Added 5 new classes: WellnessBaseline, ActivitySummary, ImmunizationSummary, LabResultSummary, WellnessProfileReference
  • WellnessBaseline: aggregated vital sign baseline with 8 properties
  • ActivitySummary: combined activity/sleep metrics with 8 properties
  • ImmunizationSummary: patient-facing vaccine summary with 16 properties (mixed namespace pattern)
  • LabResultSummary: patient-facing lab summary with labCategory (uses clinical: properties for standardized data)
  • WellnessProfileReference: lightweight pointer to full wellness profile
  • Added noteContent to VisitPrepSummary (merges VisitPrepNotes)
  • Added 4 MedicationSummary verification properties
  • Added 2 SuggestedQuestion source properties
  • Added 4 IntakeFormData aggregate links for new classes

Version 1.6 (2026-02-09)

  • Added 2 new classes: IntakeQuestionnaireResponse, ResponseItem
  • FHIR-inspired questionnaire container using LOINC panel codes as identifiers and SNOMED CT for coded answers
  • ResponseItem supports nested sub-items via childItem for hierarchical questionnaire structures
  • Added 10 new properties: questionnaireId, questionnaireTitle, responseItem, completedAt, itemLinkId, itemText, itemAnswer, itemAnswerCode, itemAnswerCodeSystem, childItem
  • Added hasQuestionnaireResponse link from IntakeFormData
  • Follows "established vocabularies first" principle: LOINC/SNOMED as actual vocabulary, checkup: as minimal container
  • Mechanical transformation path to FHIR QuestionnaireResponse JSON preserved for clinical interoperability
  • SHACL shapes added: IntakeQuestionnaireResponseShape, ResponseItemShape

Version 1.5 (2026-02-07)

  • Added 3 new classes: DailyCheckIn, DiscussionTopic, CheckInSettings
  • DailyCheckIn: patient-reported daily medication adherence tracking with response status and missed medication IDs
  • DiscussionTopic: AI-generated or user-created visit discussion topics with relevance scoring and source tracking
  • CheckInSettings: notification scheduling configuration for daily adherence reminders
  • Added 17 new properties for adherence tracking, discussion topics, and notification settings
  • Added hasDailyCheckIn, hasDiscussionTopic, hasCheckInSettings links from IntakeFormData

Version 1.4 (2026-02-01)

  • Added 5 new Layer 3 insight classes: WellnessSummary, TrendInsight, CorrelationInsight, KeyIndicator, AttentionItem
  • Added VisitPrepSummary class for curated clinical visit preparation
  • Added aggregate links to IntakeFormData: hasWellnessSummary, hasTrendInsight, hasCorrelationInsight, hasKeyIndicator, hasAttentionItem, hasVisitPrepSummary
  • Deprecated VitalSignsTrend — superseded by health:MetricTrend (Layer 2) + checkup:WellnessSummary (Layer 3). Will be removed in v1.5.
  • CorrelationInsight enforces temporal-only language (no causation claims)
  • insightGeneratedBy uses prov:Agent range for both software and human agent provenance
  • Added health: prefix import for cross-layer references to health:MetricTrend

Version 1.3 (2026-01-17)

  • Added EHR Provenance Properties for cross-app medication data portability:
    • ehrSystemName — EHR patient portal identifier
    • ehrOrganization — Healthcare organization name
    • fhirResourceType — FHIR resource type origin
    • lastSyncedFromSource — Sync timestamp
  • Added Medication Classification Properties:
    • relevanceTier — current, needsVerification, historical, filtered
    • therapeuticClass — Pharmacological class
    • tierClassificationReason — Human-readable classification explanation

Version 1.2 (2026-01-15)

  • Added Phase 3 MedicationSummary properties (episodeId, indication, patientCost, functionalImpact, concernsForDoctor)
  • Added doctorAware property for SupplementSummary
  • Updated to align with checkup.shapes.ttl v1.2
  • SHACL shapes now validate MedicationSummary with episode linkage and SupplementSummary with required regulatoryStatus

Version 1.1 (2026-01-15)

  • Added SupplementSummary class for dietary supplements and OTC products
  • Added 12 supplement-specific properties (regulatoryStatus, evidenceStrength, etc.)
  • Added hasSupplement property to IntakeFormData
  • Supplements explicitly separated from medications due to different regulatory status

Version 1.0 (2026-01-03)

  • Initial release with 12 core classes
  • IntakeFormData, PatientProfile, InsuranceInfo, MedicationSummary, AllergySummary, ConditionSummary, FamilyHistoryEntry, VitalSignsTrend, ScreeningStatus, VisitIssue, SuggestedQuestion, DiagnosticTestResult
  • POTS Check integration via DiagnosticTestResult
  • Data provenance properties for source tracking

Important Notes

  • Data Classification: Mix of EHR-verified and consumer-generated data (indicated by provenance)
  • Privacy: All data stored locally in encrypted pods; patient controls sharing
  • PDF Export: Designed to generate professional intake forms for healthcare providers
  • FHIR Alignment: Properties align with FHIR Patient, MedicationStatement, AllergyIntolerance, and Condition resources