Circle V2 API Docs
    Preparing search index...

    Answer a handful of a template's fields against a real patient chart and return the result, INLINE in the request.

    Nothing here writes. No formRunsRepo, no formAnswersRepo, no patientChartsRepo, no uploadFileToBucket; the renderer it uses is the one that stops at the bytes. dryRunFormFill.service.test.ts asserts the absence of every write, and that test is the feature.

    Everything else is shared with a real fill — the same authorization, deterministic resolver, FormFillingRunner, draw instructions and renderer — so a preview that looks right and a fill that comes out wrong cannot be explained by "the test fill does it differently".

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    serviceName: "DryRunFormFill"

    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 logger(): BaseLogger

      Returns BaseLogger

    • get name(): string

      Returns string

    Methods

    • 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

      Returns {
          "service.input.annotationIdCount": number;
          "service.input.chosenContactCount": number;
          "service.input.entityId": EntityId;
          "service.input.formId": FormId;
          "service.input.includeEmr": boolean;
          "service.input.maxAiFields": number;
          "service.input.patientId": PatientId;
          "service.input.renderAnswerCount": number;
          "service.input.selectedDocumentCount": number;
          "service.input.selectedSessionCount": number;
      }

    • 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

      Returns Attributes