Skip to main content

Add patient action items to clinicedc/edc projects

Project description

pypi travis coverage

edc-action-items

Add patient action items to the Edc

Overview

Action items are reminders to submit a form.

Action items can be configured to drive data collection

  • for forms that do not fit well in a visit schedule;

  • for forms that are required based on some clinical event.

Action items are tracked. Each is allocated a unique action_identifier and maintain status (New, Open, Closed).

Actions can be chained. One action can create another action, group of actions or recreate itself.

Adverse Events, Death, OffSchedule are all good candidates.

Adverse Event reports are required based on some clinical event. Since the event must be reported, leaving the decision to report the user is not sufficient. An action item can be opened based on the clinical event and the status of the action item tracked administratively. The action item is associtaed with the AE report. Once the report is submitted, the action item closes. If additional data is required after an initial AE report is submitted, a follow-up action can automatically be opened.

See module ambition-ae.action_items for examples.

Defining action items

In the root of your App, define an action_items module. The edc-action-item site controller will autodiscover this module and register the action item classes.

Register action item classes in the action_items module like this

site_action_items.register(AeInitialAction)

A simple action item

In it define actions using the Action class.

from edc_action_item import Action, site_action_items
from ambition_ae.action_items import AeFollowupAction, AeTmgAction

class AeInitialAction(Action):

    name = AE_INITIAL_ACTION
    display_name = 'Submit AE Initial Report'
    model = 'ambition_ae.aeinitial'
    show_on_dashboard = True
    instructions = 'Complete the initial report and forward to the TMG'
    priority = HIGH_PRIORITY

The action item is associated with its model

from edc_action_item.model_mixins import ActionModelMixin
from edc_identifier.model_mixins import NonUniqueSubjectIdentifierFieldMixin

class AeInitial(ActionModelMixin, NonUniqueSubjectIdentifierFieldMixin,
                BaseUuidModel):

action_cls = AeInitialAction

... # field classes

Somewhere in your code, instantiate the action item

AeInitialAction(subject_identifier='12345')

This creates an ActionItem model instance for this subject with a status of New (if it does not exist).

Now create the associated model instance

AeInitial.objects.create(subject_identifier='12345', ...)

The ActionItem model instance now has a status of Closed.

Changing the criteria to close an action

By default an action is closed once the associated model instance has been saved. For more refined behavior define close_action_item_on_save on the action item class

class AeInitialAction(Action):

...

def close_action_item_on_save(self):
    self.delete_children_if_new(action_cls=self)
    return self.model_obj.report_status == CLOSED

Singleton action items

To ensure an action item does not create more than one instance per subject, use the singleton attribute.

class EnrollToSubstudyAction(Action):
    name = 'My Action'
    display_name = 'Enroll to sub-study'
    model = 'myapp.enroll'
    show_link_to_changelist = True
    admin_site_name = 'myapp_admin'
    priority = HIGH_PRIORITY
    create_by_user = False
    singleton=True

Action items that create a next action item

For an action item to open another action item(s) once closed, set next_actions.

class AeInitialAction(Action):

    name = AE_INITIAL_ACTION
    display_name = 'Submit AE Initial Report'
    model = 'ambition_ae.aeinitial'
    show_on_dashboard = True
    instructions = 'Complete the initial report and forward to the TMG'
    priority = HIGH_PRIORITY
    next_actions = [AeFollowupAction]

If the criteria for the next action is based on some other information declare get_next_actions on the action item and return the list of action items needed.

class AeInitialAction(Action):

...

def get_next_actions(self):
    next_actions = []
    try:
        self.reference_model_cls().objects.get(
            ae_initial=self.model_obj.ae_initial)
    except MultipleObjectsReturned:
        pass
    else:
        if (self.model_obj.ae_initial.ae_classification
                != self.model_obj.ae_classification):
            next_actions = [self]
    return next_actions

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 Distribution

Built Distribution

edc_action_item-0.1.16-py3-none-any.whl (64.2 kB view details)

Uploaded Python 3

File details

Details for the file edc-action-item-0.1.16.macosx-10.13-x86_64.tar.gz.

File metadata

  • Download URL: edc-action-item-0.1.16.macosx-10.13-x86_64.tar.gz
  • Upload date:
  • Size: 92.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.1.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.7.0

File hashes

Hashes for edc-action-item-0.1.16.macosx-10.13-x86_64.tar.gz
Algorithm Hash digest
SHA256 0a98143549ef98fd9c2c3218665057dde4023711570d380f2b4c644aff8ef0b8
MD5 b36e4fc25407f22b710147bb5aed2431
BLAKE2b-256 408f6b5d12fdd381b1b1f91a5b3a7285019783a0133f39c0e081f6b11246b9a3

See more details on using hashes here.

File details

Details for the file edc_action_item-0.1.16-py3-none-any.whl.

File metadata

  • Download URL: edc_action_item-0.1.16-py3-none-any.whl
  • Upload date:
  • Size: 64.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.1.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.7.0

File hashes

Hashes for edc_action_item-0.1.16-py3-none-any.whl
Algorithm Hash digest
SHA256 72fe2a82823c1957812c4619e86d487efd5a1e046d78bc448b3c312e0df01646
MD5 0f5e6c420199083d3e682db84cca345b
BLAKE2b-256 efd4313a417ab33708d9006e61019ba4ca9f6077cb4e9eda39b9b32236c5a069

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