care.emr.resources.observation_definition.spec module¶
- class ObservationCategoryChoices(*values)¶
-
- 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)¶
-
- 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
- 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]] = {'color': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'display': FieldInfo(annotation=str, required=True), 'icon': FieldInfo(annotation=Union[str, NoneType], 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 NumericRangeSpec(*, interpretation: InterpretationSpec, min: float | None = None, max: float | None = None)¶
Bases:
BaseModel
- interpretation: InterpretationSpec¶
- validate_range()¶
- 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]] = {'interpretation': FieldInfo(annotation=InterpretationSpec, required=True), 'max': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'min': FieldInfo(annotation=Union[float, NoneType], required=False, default=None)}¶
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 ValueSetInterpretationSpec(*, interpretation: InterpretationSpec, valuset: str)¶
Bases:
BaseModel
- interpretation: InterpretationSpec¶
- 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]] = {'interpretation': FieldInfo(annotation=InterpretationSpec, required=True), 'valuset': 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 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]¶
- valueset_interpretation: list[ValueSetInterpretationSpec]¶
- validate_categorical_or_numeric()¶
- 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]] = {'abnormal_coded_value_set': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'conditions': FieldInfo(annotation=list[EvaluatorConditionSpec], required=False, default=[]), 'critical_coded_value_set': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'normal_coded_value_set': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'ranges': FieldInfo(annotation=list[NumericRangeSpec], required=False, default=[]), 'valueset_interpretation': FieldInfo(annotation=list[ValueSetInterpretationSpec], 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 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_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=ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, required=True), 'permitted_data_type': FieldInfo(annotation=QuestionType, required=True), 'permitted_unit': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'qualified_ranges': FieldInfo(annotation=list[QualifiedRangeSpec], 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 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
- status: ObservationStatusChoices¶
- category: ObservationCategoryChoices¶
- code: BoundCoding¶
- permitted_data_type: QuestionType¶
- component: list[ObservationDefinitionComponentSpec]¶
- body_site: BoundCoding | None¶
- method: BoundCoding | None¶
- permitted_unit: BoundCoding | None¶
- qualified_ranges: list[QualifiedRangeSpec]¶
- classmethod validate_data_type(permitted_data_type)¶
- validate_qualified_ranges_consistency()¶
- 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]] = {'body_site': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'category': FieldInfo(annotation=ObservationCategoryChoices, required=True), 'code': FieldInfo(annotation=ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, required=True), 'component': FieldInfo(annotation=list[ObservationDefinitionComponentSpec], required=False, default=[]), 'derived_from_uri': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'description': FieldInfo(annotation=str, required=True), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'method': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'permitted_data_type': FieldInfo(annotation=QuestionType, required=True), 'permitted_unit': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'qualified_ranges': FieldInfo(annotation=list[QualifiedRangeSpec], required=True), 'status': FieldInfo(annotation=ObservationStatusChoices, required=True), 'title': 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 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=25), ~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=25)]), AfterValidator(func=slug_validator)]¶
- classmethod validate_facility_exists(facility)¶
- 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]] = {'body_site': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'category': FieldInfo(annotation=ObservationCategoryChoices, required=True), 'code': FieldInfo(annotation=ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, required=True), 'component': FieldInfo(annotation=list[ObservationDefinitionComponentSpec], required=False, default=[]), 'derived_from_uri': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'description': FieldInfo(annotation=str, required=True), '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={}), 'method': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'permitted_data_type': FieldInfo(annotation=QuestionType, required=True), 'permitted_unit': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'qualified_ranges': FieldInfo(annotation=list[QualifiedRangeSpec], 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=ObservationStatusChoices, required=True), 'title': 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 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=25), ~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=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]] = {'body_site': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'category': FieldInfo(annotation=ObservationCategoryChoices, required=True), 'code': FieldInfo(annotation=ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, required=True), 'component': FieldInfo(annotation=list[ObservationDefinitionComponentSpec], required=False, default=[]), 'derived_from_uri': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'description': FieldInfo(annotation=str, required=True), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'method': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'permitted_data_type': FieldInfo(annotation=QuestionType, required=True), 'permitted_unit': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'qualified_ranges': FieldInfo(annotation=list[QualifiedRangeSpec], 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=ObservationStatusChoices, required=True), 'title': 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 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
- 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]] = {'body_site': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'category': FieldInfo(annotation=ObservationCategoryChoices, required=True), 'code': FieldInfo(annotation=ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, required=True), 'component': FieldInfo(annotation=list[ObservationDefinitionComponentSpec], required=False, default=[]), 'derived_from_uri': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'description': FieldInfo(annotation=str, required=True), 'facility': FieldInfo(annotation=Union[dict, NoneType], required=False, default=None), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'method': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'permitted_data_type': FieldInfo(annotation=QuestionType, required=True), 'permitted_unit': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'qualified_ranges': FieldInfo(annotation=list[QualifiedRangeSpec], required=True), 'slug': FieldInfo(annotation=str, required=True), 'slug_config': FieldInfo(annotation=dict, required=True), 'status': FieldInfo(annotation=ObservationStatusChoices, required=True), 'title': FieldInfo(annotation=str, required=True), 'version': FieldInfo(annotation=Union[int, NoneType], required=False, default=None)}¶
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.