aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuidomain/entities/ScrapedTrial.scala
diff options
context:
space:
mode:
authorvlad <vlad@driver.xyz>2017-06-27 17:13:02 -0700
committervlad <vlad@driver.xyz>2017-06-27 17:13:02 -0700
commit5832f63b84d7388441d1200f2442dc1e9de0225c (patch)
tree32f63acdc920c14effc3d0d2822c05c125ad49e4 /src/main/scala/xyz/driver/pdsuidomain/entities/ScrapedTrial.scala
parent9dd50590d4c8f8b9442d7c21ddd1def9dd453d5e (diff)
downloadrest-query-5832f63b84d7388441d1200f2442dc1e9de0225c.tar.gz
rest-query-5832f63b84d7388441d1200f2442dc1e9de0225c.tar.bz2
rest-query-5832f63b84d7388441d1200f2442dc1e9de0225c.zip
All PDS UI domain models, API case classes, service traits and necessary utils moved to pdsui-commonv0.1.11
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/entities/ScrapedTrial.scala')
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/ScrapedTrial.scala105
1 files changed, 105 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/ScrapedTrial.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/ScrapedTrial.scala
new file mode 100644
index 0000000..40e84c9
--- /dev/null
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/ScrapedTrial.scala
@@ -0,0 +1,105 @@
+package xyz.driver.pdsuidomain.entities
+
+import java.time.LocalDateTime
+import java.util.UUID
+
+import xyz.driver.pdsuicommon.logging._
+import xyz.driver.pdsuicommon.domain.UuidId
+
+final case class ScrapedStudyDesign(value: String)
+
+final case class ScrapedOverall(affiliation: String,
+ status: String,
+ facilityName: Option[String],
+ firstName: Option[String],
+ lastName: Option[String],
+ phone: Option[String],
+ phoneExt: Option[String],
+ email: Option[String],
+ isBackup: Boolean)
+
+final case class ScrapedLocationContact(firstName: Option[String],
+ lastName: Option[String],
+ phone: Option[String],
+ phoneExt: Option[String],
+ email: Option[String],
+ isBackup: Boolean)
+
+final case class ScrapedLocation(id: UuidId[ScrapedLocation],
+ createdAt: LocalDateTime,
+ facilityName: Option[String],
+ city: Option[String],
+ state: Option[String],
+ zip: Option[String],
+ country: Option[String],
+ latitude: Option[Double],
+ longitude: Option[Double],
+ preferredName: Option[String],
+ partnershipStatus: Option[String],
+ lastReviewed: LocalDateTime,
+ contacts: Set[ScrapedLocationContact])
+
+final case class ScrapedInterventionType(value: String)
+
+final case class ScrapedIntervention(name: String,
+ kind: ScrapedInterventionType,
+ description: Option[String],
+ isSynonym: Boolean)
+
+object ScrapedIntervention {
+
+ implicit def toPhiString(x: ScrapedIntervention): PhiString = phi"ScrapedIntervention(${Unsafe(x.name)})"
+}
+
+final case class ScrapedArm(name: String,
+ kind: Option[String],
+ interventions: Set[ScrapedIntervention])
+
+object ScrapedArm {
+
+ implicit def toPhiString(x: ScrapedArm): PhiString = {
+ import x._
+ phi"ScrapedArm(name=${Unsafe(name)}, inverventions=$interventions)"
+ }
+}
+
+final case class ScrapedTrialChecksum(eligibilityCriteria: String,
+ briefSummary: String,
+ detailedDescription: String,
+ armDescription: String)
+
+object ScrapedTrialChecksum {
+
+ implicit def toPhiString(x: ScrapedTrialChecksum): PhiString = {
+ import x._
+ phi"ScrapedTrialChecksum(eligibilityCriteria=${Unsafe(eligibilityCriteria)}, briefSummary=${Unsafe(briefSummary)}, " +
+ phi"detailedDescription=${Unsafe(detailedDescription)}, armDescription=${Unsafe(armDescription)}"
+ }
+}
+
+object ScrapedTrial {
+
+ implicit def toPhiString(x: ScrapedTrial): PhiString = {
+ import x._
+ phi"ScrapedTrial(rawId=$rawId, nctId=${Unsafe(nctId)}, " +
+ phi"location.size=${Unsafe(locations.size)}, arms=$arms, checksum=$checksum)"
+ }
+}
+
+final case class ScrapedTrial(rawId: UuidId[ScrapedTrial],
+ createdAt: LocalDateTime,
+ disease: String,
+ nctId: String,
+ nctUuid: UUID,
+ title: Option[String],
+ startDate: Option[LocalDateTime],
+ phase: String,
+ studyDesign: Option[ScrapedStudyDesign],
+ overall: Set[ScrapedOverall],
+ locations: Set[ScrapedLocation],
+ // // see ClinicalTrialRaw
+ // trialHtml: String,
+ // eligibilityText: String,
+ lastReviewed: LocalDateTime,
+ arms: Set[ScrapedArm],
+ checksum: ScrapedTrialChecksum)