A Smart Block is a structured field you drop into a chart. Where the rest of a note is prose, a smart block holds real values — a blood pressure, a pain score, a range of motion measurement — which means what you record in it can be repeated across visits, put in a log, and drawn on a graph.
Insert one by typing / in the chart editor and picking it from the list.
The built-in blocks
| Block | What it records |
|---|---|
| Vitals | Blood pressure, heart rate, temperature, respiration, oxygen saturation |
| Pain | Pain score, site, quality, aggravating and easing factors |
| Range of Motion (ROM) | Joint, movement, degrees, side |
| Body Diagram | Marks on an interactive body outline |
| Odontogram | Dental chart |
| Periodontal / Perio Screening | Pocket depths and screening scores |
| Spinal | Segmental findings |
| Exercise | Prescribed exercises with sets, reps and load |
| Regimen | A course of something taken or applied over time |
| Laser Hair Removal | Settings, fluence, spot size, area treated |
| Electrolysis | Session settings and area treated |
| Microneedling | Depth, passes, area |
| Before / After | A paired image comparison |
| Annotation | A drawn markup over an image |
| Product Recommendation | Products suggested to the patient, linked to inventory |
| Questionnaire | A scored instrument |
| Generic Table | A free-form table |
| Tabular Log | Any block, repeated as rows over time |
| Instruction Step | A step in a patient instruction |
| AI Scribe | A recorded, transcribed consultation — see AI Scribe |
Logs — the same block over time
Most measurement blocks can be converted to a log. A log holds the same block repeated as rows, so a course of care reads as a table of readings rather than as the same block pasted six times.
- Add a row from the log’s own add button
- Each row carries its own timestamp
- The log’s grid uses the same field definitions the block itself does, so a value can never appear in one and be missing from the other
- Logs are what the AI Scribe appends to when a consultation covers several readings
Not every block can be a log. A consultation is not a row, so the AI Scribe block has no Convert to tabular option.
Graphing
Any block whose fields are measurements feeds the graphing system automatically. There is no separate step that maps a block’s fields onto a chart — a field is defined once and the graph reads the same definition, so renaming or re-roling a field can never leave a graph pointing at something that stopped existing.
See Analytics & Graphs for building and saving graph definitions.
Custom Smart Blocks
Custom Smart Blocks let your clinic author its own block — the fields it needs, in the order it needs them — without waiting on a release. An authored block renders, stores and graphs exactly like a built-in one.
Navigate to Smart Blocks in the sidebar (/dashboard/smart-blocks).
Creating a block
- Click New block
- Give it a name
- Add fields, choosing a type for each
- Use the live preview beside the editor to see the block as clinicians will
- Save
Field types
| Type | Use for |
|---|---|
| Text | Short free text |
| Textarea | Longer free text |
| Number | A numeric measurement |
| Date | A date |
| Boolean | A yes/no switch |
| Select | One value from a list you author |
| Multi | Several values from a list |
| Combobox | One value, searchable, from a long list |
| Combobox (multi) | Several values, searchable |
| Slider | A number chosen on a track, with min, max and step |
| Range | A span between two numbers |
| Duration | An elapsed time |
| Likert | An answer on a shared scale |
| Scored | A questionnaire item answered on a named scale |
| Sum | A total over other scored fields, optionally banded |
Measures and dimensions
Each field also declares whether it is a measure (something you plot) or a dimension (something you split or filter by). That declaration is what makes an authored block graphable the moment you save it.
Authored questionnaires
A scored questionnaire is not a separate thing in Zdrovia — it is a custom block with a shared answer scale, one scored field per question, and a sum over them.
- The scale is declared once on the block and referenced by every item, so changing the wording of the answers is one edit rather than nine
- A total stays empty until every question is answered. A partial total is a phantom low score, and on a clinical chart that is the most damaging thing a scoring system can get wrong
- Bands turn a total into a severity label, and the label becomes something you can filter and split by on a graph
- Totals don’t chain. A sum cannot take another sum as its source — the same number is one sum over the same questions
Zdrovia validates all of this when you save: the scale has to exist, every source of a total has to exist, a total can’t include itself, and bands can’t overlap or run backwards.
Versions
Saved definitions are revisioned. A block already written into a patient’s chart keeps pointing at the revision it was authored from, so editing a definition never rewrites what a clinician recorded last month. New instances pick up the current revision.
Where blocks come from
| Source | Who authors it |
|---|---|
| Built-in blocks | Shipped with Zdrovia |
| Custom blocks | Your clinic, from the Smart Blocks page |
| Chart templates | A template can ship blocks pre-placed, so every note made from it starts with the right structure |
See Charts for building chart templates.
Tips
- Build the block before you build the template. A template that places your own blocks gets a clinician to a complete, structured note in one click.
- Mark the fields you actually plot as measures — a graph can only offer what a field declares.
- Use a log rather than repeating a block. Six pasted vitals blocks are six things to read; one log is a table.
- Author questionnaires as custom blocks rather than as free text. A scored total that Zdrovia computed is a number you can graph; one typed into a paragraph is not.
