diff options
author | Marvin Bertin <marvin.bertin@gmail.com> | 2017-10-10 11:54:20 -0700 |
---|---|---|
committer | Marvin Bertin <marvin.bertin@gmail.com> | 2017-10-10 11:54:20 -0700 |
commit | 19a70318ecee81872fffe23c03d83e725610911d (patch) | |
tree | 984510310c95856fcdcb463d9a242f9773795266 /src/main/scala/xyz/driver/pdsuidomain/entities | |
parent | 05aa114cfd22228f0457b6457ce441af5eabfc60 (diff) | |
parent | 4f83461cba1f78e607ca2a4edb6fa26f6e16e732 (diff) | |
download | rest-query-19a70318ecee81872fffe23c03d83e725610911d.tar.gz rest-query-19a70318ecee81872fffe23c03d83e725610911d.tar.bz2 rest-query-19a70318ecee81872fffe23c03d83e725610911d.zip |
fix merge conflicts with master
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/entities')
20 files changed, 85 insertions, 255 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/DirectReport.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/DirectReport.scala index 42ac55b..f35c3fd 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/DirectReport.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/DirectReport.scala @@ -2,31 +2,14 @@ package xyz.driver.pdsuidomain.entities import java.time.LocalDate +import xyz.driver.entities.assays.AssayType import xyz.driver.pdsuicommon.logging._ import xyz.driver.pdsuicommon.domain.UuidId -import xyz.driver.pdsuicommon.utils.Utils -import xyz.driver.pdsuidomain.entities.DirectReport.ReportType object DirectReport { - - sealed trait ReportType extends Product with Serializable { - def oneOf(xs: ReportType*): Boolean = xs.contains(this) - - def oneOf(xs: Set[ReportType]): Boolean = xs.contains(this) - } - - object ReportType { - case object IHC extends ReportType - case object DNA extends ReportType - case object CFDNA extends ReportType - - val All = Set(IHC, DNA, CFDNA) - implicit def toPhiString(x: ReportType): PhiString = Unsafe(Utils.getClassSimpleName(x.getClass)) - } - implicit def toPhiString(x: DirectReport): PhiString = { import x._ - phi"DirectReport(id=$id, patientId=$patientId, reportType=$reportType, date=${Unsafe(date)}, " + + phi"DirectReport(id=$id, patientId=$patientId, reportType=${Unsafe(reportType)}, date=${Unsafe(date)}, " + phi"documentType=${Unsafe(documentType)}, providerType=${Unsafe(providerType)}, " + phi"providerName=${Unsafe(providerName)})" } @@ -34,8 +17,8 @@ object DirectReport { final case class DirectReport(id: UuidId[DirectReport], patientId: UuidId[Patient], - reportType: ReportType, + reportType: AssayType, date: LocalDate, - documentType: String, - providerType: String, + documentType: DocumentType, + providerType: ProviderType, providerName: String) diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala index 168eb38..258aa03 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala @@ -308,13 +308,7 @@ object DocumentType { object Document { - final case class Meta(predicted: Option[Boolean], startPage: Double, endPage: Double) { - - /** - * Return a regular meta: this meta is considered as not predicted - */ - def confirmed: Meta = copy(predicted = predicted.map(_ => false)) - } + final case class Meta(startPage: Double, endPage: Double) class DocumentStatusSerializer extends JsonSerializer[Status] { def serialize(value: Status, gen: JsonGenerator, serializers: SerializerProvider): Unit = { diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/EligibilityArm.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/EligibilityArm.scala index 329c15c..50b49ad 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/EligibilityArm.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/EligibilityArm.scala @@ -2,9 +2,9 @@ package xyz.driver.pdsuidomain.entities import java.time.LocalDateTime +import xyz.driver.entities.patient.CancerType import xyz.driver.pdsuicommon.domain.{LongId, StringId} import xyz.driver.pdsuicommon.logging._ -import xyz.driver.pdsuidomain.entities.Trial.Condition final case class EligibilityArm(id: LongId[EligibilityArm], name: String, @@ -20,7 +20,7 @@ object EligibilityArm { } } -final case class EligibilityArmDisease(eligibilityArmId: LongId[EligibilityArm], disease: Condition) +final case class EligibilityArmDisease(eligibilityArmId: LongId[EligibilityArm], disease: CancerType) object EligibilityArmDisease { diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/ExtractedData.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/ExtractedData.scala index fbd468f..352cf55 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/ExtractedData.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/ExtractedData.scala @@ -1,7 +1,7 @@ package xyz.driver.pdsuidomain.entities -import xyz.driver.entities.labels.{Label, LabelCategory} -import xyz.driver.pdsuicommon.domain.{FuzzyValue, LongId, TextJson} +import xyz.driver.entities.labels.{Label, LabelCategory, LabelValue} +import xyz.driver.pdsuicommon.domain.{LongId, TextJson} import xyz.driver.pdsuicommon.logging._ import xyz.driver.pdsuidomain.entities.ExtractedData.Meta @@ -37,7 +37,7 @@ object ExtractedDataLabel { implicit def toPhiString(x: ExtractedDataLabel): PhiString = { import x._ - phi"ExtractedDataLabel(id=$id, dataId=$dataId, labelId=$labelId, categoryId=$categoryId, value=$value)" + phi"ExtractedDataLabel(id=$id, dataId=$dataId, labelId=$labelId, categoryId=$categoryId, value=${Unsafe(value)})" } } @@ -45,4 +45,4 @@ final case class ExtractedDataLabel(id: LongId[ExtractedDataLabel], dataId: LongId[ExtractedData], labelId: Option[LongId[Label]], categoryId: Option[LongId[LabelCategory]], - value: Option[FuzzyValue]) + value: Option[LabelValue]) diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala index 9b33af4..ed35db4 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala @@ -22,55 +22,45 @@ object MedicalRecord { )) trait Meta { @JsonProperty("type") def metaType: String - def predicted: Option[Boolean] - - /** - * Return a regular meta: this meta is considered as not predicted - */ - def confirmed: Meta } object Meta { - final case class Duplicate(predicted: Option[Boolean], - startPage: Double, + final case class Duplicate(startPage: Double, endPage: Double, startOriginalPage: Double, endOriginalPage: Option[Double]) extends Meta { - override val metaType = "duplicate" - override def confirmed: Duplicate = copy(predicted = predicted.map(_ => false)) + override val metaType = "duplicate" } object Duplicate { implicit def toPhiString(x: Duplicate): PhiString = { import x._ - phi"Duplicate(predicted=${x.predicted}, startPage=${Unsafe(startPage)}, endPage=${Unsafe(endPage)}, " + + phi"Duplicate(startPage=${Unsafe(startPage)}, endPage=${Unsafe(endPage)}, " + phi"startOriginalPage=${Unsafe(startOriginalPage)}, endOriginalPage=${Unsafe(endOriginalPage)}" } } - final case class Reorder(predicted: Option[Boolean], items: Seq[Int]) extends Meta { - override val metaType = "reorder" - override def confirmed: Reorder = copy(predicted = predicted.map(_ => false)) + final case class Reorder(items: Seq[Int]) extends Meta { + override val metaType = "reorder" } object Reorder { implicit def toPhiString(x: Reorder): PhiString = { import x._ - phi"Reorder(predicted=${x.predicted}, items=${Unsafe(items.toString)})" + phi"Reorder(items=${Unsafe(items.toString)})" } } - final case class Rotation(predicted: Option[Boolean], items: Map[String, Int]) extends Meta { - override val metaType = "rotation" - override def confirmed: Rotation = copy(predicted = predicted.map(_ => false)) + final case class Rotation(items: Map[String, Int]) extends Meta { + override val metaType = "rotation" } object Rotation { implicit def toPhiString(x: Rotation): PhiString = { import x._ - phi"Rotation(predicted=${x.predicted}, items=${Unsafe(items.toString)})" + phi"Rotation(items=${Unsafe(items.toString)})" } } @@ -166,8 +156,6 @@ final case class MedicalRecord(id: LongId[MedicalRecord], caseId: Option[CaseId], physician: Option[String], meta: Option[TextJson[List[Meta]]], - predictedMeta: Option[TextJson[List[Meta]]], - predictedDocuments: Option[TextJson[List[Document]]], lastUpdate: LocalDateTime) { import MedicalRecord.Status._ diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Patient.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Patient.scala index 6be0b88..598b11e 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/Patient.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Patient.scala @@ -2,6 +2,8 @@ package xyz.driver.pdsuidomain.entities import java.time.{LocalDate, LocalDateTime} +import xyz.driver.entities.common.FullName +import xyz.driver.entities.patient.CancerType import xyz.driver.pdsuicommon.domain._ import xyz.driver.pdsuicommon.logging._ import xyz.driver.pdsuicommon.utils.Utils @@ -52,14 +54,14 @@ object Patient { final case class Patient(id: UuidId[Patient], status: Patient.Status, - name: String, + name: FullName[Patient], dob: LocalDate, assignee: Option[StringId[User]], previousStatus: Option[Patient.Status], previousAssignee: Option[StringId[User]], lastActiveUserId: Option[StringId[User]], isUpdateRequired: Boolean, - condition: String, + disease: CancerType, orderId: PatientOrderId, lastUpdate: LocalDateTime) { diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala index 469b21c..79a19ed 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala @@ -2,7 +2,8 @@ package xyz.driver.pdsuidomain.entities import java.time.LocalDateTime -import xyz.driver.pdsuicommon.domain.{FuzzyValue, LongId, StringId} +import xyz.driver.entities.labels.LabelValue +import xyz.driver.pdsuicommon.domain.{LongId, StringId} import xyz.driver.pdsuicommon.logging._ object PatientCriterion { @@ -18,15 +19,15 @@ object PatientCriterion { /** * @see https://driverinc.atlassian.net/wiki/display/MTCH/EV+Business+Process */ - def getEligibilityStatus(criterionValue: Option[Boolean], primaryValue: Option[FuzzyValue]): Option[FuzzyValue] = { + def getEligibilityStatus(criterionValue: Option[Boolean], primaryValue: Option[LabelValue]): Option[LabelValue] = { primaryValue match { case None => None - case Some(FuzzyValue.Maybe) => Some(FuzzyValue.Maybe) - case Some(_) if criterionValue.isEmpty => Some(FuzzyValue.Maybe) + case Some(LabelValue.Maybe) => Some(LabelValue.Maybe) + case Some(_) if criterionValue.isEmpty => Some(LabelValue.Maybe) case Some(status) => Some( - FuzzyValue.fromBoolean( - FuzzyValue.fromBoolean( + LabelValue.fromBoolean( + LabelValue.fromBoolean( criterionValue.getOrElse(throw new IllegalArgumentException("Criterion should not be empty"))) == status )) } @@ -47,12 +48,12 @@ final case class PatientCriterion(id: LongId[PatientCriterion], criterionText: String, criterionValue: Option[Boolean], criterionIsDefining: Boolean, - eligibilityStatus: Option[FuzzyValue], - verifiedEligibilityStatus: Option[FuzzyValue], + eligibilityStatus: Option[LabelValue], + verifiedEligibilityStatus: Option[LabelValue], isVerified: Boolean, isVisible: Boolean, lastUpdate: LocalDateTime) { - def isIneligibleForEv: Boolean = eligibilityStatus.contains(FuzzyValue.No) && isVerified + def isIneligibleForEv: Boolean = eligibilityStatus.contains(LabelValue.No) && isVerified } object PatientCriterionArm { diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientEligibleTrial.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientEligibleTrial.scala index 8ee5b3c..ff272a8 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientEligibleTrial.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientEligibleTrial.scala @@ -1,6 +1,7 @@ package xyz.driver.pdsuidomain.entities -import xyz.driver.pdsuicommon.domain.{FuzzyValue, LongId, StringId, UuidId} +import xyz.driver.entities.labels.LabelValue +import xyz.driver.pdsuicommon.domain.{LongId, StringId, UuidId} import xyz.driver.pdsuicommon.logging._ object PatientTrialArm { @@ -37,22 +38,22 @@ object PatientTrialArmGroup { /** * @see https://driverinc.atlassian.net/wiki/display/DMPD/EV+Business+Process */ - def getEligibilityStatusForRc(criterionList: TraversableOnce[PatientCriterion]): Option[FuzzyValue] = { - def isEligible: Boolean = criterionList.forall(_.verifiedEligibilityStatus.contains(FuzzyValue.Yes)) - def isIneligible: Boolean = criterionList.exists(_.verifiedEligibilityStatus.contains(FuzzyValue.No)) + def getEligibilityStatusForRc(criterionList: TraversableOnce[PatientCriterion]): Option[LabelValue] = { + def isEligible: Boolean = criterionList.forall(_.verifiedEligibilityStatus.contains(LabelValue.Yes)) + def isIneligible: Boolean = criterionList.exists(_.verifiedEligibilityStatus.contains(LabelValue.No)) def isUnknown: Boolean = criterionList.forall(_.verifiedEligibilityStatus.isEmpty) - if (isEligible) Some(FuzzyValue.Yes) - else if (isIneligible) Some(FuzzyValue.No) + if (isEligible) Some(LabelValue.Yes) + else if (isIneligible) Some(LabelValue.No) else if (isUnknown) None - else Some(FuzzyValue.Maybe) + else Some(LabelValue.Maybe) } } final case class PatientTrialArmGroup(id: LongId[PatientTrialArmGroup], eligibleTrialId: UuidId[PatientEligibleTrial], - eligibilityStatus: Option[FuzzyValue], - verifiedEligibilityStatus: Option[FuzzyValue], + eligibilityStatus: Option[LabelValue], + verifiedEligibilityStatus: Option[LabelValue], isVerified: Boolean) object PatientTrialArmGroupView { @@ -69,8 +70,8 @@ final case class PatientTrialArmGroupView(id: LongId[PatientTrialArmGroup], patientId: UuidId[Patient], trialId: StringId[Trial], hypothesisId: UuidId[Hypothesis], - eligibilityStatus: Option[FuzzyValue], - verifiedEligibilityStatus: Option[FuzzyValue], + eligibilityStatus: Option[LabelValue], + verifiedEligibilityStatus: Option[LabelValue], isVerified: Boolean) { def applyTo(trialArmGroup: PatientTrialArmGroup) = { diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabel.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabel.scala index d10c7d2..4c0f4ef 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabel.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabel.scala @@ -1,7 +1,7 @@ package xyz.driver.pdsuidomain.entities -import xyz.driver.entities.labels.Label -import xyz.driver.pdsuicommon.domain.{FuzzyValue, LongId, UuidId} +import xyz.driver.entities.labels.{Label, LabelValue} +import xyz.driver.pdsuicommon.domain.{LongId, UuidId} import xyz.driver.pdsuicommon.logging._ object PatientLabel { @@ -17,8 +17,8 @@ final case class PatientLabel(id: LongId[PatientLabel], patientId: UuidId[Patient], labelId: LongId[Label], score: Int, - primaryValue: Option[FuzzyValue], - verifiedPrimaryValue: Option[FuzzyValue], + primaryValue: Option[LabelValue], + verifiedPrimaryValue: Option[LabelValue], isImplicitMatch: Boolean, isVisible: Boolean) @@ -32,7 +32,7 @@ object PatientLabelEvidence { final case class PatientLabelEvidence(id: LongId[PatientLabelEvidence], patientLabelId: LongId[PatientLabel], - value: FuzzyValue, + value: LabelValue, evidenceText: String, reportId: Option[UuidId[DirectReport]], documentId: Option[LongId[Document]], diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabelEvidenceView.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabelEvidenceView.scala index 3311d96..6055921 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabelEvidenceView.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientLabelEvidenceView.scala @@ -2,28 +2,28 @@ package xyz.driver.pdsuidomain.entities import java.time.LocalDate -import xyz.driver.entities.labels.Label +import xyz.driver.entities.labels.{Label, LabelValue} import xyz.driver.pdsuicommon.domain._ import xyz.driver.pdsuicommon.logging._ object PatientLabelEvidenceView { implicit def toPhiString(x: PatientLabelEvidenceView): PhiString = { import x._ - phi"PatientLabelEvidenceView(id=$id, value=$value, documentId=$documentId, " + + phi"PatientLabelEvidenceView(id=$id, value=${Unsafe(value)}, documentId=$documentId, " + phi"evidenceId=$evidenceId, reportId=$reportId, patientId=$patientId, labelId=$labelId, " + phi"isImplicitMatch=$isImplicitMatch)" } } final case class PatientLabelEvidenceView(id: LongId[PatientLabelEvidence], - value: FuzzyValue, + value: LabelValue, evidenceText: String, documentId: Option[LongId[Document]], evidenceId: Option[LongId[ExtractedData]], reportId: Option[UuidId[DirectReport]], - documentType: String, + documentType: DocumentType, date: Option[LocalDate], // Document.startDate is optional - providerType: String, + providerType: ProviderType, patientId: UuidId[Patient], labelId: LongId[Label], isImplicitMatch: Boolean) diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/RawPatientLabel.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/RawPatientLabel.scala deleted file mode 100644 index 689eaa4..0000000 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/RawPatientLabel.scala +++ /dev/null @@ -1,31 +0,0 @@ -package xyz.driver.pdsuidomain.entities - -import java.time.LocalDate - -import xyz.driver.entities.labels.Label -import xyz.driver.pdsuicommon.domain.{FuzzyValue, LongId, UuidId} -import xyz.driver.pdsuicommon.logging._ - -final case class RawPatientLabel(patientId: UuidId[Patient], - labelId: LongId[Label], - value: FuzzyValue, - evidenceId: LongId[ExtractedData], - evidenceText: String, - disease: String, - documentId: LongId[Document], - requestId: RecordRequestId, - documentType: DocumentType, - providerType: ProviderType, - startDate: LocalDate, - endDate: Option[LocalDate]) - -object RawPatientLabel { - - implicit def toPhiString(x: RawPatientLabel): PhiString = { - import x._ - phi"RawPatientLabel(patientId=$patientId, labelId=$labelId, value=$value, evidenceId=${Unsafe(evidenceId)}, " + - phi"evidenceText=${Unsafe(evidenceText)}, documentId=$documentId, requestId=${Unsafe(requestId)}, " + - phi"documentType=${Unsafe(documentType)}, providerType=${Unsafe(providerType)}, " + - phi"startDate=$startDate, endDate=$endDate)" - } -} diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/RawTrialLabel.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/RawTrialLabel.scala deleted file mode 100644 index bdbc4ea..0000000 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/RawTrialLabel.scala +++ /dev/null @@ -1,32 +0,0 @@ -package xyz.driver.pdsuidomain.entities - -import java.time.LocalDateTime - -import xyz.driver.entities.labels.Label -import xyz.driver.pdsuicommon.domain.{LongId, StringId, UuidId} -import xyz.driver.pdsuicommon.logging._ - -final case class RawTrialLabel(nctId: StringId[Trial], - trialId: UuidId[Trial], - condition: String, - lastReviewed: LocalDateTime, - armName: String, - armId: LongId[Arm], - labelId: LongId[Label], - value: Option[Boolean], - criterionId: LongId[Criterion], - criteria: String, - criterionArmId: LongId[Arm], - isCompound: Boolean, - isDefining: Boolean) - -object RawTrialLabel { - - implicit def toPhiString(x: RawTrialLabel): PhiString = { - import x._ - phi"RawTrialLabel(nctId=$nctId, trialId=$trialId, condition=${Unsafe(condition)}, lastReviewed=$lastReviewed, " + - phi"armId=$armId, armName=${Unsafe(armName)}, labelId=$labelId, value=$value, " + - phi"criterionId=$criterionId, criteria=${Unsafe(criteria)}, criterionArmId=$criterionArmId, " + - phi"isCompound=$isCompound, isDefining=$isDefining)" - } -} diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/SlotArmEligibilityArm.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/SlotArmEligibilityArm.scala index f9aed6c..70114de 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/SlotArmEligibilityArm.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/SlotArmEligibilityArm.scala @@ -3,9 +3,7 @@ package xyz.driver.pdsuidomain.entities import xyz.driver.pdsuicommon.domain.LongId import xyz.driver.pdsuicommon.logging._ -final case class SlotArmEligibilityArm(slotArmId: LongId[SlotArm], - eligibilityArmId: LongId[EligibilityArm]) - +final case class SlotArmEligibilityArm(slotArmId: LongId[SlotArm], eligibilityArmId: LongId[EligibilityArm]) object SlotArmEligibilityArm { implicit def toPhiString(x: SlotArmEligibilityArm): PhiString = { diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala index bd86057..2aa7fe1 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala @@ -58,24 +58,24 @@ object Trial { } final case class Locations(locations: List[String]) - - sealed trait Condition - - object Condition { - - case object Breast extends Condition - case object Lung extends Condition - case object Prostate extends Condition - - def fromString(condition: String): Option[Condition] = condition match { - case "Breast" => Some(Breast) - case "Lung" => Some(Lung) - case "Prostate" => Some(Prostate) - case _ => None - } - - val All: Set[Condition] = Set(Breast, Lung, Prostate) - } +// +// sealed trait Condition +// +// object Condition { +// +// case object Breast extends Condition +// case object Lung extends Condition +// case object Prostate extends Condition +// +// def fromString(condition: String): Option[Condition] = condition match { +// case "Breast" => Some(Breast) +// case "Lung" => Some(Lung) +// case "Prostate" => Some(Prostate) +// case _ => None +// } +// +// val All: Set[Condition] = Set(Breast, Lung, Prostate) +// } } final case class Trial(id: StringId[Trial], diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabel.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabel.scala index 2edd707..957e607 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabel.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabel.scala @@ -3,7 +3,6 @@ package xyz.driver.pdsuidomain.entities.export.patient import xyz.driver.entities.labels.Label import xyz.driver.pdsuicommon.domain.LongId import xyz.driver.pdsuicommon.logging._ -import xyz.driver.pdsuidomain.entities.RawPatientLabel final case class ExportPatientLabel(id: LongId[Label], evidences: List[ExportPatientLabelEvidence]) @@ -13,8 +12,4 @@ object ExportPatientLabel extends PhiLogging { import x._ phi"ExportPatientLabel(id=$id, evidences=$evidences)" } - - def fromRaw(labelId: LongId[Label], rawPatientLabels: List[RawPatientLabel]): ExportPatientLabel = { - ExportPatientLabel(id = labelId, evidences = rawPatientLabels.map(ExportPatientLabelEvidence.fromRaw)) - } } diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabelEvidence.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabelEvidence.scala index fb40339..6472a6b 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabelEvidence.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabelEvidence.scala @@ -1,11 +1,12 @@ package xyz.driver.pdsuidomain.entities.export.patient +import xyz.driver.entities.labels.LabelValue import xyz.driver.pdsuicommon.domain._ import xyz.driver.pdsuicommon.logging._ -import xyz.driver.pdsuidomain.entities.{ExtractedData, RawPatientLabel} +import xyz.driver.pdsuidomain.entities.ExtractedData final case class ExportPatientLabelEvidence(id: LongId[ExtractedData], - value: FuzzyValue, + value: LabelValue, evidenceText: String, document: ExportPatientLabelEvidenceDocument) @@ -13,20 +14,8 @@ object ExportPatientLabelEvidence { implicit def toPhiString(x: ExportPatientLabelEvidence): PhiString = { import x._ - phi"ExportPatientLabelEvidence(id=${Unsafe(id)}, value=$value, " + + phi"ExportPatientLabelEvidence(id=${Unsafe(id)}, value=${Unsafe(value)}, " + phi"evidenceText=${Unsafe(evidenceText)}, document=$document)" } - def fromRaw(x: RawPatientLabel) = ExportPatientLabelEvidence( - id = x.evidenceId, - value = x.value, - evidenceText = x.evidenceText, - document = ExportPatientLabelEvidenceDocument( - x.documentId, - x.requestId, - x.documentType, - x.providerType, - x.startDate - ) - ) } diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabelEvidenceDocument.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabelEvidenceDocument.scala index 7003615..467170b 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabelEvidenceDocument.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabelEvidenceDocument.scala @@ -19,12 +19,4 @@ object ExportPatientLabelEvidenceDocument extends PhiLogging { phi"ExportPatientLabelEvidenceDocument(documentId=$documentId, requestId=$requestId, " + phi"documentType=${Unsafe(documentType)}, providerType=${Unsafe(providerType)}, date=$date)" } - - def fromRaw(x: RawPatientLabel) = ExportPatientLabelEvidenceDocument( - documentId = x.documentId, - requestId = x.requestId, - documentType = x.documentType, - providerType = x.providerType, - date = x.startDate - ) } diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientWithLabels.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientWithLabels.scala index bd6173b..8fb2660 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientWithLabels.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientWithLabels.scala @@ -2,9 +2,7 @@ package xyz.driver.pdsuidomain.entities.export.patient import xyz.driver.pdsuicommon.domain._ import xyz.driver.pdsuicommon.logging._ -import xyz.driver.pdsuidomain.entities.{Patient, RawPatientLabel} - -import scala.collection.breakOut +import xyz.driver.pdsuidomain.entities.Patient final case class ExportPatientWithLabels(patientId: UuidId[Patient], labelVersion: Long, @@ -16,12 +14,4 @@ object ExportPatientWithLabels { import x._ phi"ExportPatientWithLabels(patientId=$patientId, version=${Unsafe(labelVersion)}, labels=$labels)" } - - def fromRaw(patientId: UuidId[Patient], rawPatientRefs: List[RawPatientLabel]) = ExportPatientWithLabels( - patientId = patientId, - labelVersion = 1L, // TODO It is needed to replace this mock label version. - labels = rawPatientRefs - .groupBy(_.labelId) - .map(Function.tupled(ExportPatientLabel.fromRaw))(breakOut) - ) } diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/export/trial/ExportTrialLabelCriterion.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/export/trial/ExportTrialLabelCriterion.scala index 1f06e0d..385bbbe 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/export/trial/ExportTrialLabelCriterion.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/export/trial/ExportTrialLabelCriterion.scala @@ -3,7 +3,7 @@ package xyz.driver.pdsuidomain.entities.export.trial import xyz.driver.entities.labels.Label import xyz.driver.pdsuicommon.domain._ import xyz.driver.pdsuicommon.logging._ -import xyz.driver.pdsuidomain.entities.{Arm, Criterion, RawTrialLabel} +import xyz.driver.pdsuidomain.entities.{Arm, Criterion} final case class ExportTrialLabelCriterion(criterionId: LongId[Criterion], value: Option[Boolean], @@ -20,14 +20,4 @@ object ExportTrialLabelCriterion { phi"TrialLabelCriterion(criterionId=$criterionId, value=$value, labelId=$labelId, " + phi"criteria=${Unsafe(criteria)}, isCompound=$isCompound, isDefining=$isDefining)" } - - def fromRaw(x: RawTrialLabel, armIds: Set[LongId[Arm]]) = ExportTrialLabelCriterion( - criterionId = x.criterionId, - value = x.value, - labelId = x.labelId, - armIds = armIds, - criteria = x.criteria, - isCompound = x.isCompound, - isDefining = x.isDefining - ) } diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/export/trial/ExportTrialWithLabels.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/export/trial/ExportTrialWithLabels.scala index cf55694..3a9434b 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/export/trial/ExportTrialWithLabels.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/export/trial/ExportTrialWithLabels.scala @@ -4,13 +4,11 @@ import java.time.LocalDateTime import xyz.driver.pdsuicommon.domain._ import xyz.driver.pdsuicommon.logging._ -import xyz.driver.pdsuidomain.entities.{RawTrialLabel, Trial} - -import scala.collection.breakOut +import xyz.driver.pdsuidomain.entities.Trial final case class ExportTrialWithLabels(nctId: StringId[Trial], trialId: UuidId[Trial], - condition: String, + disease: String, lastReviewed: LocalDateTime, labelVersion: Long, arms: List[ExportTrialArm], @@ -20,35 +18,7 @@ object ExportTrialWithLabels { implicit def toPhiString(x: ExportTrialWithLabels): PhiString = { import x._ - phi"TrialWithLabels(nctId=$nctId, trialId=$trialId, condition=${Unsafe(condition)}, " + + phi"TrialWithLabels(nctId=$nctId, trialId=$trialId, disease=${Unsafe(disease)}, " + phi"lastReviewed=$lastReviewed, labelVersion=${Unsafe(labelVersion)}, arms=$arms, criteria=$criteria)" } - - def fromRaw(rawData: List[RawTrialLabel]): ExportTrialWithLabels = { - val trials: Set[StringId[Trial]] = rawData.map(_.nctId)(breakOut) - - assert(trials.size == 1, "There are more than one trial in the rawData") - val trial = rawData.head - - ExportTrialWithLabels( - nctId = trial.nctId, - trialId = trial.trialId, - condition = trial.condition, - lastReviewed = trial.lastReviewed, - labelVersion = 1, // TODO It is needed to replace this mock label version. - arms = rawData - .groupBy(_.armId) - .map { - case (armId, rawTrials) => - ExportTrialArm(armId, rawTrials.head.armName) - }(breakOut), - criteria = rawData - .groupBy(x => (x.criterionId, x.labelId)) - .map { - case (_, rawTrialLabels) => - val armIds = rawTrialLabels.map(_.criterionArmId).toSet - ExportTrialLabelCriterion.fromRaw(rawTrialLabels.head, armIds) - }(breakOut) - ) - } } |