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/document.scala30
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/patientcriterion.scala4
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/patientdefiningcriteria.scala1
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/patientlabel.scala4
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/trialhistory.scala2
5 files changed, 30 insertions, 11 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/document.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/document.scala
index 8ab6f13..66e95f3 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/document.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/document.scala
@@ -141,6 +141,14 @@ object document {
.map(_.convertTo[LongId[MedicalRecord]])
.getOrElse(deserializationError(s"Document create json object does not contain `recordId` field: $json"))
+ val status = fields
+ .get("status")
+ .flatMap(_.convertTo[Option[Document.Status]])
+
+ val previousStatus = fields
+ .get("previousStatus")
+ .flatMap(_.convertTo[Option[Document.Status]])
+
val physician = fields
.get("physician")
.flatMap(_.convertTo[Option[String]])
@@ -149,6 +157,10 @@ object document {
.get("typeId")
.flatMap(_.convertTo[Option[LongId[DocumentType]]])
+ val requiredType = fields
+ .get("requiredType")
+ .flatMap(_.convertTo[Option[Document.RequiredType]])
+
val provider = fields
.get("provider")
.flatMap(_.convertTo[Option[String]])
@@ -173,25 +185,33 @@ object document {
.get("endDate")
.flatMap(_.convertTo[Option[LocalDate]])
+ val lastUpdate = fields
+ .get("lastUpdate")
+ .flatMap(_.convertTo[Option[LocalDateTime]])
+
+ val labelVersion = fields
+ .get("labelVersion")
+ .flatMap(_.convertTo[Option[Int]])
+
Document(
id = id.getOrElse(LongId(0)),
recordId = recordId,
- status = Document.Status.New,
+ status = status.getOrElse(Document.Status.New),
physician = physician,
typeId = typeId,
startDate = startDate,
endDate = endDate,
providerName = provider,
providerTypeId = providerTypeId,
- requiredType = None,
+ requiredType = requiredType,
institutionName = institutionName,
meta = meta,
- previousStatus = None,
+ previousStatus = previousStatus,
assignee = None,
previousAssignee = None,
lastActiveUserId = None,
- lastUpdate = LocalDateTime.MIN,
- labelVersion = 0
+ lastUpdate = lastUpdate.getOrElse(LocalDateTime.MIN),
+ labelVersion = labelVersion.getOrElse(0)
)
case _ => deserializationError(s"Expected Json Object as Document, but got $json")
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientcriterion.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientcriterion.scala
index b5696f7..1004c5b 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientcriterion.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientcriterion.scala
@@ -15,12 +15,12 @@ object patientcriterion {
case JsObject(fields) =>
val eligibilityStatus = fields
.get("eligibilityStatus")
- .map(_.convertTo[Option[LabelValue]])
+ .map(_.convertTo[LabelValue])
.getOrElse(orig.eligibilityStatus)
val verifiedEligibilityStatus = fields
.get("verifiedEligibilityStatus")
- .map(_.convertTo[Option[LabelValue]])
+ .map(_.convertTo[LabelValue])
.getOrElse(orig.verifiedEligibilityStatus)
orig.copy(
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientdefiningcriteria.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientdefiningcriteria.scala
index 0b4fbae..a67115c 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientdefiningcriteria.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientdefiningcriteria.scala
@@ -5,7 +5,6 @@ import xyz.driver.formats.json.labels._
import xyz.driver.pdsuidomain.entities.PatientLabel
object patientdefiningcriteria {
- import DefaultJsonProtocol._
import common._
implicit val patientLabelDefiningCriteriaWriter: RootJsonWriter[PatientLabel] = new RootJsonWriter[PatientLabel] {
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientlabel.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientlabel.scala
index d944e42..6499318 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientlabel.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientlabel.scala
@@ -17,12 +17,12 @@ object patientlabel {
case JsObject(fields) =>
val primaryValue = fields
.get("primaryValue")
- .map(_.convertTo[Option[LabelValue]])
+ .map(_.convertTo[LabelValue])
.getOrElse(orig.primaryValue)
val verifiedPrimaryValue = fields
.get("verifiedPrimaryValue")
- .map(_.convertTo[Option[LabelValue]])
+ .map(_.convertTo[LabelValue])
.getOrElse(orig.verifiedPrimaryValue)
orig.copy(
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialhistory.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialhistory.scala
index cc01dd1..c8df1d8 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialhistory.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialhistory.scala
@@ -25,6 +25,6 @@ object trialhistory {
"Archive" -> Action.Archive
)
- implicit val trialHistoryFormat: RootJsonFormat[TrialHistory] = jsonFormat6(TrialHistory.apply)
+ implicit val trialHistoryFormat: RootJsonFormat[TrialHistory] = jsonFormat7(TrialHistory.apply)
}