OutputSchema is a recursive JSON-Schema-like structure that describes what each field should return. Every schema requires an instructions field — that’s how the model knows what to extract for this slot.
This page describes the authoring format you send when you create a template. When you read a
template back with
GET /v1/medical-record-configurations/{id}, each object schema returns its
properties as an ordered array of { "key": ..., "schema": ... } entries — not the map form
shown here. The content is identical; only the serialization differs.Types
These are the only keywords the API persists. Anything else is silently dropped — see Not supported.
Supported
format values for string: date-time, date, time, duration, email, uuid, ipv4, ipv6. A string with format of date, time, or date-time is returned as an ISO 8601 value.
Required and default
required(boolean, defaults totrue) — whenfalse, the field is optional: the model may returnnullfor it.default(leaf fields only) — substituted when the model extracts nothing (returnsnull). Its type must match the fieldtype; for anenumfield it must be one of the enum values.
default only takes effect when required is false. A required: true field is always generated, so its default never fires. Set required: false together with default to guarantee a fallback value when the encounter doesn’t mention the field.
Not supported
The following JSON-Schema keywords are accepted by the request parser but silently dropped — they never persist and never affect generation. Don’t rely on them.Enum options
enum (on string fields, including the items of a multi-select array) accepts two forms:
- Plain strings — the displayed text is the stored value:
"enum": ["Low", "Medium", "High"]. { label, value }objects — decouple display from storage: showlabel, storevalue(a stable code such as a catalog id, ICD-10, or SNOMED). Generation returns thevalue; thelabelis for display only, so labels can be renamed or translated without changing what your integration receives.
value must be unique within a field. The two forms can be mixed in one list (a plain string is treated as label == value).