Skip to main content

Define clinic facilities for clinicedc/edc projects

Project description

pypi actions codecov downloads

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 zoneifo import ZoneInfo

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 = datetime(2015, 9, 24, tzinfo=ZoneInfo("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.

Source Distribution

edc-facility-0.3.15.tar.gz (30.7 kB view details)

Uploaded Source

Built Distribution

edc_facility-0.3.15-py3-none-any.whl (32.1 kB view details)

Uploaded Python 3

File details

Details for the file edc-facility-0.3.15.tar.gz.

File metadata

  • Download URL: edc-facility-0.3.15.tar.gz
  • Upload date:
  • Size: 30.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for edc-facility-0.3.15.tar.gz
Algorithm Hash digest
SHA256 4bb491fcb976264fdd96ae9042b7cc6aa85ec69205e570e3d025b6d497794f26
MD5 c621c9bc216d7e54cf686bc973312de2
BLAKE2b-256 932974be2ea18a6b194ae5f04f843f8ef08b4cc775cb91f2d9f603048349b495

See more details on using hashes here.

File details

Details for the file edc_facility-0.3.15-py3-none-any.whl.

File metadata

File hashes

Hashes for edc_facility-0.3.15-py3-none-any.whl
Algorithm Hash digest
SHA256 4d839f1841feb63d68804fd6427632b49ed88bac7e59cc4ef81c4dc82401c599
MD5 5fb729762b6b1fba4b6b48ea22e21999
BLAKE2b-256 c1ac0fca6df2c213cc11ffd8f936f370343360e9db97254cd9cb49909432c36e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page