aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuidomain/formats
diff options
context:
space:
mode:
authorKseniya Tomskikh <ktomskih@datamonsters.co>2017-09-26 16:55:38 +0700
committerKseniya Tomskikh <ktomskih@datamonsters.co>2017-09-26 16:55:38 +0700
commitc0ffb2a34240876c16f9ce62205cf257aa6d5991 (patch)
tree15fe180be3f035f308168d5564d01cf293a1f83a /src/main/scala/xyz/driver/pdsuidomain/formats
parent2cd8e672feba0d076f4f44f556f993f1db2043b7 (diff)
downloadrest-query-c0ffb2a34240876c16f9ce62205cf257aa6d5991.tar.gz
rest-query-c0ffb2a34240876c16f9ce62205cf257aa6d5991.tar.bz2
rest-query-c0ffb2a34240876c16f9ce62205cf257aa6d5991.zip
PDSUI-2275 Added delivery_method field to intervention table
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/formats')
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/intervention/ApiIntervention.scala6
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/intervention/ApiPartialIntervention.scala9
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/intervention.scala15
3 files changed, 25 insertions, 5 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/intervention/ApiIntervention.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/intervention/ApiIntervention.scala
index f306a71..072ed25 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/intervention/ApiIntervention.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/intervention/ApiIntervention.scala
@@ -12,6 +12,7 @@ final case class ApiIntervention(id: Long,
isActive: Boolean,
arms: List[Long],
trialId: String,
+ deliveryMethod: Option[String],
originalName: String,
originalDosage: String,
originalType: Option[String]) {
@@ -26,7 +27,8 @@ final case class ApiIntervention(id: Long,
originalType = this.originalType.map(id => id.toString),
dosage = this.dosage,
originalDosage = this.originalDosage,
- isActive = this.isActive
+ isActive = this.isActive,
+ deliveryMethod = this.deliveryMethod
)
InterventionWithArms(intervention, this.arms.map { armId =>
@@ -47,6 +49,7 @@ object ApiIntervention {
(JsPath \ "isActive").format[Boolean] and
(JsPath \ "arms").format[List[Long]] and
(JsPath \ "trialId").format[String] and
+ (JsPath \ "deliveryMethod").formatNullable[String] and
(JsPath \ "originalName").format[String] and
(JsPath \ "originalDosage").format[String] and
(JsPath \ "originalType").formatNullable[String]
@@ -64,6 +67,7 @@ object ApiIntervention {
isActive = intervention.isActive,
arms = arms.map(_.armId.id),
trialId = intervention.trialId.id,
+ deliveryMethod = intervention.deliveryMethod,
originalName = intervention.originalName,
originalDosage = intervention.originalDosage,
originalType = intervention.originalType
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/intervention/ApiPartialIntervention.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/intervention/ApiPartialIntervention.scala
index 74f16e1..28a8555 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/intervention/ApiPartialIntervention.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/intervention/ApiPartialIntervention.scala
@@ -16,6 +16,7 @@ final case class ApiPartialIntervention(name: Option[String],
typeId: Option[Long],
dosage: Option[String],
isActive: Option[Boolean],
+ deliveryMethod: Option[String],
arms: Option[List[Long]]) {
def applyTo(orig: InterventionWithArms): InterventionWithArms = {
@@ -26,7 +27,8 @@ final case class ApiPartialIntervention(name: Option[String],
name = name.getOrElse(origIntervention.name),
typeId = typeId.map(LongId(_)).orElse(origIntervention.typeId),
dosage = dosage.getOrElse(origIntervention.dosage),
- isActive = isActive.getOrElse(origIntervention.isActive)
+ isActive = isActive.getOrElse(origIntervention.isActive),
+ deliveryMethod = deliveryMethod.orElse(origIntervention.deliveryMethod)
),
arms = draftArmList.getOrElse(orig.arms)
)
@@ -50,7 +52,8 @@ final case class ApiPartialIntervention(name: Option[String],
originalType = Option(""),
dosage = dosage.getOrElse(""),
originalDosage = dosage.getOrElse(""),
- isActive = isActive.getOrElse(false)
+ isActive = isActive.getOrElse(false),
+ deliveryMethod = deliveryMethod
),
arms =
arms.map(_.map(x => InterventionArm(armId = LongId(x), interventionId = LongId(0)))).getOrElse(List.empty)
@@ -69,6 +72,7 @@ object ApiPartialIntervention {
(JsPath \ "typeId").readNullable[Long] and
(JsPath \ "dosage").readNullable[String] and
(JsPath \ "isActive").readNullable[Boolean] and
+ (JsPath \ "deliveryMethod").readNullable[String] and
(JsPath \ "arms").readNullable[List[Long]]
)(ApiPartialIntervention.apply _)
@@ -78,6 +82,7 @@ object ApiPartialIntervention {
(JsPath \ "typeId").writeNullable[Long] and
(JsPath \ "dosage").writeNullable[String] and
(JsPath \ "isActive").writeNullable[Boolean] and
+ (JsPath \ "deliveryMethod").writeNullable[String] and
(JsPath \ "arms").writeNullable[List[Long]]
)(unlift(ApiPartialIntervention.unapply))
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/intervention.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/intervention.scala
index 8651932..daa28e4 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/intervention.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/intervention.scala
@@ -18,6 +18,7 @@ object intervention {
"isActive" -> obj.intervention.isActive.toJson,
"arms" -> obj.arms.map(_.armId).toJson,
"trialId" -> obj.intervention.trialId.toJson,
+ "deliveryMethod" -> obj.intervention.deliveryMethod.toJson,
"originalName" -> obj.intervention.originalName.toJson,
"originalDosage" -> obj.intervention.originalDosage.toJson,
"originalType" -> obj.intervention.originalType.toJson
@@ -48,6 +49,10 @@ object intervention {
.get("isActive")
.exists(_.convertTo[Boolean])
+ val deliveryMethod = fields
+ .get("deliveryMethod")
+ .map(_.convertTo[String])
+
val arms = fields
.get("arms")
.map(_.convertTo[List[LongId[Arm]]].map(x => InterventionArm(armId = x, interventionId = LongId(0))))
@@ -63,7 +68,8 @@ object intervention {
originalType = None,
dosage = dosage,
originalDosage = dosage,
- isActive = isActive
+ isActive = isActive,
+ deliveryMethod = deliveryMethod
),
arms = arms
)
@@ -90,6 +96,10 @@ object intervention {
.get("isActive")
.map(_.convertTo[Boolean])
+ val deliveryMethod = fields
+ .get("deliveryMethod")
+ .map(_.convertTo[String])
+
val origIntervention = orig.intervention
val arms = fields
.get("arms")
@@ -100,7 +110,8 @@ object intervention {
name = name.getOrElse(origIntervention.name),
typeId = typeId.orElse(origIntervention.typeId),
dosage = dosage.getOrElse(origIntervention.dosage),
- isActive = isActive.getOrElse(origIntervention.isActive)
+ isActive = isActive.getOrElse(origIntervention.isActive),
+ deliveryMethod = deliveryMethod.orElse(origIntervention.deliveryMethod)
),
arms = arms.getOrElse(orig.arms)
)