From e06c6259b164366c33456753d4655d6fe680e3f5 Mon Sep 17 00:00:00 2001 From: vlad Date: Fri, 3 Nov 2017 16:58:52 -0700 Subject: Trying to read ids from JSON --- src/main/scala/xyz/driver/pdsuidomain/formats/json/arm.scala | 2 +- src/main/scala/xyz/driver/pdsuidomain/formats/json/criterion.scala | 6 +++++- .../scala/xyz/driver/pdsuidomain/formats/json/documentissue.scala | 4 +++- .../scala/xyz/driver/pdsuidomain/formats/json/eligibilityarm.scala | 6 +++++- .../scala/xyz/driver/pdsuidomain/formats/json/extracteddata.scala | 5 +++++ .../scala/xyz/driver/pdsuidomain/formats/json/patientissue.scala | 2 +- src/main/scala/xyz/driver/pdsuidomain/formats/json/record.scala | 6 +++++- .../scala/xyz/driver/pdsuidomain/formats/json/recordissue.scala | 4 +++- src/main/scala/xyz/driver/pdsuidomain/formats/json/slotarm.scala | 2 +- src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala | 2 +- 10 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/arm.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/arm.scala index 0b54309..69029b6 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/arm.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/arm.scala @@ -31,7 +31,7 @@ object arm { override def read(json: JsValue): Arm = json.asJsObject.getFields("trialId", "name") match { case Seq(trialId, name) => Arm( - id = LongId(0), + id = json.asJsObject.fields.get("id").flatMap(_.convertTo[Option[LongId[Arm]]]).getOrElse(LongId(0)), name = name.convertTo[String], trialId = trialId.convertTo[StringId[Trial]], originalName = name.convertTo[String] diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/criterion.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/criterion.scala index d7acfd4..c4e89f0 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/criterion.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/criterion.scala @@ -119,6 +119,10 @@ object criterion { override def read(json: JsValue): RichCriterion = json match { case JsObject(fields) => + val id = fields + .get("id") + .flatMap(_.convertTo[Option[LongId[Criterion]]]) + val trialId = fields .get("trialId") .map(_.convertTo[StringId[Trial]]) @@ -153,7 +157,7 @@ object criterion { RichCriterion( criterion = Criterion( - id = LongId(0), + id = id.getOrElse(LongId(0)), trialId = trialId, text = text, isCompound = isCompound, diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/documentissue.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/documentissue.scala index dbf544e..d17a45c 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/documentissue.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/documentissue.scala @@ -48,10 +48,12 @@ object documentissue { .map(_.convertTo[String]) .getOrElse(deserializationError(s"DocumentIssue json object does not contain `text` field: $json")) + val id = fields.get("id").map(_.convertTo[LongId[DocumentIssue]]) val startPage = fields.get("startPage").map(_.convertTo[Double]) val endPage = fields.get("endPage").map(_.convertTo[Double]) + DocumentIssue( - id = LongId(0), + id = id.getOrElse(LongId(0)), userId = userId, documentId = documentId, lastUpdate = LocalDateTime.MIN, diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/eligibilityarm.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/eligibilityarm.scala index f31e6bd..b605566 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/eligibilityarm.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/eligibilityarm.scala @@ -39,6 +39,10 @@ object eligibilityarm { override def read(json: JsValue): EligibilityArmWithDiseases = { json match { case JsObject(fields) => + val id = fields + .get("id") + .flatMap(_.convertTo[Option[LongId[EligibilityArm]]]) + val name = fields .get("name") .map(_.convertTo[String]) @@ -55,7 +59,7 @@ object eligibilityarm { .getOrElse(deserializationErrorFieldMessage("diseases", json)) val eligibilityArm = EligibilityArm( - id = LongId(0), + id = id.getOrElse(LongId(0)), name = name, trialId = trialId, originalName = name diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/extracteddata.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/extracteddata.scala index c9ac55b..232bb39 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/extracteddata.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/extracteddata.scala @@ -110,6 +110,10 @@ object extracteddata { override def read(json: JsValue): RichExtractedData = json match { case JsObject(fields) => + val id = fields + .get("id") + .flatMap(_.convertTo[Option[LongId[ExtractedData]]]) + val documentId = fields .get("documentId") .map(_.convertTo[LongId[Document]]) @@ -135,6 +139,7 @@ object extracteddata { .map(l => applyLabelsForExtractedData(l, LongId(0))) val extractedData = ExtractedData( + id = id.getOrElse(LongId(0L)), documentId = documentId, keywordId = keywordId, evidenceText = evidence, diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientissue.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientissue.scala index 0ee4c6c..ed05325 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientissue.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientissue.scala @@ -30,7 +30,7 @@ object patientissue { json.asJsObject.getFields("text") match { case Seq(text) => PatientIssue( - id = LongId(0), + id = json.asJsObject.fields.get("id").flatMap(_.convertTo[Option[LongId[PatientIssue]]]).getOrElse(LongId(0)), userId = userId, patientId = patientId, lastUpdate = LocalDateTime.MIN, diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/record.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/record.scala index 083796b..cbe4951 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/record.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/record.scala @@ -164,6 +164,10 @@ object record { override def read(json: JsValue): MedicalRecord = json match { case JsObject(fields) => + val id = fields + .get("id") + .flatMap(_.convertTo[Option[LongId[MedicalRecord]]]) + val disease = fields .get("disease") .map(_.convertTo[String]) @@ -180,7 +184,7 @@ object record { .getOrElse(deserializationError(s"MedicalRecord json object does not contain `requestId` field: $json")) MedicalRecord( - id = LongId(0), + id = id.getOrElse(LongId(0)), status = MedicalRecord.Status.New, previousStatus = None, assignee = None, diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordissue.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordissue.scala index 976a852..e7f2f65 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordissue.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordissue.scala @@ -48,10 +48,12 @@ object recordissue { .map(_.convertTo[String]) .getOrElse(deserializationError(s"MedicalRecordIssue json object does not contain `text` field: $json")) + val id = fields.get("id").flatMap(_.convertTo[Option[LongId[MedicalRecordIssue]]]).getOrElse(LongId(0)) val startPage = fields.get("startPage").map(_.convertTo[Double]) val endPage = fields.get("endPage").map(_.convertTo[Double]) + MedicalRecordIssue( - id = LongId(0), + id = id, userId = userId, recordId = recordId, lastUpdate = LocalDateTime.MIN, diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/slotarm.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/slotarm.scala index 7867cd6..60d6521 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/slotarm.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/slotarm.scala @@ -31,7 +31,7 @@ object slotarm { override def read(json: JsValue): SlotArm = json.asJsObject.getFields("trialId", "name") match { case Seq(trialId, name) => SlotArm( - id = LongId(0), + id = json.asJsObject.fields.get("id").flatMap(_.convertTo[Option[LongId[SlotArm]]]).getOrElse(LongId(0)), name = name.convertTo[String], trialId = trialId.convertTo[StringId[Trial]], originalName = name.convertTo[String] diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala index bb431fe..f9bb0b6 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala @@ -30,7 +30,7 @@ object trialissue { json.asJsObject.getFields("text", "evidence", "meta") match { case Seq(text, evidence, meta) => TrialIssue( - id = LongId(0), + id = json.asJsObject.fields.get("id").flatMap(_.convertTo[Option[LongId[TrialIssue]]]).getOrElse(LongId(0)), userId = userId, trialId = trialId, lastUpdate = LocalDateTime.MIN, -- cgit v1.2.3