diff options
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala')
-rw-r--r-- | src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala deleted file mode 100644 index fa5ed61..0000000 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala +++ /dev/null @@ -1,126 +0,0 @@ -package xyz.driver.pdsuidomain.entities - -import java.time.LocalDateTime - -import xyz.driver.core.auth.User -import xyz.driver.pdsuicommon.domain.{LongId, StringId, UuidId} -import xyz.driver.pdsuicommon.logging._ -import xyz.driver.pdsuicommon.utils.Utils -import xyz.driver.pdsuidomain.entities.Trial.Status - -import scalaz.syntax.equal._ -import scalaz.Scalaz.stringInstance - -sealed trait StudyDesign { - val id: LongId[StudyDesign] - val name: String -} - -object StudyDesign { - - final case object Randomized extends StudyDesign { - val id: LongId[StudyDesign] = LongId[StudyDesign](1) - val name: String = "Randomized" - } - - final case object NonRandomized extends StudyDesign { - val id: LongId[StudyDesign] = LongId[StudyDesign](2) - val name: String = "Non-randomized" - } - - final case object SingleGroupAssignment extends StudyDesign { - val id: LongId[StudyDesign] = LongId[StudyDesign](3) - val name: String = "Single-group assignment" - } - - val All = Seq[StudyDesign]( - Randomized, - NonRandomized, - SingleGroupAssignment - ) - - def fromString(txt: String): Option[StudyDesign] = { - All.find(_.name === txt) - } - - implicit def toPhiString(x: StudyDesign): PhiString = { - import x._ - phi"StudyDesign(id=$id, category=${Unsafe(name)})" - } -} - -object TrialCreationRequest { - - implicit def toPhiString(x: TrialCreationRequest): PhiString = phi"${Unsafe(x.toString)}" -} - -final case class TrialCreationRequest(id: UuidId[Trial], nctId: String, phase: String) - -object Trial { - - sealed trait Status { - def oneOf(xs: Status*): Boolean = xs.contains(this) - def oneOf(xs: Set[Status]): Boolean = xs.contains(this) - } - - object Status { - case object New extends Status - case object ReviewSummary extends Status - case object Summarized extends Status - case object PendingUpdate extends Status - case object Update extends Status - case object ReviewCriteria extends Status - case object Done extends Status - case object Flagged extends Status - case object Archived extends Status - - val All: Set[Status] = Set[Status]( - New, - ReviewSummary, - Summarized, - PendingUpdate, - Update, - ReviewCriteria, - Done, - Flagged, - Archived - ) - - val AllPrevious: Set[Status] = Set[Status](New, ReviewSummary, Summarized, ReviewCriteria) - - implicit def toPhiString(x: Status): PhiString = Unsafe(Utils.getClassSimpleName(x.getClass)) - } - - implicit def toPhiString(x: Trial): PhiString = { - import x._ - phi"Trial(id=$id, externalId=$externalId, status=$status, previousStatus=$previousStatus, " + - phi"lastActiveUserId=${Unsafe(lastActiveUserId)}, assignee=${Unsafe(assignee)}, previousAssignee=${Unsafe(previousAssignee)})" - } - - final case class Locations(locations: List[String]) -} - -final case class Trial(id: StringId[Trial], - externalId: UuidId[Trial], - status: Status, - assignee: Option[xyz.driver.core.Id[User]], - previousStatus: Option[Status], - previousAssignee: Option[xyz.driver.core.Id[User]], - lastActiveUserId: Option[xyz.driver.core.Id[User]], - lastUpdate: LocalDateTime, - phase: String, - hypothesisId: Option[UuidId[Hypothesis]], - studyDesignId: Option[LongId[StudyDesign]], - originalStudyDesign: Option[String], - isPartner: Boolean, - overview: Option[String], - overviewTemplate: String, - isUpdated: Boolean, - title: String, - originalTitle: String) { - import Trial.Status._ - - if (previousStatus.nonEmpty) { - assert(AllPrevious.contains(previousStatus.get), s"Previous status has invalid value: ${previousStatus.get}") - } -} |