From 133b4fe8487db9df80c1f39f64bbe7d6fc039952 Mon Sep 17 00:00:00 2001 From: Aleksandr Date: Mon, 23 Oct 2017 14:46:32 +0700 Subject: Added 'inclusion' field to PatientCriterion --- .../scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala | 7 ++++--- .../driver/pdsuidomain/fakes/entities/treatmentmatching.scala | 3 ++- .../formats/json/patient/trial/ApiPatientCriterion.scala | 9 ++++++--- .../pdsuidomain/formats/json/sprayformats/patientcriterion.scala | 3 ++- .../formats/json/sprayformats/PatientCriterionFormatSuite.scala | 5 +++-- 5 files changed, 17 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala index 79a19ed..7027eef 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala @@ -9,11 +9,11 @@ import xyz.driver.pdsuicommon.logging._ object PatientCriterion { implicit def toPhiString(x: PatientCriterion): PhiString = { import x._ - phi"PatientCriterion(id=$id, patientLabelId=$patientLabelId, trialId=${Unsafe(trialId)}, nctId=${Unsafe(nctId)}, " + + phi"PatientCriterion(id=$id, patientLabelId=$patientLabelId, trialId=${Unsafe(trialId)}, nctId=$nctId, " + phi"criterionId=$criterionId, criterionValue=${Unsafe(criterionValue)}, " + phi"isImplicitMatch=$criterionIsDefining), criterionIsDefining=${Unsafe(criterionIsDefining)}, " + phi"eligibilityStatus=${Unsafe(eligibilityStatus)}, verifiedEligibilityStatus=${Unsafe(verifiedEligibilityStatus)}, " + - phi"isVerified=${Unsafe(isVerified)}, lastUpdate=${Unsafe(lastUpdate)}" + phi"isVerified=${Unsafe(isVerified)}, lastUpdate=${Unsafe(lastUpdate)}, inclusion=${Unsafe(inclusion)}" } /** @@ -52,7 +52,8 @@ final case class PatientCriterion(id: LongId[PatientCriterion], verifiedEligibilityStatus: Option[LabelValue], isVerified: Boolean, isVisible: Boolean, - lastUpdate: LocalDateTime) { + lastUpdate: LocalDateTime, + inclusion: Option[Boolean]) { def isIneligibleForEv: Boolean = eligibilityStatus.contains(LabelValue.No) && isVerified } diff --git a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala index b0ca136..b10c7de 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala @@ -66,7 +66,8 @@ object treatmentmatching { verifiedEligibilityStatus = generators.nextOption(fakes.entities.labels.nextLabelValue()), isVerified = generators.nextBoolean(), isVisible = generators.nextBoolean(), - lastUpdate = nextLocalDateTime + lastUpdate = nextLocalDateTime, + inclusion = generators.nextOption(generators.nextBoolean()) ) def nextDraftPatientCriterion(): DraftPatientCriterion = DraftPatientCriterion( diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patient/trial/ApiPatientCriterion.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patient/trial/ApiPatientCriterion.scala index b9bf772..5e44413 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patient/trial/ApiPatientCriterion.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patient/trial/ApiPatientCriterion.scala @@ -22,7 +22,8 @@ final case class ApiPatientCriterion(id: Long, verifiedEligibilityStatus: Option[String], isVerified: Boolean, isVisible: Boolean, - lastUpdate: ZonedDateTime) + lastUpdate: ZonedDateTime, + inclusion: Option[Boolean]) object ApiPatientCriterion { @@ -49,7 +50,8 @@ object ApiPatientCriterion { }), Writes.of[String])) and (JsPath \ "isVerified").format[Boolean] and (JsPath \ "isVisible").format[Boolean] and - (JsPath \ "lastUpdate").format[ZonedDateTime] + (JsPath \ "lastUpdate").format[ZonedDateTime] and + (JsPath \ "inclusion").formatNullable[Boolean] ) (ApiPatientCriterion.apply, unlift(ApiPatientCriterion.unapply)) def fromDomain(patientCriterion: PatientCriterion, @@ -70,6 +72,7 @@ object ApiPatientCriterion { verifiedEligibilityStatus = patientCriterion.verifiedEligibilityStatus.map(_.toString), isVerified = patientCriterion.isVerified, isVisible = patientCriterion.isVisible, - lastUpdate = ZonedDateTime.of(patientCriterion.lastUpdate, ZoneId.of("Z")) + lastUpdate = ZonedDateTime.of(patientCriterion.lastUpdate, ZoneId.of("Z")), + inclusion = patientCriterion.inclusion ) } diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/patientcriterion.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/patientcriterion.scala index f41c846..2cad78c 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/patientcriterion.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/patientcriterion.scala @@ -56,7 +56,8 @@ object patientcriterion { "verifiedEligibilityStatus" -> obj.patientCriterion.verifiedEligibilityStatus.toJson, "isVerified" -> obj.patientCriterion.isVerified.toJson, "isVisible" -> obj.patientCriterion.isVisible.toJson, - "lastUpdate" -> obj.patientCriterion.lastUpdate.toJson + "lastUpdate" -> obj.patientCriterion.lastUpdate.toJson, + "inclusion" -> obj.patientCriterion.inclusion.toJson ) } } diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/PatientCriterionFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/PatientCriterionFormatSuite.scala index b254013..27e27c2 100644 --- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/PatientCriterionFormatSuite.scala +++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/PatientCriterionFormatSuite.scala @@ -26,7 +26,8 @@ class PatientCriterionFormatSuite extends FlatSpec with Matchers { verifiedEligibilityStatus = None, isVisible = true, isVerified = true, - lastUpdate = LocalDateTime.parse("2017-08-10T18:00:00") + lastUpdate = LocalDateTime.parse("2017-08-10T18:00:00"), + inclusion = Some(true) ) val arms = List( PatientCriterionArm(patientCriterionId = LongId(1), armId = LongId(31), armName = "arm 31"), @@ -38,7 +39,7 @@ class PatientCriterionFormatSuite extends FlatSpec with Matchers { writtenJson should be( """{"id":1,"labelId":21,"nctId":"NCT00001","criterionId":101,"criterionText":"criterion text","criterionValue":"Yes", "criterionIsDefining":false,"criterionIsCompound":false,"eligibilityStatus":"Yes","verifiedEligibilityStatus":null, - "isVisible":true,"isVerified":true,"lastUpdate":"2017-08-10T18:00Z","arms":["arm 31","arm 32"]}""".parseJson) + "isVisible":true,"isVerified":true,"lastUpdate":"2017-08-10T18:00Z","arms":["arm 31","arm 32"],"inclusion":true}""".parseJson) val updatePatientCriterionJson = """{"verifiedEligibilityStatus":"No"}""".parseJson val expectedUpdatedPatientCriterion = orig.copy(verifiedEligibilityStatus = Some(LabelValue.No)) -- cgit v1.2.3