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
esas_r | pro_ctcae | ctcae | custom or clinic-defined string. Example:
esas_r, pro_ctcae, ctcaeReflects the instrument’s own temporal scope. PRO-CTCAE = 7 days; ESAS-r = 0 (point-in-time). Do not set arbitrarily.
Who asserted this fact. Accepts a legacy string (e.g. ‘patient_self_report’) or a structured Source object.
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
Who asserted this fact. Accepts a legacy string (e.g. ‘patient_self_report’) or a structured Source object.
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
Free-text symptom description as reported by the patient or captured from conversation.
Who asserted this fact. Accepts a legacy string (e.g. ‘patient_self_report’) or a structured Source object.
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; used for matching when snomed_code and meddra_code unset.
SNOMED CT code; first choice for matching target symptom.
MedDRA code; used when snomed_code unset.
Category of detail (e.g. location, duration, character, trigger, alleviating_factor, recurrence status, other). Client-extensible.. Example:
location, duration, characterOptional — the question that prompted this detail response.
The patient’s or clinician’s answer to the detail question.
Who reported this detail. Accepts a legacy string or a structured Source object. Flows into the sources of the matched SymptomSimple.
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
Standard functional instrument name.. Example:
nyha, ccs, ecogNumeric 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
Who reported the functional class (e.g. patient, clinician, caregiver).. Example:
patient, clinician, caregiverECOG, Karnofsky, NYHA, ADL, IADL, other
Free-text clinical context or summary of functional status.
Functional domain being assessed (e.g. physical, cognitive, social).. Example:
physical, cognitive, socialRole of the person doing the assessment (e.g. clinician, patient, caregiver).. Example:
clinician, patient, caregiverScale definition when using a non-standard instrument.
Comparison note relative to a prior baseline.
List of specific functional limitations identified (e.g. ‘unable to climb stairs’).
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).
Who asserted this fact. Legacy string or structured Source object.
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
e.g. wellbeing, energy, pain_nrs, appetite, hydration or client-defined.
The measured value on the scale defined by scale_min and scale_max.
Must always be provided explicitly; not inferred.
Must always be provided explicitly; not inferred.
Who asserted this fact. Legacy string or structured Source 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).
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.
