@startuml
hide circle
hide empty members
skinparam linetype ortho
class "Slot" as Sl #SkyBlue {
- start
- end
- serviceType
- appointmentType
...
+ reference(Schedule)
+ reference(HealthcareService)
}
class "Schedule" as Sc #SkyBlue {
+ actor.reference(Practitioner)
+ actor.reference(PractitionerRole)
}
class "Practitioner" as PS #LimeGreen {
- identifier : IDNPS
- specialty
...
}
class "PractitionerRole" as PR #LimeGreen {
- location (contained)
+ reference(Practitioner)
+ reference(Organization)
}
class "HealthcareService" as HS #LimeGreen {
+ providedBy.reference(Organization)
}
class "Organization" as Orga #LimeGreen {
- identifier : IDNST
- name
- telecom
}
class "Appointment" as Ap #SkyBlue {
- status
- start
- end
- created
...
+ participant.actor.reference(Practitioner)
+ participant.actor.reference(HealthcareService)
}
PR "0..*"-->"1" Orga
PR "1..*"-->"1" PS
Ap "0..*"-->"0..1" PS
Ap "0..*"-->"1" HS
Sc "0..*"-->"1" PS
Sl "1..*"-->"1" Sc
Sl "0..*"-->"1" HS
Sc "1"-->"1" PR
HS "1"-->"1" Orga
@enduml