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, not patient physiology.
  • 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[]. Completion of any referenced learner action prevents the scheduled transition for the rest of that run, including after re-entry; self-loop actions can cancel deterioration without changing the current state or restarting its timer. Cancellation never reverses an event that already fired. While a timer is pending, selected unfinished actions remain available after their source event has occurred, even if another event is current. Future-source actions stay unavailable; completion still follows the selected action's destination, and a self-loop stays in the current event. Conclusion states do not allow this recovery. Scheduled delays are relative to the first occurrence of the source event and remain pending after other events occur. Each scheduled edge fires at most once per run. At a deadline, commands are processed in order: a 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 if not already requested. For any-resource actions, confirmation records the observed activity without guessing which alternative was used; record the specific resource separately when results are needed. Automatic recognition does not request unchosen alternatives. Builder authors resource links only in the state inspector under Results → Configure resources, using releaseOnStateId to reveal a resource on state entry. 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.

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

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

  • 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

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

  • 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.