blob: da991a49ca5aa4a9d45195a6e6f0581fb4696866 (
plain) (
tree)
|
|
package xyz.driver.pdsuidomain.formats.json
import spray.json._
import xyz.driver.pdsuidomain.entities._
object patienthypothesis {
import DefaultJsonProtocol._
import common._
import xyz.driver.core.json._
def applyUpdateToPatientHypothesis(json: JsValue, orig: PatientHypothesis): PatientHypothesis = json match {
case JsObject(fields) =>
val rationale = if (fields.contains("rationale")) {
fields.get("rationale").map(_.convertTo[String])
} else orig.rationale
orig.copy(rationale = rationale)
case _ => deserializationError(s"Expected Json Object as partial PatientHypothesis, but got $json")
}
implicit val patientHypothesisWriter: RootJsonWriter[PatientHypothesis] =
new RootJsonWriter[PatientHypothesis] {
override def write(obj: PatientHypothesis): JsValue = {
JsObject(
"id" -> obj.id.toJson,
"patientId" -> obj.patientId.toJson,
"hypothesisId" -> obj.hypothesisId.toJson,
"matchedTrials" -> obj.matchedTrials.toJson,
"rationale" -> obj.rationale.toJson
)
}
}
}
|