Define clinic facilities for clinicedc/edc projects
Project description
edc-facility
Loading holidays
To load the list of holidays into the system:
python manage.py 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
Holiday.objects.create(
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for edc_facility-0.1.27-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | babf4d85231c16487f3ec72f4e61145f46a0fe3c7db98b31a3c1cae645d64deb |
|
MD5 | 04bbcbe6871eb6c5726db11b59f25df1 |
|
BLAKE2b-256 | 10114840110e30a96d96e2ec9a42e59fce6b8af287dd6082c7836bafb7e83a79 |