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.

Portable format · Suite implementation support

Parameters

events.actions[].id

ID

Required

Stable action identity for disclosure, observation, and assessment.

events.actions[].kind

generic | medication-order | medication-administration

Required for specialized payloads; default generic when none is present

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

Patient ID

Optional; omitted means unspecified

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

events.actions[].availableInStateIds

State ID[]

Required; nonempty

Explicit phase availability; no implicit states.all default.

events.actions[].conditionId

Condition ID

Optional; omitted means unspecified

Prerequisite evaluated at start and again at completion.

events.actions[].durationSeconds

nonnegative number

Required; 0 is immediate

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

events.actions[].repeat

{ maxUses: positive integer, cooldownSeconds: nonnegative number }

Required

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

events.actions[].cancellable

boolean

Required

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

events.actions[].onPhaseExit

cancel | continue

Required

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

events.actions[].outcomes[]

{ id: ID, whenConditionId?: Condition ID, effectIds: Effect ID[], nextStateId?: State ID }

Required; at least one

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

Behavior and validation

  • Author scenario-specific patient changes on destination-state entry. A navigation transition selects when and where to move; it should not duplicate those patient changes. Reusable treatment responses may remain effects of the resource action.
  • Action labels name learner activities. Suite 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, objectIds: 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

27 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

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

  • Required when the containing object is present.
stringApplication 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.
stringApplication field

Action completes through AI interpretation of learner intent against its completion criterion, configured resource interactions, or explicit learner/facilitator confirmation. Scheduled runs automatically after its delay while the source phase remains active. Omitted means action.

Allowed values

  • action
  • scheduled
  • Optional; omitted values remain unspecified.
numberApplication field

For a scheduled interaction, seconds after the source event first occurs. Multiple timers run independently and survive other events. Each fires once per run; re-entry does not restart it. This does not delay manual 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

For a scheduled transition, completion of any selected action cancels this timer for the rest of the run, including after state re-entry. The action may stay in its current state. Selected unfinished actions stay available while this timer is pending once their source event has occurred, even after another event becomes current. Future-source actions remain unavailable. Completing the action enters its destination; a self-loop stays in the current event. Conclusion states do not allow recovery. Cancellation does not undo a deterioration that already occurred. The timer starts when the source event first occurs and remains pending when other events occur. Ending the scenario cancels pending timers.

  • Optional; omitted values remain unspecified.
stringApplication field

A learner action whose completion prevents this scheduled transition from firing.

  • Required when the containing object is present.
objectApplication field

Vital values applied during the transition. Builder authors patient changes on destination state vitals.

  • Optional; omitted values remain unspecified.
numberApplication field

Heart rate in beats per minute. Enter the resulting measurement, not an amount of change; omit to leave it unspecified or retain the previous value during a transition.

  • Optional; omitted values remain unspecified.
numberApplication field

Noninvasive systolic blood pressure in mmHg. Enter the resulting measurement, not an amount of change; omit to leave it unspecified or retain the previous value during a transition.

  • Optional; omitted values remain unspecified.
numberApplication field

Noninvasive diastolic blood pressure in mmHg. Enter the resulting measurement, not an amount of change; omit to leave it unspecified or retain the previous value during a transition.

  • Optional; omitted values remain unspecified.
numberApplication field

Respiratory rate in breaths per minute. Enter the resulting measurement, not an amount of change; omit to leave it unspecified or retain the previous value during a transition.

  • Optional; omitted values remain unspecified.
numberApplication field

Peripheral oxygen saturation as a percentage from 0 to 100. Enter the resulting measurement, not an amount of change; omit to leave it unspecified or retain the previous value during a transition.

  • Optional; omitted values remain unspecified.
numberApplication field

Body temperature in degrees Celsius. Enter the resulting measurement, not an amount of change; omit to leave it unspecified or retain the previous value during a transition.

  • Optional; omitted values remain unspecified.
numberApplication field

End-tidal carbon dioxide pressure in mmHg. Enter the resulting measurement, not an amount of change; omit to leave it unspecified or retain the previous value during a transition.

  • Optional; omitted values remain unspecified.
numberApplication field

Invasive arterial systolic blood pressure in mmHg. Enter the resulting measurement, not an amount of change; omit to leave it unspecified or retain the previous value during a transition.

  • Optional; omitted values remain unspecified.
numberApplication field

Invasive arterial diastolic blood pressure in mmHg. Enter the resulting measurement, not an amount of change; omit to leave it unspecified or retain the previous value during a transition.

  • Optional; omitted values remain unspecified.