care.emr.resources.inventory.product_knowledge.spec module

class ProductTypeOptions(*values)

Bases: str, Enum

medication = 'medication'
nutritional_product = 'nutritional_product'
consumable = 'consumable'
class ProductNameTypes(*values)

Bases: str, Enum

trade_name = 'trade_name'
alias = 'alias'
original_name = 'original_name'
preferred = 'preferred'
class ProductKnowledgeStatusOptions(*values)

Bases: str, Enum

draft = 'draft'
active = 'active'
retired = 'retired'
unknown = 'unknown'
class DrugCharacteristicCode(*values)

Bases: str, Enum

imprint_code = 'imprint_code'
size = 'size'
shape = 'shape'
color = 'color'
coating = 'coating'
scoring = 'scoring'
image = 'image'
class ProductName(*, name_type: ProductNameTypes, name: str)

Bases: BaseModel

name_type: ProductNameTypes
name: str
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'name': FieldInfo(annotation=str, required=True), 'name_type': FieldInfo(annotation=ProductNameTypes, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class StorageGuideline(*, note: str, stability_duration: DurationSpec)

Bases: BaseModel

note: str
stability_duration: DurationSpec
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'note': FieldInfo(annotation=str, required=True), 'stability_duration': FieldInfo(annotation=DurationSpec, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class ProductStrength(*, ratio: Ratio, quantity: Quantity)

Bases: BaseModel

ratio: Ratio
quantity: Quantity
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'quantity': FieldInfo(annotation=Quantity, required=True), 'ratio': FieldInfo(annotation=Ratio, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class ProductIngredient(*, is_active: bool, substance: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, strength: ~care.emr.resources.inventory.product_knowledge.spec.ProductStrength)

Bases: BaseModel

is_active: bool
substance: BoundCoding
strength: ProductStrength
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'is_active': FieldInfo(annotation=bool, required=True), 'strength': FieldInfo(annotation=ProductStrength, required=True), 'substance': FieldInfo(annotation=ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class ProductNutrient(*, item: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, amount: ~care.emr.resources.inventory.product_knowledge.spec.ProductStrength)

Bases: BaseModel

item: BoundCoding
amount: ProductStrength
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'amount': FieldInfo(annotation=ProductStrength, required=True), 'item': FieldInfo(annotation=ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class DrugCharacteristic(*, code: DrugCharacteristicCode, value: str)

Bases: BaseModel

code: DrugCharacteristicCode
value: str
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'code': FieldInfo(annotation=DrugCharacteristicCode, required=True), 'value': FieldInfo(annotation=str, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class ProductDefinitionSpec(*, dosage_form: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None, intended_routes: list[~care.emr.resources.common.coding.Coding] = [], ingredients: list[~care.emr.resources.inventory.product_knowledge.spec.ProductIngredient] = [], nutrients: list[~care.emr.resources.inventory.product_knowledge.spec.ProductNutrient] = [], drug_characteristic: list[~care.emr.resources.inventory.product_knowledge.spec.DrugCharacteristic] = [])

Bases: BaseModel

dosage_form: BoundCoding | None
intended_routes: list[Coding]
ingredients: list[ProductIngredient]
nutrients: list[ProductNutrient]
drug_characteristic: list[DrugCharacteristic]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'dosage_form': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=True), 'drug_characteristic': FieldInfo(annotation=list[DrugCharacteristic], required=False, default=[]), 'ingredients': FieldInfo(annotation=list[ProductIngredient], required=False, default=[]), 'intended_routes': FieldInfo(annotation=list[Coding], required=False, default=[]), 'nutrients': FieldInfo(annotation=list[ProductNutrient], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class BaseProductKnowledgeSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, alternate_identifier: str | None = None, status: ~care.emr.resources.inventory.product_knowledge.spec.ProductKnowledgeStatusOptions, product_type: ~care.emr.resources.inventory.product_knowledge.spec.ProductTypeOptions, code: ~care.emr.resources.common.coding.Coding | None = None, base_unit: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, name: str, names: list[~care.emr.resources.inventory.product_knowledge.spec.ProductName] = [], storage_guidelines: list[~care.emr.resources.inventory.product_knowledge.spec.StorageGuideline] = [], definitional: ~care.emr.resources.inventory.product_knowledge.spec.ProductDefinitionSpec | None = None)

Bases: EMRResource

Base model for healthcare service

id: Annotated[UUID, UuidVersion(uuid_version=4)] | None
alternate_identifier: str | None
status: ProductKnowledgeStatusOptions
product_type: ProductTypeOptions
code: Coding | None
base_unit: BoundCoding
name: str
names: list[ProductName]
storage_guidelines: list[StorageGuideline]
definitional: ProductDefinitionSpec | None
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternate_identifier': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'base_unit': FieldInfo(annotation=ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, required=True), 'code': FieldInfo(annotation=Union[Coding, NoneType], required=False, default=None), 'definitional': FieldInfo(annotation=Union[ProductDefinitionSpec, NoneType], required=False, default=None), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'name': FieldInfo(annotation=str, required=True), 'names': FieldInfo(annotation=list[ProductName], required=False, default=[]), 'product_type': FieldInfo(annotation=ProductTypeOptions, required=True), 'status': FieldInfo(annotation=ProductKnowledgeStatusOptions, required=True), 'storage_guidelines': FieldInfo(annotation=list[StorageGuideline], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class ProductKnowledgeUpdateSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, alternate_identifier: str | None = None, status: ~care.emr.resources.inventory.product_knowledge.spec.ProductKnowledgeStatusOptions, product_type: ~care.emr.resources.inventory.product_knowledge.spec.ProductTypeOptions, code: ~care.emr.resources.common.coding.Coding | None = None, base_unit: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, name: str, names: list[~care.emr.resources.inventory.product_knowledge.spec.ProductName] = [], storage_guidelines: list[~care.emr.resources.inventory.product_knowledge.spec.StorageGuideline] = [], definitional: ~care.emr.resources.inventory.product_knowledge.spec.ProductDefinitionSpec | None = None, category: str | None = None, slug_value: ~typing.Annotated[str, ~annotated_types.MinLen(min_length=5), ~annotated_types.MaxLen(max_length=25), ~pydantic.functional_validators.AfterValidator(func=~care.emr.utils.slug_type.slug_validator)])

Bases: BaseProductKnowledgeSpec

category: str | None
slug_value: Annotated[str, FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=5), MaxLen(max_length=25)]), AfterValidator(func=slug_validator)]
perform_extra_deserialization(is_update, obj)
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternate_identifier': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'base_unit': FieldInfo(annotation=ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, required=True), 'category': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'code': FieldInfo(annotation=Union[Coding, NoneType], required=False, default=None), 'definitional': FieldInfo(annotation=Union[ProductDefinitionSpec, NoneType], required=False, default=None), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'name': FieldInfo(annotation=str, required=True), 'names': FieldInfo(annotation=list[ProductName], required=False, default=[]), 'product_type': FieldInfo(annotation=ProductTypeOptions, required=True), 'slug_value': FieldInfo(annotation=str, required=True, metadata=[MinLen(min_length=5), MaxLen(max_length=25), AfterValidator(func=<function slug_validator>)]), 'status': FieldInfo(annotation=ProductKnowledgeStatusOptions, required=True), 'storage_guidelines': FieldInfo(annotation=list[StorageGuideline], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class ProductKnowledgeWriteSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, alternate_identifier: str | None = None, status: ~care.emr.resources.inventory.product_knowledge.spec.ProductKnowledgeStatusOptions, product_type: ~care.emr.resources.inventory.product_knowledge.spec.ProductTypeOptions, code: ~care.emr.resources.common.coding.Coding | None = None, base_unit: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, name: str, names: list[~care.emr.resources.inventory.product_knowledge.spec.ProductName] = [], storage_guidelines: list[~care.emr.resources.inventory.product_knowledge.spec.StorageGuideline] = [], definitional: ~care.emr.resources.inventory.product_knowledge.spec.ProductDefinitionSpec | None = None, category: str | None = None, slug_value: ~typing.Annotated[str, ~annotated_types.MinLen(min_length=5), ~annotated_types.MaxLen(max_length=25), ~pydantic.functional_validators.AfterValidator(func=~care.emr.utils.slug_type.slug_validator)], facility: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None)

Bases: ProductKnowledgeUpdateSpec

Payment reconciliation write specification

facility: Annotated[UUID, UuidVersion(uuid_version=4)] | None
perform_extra_deserialization(is_update, obj)
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternate_identifier': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'base_unit': FieldInfo(annotation=ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, required=True), 'category': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'code': FieldInfo(annotation=Union[Coding, NoneType], required=False, default=None), 'definitional': FieldInfo(annotation=Union[ProductDefinitionSpec, NoneType], required=False, default=None), 'facility': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'name': FieldInfo(annotation=str, required=True), 'names': FieldInfo(annotation=list[ProductName], required=False, default=[]), 'product_type': FieldInfo(annotation=ProductTypeOptions, required=True), 'slug_value': FieldInfo(annotation=str, required=True, metadata=[MinLen(min_length=5), MaxLen(max_length=25), AfterValidator(func=<function slug_validator>)]), 'status': FieldInfo(annotation=ProductKnowledgeStatusOptions, required=True), 'storage_guidelines': FieldInfo(annotation=list[StorageGuideline], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class ProductKnowledgeReadSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, alternate_identifier: str | None = None, status: ~care.emr.resources.inventory.product_knowledge.spec.ProductKnowledgeStatusOptions, product_type: ~care.emr.resources.inventory.product_knowledge.spec.ProductTypeOptions, code: ~care.emr.resources.common.coding.Coding | None = None, base_unit: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, name: str, names: list[~care.emr.resources.inventory.product_knowledge.spec.ProductName] = [], storage_guidelines: list[~care.emr.resources.inventory.product_knowledge.spec.StorageGuideline] = [], definitional: ~care.emr.resources.inventory.product_knowledge.spec.ProductDefinitionSpec | None = None, is_instance_level: bool, category: dict | None = None, slug_config: dict, slug: str)

Bases: BaseProductKnowledgeSpec

Invoice read specification

is_instance_level: bool
category: dict | None
slug_config: dict
slug: str
classmethod perform_extra_serialization(mapping, obj)
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternate_identifier': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'base_unit': FieldInfo(annotation=ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, required=True), 'category': FieldInfo(annotation=Union[dict, NoneType], required=False, default=None), 'code': FieldInfo(annotation=Union[Coding, NoneType], required=False, default=None), 'definitional': FieldInfo(annotation=Union[ProductDefinitionSpec, NoneType], required=False, default=None), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'is_instance_level': FieldInfo(annotation=bool, required=True), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'name': FieldInfo(annotation=str, required=True), 'names': FieldInfo(annotation=list[ProductName], required=False, default=[]), 'product_type': FieldInfo(annotation=ProductTypeOptions, required=True), 'slug': FieldInfo(annotation=str, required=True), 'slug_config': FieldInfo(annotation=dict, required=True), 'status': FieldInfo(annotation=ProductKnowledgeStatusOptions, required=True), 'storage_guidelines': FieldInfo(annotation=list[StorageGuideline], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.