package xyz.driver.pdsuidomain.entities
import java.time.LocalDateTime
import java.util.UUID
import xyz.driver.pdsuicommon.logging._
import xyz.driver.pdsuicommon.domain.UuidId
final case class ScrapedStudyDesign(value: String)
final case class ScrapedOverall(affiliation: String,
status: String,
facilityName: Option[String],
firstName: Option[String],
lastName: Option[String],
phone: Option[String],
phoneExt: Option[String],
email: Option[String],
isBackup: Boolean)
final case class ScrapedInterventionType(value: String)
final case class ScrapedIntervention(name: String,
kind: ScrapedInterventionType,
description: Option[String],
isSynonym: Boolean)
object ScrapedIntervention {
implicit def toPhiString(x: ScrapedIntervention): PhiString =
phi"ScrapedIntervention(${Unsafe(x.name)})"
}
final case class ScrapedArm(name: String, kind: Option[String], interventions: Set[ScrapedIntervention])
object ScrapedArm {
implicit def toPhiString(x: ScrapedArm): PhiString = {
import x._
phi"ScrapedArm(name=${Unsafe(name)}, inverventions=$interventions)"
}
}
final case class ScrapedTrialChecksum(eligibilityCriteria: String,
briefSummary: String,
detailedDescription: String,
armDescription: String)
object ScrapedTrialChecksum {
implicit def toPhiString(x: ScrapedTrialChecksum): PhiString = {
import x._
phi"ScrapedTrialChecksum(eligibilityCriteria=${Unsafe(eligibilityCriteria)}, briefSummary=${Unsafe(briefSummary)}, " +
phi"detailedDescription=${Unsafe(detailedDescription)}, armDescription=${Unsafe(armDescription)}"
}
}
object ScrapedTrial {
implicit def toPhiString(x: ScrapedTrial): PhiString = {
import x._
phi"ScrapedTrial(rawId=$rawId, nctId=${Unsafe(nctId)}, arms=$arms, checksum=$checksum)"
}
}
final case class ScrapedTrial(rawId: UuidId[ScrapedTrial],
createdAt: LocalDateTime,
disease: String,
nctId: String,
nctUuid: UUID,
title: Option[String],
startDate: Option[LocalDateTime],
phase: String,
studyDesign: Option[ScrapedStudyDesign],
overall: Set[ScrapedOverall],
// // see ClinicalTrialRaw
// trialHtml: String,
// eligibilityText: String,
lastReviewed: LocalDateTime,
arms: Set[ScrapedArm],
checksum: ScrapedTrialChecksum)