diff options
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/formats/json')
13 files changed, 49 insertions, 56 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 aaca391..3cce5de 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/document.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/document.scala @@ -3,7 +3,7 @@ package xyz.driver.pdsuidomain.formats.json import java.time.{LocalDate, LocalDateTime} import spray.json._ -import xyz.driver.core.json.EnumJsonFormat +import xyz.driver.core.json._ import xyz.driver.pdsuicommon.domain.{LongId, TextJson} import xyz.driver.pdsuidomain.entities._ diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/documenthistory.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/documenthistory.scala index a0eb3f5..ea79b92 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/documenthistory.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/documenthistory.scala @@ -1,7 +1,7 @@ package xyz.driver.pdsuidomain.formats.json import spray.json._ -import xyz.driver.core.json.EnumJsonFormat +import xyz.driver.core.json._ import xyz.driver.pdsuidomain.entities._ object documenthistory { 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 082fa83..dbf544e 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/documentissue.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/documentissue.scala @@ -3,7 +3,9 @@ package xyz.driver.pdsuidomain.formats.json import java.time.LocalDateTime import spray.json._ -import xyz.driver.pdsuicommon.domain.{LongId, StringId, User} +import xyz.driver.core.auth.User +import xyz.driver.core.json._ +import xyz.driver.pdsuicommon.domain.LongId import xyz.driver.pdsuidomain.entities._ object documentissue { @@ -36,7 +38,9 @@ object documentissue { } - def jsValueToDocumentIssue(json: JsValue, documentId: LongId[Document], userId: StringId[User]): DocumentIssue = + def jsValueToDocumentIssue(json: JsValue, + documentId: LongId[Document], + userId: xyz.driver.core.Id[User]): DocumentIssue = json match { case JsObject(fields) => val text = fields diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export.scala index d70ce6f..8fb7d03 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export.scala @@ -1,6 +1,7 @@ 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 diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patient.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patient.scala index 0830723..774a1ff 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patient.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patient.scala @@ -3,12 +3,14 @@ package xyz.driver.pdsuidomain.formats.json import java.time.{LocalDate, LocalDateTime} import spray.json._ -import xyz.driver.core.json.EnumJsonFormat +import xyz.driver.core.auth.User +import xyz.driver.core.json._ +import xyz.driver.entities.clinic.TestOrder import xyz.driver.entities.common.FullName import xyz.driver.entities.patient.CancerType import xyz.driver.formats.json.common._ import xyz.driver.formats.json.patient._ -import xyz.driver.pdsuicommon.domain.{StringId, User, UuidId} +import xyz.driver.pdsuicommon.domain.UuidId import xyz.driver.pdsuidomain.entities._ object patient { @@ -25,14 +27,6 @@ object patient { "Flagged" -> Status.Flagged ) - implicit val patientOrderIdFormat: RootJsonFormat[PatientOrderId] = new RootJsonFormat[PatientOrderId] { - override def write(orderId: PatientOrderId): JsString = JsString(orderId.toString) - override def read(json: JsValue): PatientOrderId = json match { - case JsString(value) => PatientOrderId(value) - case _ => deserializationError(s"Expected string as PatientOrderId, but got $json") - } - } - implicit val patientFormat: RootJsonFormat[Patient] = new RootJsonFormat[Patient] { override def write(patient: Patient): JsValue = JsObject( @@ -74,7 +68,7 @@ object patient { val assignee = fields .get("assignee") - .flatMap(_.convertTo[Option[StringId[User]]]) + .flatMap(_.convertTo[Option[xyz.driver.core.Id[User]]]) val previousStatus = fields .get("previousStatus") @@ -82,11 +76,11 @@ object patient { val previousAssignee = fields .get("previousAssignee") - .flatMap(_.convertTo[Option[StringId[User]]]) + .flatMap(_.convertTo[Option[xyz.driver.core.Id[User]]]) val lastActiveUser = fields .get("lastActiveUser") - .flatMap(_.convertTo[Option[StringId[User]]]) + .flatMap(_.convertTo[Option[xyz.driver.core.Id[User]]]) val disease = fields .get("disease") @@ -95,7 +89,7 @@ object patient { val orderId = fields .get("orderId") - .map(_.convertTo[PatientOrderId]) + .map(_.convertTo[xyz.driver.core.Id[TestOrder]]) .getOrElse(deserializationError(s"Patient create json object does not contain `orderId` field: $json")) val lastUpdate = fields diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patienthistory.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patienthistory.scala index bd20b27..c9cdc63 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patienthistory.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patienthistory.scala @@ -1,7 +1,7 @@ package xyz.driver.pdsuidomain.formats.json import spray.json._ -import xyz.driver.core.json.EnumJsonFormat +import xyz.driver.core.json._ import xyz.driver.pdsuidomain.entities._ object patienthistory { @@ -9,14 +9,14 @@ object patienthistory { import PatientHistory._ import common._ - implicit val patientStateFormat = new EnumJsonFormat[State]( + implicit val patientStateFormat: RootJsonFormat[State] = new EnumJsonFormat[State]( "Verify" -> State.Verify, "Curate" -> State.Curate, "Review" -> State.Review, "Flag" -> State.Flag ) - implicit val patientActionFormat = new EnumJsonFormat[Action]( + implicit val patientActionFormat: RootJsonFormat[Action] = new EnumJsonFormat[Action]( "Start" -> Action.Start, "Submit" -> Action.Submit, "Unassign" -> Action.Unassign, 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 9345581..0ee4c6c 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientissue.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientissue.scala @@ -3,7 +3,9 @@ package xyz.driver.pdsuidomain.formats.json import java.time.LocalDateTime import spray.json._ -import xyz.driver.pdsuicommon.domain.{LongId, StringId, User, UuidId} +import xyz.driver.core.auth.User +import xyz.driver.core.json._ +import xyz.driver.pdsuicommon.domain.{LongId, UuidId} import xyz.driver.pdsuidomain.entities._ object patientissue { @@ -22,7 +24,9 @@ object patientissue { } } - def jsValueToPatientIssue(json: JsValue, patientId: UuidId[Patient], userId: StringId[User]): PatientIssue = { + def jsValueToPatientIssue(json: JsValue, + patientId: UuidId[Patient], + userId: xyz.driver.core.Id[User]): PatientIssue = { json.asJsObject.getFields("text") match { case Seq(text) => PatientIssue( 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 b6ed103..083796b 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/record.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/record.scala @@ -1,10 +1,11 @@ package xyz.driver.pdsuidomain.formats.json import java.time.LocalDateTime -import java.util.UUID import spray.json._ -import xyz.driver.core.json.{EnumJsonFormat, GadtJsonFormat} +import xyz.driver.core.Id +import xyz.driver.core.json._ +import xyz.driver.entities.clinic.ClinicalRecord import xyz.driver.pdsuicommon.domain.{LongId, TextJson, UuidId} import xyz.driver.pdsuidomain.entities.MedicalRecord.Meta._ import xyz.driver.pdsuidomain.entities._ @@ -14,7 +15,7 @@ object record { import MedicalRecord._ import common._ - implicit val recordStatusFormat = new EnumJsonFormat[Status]( + implicit val recordStatusFormat: EnumJsonFormat[Status] = new EnumJsonFormat[Status]( "PreCleaning" -> Status.PreCleaning, "Unprocessed" -> Status.Unprocessed, "PreOrganized" -> Status.PreOrganized, @@ -29,14 +30,6 @@ object record { "Archived" -> Status.Archived ) - implicit val requestIdFormat = new RootJsonFormat[RecordRequestId] { - override def write(requestId: RecordRequestId): JsString = JsString(requestId.toString) - override def read(json: JsValue): RecordRequestId = json match { - case JsString(value) => RecordRequestId(UUID.fromString(value)) - case _ => deserializationError(s"Expected string as RecordRequestId, but got $json") - } - } - implicit val providerTypeFormat: RootJsonFormat[ProviderType] = new RootJsonFormat[ProviderType] { override def read(json: JsValue): ProviderType = json match { case JsObject(fields) => @@ -56,14 +49,6 @@ object record { JsObject("id" -> obj.id.toJson, "name" -> obj.name.toJson) } - implicit val caseIdFormat = new RootJsonFormat[CaseId] { - override def write(caseId: CaseId): JsString = JsString(caseId.toString) - override def read(json: JsValue): CaseId = json match { - case JsString(value) => CaseId(value) - case _ => deserializationError(s"Expected string as CaseId, but got $json") - } - } - implicit val duplicateMetaFormat: RootJsonFormat[Duplicate] = new RootJsonFormat[Duplicate] { override def write(obj: Duplicate) = JsObject( @@ -149,7 +134,7 @@ object record { } } - implicit val recordMetaFormat = new RootJsonFormat[TextJson[List[Meta]]] { + implicit val recordMetaFormat: RootJsonFormat[TextJson[List[Meta]]] = new RootJsonFormat[TextJson[List[Meta]]] { override def write(obj: TextJson[List[Meta]]): JsArray = JsArray(obj.content.map(_.toJson).toVector) override def read(json: JsValue): TextJson[List[Meta]] = json match { case JsArray(values) => TextJson[List[Meta]](values.map(_.convertTo[Meta]).toList) @@ -191,7 +176,7 @@ object record { val requestId = fields .get("requestId") - .map(_.convertTo[RecordRequestId]) + .map(_.convertTo[Id[ClinicalRecord]]) .getOrElse(deserializationError(s"MedicalRecord json object does not contain `requestId` field: $json")) MedicalRecord( diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordhistory.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordhistory.scala index 00071e1..8341f97 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordhistory.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordhistory.scala @@ -1,7 +1,7 @@ package xyz.driver.pdsuidomain.formats.json import spray.json._ -import xyz.driver.core.json.EnumJsonFormat +import xyz.driver.core.json._ import xyz.driver.pdsuidomain.entities._ object recordhistory { 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 29b12f6..976a852 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordissue.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordissue.scala @@ -3,7 +3,9 @@ package xyz.driver.pdsuidomain.formats.json import java.time.LocalDateTime import spray.json._ -import xyz.driver.pdsuicommon.domain.{LongId, StringId, User} +import xyz.driver.core.auth.User +import xyz.driver.core.json._ +import xyz.driver.pdsuicommon.domain.LongId import xyz.driver.pdsuidomain.entities._ object recordissue { @@ -39,7 +41,7 @@ object recordissue { def jsValueToRecordIssue(json: JsValue, recordId: LongId[MedicalRecord], - userId: StringId[User]): MedicalRecordIssue = json match { + userId: xyz.driver.core.Id[User]): MedicalRecordIssue = json match { case JsObject(fields) => val text = fields .get("text") @@ -63,6 +65,6 @@ object recordissue { case _ => deserializationError(s"Expected Json Object as MedicalRecordIssue, but got $json") } - implicit val recordIssueFormat = jsonFormat9(MedicalRecordIssue.apply) + implicit val recordIssueFormat: RootJsonFormat[MedicalRecordIssue] = jsonFormat9(MedicalRecordIssue.apply) } diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial.scala index dc9c5e0..ac02070 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial.scala @@ -3,8 +3,9 @@ package xyz.driver.pdsuidomain.formats.json import java.time.{LocalDateTime, ZoneId, ZonedDateTime} import spray.json._ -import xyz.driver.core.json.EnumJsonFormat -import xyz.driver.pdsuicommon.domain.{LongId, StringId, User, UuidId} +import xyz.driver.core.auth.User +import xyz.driver.core.json._ +import xyz.driver.pdsuicommon.domain.{LongId, StringId, UuidId} import xyz.driver.pdsuidomain.entities._ object trial { @@ -64,16 +65,16 @@ object trial { .getOrElse(deserializationError(s"Trial create json object does not contain `status` field: $json")) val assignee = fields .get("assignee") - .flatMap(_.convertTo[Option[StringId[User]]]) + .flatMap(_.convertTo[Option[xyz.driver.core.Id[User]]]) val previousStatus = fields .get("previousStatus") .flatMap(_.convertTo[Option[Trial.Status]]) val previousAssignee = fields .get("previousAssignee") - .flatMap(_.convertTo[Option[StringId[User]]]) + .flatMap(_.convertTo[Option[xyz.driver.core.Id[User]]]) val lastActiveUser = fields .get("lastActiveUser") - .flatMap(_.convertTo[Option[StringId[User]]]) + .flatMap(_.convertTo[Option[xyz.driver.core.Id[User]]]) val lastUpdate = fields .get("lastUpdate") .map(_.convertTo[LocalDateTime]) 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 6185d5a..cc01dd1 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialhistory.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialhistory.scala @@ -1,7 +1,7 @@ package xyz.driver.pdsuidomain.formats.json import spray.json._ -import xyz.driver.core.json.EnumJsonFormat +import xyz.driver.core.json._ import xyz.driver.pdsuidomain.entities._ object trialhistory { 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 b2a3023..bb431fe 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala @@ -3,7 +3,9 @@ package xyz.driver.pdsuidomain.formats.json import java.time.LocalDateTime import spray.json._ -import xyz.driver.pdsuicommon.domain.{LongId, StringId, User} +import xyz.driver.core.auth.User +import xyz.driver.core.json._ +import xyz.driver.pdsuicommon.domain.{LongId, StringId} import xyz.driver.pdsuidomain.entities._ object trialissue { @@ -24,7 +26,7 @@ object trialissue { } } - def jsValueToTrialIssue(json: JsValue, trialId: StringId[Trial], userId: StringId[User]): TrialIssue = { + def jsValueToTrialIssue(json: JsValue, trialId: StringId[Trial], userId: xyz.driver.core.Id[User]): TrialIssue = { json.asJsObject.getFields("text", "evidence", "meta") match { case Seq(text, evidence, meta) => TrialIssue( |