aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala
diff options
context:
space:
mode:
authorKseniya Tomskikh <ktomskih@datamonsters.co>2017-10-20 12:56:34 +0700
committerKseniya Tomskikh <ktomskih@datamonsters.co>2017-10-20 12:56:34 +0700
commit081f6c2ec58268a3b84aa69d622b28562a8dc4ac (patch)
treeb3d2181c1ac696ba53ecc54df0b73b3535d23671 /src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala
parentf3afdc358e52e2399bb4b089d26e3e3521570872 (diff)
parent9ca0cae09bc880ce083c2a49ae3804889cc9d4c4 (diff)
downloadrest-query-081f6c2ec58268a3b84aa69d622b28562a8dc4ac.tar.gz
rest-query-081f6c2ec58268a3b84aa69d622b28562a8dc4ac.tar.bz2
rest-query-081f6c2ec58268a3b84aa69d622b28562a8dc4ac.zip
Merge branch 'master' into entity-list-responses
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala')
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala34
1 files changed, 33 insertions, 1 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala
index ac5feef..e734779 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala
@@ -7,9 +7,41 @@ import xyz.driver.pdsuicommon.logging._
import xyz.driver.pdsuicommon.utils.Utils
import xyz.driver.pdsuidomain.entities.Trial.Status
-final case class StudyDesign(id: LongId[StudyDesign], name: String)
+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)})"