PackagesCanonicalsLogsProblems
    Packages
    io.health-samurai.sdc.r4b@0.2608.0
    http://health-samurai.io/fhir/sdc/StructureDefinition/SDCVoiceAgent
{
  "description": "A voice agent that conducts a spoken interview over the phone. Binds an instruction prompt to the questionnaires it can administer, so a Task focused on one of those questionnaires can find its agent without referencing voice at all. Speech and language models are optional overrides on top of the deployment defaults.",
  "_filename": "StructureDefinition-SDCVoiceAgent.json",
  "package_name": "io.health-samurai.sdc.r4b",
  "date": null,
  "derivation": "specialization",
  "publisher": "Health Samurai",
  "fhirVersion": "4.3.0",
  "name": "SDCVoiceAgent",
  "abstract": false,
  "type": "SDCVoiceAgent",
  "experimental": null,
  "resourceType": "StructureDefinition",
  "title": "SDC Voice Agent",
  "package_version": "0.2608.0",
  "extension": [ {
    "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-category",
    "valueString": "Forms.Definitions"
  } ],
  "status": "active",
  "id": "63b41380-b399-4c0e-851e-60dd1690b4db",
  "kind": "resource",
  "url": "http://health-samurai.io/fhir/sdc/StructureDefinition/SDCVoiceAgent",
  "version": "0.2608.0",
  "differential": {
    "element": [ {
      "id": "SDCVoiceAgent",
      "max": "*",
      "min": 0,
      "path": "SDCVoiceAgent"
    }, {
      "id": "SDCVoiceAgent.url",
      "max": "1",
      "min": 0,
      "path": "SDCVoiceAgent.url",
      "type": [ {
        "code": "uri"
      } ],
      "short": "Canonical identity of this agent."
    }, {
      "id": "SDCVoiceAgent.name",
      "max": "1",
      "min": 0,
      "path": "SDCVoiceAgent.name",
      "type": [ {
        "code": "string"
      } ],
      "short": "Machine-readable name."
    }, {
      "id": "SDCVoiceAgent.title",
      "max": "1",
      "min": 0,
      "path": "SDCVoiceAgent.title",
      "type": [ {
        "code": "string"
      } ],
      "short": "Human-readable name, shown when picking an agent."
    }, {
      "id": "SDCVoiceAgent.status",
      "max": "1",
      "min": 1,
      "path": "SDCVoiceAgent.status",
      "type": [ {
        "code": "code"
      } ],
      "short": "draft | active | retired. Only active agents are selected for calls.",
      "constraint": [ {
        "key": "voice-agent-status-1",
        "human": "Status must be one of: draft, active, retired",
        "severity": "error",
        "expression": "$this in ('draft' | 'active' | 'retired')"
      } ]
    }, {
      "id": "SDCVoiceAgent.description",
      "max": "1",
      "min": 0,
      "path": "SDCVoiceAgent.description",
      "type": [ {
        "code": "markdown"
      } ],
      "short": "What this agent is for."
    }, {
      "id": "SDCVoiceAgent.prompt",
      "max": "1",
      "min": 1,
      "path": "SDCVoiceAgent.prompt",
      "type": [ {
        "code": "canonical",
        "targetProfile": [ "http://health-samurai.io/fhir/sdc/StructureDefinition/SDCVoicePrompt" ]
      } ],
      "short": "SDCVoicePrompt lineage url. Version-less: the active revision is resolved when the call is placed."
    }, {
      "id": "SDCVoiceAgent.questionnaire",
      "max": "*",
      "min": 1,
      "path": "SDCVoiceAgent.questionnaire",
      "type": [ {
        "code": "canonical",
        "targetProfile": [ "http://hl7.org/fhir/StructureDefinition/Questionnaire" ]
      } ],
      "short": "Questionnaires this agent administers. Array order is interview order; a Task focused on any of these can be routed here. At least one is required — an agent without a questionnaire has nothing to ask."
    }, {
      "id": "SDCVoiceAgent.context",
      "max": "*",
      "min": 0,
      "path": "SDCVoiceAgent.context",
      "type": [ {
        "code": "BackboneElement"
      } ],
      "short": "Resources this agent needs to hold the conversation. Declared here, supplied to $call, and validated against this list before the call is placed — the same contract as sdc-questionnaire-launchContext."
    }, {
      "id": "SDCVoiceAgent.context.name",
      "max": "1",
      "min": 1,
      "path": "SDCVoiceAgent.context.name",
      "type": [ {
        "code": "code"
      } ],
      "short": "What this slot is called when passed to $call and when rendered into the prompt, e.g. patient, appointment, referrer. Distinguishes two slots of the same resource type."
    }, {
      "id": "SDCVoiceAgent.context.type",
      "max": "1",
      "min": 1,
      "path": "SDCVoiceAgent.context.type",
      "type": [ {
        "code": "code"
      } ],
      "short": "Resource type accepted in this slot, e.g. Patient, Appointment, Coverage. Any FHIR resource type is allowed."
    }, {
      "id": "SDCVoiceAgent.context.label",
      "max": "1",
      "min": 0,
      "path": "SDCVoiceAgent.context.label",
      "type": [ {
        "code": "string"
      } ],
      "short": "Human-readable name for the picker in the UI."
    }, {
      "id": "SDCVoiceAgent.stt",
      "max": "1",
      "min": 0,
      "path": "SDCVoiceAgent.stt",
      "type": [ {
        "code": "Reference",
        "targetProfile": [ "http://hl7.org/fhir/StructureDefinition/Device" ]
      } ],
      "short": "Speech-to-text model, as a Device. Falls back to the deployment default."
    }, {
      "id": "SDCVoiceAgent.tts",
      "max": "1",
      "min": 0,
      "path": "SDCVoiceAgent.tts",
      "type": [ {
        "code": "Reference",
        "targetProfile": [ "http://hl7.org/fhir/StructureDefinition/Device" ]
      } ],
      "short": "Text-to-speech voice, as a Device. Falls back to the deployment default."
    }, {
      "id": "SDCVoiceAgent.llm",
      "max": "1",
      "min": 0,
      "path": "SDCVoiceAgent.llm",
      "type": [ {
        "code": "Reference",
        "targetProfile": [ "http://hl7.org/fhir/StructureDefinition/Device" ]
      } ],
      "short": "Language model, as a Device. Falls back to the deployment default."
    }, {
      "id": "SDCVoiceAgent.extractorLlm",
      "max": "1",
      "min": 0,
      "path": "SDCVoiceAgent.extractorLlm",
      "type": [ {
        "code": "Reference",
        "targetProfile": [ "http://hl7.org/fhir/StructureDefinition/Device" ]
      } ],
      "short": "Model that turns the finished transcript into answers, as a Device. A separate call from the conversation, so it can be a cheaper or stricter model; falls back to llm."
    }, {
      "id": "SDCVoiceAgent.maxAttempts",
      "max": "1",
      "min": 0,
      "path": "SDCVoiceAgent.maxAttempts",
      "type": [ {
        "code": "integer"
      } ],
      "short": "How many times to redial when nobody picks up. Defaults to a single attempt."
    }, {
      "id": "SDCVoiceAgent.retryDelayMinutes",
      "max": "1",
      "min": 0,
      "path": "SDCVoiceAgent.retryDelayMinutes",
      "type": [ {
        "code": "integer"
      } ],
      "short": "Gap between redial attempts, in minutes."
    }, {
      "id": "SDCVoiceAgent.maxDurationMinutes",
      "max": "1",
      "min": 0,
      "path": "SDCVoiceAgent.maxDurationMinutes",
      "type": [ {
        "code": "integer"
      } ],
      "short": "Hard cap on a single conversation; the call is hung up when it is reached."
    } ]
  },
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/DomainResource"
}