diff options
author | Aleksandr <ognelisar@gmail.com> | 2017-11-14 15:45:50 +0700 |
---|---|---|
committer | Aleksandr <ognelisar@gmail.com> | 2017-11-14 15:45:50 +0700 |
commit | add98e1a1100d5b0fb666ac4669d0a90272959ca (patch) | |
tree | 4e32e92e7bc3a6373f95f04bd28f946b5b100234 /src/main/scala/xyz/driver/pdsuidomain/entities | |
parent | 2afec69b277c031eb52e1a05e57ff7bb0079f8d1 (diff) | |
parent | 29ee5de759374ceed9c856a51443a3f7c2cec029 (diff) | |
download | rest-query-add98e1a1100d5b0fb666ac4669d0a90272959ca.tar.gz rest-query-add98e1a1100d5b0fb666ac4669d0a90272959ca.tar.bz2 rest-query-add98e1a1100d5b0fb666ac4669d0a90272959ca.zip |
Merge branch 'master' into PDSUI-2345
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/entities')
5 files changed, 38 insertions, 38 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala index 471d345..95710be 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala @@ -7,7 +7,6 @@ import com.fasterxml.jackson.core.{JsonGenerator, JsonParser} import com.fasterxml.jackson.databind._ import com.fasterxml.jackson.databind.annotation.{JsonDeserialize, JsonSerialize} import xyz.driver.core.auth.User -import xyz.driver.pdsuicommon.compat.Implicits._ import xyz.driver.pdsuicommon.domain._ import xyz.driver.pdsuicommon.logging._ import xyz.driver.pdsuicommon.utils.Utils @@ -411,31 +410,31 @@ object Document { val validator: Validator[Document, Document] = { input => for { - typeId <- Validators.nonEmpty("typeId")(input.typeId) + typeId <- Validators.nonEmpty("typeId")(input.typeId).right - providerTypeId <- Validators.nonEmpty("providerTypeId")(input.providerTypeId) + providerTypeId <- Validators.nonEmpty("providerTypeId")(input.providerTypeId).right - institutionName <- Validators.nonEmpty("institutionName")(input.institutionName) + institutionName <- Validators.nonEmpty("institutionName")(input.institutionName).right - meta <- Validators.nonEmpty("meta")(input.meta) + meta <- Validators.nonEmpty("meta")(input.meta).right - startDate <- Validators.nonEmpty("startDate")(input.startDate) + startDate <- Validators.nonEmpty("startDate")(input.startDate).right - isOrderRight <- input.endDate match { + isOrderRight <- (input.endDate match { case Some(endDate) if startDate.isAfter(endDate) => Validators.fail("The start date should be less, than the end one") case _ => Validators.success(true) - } + }).right areDatesInThePast <- { - val dates = List(input.startDate, input.endDate).flatten - val now = LocalDate.now() + val dates = List(input.startDate, input.endDate).flatten + val now = LocalDate.now() val hasInvalid = dates.exists(_.isAfter(now)) if (hasInvalid) Validators.fail("Dates should be in the past") else Validators.success(true) - } + }.right } yield input } diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala index 7027eef..193e8cb 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala @@ -19,17 +19,16 @@ object PatientCriterion { /** * @see https://driverinc.atlassian.net/wiki/display/MTCH/EV+Business+Process */ - def getEligibilityStatus(criterionValue: Option[Boolean], primaryValue: Option[LabelValue]): Option[LabelValue] = { + def getEligibilityStatus(criterionValue: Option[Boolean], primaryValue: LabelValue): LabelValue = { primaryValue match { - case None => None - case Some(LabelValue.Maybe) => Some(LabelValue.Maybe) - case Some(_) if criterionValue.isEmpty => Some(LabelValue.Maybe) - case Some(status) => - Some( + case LabelValue.Unknown => LabelValue.Unknown + case LabelValue.Maybe => LabelValue.Maybe + case _ if criterionValue.isEmpty => LabelValue.Maybe + case status => + LabelValue.fromBoolean( LabelValue.fromBoolean( - LabelValue.fromBoolean( - criterionValue.getOrElse(throw new IllegalArgumentException("Criterion should not be empty"))) == status - )) + criterionValue.getOrElse(throw new IllegalArgumentException("Criterion should not be empty"))) == status + ) } } @@ -48,13 +47,14 @@ final case class PatientCriterion(id: LongId[PatientCriterion], criterionText: String, criterionValue: Option[Boolean], criterionIsDefining: Boolean, - eligibilityStatus: Option[LabelValue], - verifiedEligibilityStatus: Option[LabelValue], + eligibilityStatus: LabelValue, + verifiedEligibilityStatus: LabelValue, isVerified: Boolean, isVisible: Boolean, lastUpdate: LocalDateTime, inclusion: Option[Boolean]) { - def isIneligibleForEv: Boolean = eligibilityStatus.contains(LabelValue.No) && isVerified + import scalaz.syntax.equal._ + def isIneligibleForEv: Boolean = eligibilityStatus === LabelValue.No && isVerified } object PatientCriterionArm { diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientEligibleTrial.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientEligibleTrial.scala index ff272a8..179056a 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientEligibleTrial.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientEligibleTrial.scala @@ -38,22 +38,22 @@ object PatientTrialArmGroup { /** * @see https://driverinc.atlassian.net/wiki/display/DMPD/EV+Business+Process */ - def getEligibilityStatusForRc(criterionList: TraversableOnce[PatientCriterion]): Option[LabelValue] = { - def isEligible: Boolean = criterionList.forall(_.verifiedEligibilityStatus.contains(LabelValue.Yes)) - def isIneligible: Boolean = criterionList.exists(_.verifiedEligibilityStatus.contains(LabelValue.No)) - def isUnknown: Boolean = criterionList.forall(_.verifiedEligibilityStatus.isEmpty) + def getEligibilityStatusForRc(criterionList: TraversableOnce[PatientCriterion]): LabelValue = { + def isEligible: Boolean = criterionList.forall(_.verifiedEligibilityStatus == LabelValue.Yes) + def isIneligible: Boolean = criterionList.exists(_.verifiedEligibilityStatus == LabelValue.No) + def isUnknown: Boolean = criterionList.forall(_.verifiedEligibilityStatus == LabelValue.Unknown) - if (isEligible) Some(LabelValue.Yes) - else if (isIneligible) Some(LabelValue.No) - else if (isUnknown) None - else Some(LabelValue.Maybe) + if (isEligible) LabelValue.Yes + else if (isIneligible) LabelValue.No + else if (isUnknown) LabelValue.Unknown + else LabelValue.Maybe } } final case class PatientTrialArmGroup(id: LongId[PatientTrialArmGroup], eligibleTrialId: UuidId[PatientEligibleTrial], - eligibilityStatus: Option[LabelValue], - verifiedEligibilityStatus: Option[LabelValue], + eligibilityStatus: LabelValue, + verifiedEligibilityStatus: LabelValue, isVerified: Boolean) object PatientTrialArmGroupView { @@ -70,8 +70,8 @@ final case class PatientTrialArmGroupView(id: LongId[PatientTrialArmGroup], patientId: UuidId[Patient], trialId: StringId[Trial], hypothesisId: UuidId[Hypothesis], - eligibilityStatus: Option[LabelValue], - verifiedEligibilityStatus: Option[LabelValue], + eligibilityStatus: LabelValue, + verifiedEligibilityStatus: LabelValue, isVerified: Boolean) { def applyTo(trialArmGroup: PatientTrialArmGroup) = { diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabel.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabel.scala index 4c0f4ef..df86175 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabel.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabel.scala @@ -17,8 +17,8 @@ final case class PatientLabel(id: LongId[PatientLabel], patientId: UuidId[Patient], labelId: LongId[Label], score: Int, - primaryValue: Option[LabelValue], - verifiedPrimaryValue: Option[LabelValue], + primaryValue: LabelValue, + verifiedPrimaryValue: LabelValue, isImplicitMatch: Boolean, isVisible: Boolean) diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/TrialHistory.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/TrialHistory.scala index c66048b..cc96cbd 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/TrialHistory.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/TrialHistory.scala @@ -90,4 +90,5 @@ final case class TrialHistory(id: LongId[TrialHistory], trialId: StringId[Trial], state: State, action: Action, - created: LocalDateTime = LocalDateTime.now(ZoneId.of("Z"))) + created: LocalDateTime = LocalDateTime.now(ZoneId.of("Z")), + comment: Option[String] = None) |