Skip to content

Api reference

components.insurance_coverage_display.public.api

build_coverage_display_from_rules

build_coverage_display_from_rules(
    coverage_source_id, coverage_rules, country, language
)
Source code in components/insurance_coverage_display/internal/business_logic/queries/coverage_display.py
def build_coverage_display_from_rules(
    coverage_source_id: str,
    coverage_rules: list[CoverageRule],
    country: Country,
    language: Lang,
) -> MemberInsuranceCoverageDisplay:
    bundle_choice_ids = {rule.bundle_choice_ref for rule in coverage_rules}
    untranslated_configs = get_bundle_choice_configs(bundle_choice_ids)
    member_related_untranslated_configs = restrict_containers_to_member_coverage(
        untranslated_configs,
        coverage_rules,
    )

    translations = get_all_translations_for_country_and_language(country, language)
    translated_display_configs = translate_bundle_choices_configs(
        member_related_untranslated_configs, translations, language
    )

    coverage_table_parts_configs = get_coverage_table_parts(country, language)
    sub_navigation_configs = get_sub_navigations(country, language)

    return build_member_coverage_display(
        coverage_source_id=coverage_source_id,
        coverage_rules=coverage_rules,
        bundle_choice_configs=translated_display_configs,
        coverage_table_parts_configs=coverage_table_parts_configs,
        sub_navigation_configs=sub_navigation_configs,
        country=country,
        language=language,
    )

components.insurance_coverage_display.public.commands

components.insurance_coverage_display.public.dependencies

COMPONENT_NAME module-attribute

COMPONENT_NAME = 'insurance_coverage_display'

InsuranceCoverageDisplayDependency

Bases: ABC

Abstract dependency for the insurance_coverage_display component.

get_country_code abstractmethod

get_country_code()

Return the country code of the app registering this dependency.

Source code in components/insurance_coverage_display/public/dependencies.py
@abstractmethod
def get_country_code(self) -> Country:
    """Return the country code of the app registering this dependency."""
    raise NotImplementedError

get_coverage_rules abstractmethod

get_coverage_rules(member_id, on_date=None)

Return (coverage_source_id, coverage_rules) for the given member on the given date, or None if the member has no current coverage. /!\ This is meant to be temporary. We should use the core stack once it's live.

Source code in components/insurance_coverage_display/public/dependencies.py
@abstractmethod
def get_coverage_rules(
    self, member_id: str, on_date: date | None = None
) -> "tuple[str, list[CoverageRule]] | None":
    r"""
    Return (coverage_source_id, coverage_rules) for the given member on the given date,
    or None if the member has no current coverage.
    /!\ This is meant to be temporary. We should use the core stack once it's live.
    """
    raise NotImplementedError

get_guarantee_display_catalog staticmethod

get_guarantee_display_catalog()

Return the guarantee display catalog for this country.

Default: the unmodified catalog from guarantee_catalog.public.queries.guarantees_definition.get_guarantee_catalog. Override per country to apply country-specific catalog transforms (e.g. FR alternative medicine split).

Source code in components/insurance_coverage_display/public/dependencies.py
@staticmethod
def get_guarantee_display_catalog() -> "GuaranteeCatalog":
    """
    Return the guarantee display catalog for this country.

    Default: the unmodified catalog from
    guarantee_catalog.public.queries.guarantees_definition.get_guarantee_catalog.
    Override per country to apply country-specific catalog transforms
    (e.g. FR alternative medicine split).
    """
    return get_guarantee_catalog()

get_app_dependency

get_app_dependency()

Retrieve the insurance_coverage_display dependency registered on the current app.

Source code in components/insurance_coverage_display/public/dependencies.py
def get_app_dependency() -> InsuranceCoverageDisplayDependency:
    """Retrieve the insurance_coverage_display dependency registered on the current app."""
    from flask import current_app

    app = cast("CustomFlask", current_app)
    return cast(
        "InsuranceCoverageDisplayDependency",
        app.get_component_dependency(COMPONENT_NAME),
    )

set_app_dependency

set_app_dependency(dependency)

Register the insurance_coverage_display dependency on the current app.

Source code in components/insurance_coverage_display/public/dependencies.py
def set_app_dependency(dependency: InsuranceCoverageDisplayDependency) -> None:
    """Register the insurance_coverage_display dependency on the current app."""
    from flask import current_app

    cast("CustomFlask", current_app).add_component_dependency(
        COMPONENT_NAME, dependency
    )

components.insurance_coverage_display.public.entities

CoverageContainer dataclass

CoverageContainer(
    *,
    id,
    icon,
    title,
    filters,
    grouped_guarantees,
    help_articles,
    search_keywords,
    display_order,
    subtitle=None
)

A coverage container grouping guarantees for a care type.

display_order instance-attribute

display_order

filters instance-attribute

filters

grouped_guarantees instance-attribute

grouped_guarantees

help_articles instance-attribute

help_articles

icon instance-attribute

icon

id instance-attribute

id

search_keywords instance-attribute

search_keywords

subtitle class-attribute instance-attribute

subtitle = None

title instance-attribute

title

CoverageContainerFilter dataclass

CoverageContainerFilter(*, id, title)

A filter option (e.g. adult/child).

id instance-attribute

id

title instance-attribute

title

CoverageTablePart dataclass

CoverageTablePart(
    *, id, title, subtitle, icon, coverage_containers
)

A top-level section of the coverage table (e.g. Optique, Hospitalisation).

coverage_containers instance-attribute

coverage_containers

icon instance-attribute

icon

id instance-attribute

id

subtitle instance-attribute

subtitle

title instance-attribute

title

GroupedGuarantees dataclass

GroupedGuarantees(
    *,
    reimbursement_amounts,
    reimbursement_conditions,
    cta_ids=list(),
    filter_id=None
)

Guarantees grouped by filter, with amounts and conditions.

cta_ids class-attribute instance-attribute

cta_ids = field(default_factory=list)

filter_id class-attribute instance-attribute

filter_id = None

reimbursement_amounts instance-attribute

reimbursement_amounts

reimbursement_conditions instance-attribute

reimbursement_conditions

HelpArticle dataclass

HelpArticle(*, type, value)

Link to a help article or universal screen.

type instance-attribute

type

value instance-attribute

value

HelpType

Bases: AlanBaseEnum

Type of help entry.

ARTICLE class-attribute instance-attribute

ARTICLE = 'article'

SCREEN class-attribute instance-attribute

SCREEN = 'screen'

MemberInsuranceCoverageDisplay dataclass

MemberInsuranceCoverageDisplay(
    *,
    insurance_coverage_id,
    language,
    coverage_table_parts,
    sub_navigations
)

Bases: FastDataClassJsonMixin

Full coverage display response for a member.

coverage_table_parts instance-attribute

coverage_table_parts

insurance_coverage_id instance-attribute

insurance_coverage_id

language instance-attribute

language

sub_navigations instance-attribute

sub_navigations

ReimbursementAmount dataclass

ReimbursementAmount(
    *, guarantee_ref, tag, title, subtitle=None
)

A reimbursement amount with optional subtitle.

guarantee_ref instance-attribute

guarantee_ref

subtitle class-attribute instance-attribute

subtitle = None

tag instance-attribute

tag

title instance-attribute

title

ReimbursementAmountTag dataclass

ReimbursementAmountTag(*, type, title)

Tag displayed on a reimbursement amount.

title instance-attribute

title

type instance-attribute

type

ReimbursementAmountTagType

Bases: AlanBaseEnum

Tag types for reimbursement amounts.

HUNDRED_PERCENT_SANTE class-attribute instance-attribute

HUNDRED_PERCENT_SANTE = '100_pct_sante'

INSIDE_NETWORK class-attribute instance-attribute

INSIDE_NETWORK = 'inside_network'

NON_OPTAM class-attribute instance-attribute

NON_OPTAM = 'non_optam'

NOT_HUNDRED_PERCENT_SANTE class-attribute instance-attribute

NOT_HUNDRED_PERCENT_SANTE = 'not_100_pct_sante'

OPTAM class-attribute instance-attribute

OPTAM = 'optam'

OUTSIDE_NETWORK class-attribute instance-attribute

OUTSIDE_NETWORK = 'outside_network'

PANIER_LIBRE class-attribute instance-attribute

PANIER_LIBRE = 'panier_libre'

PANIER_MAITRISE class-attribute instance-attribute

PANIER_MAITRISE = 'panier_maitrise'

REIMBURSEMENT_TEXT class-attribute instance-attribute

REIMBURSEMENT_TEXT = 'reimbursement_text'

ReimbursementCondition dataclass

ReimbursementCondition(*, title, content)

A condition or info block about reimbursement.

content instance-attribute

content

title instance-attribute

title

SubNavigation dataclass

SubNavigation(
    *, id, container_ids, title, icon, subtitle=None
)

A sub-navigation entry grouping multiple containers.

container_ids instance-attribute

container_ids

icon instance-attribute

icon

id instance-attribute

id

subtitle class-attribute instance-attribute

subtitle = None

title instance-attribute

title