Skip to main content
Patient-reported symptoms, moods, and functional status assessments. Submit these via POST /v1/logs/batch or the Python SDK; see How logs work for submission fields and the difference between lifecycle-tracked and point-in-time log types.

Symptom report

Type: symptom_report · Source: Python SDK / REST · Lifecycle-tracked · Extensible Reserved for structured symptom severity with a defined instrument: validated or standard instruments (esas_r, pro_ctcae, ctcae, custom) with symptom name and score per item; score 0 = resolved. Payload
instrument
string
required
esas_r | pro_ctcae | ctcae | custom or clinic-defined string. Example: esas_r, pro_ctcae, ctcae
recall_period_days
integer
Reflects the instrument’s own temporal scope. PRO-CTCAE = 7 days; ESAS-r = 0 (point-in-time). Do not set arbitrarily.
symptoms
object[]
required
source
string | object
Who asserted this fact. Accepts a legacy string (e.g. ‘patient_self_report’) or a structured Source object.
Example
import olira
from olira import OliraLogType

olira.log(
    log_type=OliraLogType.SYMPTOM_REPORT,
    patient_id="your-patient-id",
    payload={
        "instrument": "esas_r",
        "symptoms": [...]
    },
)
Related types: Use symptom_free_text for free-text symptom descriptions, symptom_detail for follow-up detail on one symptom, mood_report for mood labels, health_metric for single scalar wellbeing/energy without instrument. instrument is required; scale_min/scale_max auto-filled for known instruments.

Mood report

Type: mood_report · Source: Python SDK / REST · Lifecycle-tracked · Extensible Reserved for categorical mood or emotion labels: mood terms (e.g. anxious, hopeful, calm) with optional intensity 0-10; source (checkin, spontaneous, prompted) optional. Payload
moods
object[]
required
source
string | object
Who asserted this fact. Accepts a legacy string (e.g. ‘patient_self_report’) or a structured Source object.
Example
import olira
from olira import OliraLogType

olira.log(
    log_type=OliraLogType.MOOD_REPORT,
    patient_id="your-patient-id",
    payload={
        "moods": [...]
    },
)
Related types: Use health_metric for numeric wellbeing/energy/pain scales without a mood label, symptom_report for symptom severity, questionnaire_response for full questionnaire.

Symptom free text

Type: symptom_free_text · Source: Python SDK / REST Reserved for unstructured symptom text to be processed by extraction: free-text symptom descriptions from conversation or direct input; feeds NLP to produce symptom_report, symptom_detail, mood_report, etc. Payload
text
string
required
Free-text symptom description as reported by the patient or captured from conversation.
associated_symptoms
object[]
source
string | object
Who asserted this fact. Accepts a legacy string (e.g. ‘patient_self_report’) or a structured Source object.
Example
import olira
from olira import OliraLogType

olira.log(
    log_type=OliraLogType.SYMPTOM_FREE_TEXT,
    patient_id="your-patient-id",
    payload={
        "text": "..."
    },
)
Related types: Use symptom_report for already-structured symptom scores, symptom_detail for follow-up detail on a known symptom. Not intended for structured lab or clinical data.

Symptom detail

Type: symptom_detail · Source: Python SDK / REST Reserved for follow-up detail about an already-reported symptom: one detail (location, duration, character, trigger, recurrence status, etc.) linked to a prior symptom via symptom_type/snomed_code/meddra_code; detail_type + response. Payload
symptom_type
string
required
Symptom type; used for matching when snomed_code and meddra_code unset.
snomed_code
string
SNOMED CT code; first choice for matching target symptom.
meddra_code
string
MedDRA code; used when snomed_code unset.
detail_type
string
required
Category of detail (e.g. location, duration, character, trigger, alleviating_factor, recurrence status, other). Client-extensible.. Example: location, duration, character
question
string
Optional — the question that prompted this detail response.
response
string
required
The patient’s or clinician’s answer to the detail question.
source
string | object
Who reported this detail. Accepts a legacy string or a structured Source object. Flows into the sources of the matched SymptomSimple.
Example
import olira
from olira import OliraLogType

olira.log(
    log_type=OliraLogType.SYMPTOM_DETAIL,
    patient_id="your-patient-id",
    payload={
        "symptom_type": "...",
        "detail_type": "location",
        "response": "..."
    },
)
Related types: Use symptom_report for initial symptom report with score, symptom_free_text for unstructured symptom text, questionnaire_item_response for standalone question and answer.

Functional class

Type: functional_class · Source: Python SDK / REST, Integration · Extensible Reserved for functional status or performance class from standard instruments: NYHA, CCS, ECOG, Karnofsky, ADL, IADL with class/score; reported_by (patient, clinician, caregiver). Payload
instrument
string
required
Standard functional instrument name.. Example: nyha, ccs, ecog
class
integer
required
Numeric class or score. 1–4 for NYHA/CCS; 0–4 for ECOG; 0–100 for Karnofsky; ADL/IADL use item-based scoring.. Minimum: 0. Maximum: 100
reported_by
string
Who reported the functional class (e.g. patient, clinician, caregiver).. Example: patient, clinician, caregiver
change_from_prior
object
assessment_type
string
ECOG, Karnofsky, NYHA, ADL, IADL, other
narrative
string
Free-text clinical context or summary of functional status.
domain
string
Functional domain being assessed (e.g. physical, cognitive, social).. Example: physical, cognitive, social
assessor_type
string
Role of the person doing the assessment (e.g. clinician, patient, caregiver).. Example: clinician, patient, caregiver
score_scale
string
Scale definition when using a non-standard instrument.
baseline_comparison
string
Comparison note relative to a prior baseline.
functional_limitations
string[]
List of specific functional limitations identified (e.g. ‘unable to climb stairs’).
extensions
object
Open key/value bag for client/source-specific fields that lack a typed slot; merged into the entry’s extensions (leaf-level, last-writer-wins by event timestamp).
source
string | object
Who asserted this fact. Legacy string or structured Source object.
Example
import olira
from olira import OliraLogType

olira.log(
    log_type=OliraLogType.FUNCTIONAL_CLASS,
    patient_id="your-patient-id",
    payload={
        "instrument": "nyha",
        "class": 0
    },
)
Related types: Use vitals_measurement for vital signs, lab_results for lab results, clinical_measurement for other clinical measurements like ejection fraction, symptom_report for symptom severity.

Health metric

Type: health_metric · Source: Python SDK / REST, Integration · Extensible Reserved for a single scalar patient-reported metric with an explicit scale: ad-hoc wellbeing, energy, pain NRS, appetite, hydration (metric_type + score + scale_min + scale_max). Payload
metric_type
string
required
e.g. wellbeing, energy, pain_nrs, appetite, hydration or client-defined.
score
number
required
The measured value on the scale defined by scale_min and scale_max.
scale_min
number
required
Must always be provided explicitly; not inferred.
scale_max
number
required
Must always be provided explicitly; not inferred.
source
string | object
Who asserted this fact. Legacy string or structured Source object.
extensions
object
Open key/value bag for client/source-specific fields that lack a typed slot; merged into the entry’s extensions (leaf-level, last-writer-wins by event timestamp).
Example
import olira
from olira import OliraLogType

olira.log(
    log_type=OliraLogType.HEALTH_METRIC,
    patient_id="your-patient-id",
    payload={
        "metric_type": "...",
        "score": 0,
        "scale_min": 0,
        "scale_max": 0
    },
)
Related types: Use mood_report for mood labels, questionnaire_response for full validated questionnaire, symptom_report for symptom with instrument, questionnaire_item_response for single Q&A with question text.