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.2.tar.gz (33.3 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.2-py3-none-any.whl (63.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: edc_retinopathy-0.7.2.tar.gz
  • Upload date:
  • Size: 33.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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.2.tar.gz
Algorithm Hash digest
SHA256 b73e36692744e492c4452416c3f3901a3f9cfa1576e65b72eb22a251c1b9e454
MD5 06e19ff409e2649e56c41cc17445d481
BLAKE2b-256 ad08e4b592a724789e5d882eb58df538f7b640dc3771d8eaec1a77850e7822de

See more details on using hashes here.

File details

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

File metadata

  • Download URL: edc_retinopathy-0.7.2-py3-none-any.whl
  • Upload date:
  • Size: 63.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 263b2dd7a913395f6dadf655738d6c1c509064bab1b49fab6a0c5b40c86c6d90
MD5 00d09b666d90830e3502f9188e028ad2
BLAKE2b-256 9d5deb45796d7b395d720e9772c43d22a2280c89f7895234fd48f4ab6ab59d18

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