Skip to content

Payer Enrollment

Resource

PayerEnrollmentResource

Operations on payer enrollments.

Source code in src/assured/resources/payer_enrollment.py
class PayerEnrollmentResource:
    """Operations on payer enrollments."""

    def __init__(self, client: AssuredClient) -> None:
        self._client = client

    # ---- Create ----

    async def create_group_enrollment(self, data: GroupEnrollmentRequestCreate) -> dict[str, Any]:
        return await self._client._post(_GROUP_ENROLL_PATH, json=data.model_dump(mode="json", exclude_none=False))

    async def create_provider_enrollment(self, data: ProviderEnrollmentRequestCreate) -> dict[str, Any]:
        return await self._client._post(_PROVIDER_ENROLL_PATH, json=data.model_dump(mode="json", exclude_none=False))

    async def add_existing_provider_enrollment(
        self, data: ExistingProviderEnrollmentCreate
    ) -> ExistingProviderEnrollment:
        path = "/api/v1/payer-enrollment/add-existing-provider-enrollment/"
        resp = await self._client._post(path, json=data.model_dump(mode="json", exclude_none=False))
        return ExistingProviderEnrollment.model_validate(resp)

    # ---- Health Plans ----

    async def list_health_plans(
        self, *, limit: int | None = None, offset: int | None = None, search: str | None = None
    ) -> list[HealthPlan]:
        params: dict[str, Any] = {}
        if limit is not None:
            params["limit"] = limit
        if offset is not None:
            params["offset"] = offset
        if search is not None:
            params["search"] = search
        data = await self._client._get_page(_HEALTH_PLAN_PATH, params=params)
        return [HealthPlan.model_validate(i) for i in data.get("results", [])]

    async def list_health_plans_all(self, *, search: str | None = None) -> list[HealthPlan]:
        params: dict[str, Any] = {}
        if search is not None:
            params["search"] = search
        records = await self._client._get_all_pages(_HEALTH_PLAN_PATH, params=params)
        return [HealthPlan.model_validate(i) for i in records]

    async def list_health_plans_df(self, *, search: str | None = None) -> pd.DataFrame:
        params: dict[str, Any] = {}
        if search is not None:
            params["search"] = search
        records = await self._client._get_all_pages(_HEALTH_PLAN_PATH, params=params)
        return self._client.to_dataframe(records)

    # ---- Enrollment Requests ----

    async def list_enrollment_requests(
        self, params: EnrollmentListParams | None = None, **kwargs: Any
    ) -> list[EnrollmentRequest]:
        raw_params = params.model_dump(exclude_none=False) if params else {}
        raw_params.update(kwargs)
        data = await self._client._get_page(_ENROLLMENT_LIST_PATH, params=raw_params)
        return [EnrollmentRequest.model_validate(i) for i in data.get("results", [])]

    async def list_enrollment_requests_all(
        self, params: EnrollmentListParams | None = None, **kwargs: Any
    ) -> list[EnrollmentRequest]:
        raw_params = params.model_dump(exclude_none=False) if params else {}
        raw_params.update(kwargs)
        records = await self._client._get_all_pages(_ENROLLMENT_LIST_PATH, params=raw_params)
        return [EnrollmentRequest.model_validate(i) for i in records]

    async def list_enrollment_requests_df(
        self, params: EnrollmentListParams | None = None, **kwargs: Any
    ) -> pd.DataFrame:
        raw_params = params.model_dump(exclude_none=False) if params else {}
        raw_params.update(kwargs)
        records = await self._client._get_all_pages(_ENROLLMENT_LIST_PATH, params=raw_params)
        return self._client.to_dataframe(records)

    # ---- Active Enrollments ----

    async def list_active_enrollments(
        self, params: ActiveEnrollmentListParams | None = None, **kwargs: Any
    ) -> list[ActiveEnrollment]:
        raw_params = params.model_dump(exclude_none=False) if params else {}
        raw_params.update(kwargs)
        data = await self._client._get_page(_ACTIVE_ENROLLMENT_PATH, params=raw_params)
        return [ActiveEnrollment.model_validate(i) for i in data.get("results", [])]

    async def list_active_enrollments_all(
        self, params: ActiveEnrollmentListParams | None = None, **kwargs: Any
    ) -> list[ActiveEnrollment]:
        raw_params = params.model_dump(exclude_none=False) if params else {}
        raw_params.update(kwargs)
        records = await self._client._get_all_pages(_ACTIVE_ENROLLMENT_PATH, params=raw_params)
        return [ActiveEnrollment.model_validate(i) for i in records]

    async def list_active_enrollments_df(
        self, params: ActiveEnrollmentListParams | None = None, **kwargs: Any
    ) -> pd.DataFrame:
        raw_params = params.model_dump(exclude_none=False) if params else {}
        raw_params.update(kwargs)
        records = await self._client._get_all_pages(_ACTIVE_ENROLLMENT_PATH, params=raw_params)
        return self._client.to_dataframe(records)

Models

GroupEnrollmentRequestCreate

Bases: BaseModel

Payload for creating a group enrollment request.

Source code in src/assured/models/payer_enrollment.py
class GroupEnrollmentRequestCreate(BaseModel):
    """Payload for creating a group enrollment request."""

    health_plan: str | None = None
    practice_location: str | None = None
    tax_entity: str | None = None
    effective_date: str | None = None

ProviderEnrollmentRequestCreate

Bases: BaseModel

Payload for creating a provider enrollment request.

Source code in src/assured/models/payer_enrollment.py
class ProviderEnrollmentRequestCreate(BaseModel):
    """Payload for creating a provider enrollment request."""

    provider: str | None = None
    health_plan: str | None = None
    practice_location: str | None = None
    tax_entity: str | None = None
    effective_date: str | None = None

ExistingProviderEnrollmentCreate

Bases: BaseModel

Payload for adding an existing provider enrollment.

Source code in src/assured/models/payer_enrollment.py
class ExistingProviderEnrollmentCreate(BaseModel):
    """Payload for adding an existing provider enrollment."""

    provider: str
    tax_entity: str
    state: str
    health_plan: str
    lobs: list[str]
    other_practice_locations: list[str] | None = None
    primary_practice_location: str
    par_status: str
    new_health_plan_id: str | None = None
    effective_date: str
    no_re_validation_date: bool | None = None
    re_validation_date: str | None = None
    no_proof_of_enrollment: bool | None = None
    proof_of_enrollments: str | None = None
    notes: str | None = None
    id: str | None = None

ExistingProviderEnrollment

Bases: ExistingProviderEnrollmentCreate

Response returned when an existing provider enrollment is created.

Source code in src/assured/models/payer_enrollment.py
class ExistingProviderEnrollment(ExistingProviderEnrollmentCreate):
    """Response returned when an existing provider enrollment is created."""

    no_health_plan_id: bool | None = None
    welcome_letters: list[Any] | None = None
    contract_files: list[Any] | None = None
    fee_structures: list[Any] | None = None
    client: str | None = None

HealthPlan

Bases: BaseModel

Source code in src/assured/models/payer_enrollment.py
class HealthPlan(BaseModel):
    id: str | None = None
    name: str | None = None
    payer_name: str | None = None

EnrollmentRequest

Bases: BaseModel

Source code in src/assured/models/payer_enrollment.py
class EnrollmentRequest(BaseModel):
    id: str | None = None
    status: str | None = None
    enrollment_type: str | None = None
    provider_name: str | None = None
    health_plan_name: str | None = None
    created_at: datetime | None = None
    updated_at: datetime | None = None

ActiveEnrollment

Bases: BaseModel

Source code in src/assured/models/payer_enrollment.py
class ActiveEnrollment(BaseModel):
    id: str | None = None
    provider_name: str | None = None
    health_plan_name: str | None = None
    status: str | None = None
    effective_date: str | None = None

EnrollmentListParams

Bases: BaseModel

Source code in src/assured/models/payer_enrollment.py
class EnrollmentListParams(BaseModel):
    limit: int | None = None
    offset: int | None = None
    search: str | None = None
    ordering: str | None = None
    status: str | None = None

ActiveEnrollmentListParams

Bases: BaseModel

Source code in src/assured/models/payer_enrollment.py
class ActiveEnrollmentListParams(BaseModel):
    limit: int | None = None
    offset: int | None = None
    search: str | None = None
    ordering: str | None = None