Skip to main content

Define clinic facilities for clinicedc/edc projects

Project description

|pypi| |travis| |coverage|


edc-facility
------------

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:

.. code-block:: python

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:

.. code-block:: python

from edc_base.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]:

.. code-block:: python

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.



.. |pypi| image:: https://img.shields.io/pypi/v/edc-facility.svg
:target: https://pypi.python.org/pypi/edc-facility

.. |travis| image:: https://travis-ci.org/clinicedc/edc-facility.svg?branch=develop
:target: https://travis-ci.org/clinicedc/edc-facility

.. |coverage| image:: https://coveralls.io/repos/github/clinicedc/edc-facility/badge.svg?branch=develop
:target: https://coveralls.io/github/clinicedc/edc-facility?branch=develop



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

Built Distribution

edc_facility-0.1.8-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file edc-facility-0.1.8.macosx-10.13-x86_64.tar.gz.

File metadata

  • Download URL: edc-facility-0.1.8.macosx-10.13-x86_64.tar.gz
  • Upload date:
  • Size: 23.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0

File hashes

Hashes for edc-facility-0.1.8.macosx-10.13-x86_64.tar.gz
Algorithm Hash digest
SHA256 eff27e0c3a4a9035e7e6dfea43f449fa9b27e4f8541102f359f5239fe65a5a45
MD5 1b728578358dec91af6fa98f7a9d246a
BLAKE2b-256 8e66ec790dff6aea99ad213b30995927fed5cad2bb03be0311dbd36becda290c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: edc_facility-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 15.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0

File hashes

Hashes for edc_facility-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 d24d27eb3752c140a6f656c65e4e9697b73d02d3fcd5b67fecf49d24898954b9
MD5 9333f3aeae1aa351a44e5c91f076a32f
BLAKE2b-256 9b0f4ef4164d9fb9bebb95255679067a6b99d0aaa24a25eaa7d53e665e5d0799

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