diff options
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/formats/json/export.scala')
-rw-r--r-- | src/main/scala/xyz/driver/pdsuidomain/formats/json/export.scala | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export.scala deleted file mode 100644 index 8fb7d03..0000000 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export.scala +++ /dev/null @@ -1,127 +0,0 @@ -package xyz.driver.pdsuidomain.formats.json - -import spray.json._ -import xyz.driver.core.json.idFormat -import xyz.driver.entities.labels.Label -import xyz.driver.formats.json.labels._ -import xyz.driver.pdsuicommon.domain.LongId -import xyz.driver.pdsuidomain.entities.export.patient._ -import xyz.driver.pdsuidomain.entities.export.trial.{ExportTrialArm, ExportTrialLabelCriterion, ExportTrialWithLabels} -import xyz.driver.pdsuidomain.entities.{Criterion, EligibilityArm} - -object export { - import DefaultJsonProtocol._ - import common._ - import document._ - import record._ - - private def deserializationErrorFieldMessage(field: String, json: JsValue)(implicit className: String) = { - deserializationError(s"$className json object do not contain '$field' field: $json") - } - - private def deserializationErrorEntityMessage(json: JsValue)(implicit className: String) = { - deserializationError(s"Expected Json Object as $className, but got $json") - } - - implicit val patientLabelEvidenceDocumentFormat: RootJsonFormat[ExportPatientLabelEvidenceDocument] = - jsonFormat5(ExportPatientLabelEvidenceDocument.apply) - - implicit val patientLabelEvidenceFormat: RootJsonFormat[ExportPatientLabelEvidence] = - jsonFormat(ExportPatientLabelEvidence.apply, "evidenceId", "labelValue", "evidenceText", "document") - - implicit val patientLabelFormat: RootJsonFormat[ExportPatientLabel] = - jsonFormat(ExportPatientLabel.apply, "labelId", "evidence") - - implicit val patientWithLabelsFormat: RootJsonFormat[ExportPatientWithLabels] = - jsonFormat(ExportPatientWithLabels.apply, "patientId", "labelVersion", "labels") - - implicit val trialArmFormat: RootJsonFormat[ExportTrialArm] = jsonFormat3(ExportTrialArm.apply) - - implicit val trialLabelCriterionFormat: RootJsonFormat[ExportTrialLabelCriterion] = - new RootJsonFormat[ExportTrialLabelCriterion] { - implicit val className: String = "ExportTrialLabelCriterion" - - override def write(obj: ExportTrialLabelCriterion): JsValue = - JsObject( - "value" -> obj.value - .map { - case true => "Yes" - case false => "No" - } - .getOrElse("Unknown") - .toJson, - "labelId" -> obj.labelId.toJson, - "criterionId" -> obj.criterionId.toJson, - "criterionText" -> obj.criteria.toJson, - "armIds" -> obj.armIds.toJson, - "isCompound" -> obj.isCompound.toJson, - "isDefining" -> obj.isDefining.toJson, - "inclusion" -> obj.inclusion.toJson - ) - - override def read(json: JsValue): ExportTrialLabelCriterion = { - json match { - case JsObject(fields) => - val value = fields - .get("value") - .map(_.convertTo[String]) - .map { - case "Yes" => Option(true) - case "No" => Option(false) - case "Unknown" => Option.empty[Boolean] - } - .getOrElse(deserializationErrorFieldMessage("value", json)) - - val labelId = fields - .get("labelId") - .map(_.convertTo[LongId[Label]]) - .getOrElse(deserializationErrorFieldMessage("labelId", json)) - - val criterionId = fields - .get("criterionId") - .map(_.convertTo[LongId[Criterion]]) - .getOrElse(deserializationErrorFieldMessage("criterionId", json)) - - val criterionText = fields - .get("criterionText") - .map(_.convertTo[String]) - .getOrElse(deserializationErrorFieldMessage("criterionText", json)) - - val armIds = fields - .get("armIds") - .map(_.convertTo[Set[LongId[EligibilityArm]]]) - .getOrElse(deserializationErrorFieldMessage("armIds", json)) - - val isCompound = fields - .get("isCompound") - .map(_.convertTo[Boolean]) - .getOrElse(deserializationErrorFieldMessage("isCompound", json)) - - val isDefining = fields - .get("isDefining") - .map(_.convertTo[Boolean]) - .getOrElse(deserializationErrorFieldMessage("isDefining", json)) - - val inclusion = fields - .get("inclusion") - .flatMap(_.convertTo[Option[Boolean]]) - - ExportTrialLabelCriterion( - criterionId, - value, - labelId, - armIds, - criterionText, - isCompound, - isDefining, - inclusion - ) - - case _ => deserializationErrorEntityMessage(json) - } - } - } - - implicit val trialWithLabelsFormat: RootJsonFormat[ExportTrialWithLabels] = - jsonFormat(ExportTrialWithLabels.apply, "nctId", "trialId", "lastReviewed", "labelVersion", "arms", "criteria") -} |