diff options
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala')
-rw-r--r-- | src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala | 294 |
1 files changed, 294 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala new file mode 100644 index 0000000..b0ca136 --- /dev/null +++ b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala @@ -0,0 +1,294 @@ +package xyz.driver.pdsuidomain.fakes.entities + +import xyz.driver.entities.labels.Label +import xyz.driver.fakes +import xyz.driver.pdsuicommon.domain.{LongId, StringId, User} +import xyz.driver.pdsuidomain.entities._ +import xyz.driver.pdsuidomain.formats.json.sprayformats.ListResponse +import xyz.driver.pdsuidomain.services.PatientCriterionService.{DraftPatientCriterion, RichPatientCriterion} +import xyz.driver.pdsuidomain.services.PatientEligibleTrialService.RichPatientEligibleTrial +import xyz.driver.pdsuidomain.services.PatientHypothesisService.RichPatientHypothesis +import xyz.driver.pdsuidomain.services.PatientLabelService.RichPatientLabel + +object treatmentmatching { + import common._ + import xyz.driver.core.generators + + def nextPatientOrderId: PatientOrderId = PatientOrderId(generators.nextUuid()) + + def nextPatientAction: PatientHistory.Action = + generators.oneOf[PatientHistory.Action](PatientHistory.Action.All) + + def nextPatientState: PatientHistory.State = + generators.oneOf[PatientHistory.State](PatientHistory.State.All) + + def nextPatient(): Patient = Patient( + id = nextUuidId[Patient], + status = nextPatientStatus, + name = nextFullName[Patient], + dob = nextLocalDate, + assignee = generators.nextOption(nextStringId[User]), + previousStatus = generators.nextOption(generators.oneOf[Patient.Status](Patient.Status.AllPrevious)), + previousAssignee = generators.nextOption(nextStringId[User]), + lastActiveUserId = generators.nextOption(nextStringId[User]), + isUpdateRequired = generators.nextBoolean(), + disease = nextCancerType, + orderId = nextPatientOrderId, + lastUpdate = nextLocalDateTime + ) + + def nextPatientLabel(): PatientLabel = PatientLabel( + id = nextLongId[PatientLabel], + patientId = nextUuidId[Patient], + labelId = nextLongId[Label], + score = generators.nextInt(100), + primaryValue = generators.nextOption(fakes.entities.labels.nextLabelValue()), + verifiedPrimaryValue = generators.nextOption(fakes.entities.labels.nextLabelValue()), + isImplicitMatch = generators.nextBoolean(), + isVisible = generators.nextBoolean() + ) + + def nextRichPatientLabel(): RichPatientLabel = RichPatientLabel( + patientLabel = nextPatientLabel(), + isVerified = generators.nextBoolean() + ) + + def nextPatientCriterion(): PatientCriterion = PatientCriterion( + id = nextLongId[PatientCriterion], + patientLabelId = nextLongId[PatientLabel], + trialId = generators.nextInt(Int.MaxValue).toLong, + nctId = nextStringId[Trial], + criterionId = nextLongId[Criterion], + criterionText = generators.nextString(), + criterionValue = generators.nextOption(generators.nextBoolean()), + criterionIsDefining = generators.nextBoolean(), + eligibilityStatus = generators.nextOption(fakes.entities.labels.nextLabelValue()), + verifiedEligibilityStatus = generators.nextOption(fakes.entities.labels.nextLabelValue()), + isVerified = generators.nextBoolean(), + isVisible = generators.nextBoolean(), + lastUpdate = nextLocalDateTime + ) + + def nextDraftPatientCriterion(): DraftPatientCriterion = DraftPatientCriterion( + id = nextLongId[PatientCriterion], + eligibilityStatus = generators.nextOption(fakes.entities.labels.nextLabelValue()), + isVerified = generators.nextOption(generators.nextBoolean()) + ) + + def nextPatientCriterionArm(criterionId: LongId[PatientCriterion]): PatientCriterionArm = PatientCriterionArm( + patientCriterionId = criterionId, + armId = nextLongId[Arm], + armName = generators.nextString() + ) + + def nextRichPatientCriterion(): RichPatientCriterion = { + val patientCriterion = nextPatientCriterion() + RichPatientCriterion( + patientCriterion = patientCriterion, + labelId = nextLongId[Label], + armList = List( + nextPatientCriterionArm(patientCriterion.id), + nextPatientCriterionArm(patientCriterion.id), + nextPatientCriterionArm(patientCriterion.id) + ) + ) + } + + def nextPatientLabelEvidenceView(): PatientLabelEvidenceView = PatientLabelEvidenceView( + id = nextLongId[PatientLabelEvidence], + value = fakes.entities.labels.nextLabelValue(), + evidenceText = generators.nextString(), + documentId = generators.nextOption(nextLongId[Document]), + evidenceId = generators.nextOption(nextLongId[ExtractedData]), + reportId = generators.nextOption(nextUuidId[DirectReport]), + documentType = nextDocumentType(), + date = generators.nextOption(nextLocalDate), + providerType = nextProviderType(), + patientId = nextUuidId[Patient], + labelId = nextLongId[Label], + isImplicitMatch = generators.nextBoolean() + ) + + def nextPatientTrialArmGroupView(trialId: StringId[Trial]): PatientTrialArmGroupView = PatientTrialArmGroupView( + id = nextLongId[PatientTrialArmGroup], + patientId = nextUuidId[Patient], + trialId = trialId, + hypothesisId = nextUuidId[Hypothesis], + eligibilityStatus = generators.nextOption(fakes.entities.labels.nextLabelValue()), + verifiedEligibilityStatus = generators.nextOption(fakes.entities.labels.nextLabelValue()), + isVerified = generators.nextBoolean() + ) + + def nextRichPatientEligibleTrial(): RichPatientEligibleTrial = { + val patientCriterionId = nextLongId[PatientCriterion] + val trial = trialcuration.nextTrial() + RichPatientEligibleTrial( + trial = trial, + group = nextPatientTrialArmGroupView(trial.id), + arms = List( + nextPatientCriterionArm(patientCriterionId), + nextPatientCriterionArm(patientCriterionId), + nextPatientCriterionArm(patientCriterionId) + ) + ) + } + + def nextPatientHypothesis(): PatientHypothesis = PatientHypothesis( + id = nextUuidId[PatientHypothesis], + patientId = nextUuidId[Patient], + hypothesisId = nextUuidId[Hypothesis], + rationale = Option(generators.nextString()), + matchedTrials = generators.nextInt(Int.MaxValue).toLong + ) + + def nextRichPatientHypothesis(): RichPatientHypothesis = RichPatientHypothesis( + patientHypothesis = nextPatientHypothesis(), + isRequired = generators.nextBoolean() + ) + + def nextPatientIssue(): PatientIssue = PatientIssue( + id = nextLongId[PatientIssue], + userId = nextStringId[User], + patientId = nextUuidId[Patient], + lastUpdate = nextLocalDateTime, + isDraft = generators.nextBoolean(), + text = generators.nextString(), + archiveRequired = generators.nextBoolean() + ) + + def nextPatientHistory(): PatientHistory = PatientHistory( + id = nextLongId[PatientHistory], + executor = nextStringId[User], + patientId = nextUuidId[Patient], + state = nextPatientState, + action = nextPatientAction, + created = nextLocalDateTime + ) + + def nextPatientListResponse(): ListResponse[Patient] = { + val xs: Seq[Patient] = Seq.fill(3)(nextPatient()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + + def nextRichPatientLabelListResponse(): ListResponse[RichPatientLabel] = { + val xs: Seq[RichPatientLabel] = Seq.fill(3)(nextRichPatientLabel()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + + def nextPatientLabelListResponse(): ListResponse[PatientLabel] = { + val xs: Seq[PatientLabel] = Seq.fill(3)(nextPatientLabel()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + + def nextRichPatientCriterionListResponse(): ListResponse[RichPatientCriterion] = { + val xs: Seq[RichPatientCriterion] = Seq.fill(3)(nextRichPatientCriterion()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + + def nextRichPatientEligibleTrialListResponse(): ListResponse[RichPatientEligibleTrial] = { + val xs: Seq[RichPatientEligibleTrial] = Seq.fill(3)(nextRichPatientEligibleTrial()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + + def nextRichPatientHypothesisListResponse(): ListResponse[RichPatientHypothesis] = { + val xs: Seq[RichPatientHypothesis] = Seq.fill(3)(nextRichPatientHypothesis()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + + def nextPatientLabelEvidenceViewListResponse(): ListResponse[PatientLabelEvidenceView] = { + val xs: Seq[PatientLabelEvidenceView] = Seq.fill(3)(nextPatientLabelEvidenceView()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + + def nextPatientIssuesListResponse(): ListResponse[PatientIssue] = { + val xs: Seq[PatientIssue] = Seq.fill(3)(nextPatientIssue()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + + def nextPatientHistoryListResponse(): ListResponse[PatientHistory] = { + val xs: Seq[PatientHistory] = Seq.fill(3)(nextPatientHistory()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + +} |