Circle V2 API Docs
    Preparing search index...

    Class RunSessionNoteValidationJobbable

    Session-note "trigger validation rules": runs the v1-faithful SessionNoteAuditRunner scoped to the triggering session note, and owns the session audit_status lifecycle (in_progress is set by the trigger service before enqueue; this job writes the terminal pass / fail / needs_review / error).

    Hierarchy (View Summary)

    • Jobbable<RunSessionNoteValidationJobParams, void>
      • RunSessionNoteValidationJobbable
    Index

    Constructors

    Properties

    config: JobConfig = ...
    serviceName: "RunSessionNoteValidationJobbable"

    Stable, human-readable name for the service. Must be set explicitly on each subclass because this.constructor.name gets mangled by minification in production builds, which breaks tracing/observability span names.

    Accessors

    • get name(): string

      Returns string

    Methods

    • Parameters

      • params: {
            auditRunId: AuditRunId;
            createdBy: UserId;
            patientId: PatientId;
            sessionId: SessionId;
            sessionNoteContext?: string;
            settings: {
                enableNoDocsBailout: boolean;
                maxTokens: number;
                useFullEmrDocuments: boolean;
            };
            templateId: AuditTemplateId;
        }
        • auditRunId: AuditRunId
        • createdBy: UserId
        • patientId: PatientId
        • sessionId: SessionId

          The session whose linked validation rules triggered this run. Audit responses are stamped with it and the session's audit_status lifecycle is driven from here.

        • OptionalsessionNoteContext?: string

          The HTML-cleaned session note. Optional: when absent/empty the SessionNoteAuditRunner returns a deterministic canned fail, which still resolves the session badge.

        • settings: {
              enableNoDocsBailout: boolean;
              maxTokens: number;
              useFullEmrDocuments: boolean;
          }
        • templateId: AuditTemplateId

      Returns string

    • Extract an entityId from params for job_executions tracking. Override in subclasses when applicable.

      Parameters

      • _params: {
            auditRunId: AuditRunId;
            createdBy: UserId;
            patientId: PatientId;
            sessionId: SessionId;
            sessionNoteContext?: string;
            settings: {
                enableNoDocsBailout: boolean;
                maxTokens: number;
                useFullEmrDocuments: boolean;
            };
            templateId: AuditTemplateId;
        }
        • auditRunId: AuditRunId
        • createdBy: UserId
        • patientId: PatientId
        • sessionId: SessionId

          The session whose linked validation rules triggered this run. Audit responses are stamped with it and the session's audit_status lifecycle is driven from here.

        • OptionalsessionNoteContext?: string

          The HTML-cleaned session note. Optional: when absent/empty the SessionNoteAuditRunner returns a deterministic canned fail, which still resolves the session badge.

        • settings: {
              enableNoDocsBailout: boolean;
              maxTokens: number;
              useFullEmrDocuments: boolean;
          }
        • templateId: AuditTemplateId

      Returns EntityId | undefined

    • Derive a deduplication key from the params. Return null to skip deduplication (every call enqueues).

      Parameters

      • params: {
            auditRunId: AuditRunId;
            createdBy: UserId;
            patientId: PatientId;
            sessionId: SessionId;
            sessionNoteContext?: string;
            settings: {
                enableNoDocsBailout: boolean;
                maxTokens: number;
                useFullEmrDocuments: boolean;
            };
            templateId: AuditTemplateId;
        }
        • auditRunId: AuditRunId
        • createdBy: UserId
        • patientId: PatientId
        • sessionId: SessionId

          The session whose linked validation rules triggered this run. Audit responses are stamped with it and the session's audit_status lifecycle is driven from here.

        • OptionalsessionNoteContext?: string

          The HTML-cleaned session note. Optional: when absent/empty the SessionNoteAuditRunner returns a deterministic canned fail, which still resolves the session badge.

        • settings: {
              enableNoDocsBailout: boolean;
              maxTokens: number;
              useFullEmrDocuments: boolean;
          }
        • templateId: AuditTemplateId

      Returns string | null

    • Parameters

      • params: {
            auditRunId: AuditRunId;
            createdBy: UserId;
            patientId: PatientId;
            sessionId: SessionId;
            sessionNoteContext?: string;
            settings: {
                enableNoDocsBailout: boolean;
                maxTokens: number;
                useFullEmrDocuments: boolean;
            };
            templateId: AuditTemplateId;
        }
        • auditRunId: AuditRunId
        • createdBy: UserId
        • patientId: PatientId
        • sessionId: SessionId

          The session whose linked validation rules triggered this run. Audit responses are stamped with it and the session's audit_status lifecycle is driven from here.

        • OptionalsessionNoteContext?: string

          The HTML-cleaned session note. Optional: when absent/empty the SessionNoteAuditRunner returns a deterministic canned fail, which still resolves the session badge.

        • settings: {
              enableNoDocsBailout: boolean;
              maxTokens: number;
              useFullEmrDocuments: boolean;
          }
        • templateId: AuditTemplateId

      Returns Promise<Safe<void>>

    • Enqueue this job for async processing via Vercel Queues. Checks for deduplication via job_executions before sending.

      Parameters

      • params: {
            auditRunId: AuditRunId;
            createdBy: UserId;
            patientId: PatientId;
            sessionId: SessionId;
            sessionNoteContext?: string;
            settings: {
                enableNoDocsBailout: boolean;
                maxTokens: number;
                useFullEmrDocuments: boolean;
            };
            templateId: AuditTemplateId;
        }
        • auditRunId: AuditRunId
        • createdBy: UserId
        • patientId: PatientId
        • sessionId: SessionId

          The session whose linked validation rules triggered this run. Audit responses are stamped with it and the session's audit_status lifecycle is driven from here.

        • OptionalsessionNoteContext?: string

          The HTML-cleaned session note. Optional: when absent/empty the SessionNoteAuditRunner returns a deterministic canned fail, which still resolves the session badge.

        • settings: {
              enableNoDocsBailout: boolean;
              maxTokens: number;
              useFullEmrDocuments: boolean;
          }
        • templateId: AuditTemplateId
      • Optionaloptions: PerformLaterOptions

      Returns Promise<SendResult>

    • Parameters

      • params: {
            auditRunId: AuditRunId;
            createdBy: UserId;
            patientId: PatientId;
            sessionId: SessionId;
            sessionNoteContext?: string;
            settings: {
                enableNoDocsBailout: boolean;
                maxTokens: number;
                useFullEmrDocuments: boolean;
            };
            templateId: AuditTemplateId;
        }
        • auditRunId: AuditRunId
        • createdBy: UserId
        • patientId: PatientId
        • sessionId: SessionId

          The session whose linked validation rules triggered this run. Audit responses are stamped with it and the session's audit_status lifecycle is driven from here.

        • OptionalsessionNoteContext?: string

          The HTML-cleaned session note. Optional: when absent/empty the SessionNoteAuditRunner returns a deterministic canned fail, which still resolves the session badge.

        • settings: {
              enableNoDocsBailout: boolean;
              maxTokens: number;
              useFullEmrDocuments: boolean;
          }
        • templateId: AuditTemplateId

      Returns Promise<void>

    • Run the job with status tracking. Used by the queue handler. Errors propagate (not caught by safe()) so the RetryHandler can decide.

      Parameters

      • params: {
            auditRunId: AuditRunId;
            createdBy: UserId;
            patientId: PatientId;
            sessionId: SessionId;
            sessionNoteContext?: string;
            settings: {
                enableNoDocsBailout: boolean;
                maxTokens: number;
                useFullEmrDocuments: boolean;
            };
            templateId: AuditTemplateId;
        }
        • auditRunId: AuditRunId
        • createdBy: UserId
        • patientId: PatientId
        • sessionId: SessionId

          The session whose linked validation rules triggered this run. Audit responses are stamped with it and the session's audit_status lifecycle is driven from here.

        • OptionalsessionNoteContext?: string

          The HTML-cleaned session note. Optional: when absent/empty the SessionNoteAuditRunner returns a deterministic canned fail, which still resolves the session badge.

        • settings: {
              enableNoDocsBailout: boolean;
              maxTokens: number;
              useFullEmrDocuments: boolean;
          }
        • templateId: AuditTemplateId
      • metadata: MessageMetadata

      Returns Promise<void>

    • Optional hook for subclasses to attach extra non-PII span attributes derived from params. The returned attributes appear on the service.${serviceName} span (and, for jobs, on job.enqueue.* and job.run.* spans too).

      Safe ID-like keys on params (e.g. patientId, templateIds, limit, cursor) are already auto-extracted via toSpanAttributes("service.input", params) — you don't need to enumerate them here. Use this hook for derived/computed attributes (counts, flags, computed names) or for fields you've explicitly verified safe but that aren't in the global allowlist. Hook output overrides auto-extracted attributes on key collision.

      Safe by default: returns {} when not overridden. Only declare keys you've confirmed are non-PII. Never include emails, names, dob, free-text, etc.

      Parameters

      • _params: {
            auditRunId: AuditRunId;
            createdBy: UserId;
            patientId: PatientId;
            sessionId: SessionId;
            sessionNoteContext?: string;
            settings: {
                enableNoDocsBailout: boolean;
                maxTokens: number;
                useFullEmrDocuments: boolean;
            };
            templateId: AuditTemplateId;
        }
        • auditRunId: AuditRunId
        • createdBy: UserId
        • patientId: PatientId
        • sessionId: SessionId

          The session whose linked validation rules triggered this run. Audit responses are stamped with it and the session's audit_status lifecycle is driven from here.

        • OptionalsessionNoteContext?: string

          The HTML-cleaned session note. Optional: when absent/empty the SessionNoteAuditRunner returns a deterministic canned fail, which still resolves the session badge.

        • settings: {
              enableNoDocsBailout: boolean;
              maxTokens: number;
              useFullEmrDocuments: boolean;
          }
        • templateId: AuditTemplateId

      Returns Attributes

    • Optional hook for subclasses to attach extra non-PII span attributes derived from the successful service result. Only called when run resolves successfully; on error, the span is marked via markSpanError instead.

      Safe by default: returns {} when not overridden. Only declare keys you've confirmed are non-PII (e.g. counts, status flags, computed summaries). Never include emails, names, dob, free-text, etc.

      Parameters

      • _result: void

      Returns Attributes

    • Parameters

      • params: unknown

      Returns params is {
          auditRunId: AuditRunId;
          createdBy: UserId;
          patientId: PatientId;
          sessionId: SessionId;
          sessionNoteContext?: string;
          settings: {
              enableNoDocsBailout: boolean;
              maxTokens: number;
              useFullEmrDocuments: boolean;
          };
          templateId: AuditTemplateId;
      }