care.emr.resources.observation_definition.spec module

class ObservationCategoryChoices(*values)

Bases: str, Enum

social_history = 'social_history'
vital_signs = 'vital_signs'
imaging = 'imaging'
laboratory = 'laboratory'
procedure = 'procedure'
survey = 'survey'
exam = 'exam'
therapy = 'therapy'
activity = 'activity'
class ObservationStatusChoices(*values)

Bases: str, Enum

draft = 'draft'
active = 'active'
retired = 'retired'
unknown = 'unknown'
validate_question_type(question_type)
class InterpretationSpec(*, display: str, icon: str | None = '', color: str | None = '')

Bases: BaseModel

display: str
icon: str | None
color: str | None
model_config: ClassVar[ConfigDict] = {}

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

class NumericRangeSpec(*, interpretation: InterpretationSpec, min: float | None = None, max: float | None = None)

Bases: BaseModel

interpretation: InterpretationSpec
min: float | None
max: float | None
validate_range()
model_config: ClassVar[ConfigDict] = {}

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

class ValueSetInterpretationSpec(*, interpretation: InterpretationSpec, valuset: str)

Bases: BaseModel

interpretation: InterpretationSpec
valuset: str
model_config: ClassVar[ConfigDict] = {}

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

class QualifiedRangeSpec(*, conditions: list[EvaluatorConditionSpec] = [], ranges: list[NumericRangeSpec] = [], normal_coded_value_set: str | None = '', critical_coded_value_set: str | None = '', abnormal_coded_value_set: str | None = '', valueset_interpretation: list[ValueSetInterpretationSpec] = [])

Bases: BaseModel

conditions: list[EvaluatorConditionSpec]
ranges: list[NumericRangeSpec]
normal_coded_value_set: str | None
critical_coded_value_set: str | None
abnormal_coded_value_set: str | None
valueset_interpretation: list[ValueSetInterpretationSpec]
validate_categorical_or_numeric()
model_config: ClassVar[ConfigDict] = {}

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

class ObservationDefinitionComponentSpec(*, code: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, permitted_data_type: ~care.emr.resources.questionnaire.spec.QuestionType, permitted_unit: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, qualified_ranges: list[~care.emr.resources.observation_definition.spec.QualifiedRangeSpec])

Bases: BaseModel

code: BoundCoding
permitted_data_type: QuestionType
permitted_unit: BoundCoding | None
qualified_ranges: list[QualifiedRangeSpec]
classmethod validate_data_type(permitted_data_type)
model_config: ClassVar[ConfigDict] = {}

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

class BaseObservationDefinitionSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, title: str, status: ~care.emr.resources.observation_definition.spec.ObservationStatusChoices, description: str, category: ~care.emr.resources.observation_definition.spec.ObservationCategoryChoices, code: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, permitted_data_type: ~care.emr.resources.questionnaire.spec.QuestionType, component: list[~care.emr.resources.observation_definition.spec.ObservationDefinitionComponentSpec] = [], body_site: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, method: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, permitted_unit: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, derived_from_uri: str | None = None, qualified_ranges: list[~care.emr.resources.observation_definition.spec.QualifiedRangeSpec])

Bases: EMRResource

id: Annotated[UUID, UuidVersion(uuid_version=4)] | None
title: str
status: ObservationStatusChoices
description: str
category: ObservationCategoryChoices
code: BoundCoding
permitted_data_type: QuestionType
component: list[ObservationDefinitionComponentSpec]
body_site: BoundCoding | None
method: BoundCoding | None
permitted_unit: BoundCoding | None
derived_from_uri: str | None
qualified_ranges: list[QualifiedRangeSpec]
classmethod validate_data_type(permitted_data_type)
validate_qualified_ranges_consistency()
model_config: ClassVar[ConfigDict] = {}

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

class ObservationDefinitionCreateSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, title: str, status: ~care.emr.resources.observation_definition.spec.ObservationStatusChoices, description: str, category: ~care.emr.resources.observation_definition.spec.ObservationCategoryChoices, code: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, permitted_data_type: ~care.emr.resources.questionnaire.spec.QuestionType, component: list[~care.emr.resources.observation_definition.spec.ObservationDefinitionComponentSpec] = [], body_site: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, method: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, permitted_unit: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, derived_from_uri: str | None = None, qualified_ranges: list[~care.emr.resources.observation_definition.spec.QualifiedRangeSpec], facility: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, slug_value: ~typing.Annotated[str, ~annotated_types.MinLen(min_length=5), ~annotated_types.MaxLen(max_length=36), ~pydantic.functional_validators.AfterValidator(func=~care.emr.utils.slug_type.slug_validator)])

Bases: BaseObservationDefinitionSpec

facility: Annotated[UUID, UuidVersion(uuid_version=4)] | None
slug_value: Annotated[str, FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=5), MaxLen(max_length=36)]), AfterValidator(func=slug_validator)]
classmethod validate_facility_exists(facility)
perform_extra_deserialization(is_update, obj)
model_config: ClassVar[ConfigDict] = {}

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

class ObservationDefinitionUpdateSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, title: str, status: ~care.emr.resources.observation_definition.spec.ObservationStatusChoices, description: str, category: ~care.emr.resources.observation_definition.spec.ObservationCategoryChoices, code: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, permitted_data_type: ~care.emr.resources.questionnaire.spec.QuestionType, component: list[~care.emr.resources.observation_definition.spec.ObservationDefinitionComponentSpec] = [], body_site: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, method: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, permitted_unit: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, derived_from_uri: str | None = None, qualified_ranges: list[~care.emr.resources.observation_definition.spec.QualifiedRangeSpec], slug_value: ~typing.Annotated[str, ~annotated_types.MinLen(min_length=5), ~annotated_types.MaxLen(max_length=36), ~pydantic.functional_validators.AfterValidator(func=~care.emr.utils.slug_type.slug_validator)])

Bases: BaseObservationDefinitionSpec

slug_value: Annotated[str, FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=5), MaxLen(max_length=36)]), AfterValidator(func=slug_validator)]
perform_extra_deserialization(is_update, obj)
model_config: ClassVar[ConfigDict] = {}

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

class ObservationDefinitionReadSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, title: str, status: ~care.emr.resources.observation_definition.spec.ObservationStatusChoices, description: str, category: ~care.emr.resources.observation_definition.spec.ObservationCategoryChoices, code: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, permitted_data_type: ~care.emr.resources.questionnaire.spec.QuestionType, component: list[~care.emr.resources.observation_definition.spec.ObservationDefinitionComponentSpec] = [], body_site: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, method: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, permitted_unit: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, derived_from_uri: str | None = None, qualified_ranges: list[~care.emr.resources.observation_definition.spec.QualifiedRangeSpec], version: int | None = None, facility: dict | None = None, slug_config: dict, slug: str)

Bases: BaseObservationDefinitionSpec

version: int | None
facility: dict | None
slug_config: dict
slug: str
classmethod perform_extra_serialization(mapping, obj)
model_config: ClassVar[ConfigDict] = {}

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