aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuidomain/entities
diff options
context:
space:
mode:
authorKseniya Tomskikh <ktomskih@datamonsters.co>2018-01-18 22:14:22 +0200
committerKseniya Tomskikh <ktomskih@datamonsters.co>2018-01-18 22:14:22 +0200
commite6efab471cb30df21d07883b56af6e94e0507849 (patch)
treef4e5a107db79fec4a3dca724aa01b2f500f8f320 /src/main/scala/xyz/driver/pdsuidomain/entities
parentaf10bb0a3131ebad9050f1766dadfa3954268f2c (diff)
parent57b1a08669ddb3fb54cf79a2f42cb473e0ced3f5 (diff)
downloadrest-query-e6efab471cb30df21d07883b56af6e94e0507849.tar.gz
rest-query-e6efab471cb30df21d07883b56af6e94e0507849.tar.bz2
rest-query-e6efab471cb30df21d07883b56af6e94e0507849.zip
Merge branch 'master' into TRIAL-193v0.15.1.1
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/entities')
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala29
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/PatientEligibleTrial.scala10
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabel.scala8
3 files changed, 46 insertions, 1 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala
index 193e8cb..e6d466a 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala
@@ -2,7 +2,7 @@ package xyz.driver.pdsuidomain.entities
import java.time.LocalDateTime
-import xyz.driver.entities.labels.LabelValue
+import xyz.driver.entities.labels.{Label, LabelValue}
import xyz.driver.pdsuicommon.domain.{LongId, StringId}
import xyz.driver.pdsuicommon.logging._
@@ -57,6 +57,33 @@ final case class PatientCriterion(id: LongId[PatientCriterion],
def isIneligibleForEv: Boolean = eligibilityStatus === LabelValue.No && isVerified
}
+final case class DraftPatientCriterion(id: LongId[PatientCriterion],
+ eligibilityStatus: Option[LabelValue],
+ isVerified: Option[Boolean]) {
+ def applyTo(orig: PatientCriterion) = {
+ orig.copy(
+ eligibilityStatus = eligibilityStatus.getOrElse(orig.eligibilityStatus),
+ isVerified = isVerified.getOrElse(orig.isVerified)
+ )
+ }
+}
+
+object DraftPatientCriterion {
+ implicit def toPhiString(x: DraftPatientCriterion): PhiString = {
+ phi"DraftPatientCriterion(id=${x.id}, eligibilityStatus=${Unsafe(x.eligibilityStatus)}, isVerified=${x.isVerified})"
+ }
+}
+
+final case class RichPatientCriterion(patientCriterion: PatientCriterion,
+ labelId: LongId[Label],
+ armList: List[PatientCriterionArm])
+
+object RichPatientCriterion {
+ implicit def toPhiString(x: RichPatientCriterion): PhiString = {
+ phi"RichPatientCriterion(patientCriterion=${x.patientCriterion}, labelId=${x.labelId}, arms=${x.armList})"
+ }
+}
+
object PatientCriterionArm {
implicit def toPhiString(x: PatientCriterionArm): PhiString = {
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientEligibleTrial.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientEligibleTrial.scala
index 179056a..4f62a9e 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientEligibleTrial.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientEligibleTrial.scala
@@ -82,3 +82,13 @@ final case class PatientTrialArmGroupView(id: LongId[PatientTrialArmGroup],
)
}
}
+
+final case class RichPatientEligibleTrial(trial: Trial,
+ group: PatientTrialArmGroupView,
+ arms: List[PatientCriterionArm])
+
+object RichPatientEligibleTrial {
+ implicit def toPhiString(x: RichPatientEligibleTrial): PhiString = {
+ phi"RichPatientEligibleTrial(group=${x.group}, trial=${x.trial}, arms=${x.arms})"
+ }
+}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabel.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabel.scala
index df86175..8d64389 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabel.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabel.scala
@@ -22,6 +22,14 @@ final case class PatientLabel(id: LongId[PatientLabel],
isImplicitMatch: Boolean,
isVisible: Boolean)
+final case class RichPatientLabel(patientLabel: PatientLabel, isVerified: Boolean)
+
+object RichPatientLabel {
+ implicit def toPhiString(x: RichPatientLabel): PhiString = {
+ phi"RichPatientLabel(patientLabel=${x.patientLabel}, isVerified=${x.isVerified})"
+ }
+}
+
object PatientLabelEvidence {
implicit def toPhiString(x: PatientLabelEvidence): PhiString = {
import x._