care.emr.resources.specimen.spec module

class SpecimenStatusOptions(*values)

Bases: str, Enum

Status options for specimen

draft = 'draft'
available = 'available'
unavailable = 'unavailable'
unsatisfactory = 'unsatisfactory'
entered_in_error = 'entered_in_error'
class QuantitySpec(*, value: float, unit: Coding)

Bases: BaseModel

Represents a quantity with value and unit

value: float
unit: Coding
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]] = {'unit': FieldInfo(annotation=Coding, required=True), 'value': FieldInfo(annotation=float, 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 DurationSpec(*, value: int, unit: Coding)

Bases: BaseModel

Duration specification using value and unit

value: int
unit: Coding
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]] = {'unit': FieldInfo(annotation=Coding, required=True), 'value': FieldInfo(annotation=int, 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 CollectionSpec(*, collector: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, collected_date_time: ~datetime.datetime | None = None, quantity: ~care.emr.resources.specimen.spec.QuantitySpec | None = None, method: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, procedure: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, body_site: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, fasting_status_codeable_concept: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, fasting_status_duration: ~care.emr.resources.specimen.spec.DurationSpec | None = None)

Bases: BaseModel

Specimen collection details

collector: Annotated[UUID, UuidVersion(uuid_version=4)] | None
collected_date_time: datetime | None
quantity: QuantitySpec | None
method: BoundCoding | None
procedure: Annotated[UUID, UuidVersion(uuid_version=4)] | None
body_site: BoundCoding | None
fasting_status_codeable_concept: BoundCoding | None
fasting_status_duration: DurationSpec | None
classmethod validate_collector(collector)
serialize_model()
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), 'collected_date_time': FieldInfo(annotation=Union[datetime, NoneType], required=False, default=None), 'collector': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'fasting_status_codeable_concept': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'fasting_status_duration': FieldInfo(annotation=Union[DurationSpec, NoneType], required=False, default=None), 'method': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'procedure': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'quantity': FieldInfo(annotation=Union[QuantitySpec, 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 ProcessingSpec(*, description: str, method: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, performer: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, time_date_time: str)

Bases: BaseModel

Specimen processing details

description: str
method: BoundCoding | None
performer: Annotated[UUID, UuidVersion(uuid_version=4)] | None
time_date_time: str
classmethod validate_performer(performer)
serialize_model()
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]] = {'description': FieldInfo(annotation=str, required=True), 'method': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'performer': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'time_date_time': 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 BaseSpecimenSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, accession_identifier: str = '', status: ~care.emr.resources.specimen.spec.SpecimenStatusOptions, specimen_type: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, received_time: str | None = None, collection: ~care.emr.resources.specimen.spec.CollectionSpec | None = None, processing: list[~care.emr.resources.specimen.spec.ProcessingSpec] = [], condition: list[~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding] = [], note: str | None = None)

Bases: EMRResource

Base model for specimen

id: Annotated[UUID, UuidVersion(uuid_version=4)] | None
accession_identifier: str
status: SpecimenStatusOptions
specimen_type: BoundCoding
received_time: str | None
collection: CollectionSpec | None
processing: list[ProcessingSpec]
condition: list[~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding]
note: str | 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]] = {'accession_identifier': FieldInfo(annotation=str, required=False, default=''), 'collection': FieldInfo(annotation=Union[CollectionSpec, NoneType], required=False, default=None), 'condition': FieldInfo(annotation=list[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding], required=False, default=[]), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'note': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'processing': FieldInfo(annotation=list[ProcessingSpec], required=False, default=[]), 'received_time': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'specimen_type': FieldInfo(annotation=ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, required=True), 'status': FieldInfo(annotation=SpecimenStatusOptions, 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 SpecimenUpdateSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, accession_identifier: str = '', status: ~care.emr.resources.specimen.spec.SpecimenStatusOptions | None = None, specimen_type: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, received_time: str | None = None, collection: ~care.emr.resources.specimen.spec.CollectionSpec | None = None, processing: list[~care.emr.resources.specimen.spec.ProcessingSpec] = [], condition: list[~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding] = [], note: str | None = None)

Bases: BaseSpecimenSpec

Specimen update specification

status: SpecimenStatusOptions | None
specimen_type: BoundCoding | 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]] = {'accession_identifier': FieldInfo(annotation=str, required=False, default=''), 'collection': FieldInfo(annotation=Union[CollectionSpec, NoneType], required=False, default=None), 'condition': FieldInfo(annotation=list[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding], required=False, default=[]), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'note': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'processing': FieldInfo(annotation=list[ProcessingSpec], required=False, default=[]), 'received_time': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'specimen_type': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'status': FieldInfo(annotation=Union[SpecimenStatusOptions, 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 SpecimenCreateSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, accession_identifier: str = '', status: ~care.emr.resources.specimen.spec.SpecimenStatusOptions, specimen_type: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, received_time: str | None = None, collection: ~care.emr.resources.specimen.spec.CollectionSpec | None = None, processing: list[~care.emr.resources.specimen.spec.ProcessingSpec] = [], condition: list[~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding] = [], note: str | None = None, subject_patient: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)], subject_encounter: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)], request: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None)

Bases: BaseSpecimenSpec

Specimen creation specification

subject_patient: Annotated[UUID, UuidVersion(uuid_version=4)]
subject_encounter: Annotated[UUID, UuidVersion(uuid_version=4)]
request: Annotated[UUID, UuidVersion(uuid_version=4)] | 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]] = {'accession_identifier': FieldInfo(annotation=str, required=False, default=''), 'collection': FieldInfo(annotation=Union[CollectionSpec, NoneType], required=False, default=None), 'condition': FieldInfo(annotation=list[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding], required=False, default=[]), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'note': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'processing': FieldInfo(annotation=list[ProcessingSpec], required=False, default=[]), 'received_time': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'request': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'specimen_type': FieldInfo(annotation=ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, required=True), 'status': FieldInfo(annotation=SpecimenStatusOptions, required=True), 'subject_encounter': FieldInfo(annotation=UUID, required=True, metadata=[UuidVersion(uuid_version=4)]), 'subject_patient': FieldInfo(annotation=UUID, required=True, metadata=[UuidVersion(uuid_version=4)])}

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 SpecimenReadSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, accession_identifier: str = '', status: ~care.emr.resources.specimen.spec.SpecimenStatusOptions, specimen_type: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, received_time: str | None = None, collection: ~care.emr.resources.specimen.spec.CollectionSpec | None = None, processing: list[~care.emr.resources.specimen.spec.ProcessingSpec] = [], condition: list[~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding] = [], note: str | None = None, specimen_definition: dict | None = None)

Bases: BaseSpecimenSpec

Specimen read specification

specimen_definition: dict | None
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]] = {'accession_identifier': FieldInfo(annotation=str, required=False, default=''), 'collection': FieldInfo(annotation=Union[CollectionSpec, NoneType], required=False, default=None), 'condition': FieldInfo(annotation=list[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding], required=False, default=[]), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'note': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'processing': FieldInfo(annotation=list[ProcessingSpec], required=False, default=[]), 'received_time': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'specimen_definition': FieldInfo(annotation=Union[dict, NoneType], required=False, default=None), 'specimen_type': FieldInfo(annotation=ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, required=True), 'status': FieldInfo(annotation=SpecimenStatusOptions, 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 SpecimenRetrieveSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, accession_identifier: str = '', status: ~care.emr.resources.specimen.spec.SpecimenStatusOptions, specimen_type: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, received_time: str | None = None, collection: ~care.emr.resources.specimen.spec.CollectionSpec | None = None, processing: list[~care.emr.resources.specimen.spec.ProcessingSpec] = [], condition: list[~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding] = [], note: str | None = None, specimen_definition: dict | None = None, service_request: dict | None = None)

Bases: SpecimenReadSpec

Specimen retrieve specification

service_request: dict | None
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]] = {'accession_identifier': FieldInfo(annotation=str, required=False, default=''), 'collection': FieldInfo(annotation=Union[CollectionSpec, NoneType], required=False, default=None), 'condition': FieldInfo(annotation=list[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding], required=False, default=[]), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'note': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'processing': FieldInfo(annotation=list[ProcessingSpec], required=False, default=[]), 'received_time': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'service_request': FieldInfo(annotation=Union[dict, NoneType], required=False, default=None), 'specimen_definition': FieldInfo(annotation=Union[dict, NoneType], required=False, default=None), 'specimen_type': FieldInfo(annotation=ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, required=True), 'status': FieldInfo(annotation=SpecimenStatusOptions, 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.