@startuml package PatientGeneration-ejb{ abstract class AbstractPatient class AbstractAddress #lightgreen{ -String countryCode -String street -String streetNumber -String zipCode -String city -String addressLine -String state } class PatientAddress #orange } AbstractAddress <|-- PatientAddress AbstractAddress <|--- PersonAddress enum PhoneNumberType abstract AbstractPhoneNumber #lightgreen AbstractPhoneNumber -left- PhoneNumberType #green class PatientPhoneNumber #orange AbstractPhoneNumber <|-- PatientPhoneNumber AbstractPhoneNumber <|-- PersonPhoneNumber AbstractPatient <|-- Patient AbstractPatient "1" -right- "*" PatientAddress #green Patient "1" -- "*" PatientPhoneNumber #green class Person #lightgreen{ -String firstName -String lastName -String secondName -String relationshipCode -String contactRoleCode -String identifier } Person "1" -- "*" PersonPhoneNumber #green Person "1" -- "*" PersonAddress #green Patient "1" -- "*" Person #green @enduml