From 1f0cb533633fc95df948a2617351335646f3e200 Mon Sep 17 00:00:00 2001 From: vlad Date: Fri, 16 Jun 2017 12:11:48 -0700 Subject: Added DirectReport entity --- .../driver/pdsuidomain/entities/DirectReport.scala | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/main/scala/xyz/driver/pdsuidomain/entities/DirectReport.scala (limited to 'src/main/scala/xyz') diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/DirectReport.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/DirectReport.scala new file mode 100644 index 0000000..b5714b6 --- /dev/null +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/DirectReport.scala @@ -0,0 +1,41 @@ +package xyz.driver.pdsuidomain.entities + +import java.time.LocalDate + +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"documentType=${Unsafe(documentType)}, providerType=${Unsafe(providerType)}, " + + phi"providerName=${Unsafe(providerName)})" + } +} + +case class DirectReport(id: UuidId[DirectReport], + patientId: UuidId[Patient], + reportType: ReportType, + date: LocalDate, + documentType: String, + providerType: String, + providerName: String) -- cgit v1.2.3