Form Requirements
Before an ANS Challenge test can be considered valid, patients must complete required questionnaires. The SDK allows you to determine when these forms are presented (before test, after test, or separately), but test results will not be released until all required forms are completed.
Required Forms
A test cannot be reviewed by a physician until all required forms are complete. The SDK enforces this by marking tests as pending_forms if forms are incomplete. Configure your app to prompt users to complete forms before or immediately after testing.
28-Symptom Autonomic Questionnaire
The 28-Symptom Autonomic Questionnaire is a proprietary, clinically-validated instrument that assesses autonomic dysfunction across multiple body systems. This questionnaire is required for all diagnostic ANS testing.
What It Measures:
- Cardiovascular symptoms (palpitations, chest pain, dizziness, syncope)
- Orthostatic intolerance (lightheadedness upon standing, vision changes)
- Gastrointestinal symptoms (nausea, bloating, constipation, diarrhea)
- Thermoregulation (excessive sweating, heat/cold intolerance)
- Urogenital symptoms (bladder control, sexual dysfunction)
- Cognitive/neurological (brain fog, concentration issues, sleep disturbances)
- Exercise intolerance and fatigue
Question Format:
- Each symptom rated on a 0-4 scale:
- 0 = Never/Not present
- 1 = Mild/Occasional
- 2 = Moderate/Frequent
- 3 = Severe/Very frequent
- 4 = Extreme/Constant
Clinical Use:
- Baseline symptom burden assessment
- Correlate symptoms with ANS testing results (e.g., high orthostatic symptom score + standing challenge abnormalities = POTS diagnosis)
- Track symptom changes over time during treatment
- Identify specific autonomic branches affected (parasympathetic vs sympathetic)
The "28-Symptom Autonomic Questionnaire" and its scoring methodology are proprietary and trademarked by Autonomic Health. Unauthorized reproduction or modification of the questionnaire is prohibited.
Medical History Form
Required Information:
- Past medical diagnoses (autoimmune diseases, neurological conditions, cardiovascular disease)
- Surgeries and hospitalizations
- Family history of autonomic disorders, POTS, dysautonomia, autoimmune diseases
- Allergies and adverse reactions
- History of fainting, seizures, or unexplained falls
Why This Matters:
- Conditions like Ehlers-Danlos Syndrome, Sjögren's syndrome, and lupus are strongly associated with autonomic dysfunction
- Family history helps identify genetic predispositions
- Certain medications or surgeries can cause autonomic side effects
Current Medications Form
Required Information:
- All prescription medications (name, dosage, frequency)
- Over-the-counter medications and supplements
- Recent medication changes (added/removed in past 3 months)
- Compliance/adherence notes
Why This Matters:
- Beta-blockers, alpha agonists, and other autonomic medications directly affect test results
- SSRIs, SNRIs, and other psychotropic drugs influence ANS function
- Stimulants (ADHD medications, caffeine supplements) alter sympathetic activity
- Physicians must know current medications to interpret test results and avoid drug interactions in treatment plans
Failure to disclose medications can lead to:
- Misinterpretation of test results (e.g., beta-blockers artificially lower sympathetic activity)
- Dangerous drug interactions if physician prescribes conflicting medications
- Invalid test results if stimulants were taken before testing
Lifestyle Factors Form
Required Information:
- Exercise habits (frequency, intensity, type)
- Sleep patterns (hours per night, sleep disorders, insomnia)
- Diet and hydration (caffeine intake, alcohol use, salt intake)
- Stress levels and mental health
- Occupational factors (physical demands, standing/sitting duration)
Why This Matters:
- Athletes have different ANS baselines than sedentary individuals
- Sleep deprivation affects autonomic function
- Dehydration and low salt intake can mimic POTS symptoms
- High stress occupations may show elevated sympathetic tone
When to Present Forms
You have flexibility in when to present forms to users, but they must be completed before physician review can begin:
Option 1: Before Testing (Recommended)
- Present forms during onboarding or account creation
- Ensures test can be reviewed immediately after upload
- Reduces friction in the test flow
- Best for diagnostic use cases where time-to-results matters
Option 2: After Testing
- Users complete ANS Challenge first
- Forms presented immediately after test dismissal
- Capitalizes on user engagement after completing test
- Risk: Users may abandon forms, delaying review
Option 3: Separate Flow
- Forms accessible from profile/settings
- Users can complete at their convenience
- Must gate test initiation until required forms are complete
- Good for research studies with extensive questionnaires
For diagnostic testing, require the 28-Symptom Autonomic Questionnaire and Current Medications form before allowing test initiation. Medical History and Lifestyle Factors can be collected after testing if needed to reduce upfront friction.
Checking Form Completion Status
Before initiating a test, check which forms are required and which are completed:
- iOS
- Android
Task {
// Get all form templates to see what's required
let templates = try await sdk.apiService.forms.listFormTemplates()
let requiredForms = templates.filter { $0.required }
// Get user's form submissions
let submissions = try await sdk.apiService.forms.listMyFormSubmissions(
patientId: patientId,
status: .completed
)
let completedFormIds = Set(submissions.map { $0.formId })
let requiredFormIds = Set(requiredForms.map { $0.formId })
let missingForms = requiredFormIds.subtracting(completedFormIds)
if missingForms.isEmpty {
// All required forms complete, can proceed with test
sdk.presentANSChallenge(from: self, animated: true)
} else {
// Prompt user to complete missing forms
promptUserToCompleteForms(missingForms)
}
}
lifecycleScope.launch {
// Get all form templates to see what's required
val templates = sdk.apiService.forms.listFormTemplates()
val requiredForms = templates.filter { it.required }
// Get user's form submissions
val submissions = sdk.apiService.forms.listMyFormSubmissions(
patientId = patientId,
status = FormStatus.COMPLETED
)
val completedFormIds = submissions.map { it.formId }.toSet()
val requiredFormIds = requiredForms.map { it.formId }.toSet()
val missingForms = requiredFormIds - completedFormIds
if (missingForms.isEmpty()) {
// All required forms complete, can proceed with test
sdk.presentANSChallenge(activity = this, animated = true)
} else {
// Prompt user to complete missing forms
promptUserToCompleteForms(missingForms)
}
}
Fetching Form Templates
- iOS
- Android
Task {
let templates = try await apiService.forms.listFormTemplates()
let autonomicForm = try await apiService.forms.getFormTemplate(
formId: "28-symptom-autonomic"
)
}
lifecycleScope.launch {
val templates = apiService.forms.listFormTemplates()
val autonomicForm = apiService.forms.getFormTemplate(
formId = "28-symptom-autonomic"
)
}
Form Input Types
| Type | Description |
|---|---|
checkbox | Multiple selection |
radio | Single selection |
dropdown | Single from list |
text | Short text input |
textarea | Long text input |
Submitting Responses
- iOS
- Android
let responses: [String: AnyCodable] = [
"q1_dizziness": AnyCodable("3"),
"q2_medications": AnyCodable("Metoprolol 25mg daily")
]
let submission = FormSubmissionIn(
patientId: patientId,
responses: responses
)
let result = try await apiService.forms.submitFormResponse(
formId: "28-symptom-autonomic",
submission: submission
)
val responses = mapOf(
"q1_dizziness" to "3",
"q2_medications" to "Metoprolol 25mg daily"
)
val submission = FormSubmissionIn(
patientId = patientId,
responses = responses
)
val result = apiService.forms.submitFormResponse(
formId = "28-symptom-autonomic",
submission = submission
)
Form Status
| Status | Description |
|---|---|
pending | Not started |
in_progress | Partial completion |
completed | All questions answered |
cancelled | Abandoned |
Next Steps
Continue to API Reference for complete endpoint documentation.