Module phc.easy.summary.options.clinical_counts

Expand source code
from enum import Enum
from typing import List, Optional, Union

from phc.easy.abstract.paging_api_item import PagingApiOptions


class SummarySearchMatchOption(str, Enum):
    FUZZY = "fuzzy"
    EXACT = "exact"


class SummaryClinicalCountsOptions(PagingApiOptions):
    match: Optional[SummarySearchMatchOption]
    code: Optional[Union[str, List[str]]]
    display: Optional[Union[str, List[str]]]
    system: Optional[Union[str, List[str]]]

    @classmethod
    def transform(cls, key, value):
        CODE_ATTRS = ["code", "display", "system"]

        if (
            key in CODE_ATTRS
            and isinstance(value, list)
            and any(filter(lambda v: "," in v, value))
        ):
            raise ValueError("Commas are not supported when searching codes")

        if key in CODE_ATTRS and isinstance(value, str):
            return (key + "s", value)

        if key in CODE_ATTRS and isinstance(value, list):
            return (key + "s", ",".join(value))

        return (key, value)

Classes

class SummaryClinicalCountsOptions (**data: Any)

Usage docs: https://docs.pydantic.dev/2.10/concepts/models/

A base class for creating Pydantic models.

Attributes

__class_vars__
The names of the class variables defined on the model.
__private_attributes__
Metadata about the private attributes of the model.
__signature__
The synthesized __init__ [Signature][inspect.Signature] of the model.
__pydantic_complete__
Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__
The core schema of the model.
__pydantic_custom_init__
Whether the model has a custom __init__ function.
__pydantic_decorators__
Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.
__pydantic_generic_metadata__
Metadata for generic models; contains data used for a similar purpose to args, origin, parameters in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__
Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__
The name of the post-init method for the model, if defined.
__pydantic_root_model__
Whether the model is a [RootModel][pydantic.root_model.RootModel].
__pydantic_serializer__
The pydantic-core SchemaSerializer used to dump instances of the model.
__pydantic_validator__
The pydantic-core SchemaValidator used to validate instances of the model.
__pydantic_fields__
A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.
__pydantic_computed_fields__
A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.
__pydantic_extra__
A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.
__pydantic_fields_set__
The names of fields explicitly set during instantiation.
__pydantic_private__
Values of private attributes set on the model instance.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Expand source code
class SummaryClinicalCountsOptions(PagingApiOptions):
    match: Optional[SummarySearchMatchOption]
    code: Optional[Union[str, List[str]]]
    display: Optional[Union[str, List[str]]]
    system: Optional[Union[str, List[str]]]

    @classmethod
    def transform(cls, key, value):
        CODE_ATTRS = ["code", "display", "system"]

        if (
            key in CODE_ATTRS
            and isinstance(value, list)
            and any(filter(lambda v: "," in v, value))
        ):
            raise ValueError("Commas are not supported when searching codes")

        if key in CODE_ATTRS and isinstance(value, str):
            return (key + "s", value)

        if key in CODE_ATTRS and isinstance(value, list):
            return (key + "s", ",".join(value))

        return (key, value)

Ancestors

Subclasses

Class variables

var code : Union[str, List[str], ForwardRef(None)]
var display : Union[str, List[str], ForwardRef(None)]
var match : Optional[SummarySearchMatchOption]
var model_config
var system : Union[str, List[str], ForwardRef(None)]

Static methods

def transform(key, value)
Expand source code
@classmethod
def transform(cls, key, value):
    CODE_ATTRS = ["code", "display", "system"]

    if (
        key in CODE_ATTRS
        and isinstance(value, list)
        and any(filter(lambda v: "," in v, value))
    ):
        raise ValueError("Commas are not supported when searching codes")

    if key in CODE_ATTRS and isinstance(value, str):
        return (key + "s", value)

    if key in CODE_ATTRS and isinstance(value, list):
        return (key + "s", ",".join(value))

    return (key, value)

Methods

def model_dump(self)

Inherited from: PagingApiOptions.model_dump

class SummarySearchMatchOption (value, names=None, *, module=None, qualname=None, type=None, start=1)

An enumeration.

Expand source code
class SummarySearchMatchOption(str, Enum):
    FUZZY = "fuzzy"
    EXACT = "exact"

Ancestors

  • builtins.str
  • enum.Enum

Class variables

var EXACT
var FUZZY