From aefa081802218fad505ba1bca02c0497f2ce7be4 Mon Sep 17 00:00:00 2001 From: Kseniya Tomskikh Date: Wed, 1 Nov 2017 18:54:15 +0700 Subject: Fixed patient's criteria update --- .../driver/pdsuidomain/fakes/entities/treatmentmatching.scala | 4 +++- .../driver/pdsuidomain/services/PatientCriterionService.scala | 10 ++++++++-- .../pdsuidomain/formats/json/PatientCriterionFormatSuite.scala | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) 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 3c14a37..e4d7de6 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala @@ -94,7 +94,9 @@ object treatmentmatching { def nextDraftPatientCriterion(): DraftPatientCriterion = DraftPatientCriterion( id = nextLongId[PatientCriterion], - eligibilityStatus = generators.nextOption(fakes.entities.labels.nextLabelValue()), + eligibilityStatus = generators.nextOption( + generators.nextOption(fakes.entities.labels.nextLabelValue()) + ), isVerified = generators.nextOption(generators.nextBoolean()) ) diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/PatientCriterionService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/PatientCriterionService.scala index 4d0e188..f2b4434 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/services/PatientCriterionService.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/services/PatientCriterionService.scala @@ -15,16 +15,22 @@ import scala.concurrent.Future object PatientCriterionService { final case class DraftPatientCriterion(id: LongId[PatientCriterion], - eligibilityStatus: Option[LabelValue], + eligibilityStatus: Option[Option[LabelValue]], isVerified: Option[Boolean]) { def applyTo(orig: PatientCriterion) = { orig.copy( - eligibilityStatus = eligibilityStatus.orElse(orig.eligibilityStatus), + 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})" + } + } + trait DefaultPatientNotFoundError { def userMessage: String = "Patient not found" } diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientCriterionFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientCriterionFormatSuite.scala index e0f96bb..60e0fff 100644 --- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientCriterionFormatSuite.scala +++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientCriterionFormatSuite.scala @@ -51,7 +51,7 @@ class PatientCriterionFormatSuite extends FlatSpec with Matchers { val updateBulkPatientCriterionJson = """[{"id":1,"eligibilityStatus":"No"},{"id":2,"isVerified":false}]""".parseJson val expectedDraftPatientCriterionList = List( - DraftPatientCriterion(id = LongId(1), eligibilityStatus = Some(LabelValue.No), isVerified = None), + DraftPatientCriterion(id = LongId(1), eligibilityStatus = Some(Some(LabelValue.No)), isVerified = None), DraftPatientCriterion(id = LongId(2), eligibilityStatus = None, isVerified = Some(false)) ) val parsedDraftPatientCriterionList = draftPatientCriterionListReader.read(updateBulkPatientCriterionJson) -- cgit v1.2.3