wouterpotters / castorapi

Python API wrapper for Castor EDC to fetch data from you clinical study

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

castorapi

Python API wrapper for Castor EDC to fetch data from or post data to your clinical study.

Install

Using conda and the conda-forge channel (recommended):

conda install -c conda-forge castorapi

But, you can also install using pip (https://pypi.org/project/castorapi/):

pip install castorapi

Update

Using conda and the conda-forge channel:

conda update -c conda-forge castorapi

Using pip (https://pypi.org/project/castorapi/):

pip install castorapi --upgrade

Usage

First, make sure that save the client and secret from your Castor account in seperate client and secret files (without line endings) in a private folder on your PC. Do not share these files with anyone.

image

See also https://data.castoredc.com/api and https://helpdesk.castoredc.com/article/124-application-programming-interface-api

Example code

import castorapi as ca
c = ca.CastorApi('/path/to/folder/with/secret_client')
c.select_study_by_name('<CASTOR_STUDY_NAME>') # all following commands use this study selection
stats = c.request_statistics()
print(stats)
df_study, df_structure_study, df_report, df_structure_report, df_optiongroups_structure = c.records_reports_all()
users_in_study = c.request_studyuser()
print(users_in_study)

# Getting data from castor about patients in a study
c.request_study_records(record_id='CASTOR00010')

# Posting data to castor to create a new patient
# add institute_id and , request_method='POST' to use this functionality.
c.request_study_records(record_id='CASTOR00010', institute_id=<instituteID>, request_method='POST')

Known issues

  1. The documentation is sparse. Feel free to contribute.
  2. Not all Castor API functions are implemented (I implement them on a need-to-use basis), feel free to contribute.
  3. See https://github.com/wouterpotters/castorapi/issues for an overview of all open issues.

NOTE

I am not affiliated with Castor EDC in any way. Use this software at your own risk. If this API tool does not suffice - take a look at the work from Reinier van Linschoten, who also created a Python package for two-way communication Castor EDC (2021). (https://github.com/reiniervlinschoten/castoredc_api)

About

Python API wrapper for Castor EDC to fetch data from you clinical study

License:MIT License


Languages

Language:Python 98.8%Language:Shell 1.2%