diff options
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/entities')
6 files changed, 95 insertions, 4 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Criterion.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Criterion.scala index 2432251..26ced22 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/Criterion.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Criterion.scala @@ -30,7 +30,7 @@ object Criterion { } } -final case class CriterionArm(criterionId: LongId[Criterion], armId: LongId[Arm]) +final case class CriterionArm(criterionId: LongId[Criterion], armId: LongId[EligibilityArm]) object CriterionArm { diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/EligibilityArm.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/EligibilityArm.scala new file mode 100644 index 0000000..50b49ad --- /dev/null +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/EligibilityArm.scala @@ -0,0 +1,42 @@ +package xyz.driver.pdsuidomain.entities + +import java.time.LocalDateTime + +import xyz.driver.entities.patient.CancerType +import xyz.driver.pdsuicommon.domain.{LongId, StringId} +import xyz.driver.pdsuicommon.logging._ + +final case class EligibilityArm(id: LongId[EligibilityArm], + name: String, + originalName: String, + trialId: StringId[Trial], + deleted: Option[LocalDateTime] = None) + +object EligibilityArm { + + implicit def toPhiString(x: EligibilityArm): PhiString = { + import x._ + phi"Arm(id=$id, name=${Unsafe(x.name)}, trialId=${Unsafe(x.trialId)})" + } +} + +final case class EligibilityArmDisease(eligibilityArmId: LongId[EligibilityArm], disease: CancerType) + +object EligibilityArmDisease { + + implicit def toPhiString(x: EligibilityArmDisease): PhiString = { + phi"EligibilityArmDisease(eligibilityArmId=${Unsafe(x.eligibilityArmId)}, disease=${Unsafe(x.disease)})" + } + +} + +final case class EligibilityArmWithDiseases(eligibilityArm: EligibilityArm, + eligibilityArmDiseases: Seq[EligibilityArmDisease]) + +object EligibilityArmWithDiseases { + + implicit def toPhiString(x: EligibilityArmWithDiseases): PhiString = { + import x._ + phi"EligibilityArmWithDiseases(eligibilityArm=$eligibilityArm, eligibilityArmDiseases=$eligibilityArmDiseases)" + } +} diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Intervention.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Intervention.scala index 9ccc267..a838d64 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/Intervention.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Intervention.scala @@ -188,7 +188,7 @@ object InterventionType { } } -final case class InterventionArm(armId: LongId[Arm], interventionId: LongId[Intervention]) +final case class InterventionArm(armId: LongId[SlotArm], interventionId: LongId[Intervention]) object InterventionArm { implicit def toPhiString(x: InterventionArm): PhiString = { diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/SlotArmEligibilityArm.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/SlotArmEligibilityArm.scala new file mode 100644 index 0000000..70114de --- /dev/null +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/SlotArmEligibilityArm.scala @@ -0,0 +1,13 @@ +package xyz.driver.pdsuidomain.entities + +import xyz.driver.pdsuicommon.domain.LongId +import xyz.driver.pdsuicommon.logging._ + +final case class SlotArmEligibilityArm(slotArmId: LongId[SlotArm], eligibilityArmId: LongId[EligibilityArm]) + +object SlotArmEligibilityArm { + implicit def toPhiString(x: SlotArmEligibilityArm): PhiString = { + import x._ + phi"SlotArmEligibilityArm(slotArmId=$slotArmId, eligibilityArmId=$eligibilityArmId)" + } +} diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/SlotArms.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/SlotArms.scala new file mode 100644 index 0000000..932de38 --- /dev/null +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/SlotArms.scala @@ -0,0 +1,20 @@ +package xyz.driver.pdsuidomain.entities + +import java.time.LocalDateTime + +import xyz.driver.pdsuicommon.domain.{LongId, StringId} +import xyz.driver.pdsuicommon.logging._ + +final case class SlotArm(id: LongId[SlotArm], + name: String, + originalName: String, + trialId: StringId[Trial], + deleted: Option[LocalDateTime] = None) + +object SlotArm { + + implicit def toPhiString(x: SlotArm): PhiString = { + import x._ + phi"Arm(id=$id, name=${Unsafe(x.name)}, trialId=${Unsafe(x.trialId)})" + } +} diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala index 7584e9c..2aa7fe1 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala @@ -2,7 +2,6 @@ package xyz.driver.pdsuidomain.entities import java.time.LocalDateTime -import xyz.driver.entities.patient.CancerType import xyz.driver.pdsuicommon.domain.{LongId, StringId, User, UuidId} import xyz.driver.pdsuicommon.logging._ import xyz.driver.pdsuicommon.utils.Utils @@ -59,6 +58,24 @@ object Trial { } final case class Locations(locations: List[String]) +// +// sealed trait Condition +// +// object Condition { +// +// case object Breast extends Condition +// case object Lung extends Condition +// case object Prostate extends Condition +// +// def fromString(condition: String): Option[Condition] = condition match { +// case "Breast" => Some(Breast) +// case "Lung" => Some(Lung) +// case "Prostate" => Some(Prostate) +// case _ => None +// } +// +// val All: Set[Condition] = Set(Breast, Lung, Prostate) +// } } final case class Trial(id: StringId[Trial], @@ -69,7 +86,6 @@ final case class Trial(id: StringId[Trial], previousAssignee: Option[StringId[User]], lastActiveUserId: Option[StringId[User]], lastUpdate: LocalDateTime, - disease: CancerType, phase: String, hypothesisId: Option[UuidId[Hypothesis]], studyDesignId: Option[LongId[StudyDesign]], |