edc-registration


Nameedc-registration JSON
Version 0.3.40 PyPI version JSON
download
home_pagehttps://github.com/clinicedc/edc-registration
SummaryPatient registration module for clinicedc/edc projects
upload_time2024-01-26 03:20:48
maintainer
docs_urlNone
authorErik van Widenfelt
requires_python>=3.11
licenseGPL license, see LICENSE
keywords django edc registration clinicedc clinical trials
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            |pypi| |actions| |codecov| |downloads|

edc-registration
----------------

The model ``RegisteredSubject`` is used by the Edc as the master subject registration table. Only one record may exist per individual. The table has space for PII so typically a ``RegisteredSubject`` instance is created or updated on completion of the informed consent. As always, PII in the Edc is encrypted at rest using ``django-crypto-field``.


For the model and signal to be registered you need to add the AppConfig to your INSTALLED_APPS:

.. code-block:: python

    INSTALLED_APPS = (
        ....
        'edc_registration.apps.AppConfig',
        ....
    )


**UpdatesOrCreatesRegistrationModelMixin**

``RegisteredSubject`` is never edited directly by the user. Instead some other model with the needed attributes is used as a proxy. To have a model perform the task of creating or updating  ``RegisteredSubject``, declare it with the ``UpdatesOrCreatesRegistrationModelMixin``.

For example, a model, ``SubjectEligibility`` or a screening model creates or updates ``RegisteredSubject`` without a subject identifier then a model such as the ``SubjectConsent`` in ``tests.models``, also creates or updates a subject's ``RegisteredSubject`` instance on save. For this to happen, both models are declared with the ``UpdatesOrCreatesRegistrationModelMixin``:

.. code-block:: python

    class SubjectEligibility(UniqueSubjectIdentifierModelMixin,
                             UpdatesOrCreatesRegistrationModelMixin, BaseUuidModel):

        screening_identifier = models.CharField(
            max_length=36,
            null=True,
            unique=True)

    	@property
        def registration_unique_field(self):
            return 'screening_identifier'

        def update_subject_identifier_on_save(self):
            """Overridden to not set the subject identifier on save.
            """
            if not self.subject_identifier:
                self.subject_identifier = self.subject_identifier_as_pk.hex
                self.subject_identifier_aka = self.subject_identifier_as_pk.hex
            return self.subject_identifier

    class SubjectConsent(
        ConsentModelMixin, UpdatesOrCreatesRegistrationModelMixin,
        CreateAppointmentsMixin, IdentityFieldsMixin, ReviewFieldsMixin,
        PersonalFieldsMixin, CitizenFieldsMixin, VulnerabilityFieldsMixin,
        BaseUuidModel):

		@property
	    def registration_unique_field(self):
	        return 'screening_identifier'

	    class Meta:
	        app_label = 'my_app'


The property ``registration_unique_field`` returns a model attribute that is used to set a registration identifier on ``RegisteredSubject``.

A subject's ``RegisteredSubject`` instance is created and updated in a ``post_save`` signal. As mentioned, it is never edited directly by the user.


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

.. |actions| image:: https://github.com/clinicedc/edc-registration/workflows/build/badge.svg?branch=develop
  :target: https://github.com/clinicedc/edc-registration/actions?query=workflow:build

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

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

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/clinicedc/edc-registration",
    "name": "edc-registration",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": "",
    "keywords": "django edc registration,clinicedc,clinical trials",
    "author": "Erik van Widenfelt",
    "author_email": "ew2789@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/2f/cc/b19908e9d6e2a5d04ef98900976b04e74298339aab6b034e1e89eaca4b95/edc-registration-0.3.40.tar.gz",
    "platform": null,
    "description": "|pypi| |actions| |codecov| |downloads|\n\nedc-registration\n----------------\n\nThe model ``RegisteredSubject`` is used by the Edc as the master subject registration table. Only one record may exist per individual. The table has space for PII so typically a ``RegisteredSubject`` instance is created or updated on completion of the informed consent. As always, PII in the Edc is encrypted at rest using ``django-crypto-field``.\n\n\nFor the model and signal to be registered you need to add the AppConfig to your INSTALLED_APPS:\n\n.. code-block:: python\n\n    INSTALLED_APPS = (\n        ....\n        'edc_registration.apps.AppConfig',\n        ....\n    )\n\n\n**UpdatesOrCreatesRegistrationModelMixin**\n\n``RegisteredSubject`` is never edited directly by the user. Instead some other model with the needed attributes is used as a proxy. To have a model perform the task of creating or updating  ``RegisteredSubject``, declare it with the ``UpdatesOrCreatesRegistrationModelMixin``.\n\nFor example, a model, ``SubjectEligibility`` or a screening model creates or updates ``RegisteredSubject`` without a subject identifier then a model such as the ``SubjectConsent`` in ``tests.models``, also creates or updates a subject's ``RegisteredSubject`` instance on save. For this to happen, both models are declared with the ``UpdatesOrCreatesRegistrationModelMixin``:\n\n.. code-block:: python\n\n    class SubjectEligibility(UniqueSubjectIdentifierModelMixin,\n                             UpdatesOrCreatesRegistrationModelMixin, BaseUuidModel):\n\n        screening_identifier = models.CharField(\n            max_length=36,\n            null=True,\n            unique=True)\n\n    \t@property\n        def registration_unique_field(self):\n            return 'screening_identifier'\n\n        def update_subject_identifier_on_save(self):\n            \"\"\"Overridden to not set the subject identifier on save.\n            \"\"\"\n            if not self.subject_identifier:\n                self.subject_identifier = self.subject_identifier_as_pk.hex\n                self.subject_identifier_aka = self.subject_identifier_as_pk.hex\n            return self.subject_identifier\n\n    class SubjectConsent(\n        ConsentModelMixin, UpdatesOrCreatesRegistrationModelMixin,\n        CreateAppointmentsMixin, IdentityFieldsMixin, ReviewFieldsMixin,\n        PersonalFieldsMixin, CitizenFieldsMixin, VulnerabilityFieldsMixin,\n        BaseUuidModel):\n\n\t\t@property\n\t    def registration_unique_field(self):\n\t        return 'screening_identifier'\n\n\t    class Meta:\n\t        app_label = 'my_app'\n\n\nThe property ``registration_unique_field`` returns a model attribute that is used to set a registration identifier on ``RegisteredSubject``.\n\nA subject's ``RegisteredSubject`` instance is created and updated in a ``post_save`` signal. As mentioned, it is never edited directly by the user.\n\n\n.. |pypi| image:: https://img.shields.io/pypi/v/edc-registration.svg\n    :target: https://pypi.python.org/pypi/edc-registration\n\n.. |actions| image:: https://github.com/clinicedc/edc-registration/workflows/build/badge.svg?branch=develop\n  :target: https://github.com/clinicedc/edc-registration/actions?query=workflow:build\n\n.. |codecov| image:: https://codecov.io/gh/clinicedc/edc-registration/branch/develop/graph/badge.svg\n  :target: https://codecov.io/gh/clinicedc/edc-registration\n\n.. |downloads| image:: https://pepy.tech/badge/edc-registration\n   :target: https://pepy.tech/project/edc-registration\n",
    "bugtrack_url": null,
    "license": "GPL license, see LICENSE",
    "summary": "Patient registration module for clinicedc/edc projects",
    "version": "0.3.40",
    "project_urls": {
        "Homepage": "https://github.com/clinicedc/edc-registration"
    },
    "split_keywords": [
        "django edc registration",
        "clinicedc",
        "clinical trials"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "709933028d96e523a95f9341c73697814324852407584ae2cc693f9f1cd1203c",
                "md5": "2b6c4d9b6d0a30d102049eb1276ad7a8",
                "sha256": "6bf6d6c40344e748cedc2e6f1a554cf9cae2b9bfa5af0ca319199a9c912dc2f2"
            },
            "downloads": -1,
            "filename": "edc_registration-0.3.40-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2b6c4d9b6d0a30d102049eb1276ad7a8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 51529,
            "upload_time": "2024-01-26T03:20:46",
            "upload_time_iso_8601": "2024-01-26T03:20:46.068254Z",
            "url": "https://files.pythonhosted.org/packages/70/99/33028d96e523a95f9341c73697814324852407584ae2cc693f9f1cd1203c/edc_registration-0.3.40-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2fccb19908e9d6e2a5d04ef98900976b04e74298339aab6b034e1e89eaca4b95",
                "md5": "3088e593bb258f1cd50fccc3277a458b",
                "sha256": "6509d27163e7f0ec91d93d854a02db4bc3e71f3a1042144454076ea3a5a07b5a"
            },
            "downloads": -1,
            "filename": "edc-registration-0.3.40.tar.gz",
            "has_sig": false,
            "md5_digest": "3088e593bb258f1cd50fccc3277a458b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 36890,
            "upload_time": "2024-01-26T03:20:48",
            "upload_time_iso_8601": "2024-01-26T03:20:48.276479Z",
            "url": "https://files.pythonhosted.org/packages/2f/cc/b19908e9d6e2a5d04ef98900976b04e74298339aab6b034e1e89eaca4b95/edc-registration-0.3.40.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-26 03:20:48",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "clinicedc",
    "github_project": "edc-registration",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "edc-registration"
}
        
Elapsed time: 0.17670s