blob: aca22efb22c382402057b68ac17c40691ed1f385 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
package xyz.driver.pdsuidomain.formats.json.eligibilityarm
import play.api.libs.json.{Format, Json}
import xyz.driver.entities.patient.CancerType
import xyz.driver.pdsuidomain.entities.{EligibilityArmDisease, EligibilityArmWithDiseases}
final case class ApiPartialEligibilityArm(name: String, diseases: Seq[String]) {
def applyTo(armWithDisease: EligibilityArmWithDiseases): EligibilityArmWithDiseases = {
val arm = armWithDisease.eligibilityArm.copy(name = name)
val armDiseases = diseases.map { disease =>
EligibilityArmDisease(
armWithDisease.eligibilityArm.id,
CancerType.fromString(disease).getOrElse(throw new NoSuchElementException(s"unknown condition $disease")))
}
EligibilityArmWithDiseases(arm, armDiseases)
}
}
object ApiPartialEligibilityArm {
implicit val format: Format[ApiPartialEligibilityArm] = Json.format
}
|