aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuidomain/formats
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/formats')
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrial.scala26
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialArm.scala9
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialLabelCriterion.scala18
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialList.scala15
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialWithLabels.scala19
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/trial/ApiTrial.scala2
6 files changed, 42 insertions, 47 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrial.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrial.scala
deleted file mode 100644
index 0c9cb71..0000000
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrial.scala
+++ /dev/null
@@ -1,26 +0,0 @@
-package xyz.driver.pdsuidomain.formats.json.export
-
-import java.time.ZoneId
-
-import play.api.libs.functional.syntax._
-import play.api.libs.json.{Format, JsPath}
-import xyz.driver.pdsuidomain.entities.export.trial.ExportTrial
-
-final case class ApiExportTrial(nctId: String, trialId: String, disease: String, lastReviewed: Long)
-
-object ApiExportTrial {
-
- implicit val format: Format[ApiExportTrial] = (
- (JsPath \ "nctId").format[String] and
- (JsPath \ "trialId").format[String] and
- (JsPath \ "disease").format[String] and
- (JsPath \ "lastReviewed").format[Long]
- )(ApiExportTrial.apply, unlift(ApiExportTrial.unapply))
-
- def fromDomain(trial: ExportTrial): ApiExportTrial = ApiExportTrial(
- nctId = trial.nctId.id,
- trialId = trial.trialId.toString,
- disease = trial.condition.toString.toUpperCase,
- lastReviewed = trial.lastReviewed.atZone(ZoneId.of("Z")).toEpochSecond
- )
-}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialArm.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialArm.scala
index b2b02eb..ea96f58 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialArm.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialArm.scala
@@ -2,9 +2,16 @@ package xyz.driver.pdsuidomain.formats.json.export
import play.api.libs.functional.syntax._
import play.api.libs.json._
+import xyz.driver.pdsuicommon.domain.LongId
+import xyz.driver.pdsuidomain.entities.Arm
import xyz.driver.pdsuidomain.entities.export.trial.ExportTrialArm
-final case class ApiExportTrialArm(armId: String, armName: String)
+final case class ApiExportTrialArm(armId: String, armName: String) {
+
+ def toDomain: ExportTrialArm = {
+ ExportTrialArm(LongId[Arm](armId.toLong), armName)
+ }
+}
object ApiExportTrialArm {
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialLabelCriterion.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialLabelCriterion.scala
index 2564efe..df1ebb4 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialLabelCriterion.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialLabelCriterion.scala
@@ -1,9 +1,10 @@
package xyz.driver.pdsuidomain.formats.json.export
-import xyz.driver.pdsuicommon.domain.FuzzyValue
import play.api.libs.functional.syntax._
import play.api.libs.json._
+import xyz.driver.pdsuicommon.domain.{FuzzyValue, LongId}
import xyz.driver.pdsuidomain.entities.export.trial.ExportTrialLabelCriterion
+import xyz.driver.pdsuidomain.entities.{Arm, Criterion, Label}
final case class ApiExportTrialLabelCriterion(value: String,
labelId: String,
@@ -11,7 +12,20 @@ final case class ApiExportTrialLabelCriterion(value: String,
criterionText: String,
armIds: List[String],
isCompound: Boolean,
- isDefining: Boolean)
+ isDefining: Boolean) {
+
+ def toDomain: ExportTrialLabelCriterion = {
+ ExportTrialLabelCriterion(
+ LongId[Criterion](criterionId.toLong),
+ FuzzyValue.fromString.lift(value).map(_ == FuzzyValue.Yes),
+ LongId[Label](labelId.toLong),
+ armIds.map(armId => LongId[Arm](armId.toLong)).toSet,
+ criterionText,
+ isCompound,
+ isDefining
+ )
+ }
+}
object ApiExportTrialLabelCriterion {
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialList.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialList.scala
deleted file mode 100644
index 93ee42e..0000000
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialList.scala
+++ /dev/null
@@ -1,15 +0,0 @@
-package xyz.driver.pdsuidomain.formats.json.export
-
-import play.api.libs.json.{Format, Json}
-import xyz.driver.pdsuidomain.entities.export.trial.ExportTrial
-
-final case class ApiExportTrialList(trials: Seq[ApiExportTrial])
-
-object ApiExportTrialList {
-
- implicit val format: Format[ApiExportTrialList] = Json.format
-
- def fromDomain(trialList: Seq[ExportTrial]) = ApiExportTrialList(
- trials = trialList.map(ApiExportTrial.fromDomain)
- )
-}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialWithLabels.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialWithLabels.scala
index de76ac0..e383a1f 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialWithLabels.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialWithLabels.scala
@@ -1,9 +1,11 @@
package xyz.driver.pdsuidomain.formats.json.export
-import java.time.ZoneId
+import java.time.{Instant, ZoneId}
import play.api.libs.functional.syntax._
import play.api.libs.json.{Format, JsPath}
+import xyz.driver.pdsuicommon.domain.{StringId, UuidId}
+import xyz.driver.pdsuidomain.entities.Trial
import xyz.driver.pdsuidomain.entities.export.trial.ExportTrialWithLabels
final case class ApiExportTrialWithLabels(nctId: String,
@@ -12,7 +14,20 @@ final case class ApiExportTrialWithLabels(nctId: String,
lastReviewed: Long,
labelVersion: Long,
arms: List[ApiExportTrialArm],
- criteria: List[ApiExportTrialLabelCriterion])
+ criteria: List[ApiExportTrialLabelCriterion]) {
+
+ def toDomain: ExportTrialWithLabels = {
+ ExportTrialWithLabels(
+ StringId[Trial](nctId),
+ UuidId[Trial](trialId),
+ condition,
+ lastReviewed = Instant.ofEpochMilli(lastReviewed).atZone(ZoneId.of("Z")).toLocalDateTime,
+ labelVersion,
+ arms.map(_.toDomain),
+ criteria.map(_.toDomain)
+ )
+ }
+}
object ApiExportTrialWithLabels {
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial/ApiTrial.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial/ApiTrial.scala
index f59836e..51bd03f 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial/ApiTrial.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial/ApiTrial.scala
@@ -36,7 +36,7 @@ final case class ApiTrial(id: String,
previousStatus = this.previousStatus.map(s => TrialStatus.statusFromString(s)),
previousAssignee = this.previousAssignee.map(id => StringId(id)),
lastActiveUserId = this.lastActiveUser.map(id => StringId(id)),
- lastUpdate = this.lastUpdate.toLocalDateTime(),
+ lastUpdate = this.lastUpdate.toLocalDateTime,
condition = Trial.Condition
.fromString(this.condition)
.getOrElse(