Skip to documentation
ReferenceEvent model

Event model

Actions

What a learner or operator can do, and what follows.

Format definition

Allow actions to reveal information, perform work, or change a phase, with conditional outcomes and repeat-use rules.

Scenario standard · Execution capabilities

Parameters

events.actions[].id

string

Required

A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content.

events.actions[].kind

"generic" | "medication-order" | "medication-administration"

Optional; omitted means unspecified

Discriminator for conditional action payloads. Specialized fields are prohibited unless kind selects the corresponding branch.

events.actions[].label

string

Required

Use a short, observable action or timed-event label: 2–6 words, at most 48 characters. Put conditions, clinical detail, and what happens in description, not in the label. Do not append the destination state; from/to already identify it.

events.actions[].description

string

Optional; omitted means unspecified

Longer explanation of the action or timed event, its conditions, and what happens. Plain-language context only; executable behavior remains in the selected trigger, timing, resource references, and destination state. Text does not automatically detect learner behavior. Optional when the label provides sufficient context.

events.actions[].patientId

string

Optional; omitted means unspecified

Required when the action targets a patient; omit for team-only actions.

events.actions[].availableInStateIds

string[]

Required

The phase in which this interaction is available or its scheduled timer begins.

events.actions[].conditionId

string

Optional; omitted means unspecified

Prerequisite evaluated at start and again at completion.

events.actions[].durationSeconds

number

Optional; omitted means unspecified

Simulated time between start and completion. Availability is evaluated at start.

events.actions[].repeat

object

Optional; omitted means unspecified

Completed uses count against maxUses; cooldown starts at completion. No implicit unlimited repeats.

events.actions[].cancellable

boolean

Optional; omitted means unspecified

Whether an operator can cancel before completion; cancellation does not count as a completed use.

events.actions[].onPhaseExit

"cancel" | "continue"

Optional; omitted means unspecified

Policy for unfinished work when another event changes phase. Conclusion always cancels.

events.actions[].outcomes[]

object

Optional; omitted means unspecified

Choose first matching outcome at completion. Exactly one final unconditional fallback is required. Omit nextStateId to stay in the phase.

Behavior and validation

  • Author patient changes in Events on destination-state entry. A navigation transition selects when and where to move; it should not duplicate those patient changes. Resource editors configure content and delivery; medication, procedure, and equipment resources may also author direct simulation responses.
  • Action labels name learner activities. completionCriteria is an optional plain-language criterion evaluated by the AI against learner intent, conversation, and simulator interactions; equivalent wording is accepted. If omitted, the label and description provide the criterion. The AI returns evidence-backed executions separately from ambiguous choices. Multiple explicit orders can be recorded in one atomic batch before evaluating authored transitions. Only currently available actions qualify, including selected timer-canceling actions whose source events have occurred; stale interpretations and competing state transitions are rejected. Fulfilled actions that converge on the same destination without transition effects may be recorded together; the destination is entered once. The AI cannot invent states or patient effects. Explicit facilitator confirmation remains available. Optional completion { mode: any | all, resourceIds: Resource ID[] } adds direct resource recognition; automatic state releases do not count. Request completion remains distinct from delayed result availability.
  • Suite pauses the simulation clock while the AI interprets a learner turn or new bedside interaction, so inference latency does not consume scenario time. Before committing, the runtime checks the source state and history length, records the complete requested resource batch, and then applies fulfilled authored actions. A failed batch saves no partial orders or state changes.
  • Suite scheduled transitions may declare cancelOnActionIds: Action ID[]. State-entry timers start on each visit, cancel on exit or a selected action, and start fresh on re-entry. Same-state milestones do not restart the timer. Prior treatment history remains recorded; criteria-based actions become available on a new visit, while resource requests remain once per run. Scenario-start and action-completion timers fire once from their first anchor and persist across phase changes unless canceled. Cancellation never reverses an event that already fired. Selected unfinished actions can remain available while a timer is pending after their source has occurred. Conclusion entry cancels pending timers. At a deadline, commands are processed in order: completion saved before clock advancement cancels the pending transition; advancing the clock to the deadline first fires it.
  • Suite facilitator confirmation requests every selected resource for an all-resource action and the sole resource for a single-resource action if not already requested. For any-resource actions with multiple alternatives, record a specific resource before confirming; confirmation rejects an unselected alternative. Chat and voice interpretation may request a directly linked or sole completion resource, but never choose an alternative or fill in missing orders for a multi-resource completion rule. Completion-bound actions require eligible learner-request evidence: accepted early orders still waiting for eligibility do not satisfy completion, while an eligible request need not wait for its delayed result. Builder authors resource links in the state inspector under Resource links. Triggers this state preserves resource destinations and any/all response rules; Released by this state uses releaseOnStateId for delivery from state entry. Each picker edits only its own direction. Transitions expose no linked-resource picker or resource configuration sheet; Edit destination state opens the owning state inspector. action.objectId requests a resource during a transition. state.resourceTrigger enters a state when its requested results are available.
  • Request and result availability are distinct events. In Suite, action.objectId requests a resource when the transition fires and does not postpone destination entry until results arrive. To enter a labs-resulted state, use state.resourceTrigger with explicit objectIds and mode any or all; evaluate after response delays elapse. Incoming transitions remain alternative paths, not guards on result availability.
  • Suite transition effects apply during a transition. Destination-state vitals override overlapping transition values. Builder authors patient changes on the destination state. resourceTrigger and trigger belong to the application schema.
  • Only one instance of the same action can be active at once; different actions may run concurrently. Failed completion prerequisites record an unsuccessful attempt without completion effects or a use count.
  • An action with medicationOrder must declare kind medication-order; an action with administration must declare kind medication-administration. Generic actions reject specialized payloads, and kind-specific patient/resource references must agree rather than silently choosing a winner.
  • For a continuing action, evaluate its outcome against the phase and values at completion. Check any requested transition guards before committing effects.
  • outcomes[] is ordered. Preserve its declared order and choose the first matching outcome; exactly one final unconditional fallback must be last. A consumer must not sort, deduplicate, or treat outcome order as presentation-only.
  • Outcomes are authored consequences, not clinical judgments calculated from free text. Dose, technique, and communication assessment need structured evidence or facilitator input.
  • An action with a single unconditional outcome and no nextStateId records once in the current state without entry effects or timer resets. Existing explicit self-transitions retain their behavior. Explicit disposition records its fulfilled authored action before offering the existing end confirmation; confirmation uses the existing end command and never awards missing criteria.

Shared format conventions · All format elements · Download specification

Field reference

53 records in this view
arrayApplication field

Connections between phases, activated by a learner action or a timer measured from entry into the source phase.

  • Required when the containing object is present.
objectApplication field

One transition from a source phase to a destination, including its explicit learner choice or timer. Author resource links and patient changes on the destination state.

  • Required when the containing object is present.
stringApplication field

A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content.

  • Required when the containing object is present.
stringApplication field

Use a short, observable action or timed-event label: 2–6 words, at most 48 characters. Put conditions, clinical detail, and what happens in description, not in the label. Do not append the destination state; from/to already identify it.

  • Required when the containing object is present.
stringApplication field

Longer explanation of the action or timed event, its conditions, and what happens. Plain-language context only; executable behavior remains in the selected trigger, timing, resource references, and destination state. Text does not automatically detect learner behavior. Optional when the label provides sufficient context.

  • Optional; omitted values remain unspecified.
stringApplication field

Required when the action targets a patient; omit for team-only actions.

  • Optional; omitted values remain unspecified.
stringApplication field

Requests a resource when this transition fires. Builder authors resource links on the state under Results.

  • Optional; omitted values remain unspecified.
stringApplication field

Describe the learner intent or behavior that fulfills this action. The AI interprets chat, conversation context, and simulator interactions against this criterion; equivalent wording is accepted. Distinguish an order from actual administration, and specify essential requirements. If omitted, the action label and description provide the criterion. Only available authored actions can advance the case; ambiguous intent requires clarification.

  • Optional; omitted values remain unspecified.
objectApplication field

Recognize this action from learner-requested resources while its source state is active. Any completes on the first selected request; all waits for all selected requests. Result delays do not delay action completion. Facilitators can confirm the same action directly. Confirming all requests every selected resource; confirming any does not guess which alternative was used. Omitted uses AI interpretation of completionCriteria (or label and description) or explicit confirmation.

  • Optional; omitted values remain unspecified.
stringApplication field

Choose whether any or all selected resource requests complete this action.

Allowed values

  • any
  • all
  • Required when the containing object is present.
arrayApplication field

Select the resources that define the learner activity, such as BMP and CBC for Order labs. Only learner-requestable resources qualify. Automatic state releases do not count.

  • Required when the containing object is present.
arrayApplication field

The phase in which this interaction is available or its scheduled timer begins.

  • Required when the containing object is present.
stringApplication field

Choose where this learner action can be recognized. For an action that stays in the current state, All active states makes the same once-only decision available throughout active care. Recording it does not enter a state or restart event timers.

  • Required when the containing object is present.
stringApplication field

Prerequisite evaluated at start and again at completion.

  • Optional; omitted values remain unspecified.
numberApplication field

Simulated time between start and completion. Availability is evaluated at start.

  • Optional; omitted values remain unspecified.
objectApplication field

Completed uses count against maxUses; cooldown starts at completion. No implicit unlimited repeats.

  • Optional; omitted values remain unspecified.
integerApplication field

Numeric max uses, at least 1. Do not infer an omitted value.

  • Optional; omitted values remain unspecified.
booleanApplication field

Whether an operator can cancel before completion; cancellation does not count as a completed use.

  • Optional; omitted values remain unspecified.
valueApplication field

Policy for unfinished work when another event changes phase. Conclusion always cancels.

Allowed values

  • cancel
  • continue
  • Optional; omitted values remain unspecified.
arrayApplication field

The phase entered when this interaction occurs. Set scenario-specific vitals, rhythm, and patient information here; reusable treatment responses stay with resources. Destination vital signs override overlapping transition effects.

  • Required when the containing object is present.
objectApplication field

Choose first matching outcome at completion. Exactly one final unconditional fallback is required. Omit nextStateId to stay in the phase.

  • Required when the containing object is present.
stringApplication field

Stable identifier for this entry. Keep it unchanged when editing its content.

  • Required when the containing object is present.
stringApplication field

Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field.

  • Optional; omitted values remain unspecified.
arrayApplication field

Entries for effect ids. An empty list means no entries have been authored.

  • Required when the containing object is present.
stringApplication field

Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field.

  • Required when the containing object is present.
stringApplication field

Choose the destination after this action. Stay in current state omits the destination: record the action once without entering another event, replaying entry effects, or restarting timers. An existing explicit self-transition keeps its authored behavior.

  • Optional; omitted values remain unspecified.
stringApplication field

Discriminator for conditional action payloads. Specialized fields are prohibited unless kind selects the corresponding branch.

Allowed values

  • generic
  • medication-order
  • medication-administration
  • Optional; omitted values remain unspecified.
objectApplication field

Quantity is { value: positive number, unit: string }. Units are explicit; route must belong to allowedRoutes.

  • Optional; omitted values remain unspecified.
stringApplication field

Identifier of an existing resources entry. Preserve the referenced entry when editing this field.

  • Required when the containing object is present.
stringApplication field

Identifier of an existing patients entry. Preserve the referenced entry when editing this field.

  • Required when the containing object is present.
objectApplication field

Structured numerator details. Omitted optional values remain unspecified.

  • Required when the containing object is present.
stringApplication field

The route for this entry. Omit optional information that has not been specified.

  • Required when the containing object is present.
valueApplication field

Administration is a separate observable action referencing an order, not an automatic consequence of writing it.

  • Optional; omitted values remain unspecified.
valueApplication field

Select one of the declared mode alternatives; use the fields belonging to that alternative.

Allowed values

  • bolus
  • infusion-stop
  • Required when the containing object is present.
objectApplication field

Explicit amount per time or volume per time. No implicit unit conversion or pump calculation.

  • Optional; omitted values remain unspecified.