vital-software/scala-redox

View on GitHub
src/main/scala/com/github/vitalsoftware/scalaredox/models/Problem.scala

Summary

Maintainability
A
1 hr
Test Coverage
package com.github.vitalsoftware.scalaredox.models

import org.joda.time.DateTime
import com.github.vitalsoftware.util.JsonImplicits.jodaISO8601Format
import com.github.vitalsoftware.macros._
import com.github.vitalsoftware.util.RobustPrimitives

/**
 *
 * @param StartDate When the problem was noticed. ISO 8601 Format
 * @param EndDate When the problem stopped (if it is not current). ISO 8601 Format
 * @param Code The code for the problem. . SNOMED-CT Code. Limited to terms descending from the Clinical Findings (404684003) or Situation with Explicit Context (243796009)
 * @param Category What type of problem this is (complaint, diagnosis, symptom, etc.)
 * HealthStatus The effect of the problem on the patient (chronically ill, in remission, etc.). SNOMED-CT
 * @param Status The current state of the problem (active, inactive, resolved). HITSPProblemStatus
 */
@jsonDefaults case class Problem(
  StartDate: Option[DateTime] = None,
  EndDate: Option[DateTime] = None,
  Code: Option[String] = None,
  CodeSystem: Option[String] = None,
  CodeSystemName: Option[String] = None,
  Name: Option[String] = None,
  Category: BasicCode = BasicCode(),
  //HealthStatus: Option[BasicCode] = None, // TODO Seems to come back as HealthStatus: { null, null, null, null } which violates the constraints of BasicCode
  Status: Option[BasicCode] = None
) extends Code

object Problem extends RobustPrimitives

/**
 * This section contains the patient's past and current relevant medical problems.
 *
 * @param ProblemsText Free text form of the problems summary
 * @param Problems An array of all of patient relevant problems, current and historical.
 */
@jsonDefaults case class ProblemsMessage(
  ProblemsText: Option[String] = None,
  Problems: Seq[Problem] = Seq.empty
)

object ProblemsMessage extends RobustPrimitives