Source code for imednet.endpoints.subjects

"""Endpoint for managing subjects in a study."""

from typing import List

from imednet.core.endpoint.base import GenericListGetEndpoint
from imednet.core.endpoint.edc_mixin import EdcEndpointMixin
from imednet.models.subjects import Subject


[docs]class SubjectsEndpoint( EdcEndpointMixin, GenericListGetEndpoint[Subject], ): """ API endpoint for interacting with subjects in an iMedNet study. Provides methods to list and retrieve individual subjects. """ PATH = "subjects" MODEL = Subject _id_param = "subjectKey"
[docs] def list_by_site(self, study_key: str, site_id: str | int) -> List[Subject]: """ List subjects filtered by a specific site ID. Migrated from TUI logic to core SDK to support filtering. """ return self.list_by_attribute("site_id", site_id, study_key=study_key)
[docs] async def async_list_by_site(self, study_key: str, site_id: str | int) -> List[Subject]: """Asynchronously list subjects filtered by a specific site ID.""" return await self.async_list_by_attribute("site_id", site_id, study_key=study_key)