Skip to main content

Add a diabetic retinopathy screening form and API to use with a fundus camera for clinicedc

Project description

pypi actions codecov downloads clinicedc

edc-retinopathy

Add a diabetic retinopathy screening form and REST API for integrating with a fundus camera in a clinicedc project.

A clinician creates a CameraSession in the EDC before the exam. The camera software (fundus-camera-watchdog) resolves the subject, uploads eye images, DICOM files and reports, then checks status.

Requires django>=5.2,<6.1 and djangorestframework>=3.16.0

REST API

All endpoints use TokenAuthentication.

GET /api/retinopathy/ping/

Health check. Returns {"status": "ok"}.

POST /api/retinopathy/resolve/

Confirm a CameraSession exists for a subject. Payload:

{"subject_identifier": "105-10-0001-2"}

Returns 200 with camera_session_id and uploaded list, or 404 if no session exists.

POST /api/retinopathy/<subject_identifier>/<file_type>/

Upload a file. Multipart form with file, capture_datetime, and optional checksum (SHA-256). Valid file types:

  • left, right – eye images (JPEG/PNG)

  • left_dicom, right_dicom – DICOM files

  • left_report, right_report, report – reports (PDF/HTML)

Multiple files per type are accepted. Files are stored with their original filenames under <storage_dir>/images/<session_pk>/.

GET /api/retinopathy/<subject_identifier>/status/

Session status: uploaded types, missing types, and whether the session is complete.

Models

CameraSession

Created by the clinician in the EDC. Links to RegisteredSubject and stores contra-indication screening fields, report type (combined / per-eye), and device ID.

SessionFile

One record per uploaded file. Tracks file type, original filename, stored path, content type, size, SHA-256 checksum, and capture timestamp.

Settings

EDC_RETINOPATHY_STORAGE_DIR

Base path for file storage. Must contain an images/ subdirectory.

EDC_RETINOPATHY_MAX_FILE_SIZE_MB

Maximum upload size in MB (default: 10).

See also https://edc-retinopathy.readthedocs.io/en/latest/

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

edc_retinopathy-0.7.7.tar.gz (37.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

edc_retinopathy-0.7.7-py3-none-any.whl (69.1 kB view details)

Uploaded Python 3

File details

Details for the file edc_retinopathy-0.7.7.tar.gz.

File metadata

  • Download URL: edc_retinopathy-0.7.7.tar.gz
  • Upload date:
  • Size: 37.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for edc_retinopathy-0.7.7.tar.gz
Algorithm Hash digest
SHA256 4cce29ee2e2c84397e69309d171a607a382eae141a0e2619f5953803b8be7e6a
MD5 02483e26512bda52e35fcd6c97a82f3a
BLAKE2b-256 a46d0fd7de426deaec4da42f6cbb3f50af3b9e46bec46ad66e0ee73c35f2c829

See more details on using hashes here.

File details

Details for the file edc_retinopathy-0.7.7-py3-none-any.whl.

File metadata

  • Download URL: edc_retinopathy-0.7.7-py3-none-any.whl
  • Upload date:
  • Size: 69.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for edc_retinopathy-0.7.7-py3-none-any.whl
Algorithm Hash digest
SHA256 f4769a8663a9bedce8d0c60beeb6a0be2615fddb0b50182d6bf47426959ceffe
MD5 7592480be09c1e303bb508b7b8920f11
BLAKE2b-256 82c610a4e7f3fd287e946c3b1c489a6b78f1f1c68df41ed099e11ae4b4aa402d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page