edc-pharmacy


Nameedc-pharmacy JSON
Version 0.3.16 PyPI version JSON
download
home_pagehttps://github.com/clinicedc/edc-pharmacy
SummaryPharmacy models and classes for clinicedc/edc projects
upload_time2024-11-28 03:29:04
maintainerNone
docs_urlNone
authorErik van Widenfelt
requires_python>=3.12
licenseGPL license, see LICENSE
keywords django edc pharmacy clinicedc clinical trials
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            |pypi| |actions| |codecov| |downloads|

edc-pharmacy
------------
EDC pharmacy is a simple pharmacy module for randomized control trials that can be integrated into clinicedc/edc projects.

The module includes stock management to enable a research project team to track chain-of-custody of investigational product from a central site to each research site and finally to each patient.
Stock items are physically labeled using the integrated labelling functionality. Generated labels use a randomly generated stock code and code128 barcodes. Label formats are fully customizable.

When integrated with an clinicedc/edc project, study site requests for stock can be generated using the subject's randomization assignment, followup schedule, and prescription.

Installation
============

.. code-block:: bash

    pip install edc_pharmacy

More likely, ``edc_pharmacy`` is installed as a requirement of a ``clinicedc/edc`` project.


Overview
========
Concepts
++++++++

Task at Central

* order (central)
* receive, label as bulk stock, confirm
* repack/decant, label as stock, confirm
* with site stock request, allocate to subject, label for subject
* transfer stock to site

Tasks at Site

* generate stock request PRN (site)
* receive physical stock at site, confirm transfered stock at site
* dispense to clinic/patient
* confirm dispense to patient on CRF

Also:

* medication
* formulation
* prescription

Features
++++++++

* Tracks lot# with randomization assignment
* prints code128 label sheets (py_labels2, django_pylabel, edc_pylabel)
* generates a stock request based on subjects with valid prescriptions (Rx) using the next scheduled visit (see edc_appointment, edc_visit_tracking, edc_visit_schedule)
* stock are created in data but only available if confirmed by scanning barcode into system.


Details
=======

Qty vs Unit QTY
+++++++++++++++

* QTY is the container count, e.g. 5 bottles of 128 tablets.
* UNIT_QTY is the total number of items in the container. A bottle of 128 has ``unit_qty`` of 128 and a ``qty`` of 1.
* All stock items start with a ``qty_in`` =1 and ``qty_out`` =0 while the ``unit_qty`` = ``qty_in`` * ``container.qty`` or as in the example above, ``unit_qty`` = 1 * 128 = 128.
* If the ``unit_qty_out`` equals the initial ``unit_qty_in``, e.g 128==128, the ``qty_out`` is set to 1. A stock item with ``qty_in`` =1 and ``qty_out`` =1 is not available / in stock.

Orders
++++++
Track orders of IMP by recording the LOT # and expiration date.

Repack/Decant
+++++++++++++

Create new stock from an existing stock item. The container of the new stock item cannot be the same as the source container.
For example, create bottles of 128 tabs from a single bulk barrel of tablets.


User Testing
============

Watermarks
++++++++++

Print a watermark on labels during UAT deployments

.. code-block:: python

    EDC_PHARMACY_LABEL_WATERMARK_WORD = "DO NOT USE"

See also `pylabels2 <https://github.com/erikvw/pylabels2>`__.

Print watermark on reports during UAT deployments

.. code-block:: python

    EDC_PDF_REPORTS_WATERMARK_WORD = "SAMPLE"
    EDC_PDF_REPORTS_WATERMARK_FONT = ("Helvetica", 100)

See also `edc-pdf-reports <https://github.com/clinicedc/edc-pdf-reports>`__.


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

.. |actions| image:: https://github.com/clinicedc/edc-pharmacy/actions/workflows/build.yml/badge.svg
   :target: https://github.com/clinicedc/edc-pharmacy/actions/workflows/build.yml

.. |codecov| image:: https://codecov.io/gh/clinicedc/edc-pharmacy/branch/develop/graph/badge.svg
   :target: https://codecov.io/gh/clinicedc/edc-pharmacy

.. |downloads| image:: https://pepy.tech/badge/edc-pharmacy
   :target: https://pepy.tech/project/edc-pharmacy

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/clinicedc/edc-pharmacy",
    "name": "edc-pharmacy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "django Edc pharmacy, clinicedc, clinical trials",
    "author": "Erik van Widenfelt",
    "author_email": "ew2789@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/e8/19/3fa2cefef1ee33ed232ab078b21b095fb3a50ffcf6305acba02c6965da93/edc_pharmacy-0.3.16.tar.gz",
    "platform": null,
    "description": "|pypi| |actions| |codecov| |downloads|\n\nedc-pharmacy\n------------\nEDC pharmacy is a simple pharmacy module for randomized control trials that can be integrated into clinicedc/edc projects.\n\nThe module includes stock management to enable a research project team to track chain-of-custody of investigational product from a central site to each research site and finally to each patient.\nStock items are physically labeled using the integrated labelling functionality. Generated labels use a randomly generated stock code and code128 barcodes. Label formats are fully customizable.\n\nWhen integrated with an clinicedc/edc project, study site requests for stock can be generated using the subject's randomization assignment, followup schedule, and prescription.\n\nInstallation\n============\n\n.. code-block:: bash\n\n    pip install edc_pharmacy\n\nMore likely, ``edc_pharmacy`` is installed as a requirement of a ``clinicedc/edc`` project.\n\n\nOverview\n========\nConcepts\n++++++++\n\nTask at Central\n\n* order (central)\n* receive, label as bulk stock, confirm\n* repack/decant, label as stock, confirm\n* with site stock request, allocate to subject, label for subject\n* transfer stock to site\n\nTasks at Site\n\n* generate stock request PRN (site)\n* receive physical stock at site, confirm transfered stock at site\n* dispense to clinic/patient\n* confirm dispense to patient on CRF\n\nAlso:\n\n* medication\n* formulation\n* prescription\n\nFeatures\n++++++++\n\n* Tracks lot# with randomization assignment\n* prints code128 label sheets (py_labels2, django_pylabel, edc_pylabel)\n* generates a stock request based on subjects with valid prescriptions (Rx) using the next scheduled visit (see edc_appointment, edc_visit_tracking, edc_visit_schedule)\n* stock are created in data but only available if confirmed by scanning barcode into system.\n\n\nDetails\n=======\n\nQty vs Unit QTY\n+++++++++++++++\n\n* QTY is the container count, e.g. 5 bottles of 128 tablets.\n* UNIT_QTY is the total number of items in the container. A bottle of 128 has ``unit_qty`` of 128 and a ``qty`` of 1.\n* All stock items start with a ``qty_in`` =1 and ``qty_out`` =0 while the ``unit_qty`` = ``qty_in`` * ``container.qty`` or as in the example above, ``unit_qty`` = 1 * 128 = 128.\n* If the ``unit_qty_out`` equals the initial ``unit_qty_in``, e.g 128==128, the ``qty_out`` is set to 1. A stock item with ``qty_in`` =1 and ``qty_out`` =1 is not available / in stock.\n\nOrders\n++++++\nTrack orders of IMP by recording the LOT # and expiration date.\n\nRepack/Decant\n+++++++++++++\n\nCreate new stock from an existing stock item. The container of the new stock item cannot be the same as the source container.\nFor example, create bottles of 128 tabs from a single bulk barrel of tablets.\n\n\nUser Testing\n============\n\nWatermarks\n++++++++++\n\nPrint a watermark on labels during UAT deployments\n\n.. code-block:: python\n\n    EDC_PHARMACY_LABEL_WATERMARK_WORD = \"DO NOT USE\"\n\nSee also `pylabels2 <https://github.com/erikvw/pylabels2>`__.\n\nPrint watermark on reports during UAT deployments\n\n.. code-block:: python\n\n    EDC_PDF_REPORTS_WATERMARK_WORD = \"SAMPLE\"\n    EDC_PDF_REPORTS_WATERMARK_FONT = (\"Helvetica\", 100)\n\nSee also `edc-pdf-reports <https://github.com/clinicedc/edc-pdf-reports>`__.\n\n\n.. |pypi| image:: https://img.shields.io/pypi/v/edc-pharmacy.svg\n   :target: https://pypi.python.org/pypi/edc-pharmacy\n\n.. |actions| image:: https://github.com/clinicedc/edc-pharmacy/actions/workflows/build.yml/badge.svg\n   :target: https://github.com/clinicedc/edc-pharmacy/actions/workflows/build.yml\n\n.. |codecov| image:: https://codecov.io/gh/clinicedc/edc-pharmacy/branch/develop/graph/badge.svg\n   :target: https://codecov.io/gh/clinicedc/edc-pharmacy\n\n.. |downloads| image:: https://pepy.tech/badge/edc-pharmacy\n   :target: https://pepy.tech/project/edc-pharmacy\n",
    "bugtrack_url": null,
    "license": "GPL license, see LICENSE",
    "summary": "Pharmacy models and classes for clinicedc/edc projects",
    "version": "0.3.16",
    "project_urls": {
        "Homepage": "https://github.com/clinicedc/edc-pharmacy"
    },
    "split_keywords": [
        "django edc pharmacy",
        " clinicedc",
        " clinical trials"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1c52b774807f2ef7474ab8316ebc4ca702f93efbf13bac0d69950e22e0c753b1",
                "md5": "5e0fee4ddcfc9ed8e3152e096c91252f",
                "sha256": "446111c753a6834c17088a7b135c11d941f24ec096aaadb5dc624a26f3d6b4c8"
            },
            "downloads": -1,
            "filename": "edc_pharmacy-0.3.16-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5e0fee4ddcfc9ed8e3152e096c91252f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 298134,
            "upload_time": "2024-11-28T03:29:02",
            "upload_time_iso_8601": "2024-11-28T03:29:02.755570Z",
            "url": "https://files.pythonhosted.org/packages/1c/52/b774807f2ef7474ab8316ebc4ca702f93efbf13bac0d69950e22e0c753b1/edc_pharmacy-0.3.16-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e8193fa2cefef1ee33ed232ab078b21b095fb3a50ffcf6305acba02c6965da93",
                "md5": "0e945f4c3dca9e37e6a5981ebb0b6cc6",
                "sha256": "8200016f6ae6ecfdf59a7be4f160bf3f1cf5074368f05e65cbac374e7912f42c"
            },
            "downloads": -1,
            "filename": "edc_pharmacy-0.3.16.tar.gz",
            "has_sig": false,
            "md5_digest": "0e945f4c3dca9e37e6a5981ebb0b6cc6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 232450,
            "upload_time": "2024-11-28T03:29:04",
            "upload_time_iso_8601": "2024-11-28T03:29:04.743026Z",
            "url": "https://files.pythonhosted.org/packages/e8/19/3fa2cefef1ee33ed232ab078b21b095fb3a50ffcf6305acba02c6965da93/edc_pharmacy-0.3.16.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-28 03:29:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "clinicedc",
    "github_project": "edc-pharmacy",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "edc-pharmacy"
}
        
Elapsed time: 0.46630s