Skip to main content

Create Report

Create a new cross examination questions report by uploading expert CVs and depositions along with case parameters.

ExpertData Structure

Each expert witness includes the following fields:

FieldTypeRequiredDescription
disciplineenumYesACCIDENT_RECONSTRUCTION, BIOMECHANICS, or BOTH
cvFileIdstringNo*File ID for expert's CV (uploaded via FileService)
depositionFileIdstringNo*File ID for expert's deposition transcript

*At least one file (CV or deposition) is required per expert

Request Parameters

ParameterTypeRequiredDescription
caseIdstringYesCase ID to associate the report with
attorneySideenumYesPLAINTIFF or DEFENSE
proceedingTypeenumYesDEPOSITION or TRIAL
questionSpecificityenumYesGENERAL or GENERAL_AND_SPECIFIC
expertsExpertData[]YesArray of expert witness data (1-10 experts)

Response

Returns:

  • reportId: Unique report identifier for status polling

Examples

Single Expert - Biomechanics

import "github.com/silentwitness/go-sdk"

silentwitness.Key = "sk_test_..."

// First, upload expert files
cvFile, err := silentwitness.Files.Upload(ctx, &silentwitness.UploadFileRequest{
Content: cvBytes,
Filename: "expert_cv.pdf",
Purpose: "cross_exam_expert_cv",
CaseId: "case_xyz789",
})

depositionFile, err := silentwitness.Files.Upload(ctx, &silentwitness.UploadFileRequest{
Content: depositionBytes,
Filename: "expert_deposition.pdf",
Purpose: "cross_exam_expert_deposition",
CaseId: "case_xyz789",
})

// Create cross examination report
response, err := silentwitness.CrossExamination.CreateReport(ctx, &silentwitness.CreateCrossExaminationReportRequest{
CaseId: "case_xyz789",
AttorneySide: silentwitness.AttorneySidePlaintiff,
ProceedingType: silentwitness.ProceedingTypeDeposition,
QuestionSpecificity: silentwitness.QuestionSpecificityGeneralAndSpecific,

Experts: []silentwitness.ExpertData{
{
Discipline: silentwitness.ExpertDisciplineBiomechanics,
CvFileId: silentwitness.String(cvFile.FileId),
DepositionFileId: silentwitness.String(depositionFile.FileId),
},
},
})
if err != nil {
log.Fatal(err)
}

fmt.Printf("Report ID: %s\n", response.ReportId)

Multiple Experts - Different Disciplines

import "github.com/silentwitness/go-sdk"

silentwitness.Key = "sk_test_..."

// Upload files for multiple experts
bioCV, _ := silentwitness.Files.Upload(ctx, &silentwitness.UploadFileRequest{
Content: bioCVBytes,
Filename: "biomechanics_expert_cv.pdf",
Purpose: "cross_exam_expert_cv",
CaseId: "case_xyz789",
})

arCV, _ := silentwitness.Files.Upload(ctx, &silentwitness.UploadFileRequest{
Content: arCVBytes,
Filename: "accident_recon_cv.pdf",
Purpose: "cross_exam_expert_cv",
CaseId: "case_xyz789",
})

arDepo, _ := silentwitness.Files.Upload(ctx, &silentwitness.UploadFileRequest{
Content: arDepoBytes,
Filename: "accident_recon_deposition.pdf",
Purpose: "cross_exam_expert_deposition",
CaseId: "case_xyz789",
})

// Create report for multiple experts
response, err := silentwitness.CrossExamination.CreateReport(ctx, &silentwitness.CreateCrossExaminationReportRequest{
CaseId: "case_xyz789",
AttorneySide: silentwitness.AttorneySideDefense,
ProceedingType: silentwitness.ProceedingTypeTrial,
QuestionSpecificity: silentwitness.QuestionSpecificityGeneral,

Experts: []silentwitness.ExpertData{
{
Discipline: silentwitness.ExpertDisciplineBiomechanics,
CvFileId: silentwitness.String(bioCV.FileId),
},
{
Discipline: silentwitness.ExpertDisciplineAccidentReconstruction,
CvFileId: silentwitness.String(arCV.FileId),
DepositionFileId: silentwitness.String(arDepo.FileId),
},
},
})
if err != nil {
log.Fatal(err)
}

fmt.Printf("Report ID: %s\n", response.ReportId)

CV Only - No Deposition

import "github.com/silentwitness/go-sdk"

silentwitness.Key = "sk_test_..."

// Upload expert CV only
cvFile, err := silentwitness.Files.Upload(ctx, &silentwitness.UploadFileRequest{
Content: cvBytes,
Filename: "expert_cv.pdf",
Purpose: "cross_exam_expert_cv",
CaseId: "case_xyz789",
})

// Create report with CV only
response, err := silentwitness.CrossExamination.CreateReport(ctx, &silentwitness.CreateCrossExaminationReportRequest{
CaseId: "case_xyz789",
AttorneySide: silentwitness.AttorneySidePlaintiff,
ProceedingType: silentwitness.ProceedingTypeDeposition,
QuestionSpecificity: silentwitness.QuestionSpecificityGeneral,

Experts: []silentwitness.ExpertData{
{
Discipline: silentwitness.ExpertDisciplineBoth,
CvFileId: silentwitness.String(cvFile.FileId),
},
},
})
if err != nil {
log.Fatal(err)
}

fmt.Printf("Report ID: %s\n", response.ReportId)

File Purpose Values

When uploading expert documents, use these purpose values:

  • cross_exam_expert_cv: Expert curriculum vitae or resume
  • cross_exam_expert_deposition: Expert deposition transcript

Errors

CodeDescription
INVALID_ARGUMENTInvalid parameters, missing required fields, or wrong file purposes
NOT_FOUNDCase or file IDs not found
PERMISSION_DENIEDFiles or case not accessible by this account
RESOURCE_EXHAUSTEDRate limit exceeded
UNAUTHENTICATEDInvalid or missing API key