@startuml ClassDiagram.HealthcareService
skinparam monochrome true
class HealthcareService {
  {field} identifier (0..*, MS)
  {field} providedBy (1..1, MS, LDAP)
  {field} speciality (0..*, MS, LDAP)
  {field} location (0..*, MS, LDAP)
  {field} name (0..1, MS)
  {field} telecom (0..*, MS)
  {field} serviceProvisionCode (0..*, MS)
  {field} communication (0..*, MS)
  {field} appointmentRequired (0..1, MS)
  {field} availableTime (0..*, MS)
  {field} availabilityExceptions (0..*, MS)
  {field} endpoint (0..*, MS)
}
class Endpoint {
  {field} identifier (0..*, MS)
  {field} status (0..*, MS)
  {field} connectionType (1..1, MS)
  {field} name (0..1, MS)
  {field} managingOrganization (0..*, MS)
  {field} payloadType (1..*, MS)
  {field} address (1..1, MS)
}
class Location {
  {field} identifier (0..*, MS)
  {field} status (0..*, MS)
  {field} name (0..1, MS)
  {field} description (0..1, MS)
  {field} telecom (0..*, MS)
  {field} address (0..1, MS, LDAP)
  {field} position (0..1, MS)
  {field} hoursOfOperation (0..*, MS)
  {field} availabilityExceptions (0..1, MS)
}
class Organization {
  {field} identifier (1..*, MS, LDAP)
  {field} active (1..1, MS, LDAP)
  {field} type (1..1, MS, LDAP)
  {field} name (1..1, MS, LDAP)
  {field} alias (0..*, MS)
  {field} telecom (0..*, MS)
  {field} contact (0..*, MS)
}

HealthcareService o-- Organization: providedBy
HealthcareService o-- Endpoint: endpoint
HealthcareService o-- Location: location

@enduml