> ## Documentation Index
> Fetch the complete documentation index at: https://docs.telepatia.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Registrar decisiones para varias alertas de CDSS

> Acepta o rechaza varias alertas de soporte a la decisión clínica en una sola llamada. Cada alerta se valida antes de registrar cualquier decisión, por lo que un lote que contenga una alerta inutilizable no cambia nada. Los cambios aceptados se aplican a la historia clínica de forma asíncrona.



## OpenAPI

````yaml /es/scribe-api/openapi.json post /v1/cdss/decisions
openapi: 3.1.0
info:
  title: Scribe Public API
  description: >-
    API REST externa para integración con la plataforma Telepatia. Autentíquese
    con claves API, establezca el contexto de consulta y consulte sesiones de
    scribe.
  version: 0.1.0
servers:
  - url: https://scribe-api.telepatia.ai
    description: Production
security:
  - BearerAuth: []
paths:
  /v1/cdss/decisions:
    post:
      tags:
        - CDSS
      summary: Registrar decisiones para varias alertas de CDSS
      description: >-
        Acepta o rechaza varias alertas de soporte a la decisión clínica en una
        sola llamada. Cada alerta se valida antes de registrar cualquier
        decisión, por lo que un lote que contenga una alerta inutilizable no
        cambia nada. Los cambios aceptados se aplican a la historia clínica de
        forma asíncrona.
      operationId: api_cdss_decisions_v1_cdss_decisions_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CdssDecisionsRequest'
            example:
              decisions:
                - decision: accepted
                  id: cfa_bXJkLWFiYy0xMjMfSUJVUFJPRkVO
                - decision: rejected
                  id: cfa_bXJkLWFiYy0xMjMfQVNQSVJJTg
        required: true
      responses:
        '200':
          description: Respuesta exitosa
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CdssDecisionsResponse'
              example:
                decisions:
                  - elementId: IBUPROFEN
                    id: cfa_bXJkLWFiYy0xMjMfSUJVUFJPRkVO
                    status: accepted
        '400':
          description: >-
            Solicitud incorrecta — parámetros inválidos, fallos de validación o
            campos faltantes.
          content:
            application/json:
              examples:
                parameter_missing:
                  summary: Missing required field
                  value:
                    error:
                      type: invalid_request_error
                      code: parameter_missing
                      message: name is required.
                      param: name
                      requestId: 3f9a1c2e-5b7d-4a21-9f0c-8e6d4b2a1c30
                parameter_invalid:
                  summary: Invalid field value
                  value:
                    error:
                      type: invalid_request_error
                      code: parameter_invalid
                      message: >-
                        idCountry must be a valid country name, ISO alpha-2, or
                        ISO alpha-3 code.
                      param: idCountry
                      requestId: 3f9a1c2e-5b7d-4a21-9f0c-8e6d4b2a1c30
                account_invalid:
                  summary: Invalid account
                  value:
                    error:
                      type: invalid_request_error
                      code: account_invalid
                      message: Account has no valid authId.
                      requestId: 3f9a1c2e-5b7d-4a21-9f0c-8e6d4b2a1c30
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: No autorizado — clave API faltante o inválida.
          content:
            application/json:
              examples:
                authentication_required:
                  summary: Invalid or missing API key
                  value:
                    error:
                      type: authentication_error
                      code: authentication_required
                      message: Invalid API key.
                      requestId: 3f9a1c2e-5b7d-4a21-9f0c-8e6d4b2a1c30
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Prohibido — la clave API no puede realizar esta operación.
          content:
            application/json:
              examples:
                permission_denied:
                  summary: Caller lacks permission for this resource
                  value:
                    error:
                      type: permission_error
                      code: permission_denied
                      message: You do not have permission to access this resource.
                      requestId: 3f9a1c2e-5b7d-4a21-9f0c-8e6d4b2a1c30
                permission_denied_role:
                  summary: API key's account role is not allowed this operation
                  value:
                    error:
                      type: permission_error
                      code: permission_denied
                      message: >-
                        Your API key is not allowed to create accounts. Account
                        creation requires an institutional API key; this key is
                        scoped to a doctor account.
                      requestId: 3f9a1c2e-5b7d-4a21-9f0c-8e6d4b2a1c30
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: No encontrado — el recurso solicitado no existe.
          content:
            application/json:
              examples:
                resource_not_found:
                  summary: Resource not found
                  value:
                    error:
                      type: invalid_request_error
                      code: resource_not_found
                      message: No session scribe found for the given consultation ID.
                      requestId: 3f9a1c2e-5b7d-4a21-9f0c-8e6d4b2a1c30
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Conflicto — el recurso ya existe o está en estado conflictivo.
          content:
            application/json:
              examples:
                resource_conflict:
                  summary: Resource conflict
                  value:
                    error:
                      type: invalid_request_error
                      code: resource_conflict
                      message: >-
                        consultationInternalId is already in use by a different
                        consultation.
                      param: consultationInternalId
                      requestId: 3f9a1c2e-5b7d-4a21-9f0c-8e6d4b2a1c30
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Servicio no disponible — una dependencia externa no está disponible.
          content:
            application/json:
              examples:
                service_unavailable:
                  summary: External service unavailable
                  value:
                    error:
                      type: api_error
                      code: service_unavailable
                      message: >-
                        The service is temporarily unavailable. Please try again
                        later.
                      requestId: 3f9a1c2e-5b7d-4a21-9f0c-8e6d4b2a1c30
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    CdssDecisionsRequest:
      properties:
        decisions:
          items:
            $ref: '#/components/schemas/CdssDecisionItem'
          type: array
          maxItems: 100
          minItems: 1
          title: Decisions
          description: >-
            The alerts to act on. Every alert is validated before any decision
            is recorded.
      type: object
      required:
        - decisions
      title: CdssDecisionsRequest
      description: Record decisions for several CDSS alerts in one call.
      examples:
        - decisions:
            - decision: accepted
              id: cfa_bXJkLWFiYy0xMjMfSUJVUFJPRkVO
            - decision: rejected
              id: cfa_bXJkLWFiYy0xMjMfQVNQSVJJTg
    CdssDecisionsResponse:
      properties:
        decisions:
          items:
            $ref: '#/components/schemas/CdssDecisionResponse'
          type: array
          title: Decisions
          description: One entry per submitted alert, in the order received.
      type: object
      required:
        - decisions
      title: CdssDecisionsResponse
      description: The decisions recorded for a batch request.
      examples:
        - decisions:
            - elementId: IBUPROFEN
              id: cfa_bXJkLWFiYy0xMjMfSUJVUFJPRkVO
              status: accepted
    ErrorResponse:
      description: Envoltorio estandarizado de respuesta de error.
      properties:
        error:
          $ref: '#/components/schemas/ErrorDetailWithRequestId'
      required:
        - error
      title: ErrorResponse
      type: object
    CdssDecisionItem:
      properties:
        id:
          type: string
          maxLength: 512
          minLength: 1
          title: Id
          description: The alert `id` returned by the medical record documents endpoint.
          examples:
            - cfa_bXJkLWFiYy0xMjMfSUJVUFJPRkVO
        decision:
          type: string
          enum:
            - accepted
            - rejected
          title: Decision
          description: The doctor's decision for this alert.
          examples:
            - accepted
      type: object
      required:
        - id
        - decision
      title: CdssDecisionItem
      description: One alert decision inside a batch request.
    CdssDecisionResponse:
      properties:
        id:
          type: string
          title: Id
          description: The alert identifier the decision was recorded for.
          examples:
            - cfa_bXJkLWFiYy0xMjMfSUJVUFJPRkVO
        elementId:
          type: string
          title: Elementid
          description: Clinical element key the alert refers to.
          examples:
            - IBUPROFEN
        status:
          type: string
          title: Status
          description: 'The recorded decision: `accepted` or `rejected`.'
          examples:
            - accepted
      type: object
      required:
        - id
        - elementId
        - status
      title: CdssDecisionResponse
      description: >-
        The decision recorded for a CDSS alert.


        A 200 means the decision is recorded. An accepted alert is applied to
        the medical

        record by a background task, so the record itself may still show its
        previous

        content immediately afterwards.
      examples:
        - elementId: IBUPROFEN
          id: cfa_bXJkLWFiYy0xMjMfSUJVUFJPRkVO
          status: accepted
    ErrorDetailWithRequestId:
      description: >-
        Top-level error object: :class:`ErrorDetail` plus the request
        correlation id.


        Kept as a subclass rather than a field on ``ErrorDetail`` because
        ``ErrorDetail`` is

        also the per-item error shape inside the batch account-creation response

        (``BatchAccountResult.error``), which is serialized with nulls included.
        Adding the

        field there would publish ``"requestId": null`` on an HTTP 200, and
        there is only

        ever one request id per batch anyway -- batch callers read the
        ``X-Request-ID``

        response header.
      properties:
        type:
          description: Broad error category for high-level handling.
          examples:
            - invalid_request_error
          title: Type
          type: string
        code:
          description: Machine-readable error code. Clients should switch on this value.
          examples:
            - parameter_invalid
          title: Code
          type: string
        message:
          description: Human-readable error message ending with a period.
          examples:
            - >-
              idCountry must be a valid country name, ISO alpha-2, or ISO
              alpha-3 code.
          title: Message
          type: string
        param:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: The request field that caused the error, if applicable.
          examples:
            - idCountry
          title: Param
        details:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          default: null
          description: Optional structured, machine-readable context for the error.
          examples:
            - pendingConsultations:
                - sessionId: abc123
                  url: https://...
          title: Details
        requestId:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: >-
            Unique id for this request, identical to the X-Request-ID response
            header. Quote it when contacting support.
          examples:
            - 3f9a1c2e-5b7d-4a21-9f0c-8e6d4b2a1c30
          title: Requestid
      required:
        - type
        - code
        - message
      title: ErrorDetailWithRequestId
      type: object
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Clave API enviada como token Bearer

````