Skip to main content

Define clinic facilities for clinicedc/edc projects

Project description

pypi travis codecov downloads


Loading holidays

To load the list of holidays into the system:

python import_holidays

Customizing appointment scheduling by Facility

Appointment scheduling can be customized per facility or clinic:

Add each facility to app_config.facilities specifying the facility name, days open and the maximum number of slots available per day:

from edc_facility.apps import AppConfig as EdcAppointmentAppConfig

class AppConfig(EdcAppointmentAppConfig):

    facilities = {
        'clinic1': Facility(name='clinic', days=[MO, TU, WE, TH, FR], slots=[100, 100, 100, 100, 100])}
        'clinic2': Facility(name='clinic', days=[MO, WE, FR], slots=[30, 30, 30])}

To schedule an appointment that falls on a day that the clinic is open, isn’t a holiday and isn’t already over-booked:

from edc_utils import get_utcnow
from .facility import Facility

suggested_datetime = get_utcnow()
available_datetime = facility.available_datetime(suggested_datetime)

If holidays are entered (in model Holiday) and the appointment lands on a holiday, the appointment date is incremented forward to an allowed weekday. Assuming facility is configured in app_config to only schedule appointments on [TU, TH]:

from datetime import datetime
from dateutil.relativedelta import TU, TH
from django.conf import settings
from django.utils import timezone

from .facility import Facility
from .models import Holiday

    name='Id-ul-Adha (Feast of the Sacrifice)',
    date=date(2015, 9, 24)
suggested_datetime = timezone.make_aware(datetime(2015, 9, 24), timezone=pytz.utc)  # TH
available_datetime = facility.available_datetime(suggested_datetime)
print(available_datetime)  # 2015-09-29 00:00:00, TU

The maximum number of possible scheduling slots per day is configured in app_config. As with the holiday example above, the appointment date will be incremented forward to a day with an available slot.

System checks

  • edc_facility.001 Holiday file not found! settings.HOLIDAY_FILE not defined.
  • edc_facility.002 Holiday file not found.
  • edc_facility.003 Holiday table is empty. Run management command ‘import_holidays’.
  • edc_facility.004 No Holidays have been defined for this country.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for edc-facility, version 0.1.34
Filename, size File type Python version Upload date Hashes
Filename, size edc_facility-0.1.34-py3-none-any.whl (28.2 kB) File type Wheel Python version py3 Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page