care.emr.resources.medication.administration.spec module

class MedicationAdministrationStatus(*values)

Bases: str, Enum

completed = 'completed'
not_done = 'not_done'
entered_in_error = 'entered_in_error'
stopped = 'stopped'
in_progress = 'in_progress'
on_hold = 'on_hold'
unknown = 'unknown'
cancelled = 'cancelled'
class MedicationAdministrationCategory(*values)

Bases: str, Enum

inpatient = 'inpatient'
outpatient = 'outpatient'
community = 'community'
discharge = 'discharge'
class MedicationAdministrationPerformerFunction(*values)

Bases: str, Enum

performer = 'performer'
verifier = 'verifier'
witness = 'witness'
class MedicationAdministrationPerformer(*, actor: Annotated[UUID, UuidVersion(uuid_version=4)], function: MedicationAdministrationPerformerFunction | None)

Bases: BaseModel

actor: Annotated[UUID, UuidVersion(uuid_version=4)]
function: MedicationAdministrationPerformerFunction | None
classmethod validate_actor_exists(actor)
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]] = {'actor': FieldInfo(annotation=UUID, required=True, description='The user who performed the administration', metadata=[UuidVersion(uuid_version=4)]), 'function': FieldInfo(annotation=Union[MedicationAdministrationPerformerFunction, NoneType], required=True, description='The function of the performer')}

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 Dosage(*, text: str | None = None, site: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, route: ~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, dose: ~care.emr.resources.common.quantity.Quantity | None = None, rate: ~care.emr.resources.common.quantity.Quantity | None = None)

Bases: BaseModel

text: str | None
site: BoundCoding | None
route: BoundCoding | None
method: BoundCoding | None
dose: Quantity | None
rate: Quantity | 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]] = {'dose': FieldInfo(annotation=Union[Quantity, NoneType], required=False, default=None, description='The amount of medication administered'), 'method': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'rate': FieldInfo(annotation=Union[Quantity, NoneType], required=False, default=None, description='The speed of administration'), 'route': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'site': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'text': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Free text dosage instructions')}

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 BaseMedicationAdministrationSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] = None, status: ~care.emr.resources.medication.administration.spec.MedicationAdministrationStatus, status_reason: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, category: ~care.emr.resources.medication.administration.spec.MedicationAdministrationCategory | None = None, medication: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, authored_on: ~datetime.datetime | None = None, occurrence_period_start: ~datetime.datetime, occurrence_period_end: ~datetime.datetime | None = None, recorded: ~datetime.datetime | None = None, encounter: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)], request: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)], performer: list[~care.emr.resources.medication.administration.spec.MedicationAdministrationPerformer] | None = None, dosage: ~care.emr.resources.medication.administration.spec.Dosage | None = None, note: str | None = None)

Bases: EMRResource

id: Annotated[UUID, UuidVersion(uuid_version=4)]
status: MedicationAdministrationStatus
status_reason: BoundCoding | None
category: MedicationAdministrationCategory | None
medication: BoundCoding | None
authored_on: datetime | None
occurrence_period_start: datetime
occurrence_period_end: datetime | None
recorded: datetime | None
encounter: Annotated[UUID, UuidVersion(uuid_version=4)]
request: Annotated[UUID, UuidVersion(uuid_version=4)]
performer: list[MedicationAdministrationPerformer] | None
dosage: Dosage | None
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]] = {'authored_on': FieldInfo(annotation=Union[datetime, NoneType], required=False, default=None, description='When request was initially authored'), 'category': FieldInfo(annotation=Union[MedicationAdministrationCategory, NoneType], required=False, default=None), 'dosage': FieldInfo(annotation=Union[Dosage, NoneType], required=False, default=None, description='The dosage of the medication'), 'encounter': FieldInfo(annotation=UUID, required=True, description='The encounter where the administration was noted', metadata=[UuidVersion(uuid_version=4)]), 'id': FieldInfo(annotation=UUID, required=False, default=None, metadata=[UuidVersion(uuid_version=4)]), 'medication': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'note': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'occurrence_period_end': FieldInfo(annotation=Union[datetime, NoneType], required=False, default=None), 'occurrence_period_start': FieldInfo(annotation=datetime, required=True, description='When the medication was administration started'), 'performer': FieldInfo(annotation=Union[list[MedicationAdministrationPerformer], NoneType], required=False, default=None, description='Who administered the medication'), 'recorded': FieldInfo(annotation=Union[datetime, NoneType], required=False, default=None, description='When administration was recorded'), 'request': FieldInfo(annotation=UUID, required=True, description='The medication request under which the administration was made', metadata=[UuidVersion(uuid_version=4)]), 'status': FieldInfo(annotation=MedicationAdministrationStatus, required=True), 'status_reason': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, 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 MedicationAdministrationSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] = None, status: ~care.emr.resources.medication.administration.spec.MedicationAdministrationStatus, status_reason: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, category: ~care.emr.resources.medication.administration.spec.MedicationAdministrationCategory | None = None, medication: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, authored_on: ~datetime.datetime | None = None, occurrence_period_start: ~datetime.datetime, occurrence_period_end: ~datetime.datetime | None = None, recorded: ~datetime.datetime | None = None, encounter: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)], request: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)], performer: list[~care.emr.resources.medication.administration.spec.MedicationAdministrationPerformer] | None = None, dosage: ~care.emr.resources.medication.administration.spec.Dosage | None = None, note: str | None = None, administered_product: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None)

Bases: BaseMedicationAdministrationSpec

administered_product: Annotated[UUID, UuidVersion(uuid_version=4)] | None
classmethod validate_encounter_exists(encounter)
classmethod validate_request(request)
validate_administered_product()
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]] = {'administered_product': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'authored_on': FieldInfo(annotation=Union[datetime, NoneType], required=False, default=None, description='When request was initially authored'), 'category': FieldInfo(annotation=Union[MedicationAdministrationCategory, NoneType], required=False, default=None), 'dosage': FieldInfo(annotation=Union[Dosage, NoneType], required=False, default=None, description='The dosage of the medication'), 'encounter': FieldInfo(annotation=UUID, required=True, description='The encounter where the administration was noted', metadata=[UuidVersion(uuid_version=4)]), 'id': FieldInfo(annotation=UUID, required=False, default=None, metadata=[UuidVersion(uuid_version=4)]), 'medication': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'note': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'occurrence_period_end': FieldInfo(annotation=Union[datetime, NoneType], required=False, default=None), 'occurrence_period_start': FieldInfo(annotation=datetime, required=True, description='When the medication was administration started'), 'performer': FieldInfo(annotation=Union[list[MedicationAdministrationPerformer], NoneType], required=False, default=None, description='Who administered the medication'), 'recorded': FieldInfo(annotation=Union[datetime, NoneType], required=False, default=None, description='When administration was recorded'), 'request': FieldInfo(annotation=UUID, required=True, description='The medication request under which the administration was made', metadata=[UuidVersion(uuid_version=4)]), 'status': FieldInfo(annotation=MedicationAdministrationStatus, required=True), 'status_reason': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, 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 MedicationAdministrationUpdateSpec(*, meta: dict = {}, status: MedicationAdministrationStatus, note: str | None = None, occurrence_period_end: datetime | None = None)

Bases: EMRResource

status: MedicationAdministrationStatus
note: str | None
occurrence_period_end: datetime | 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]] = {'meta': FieldInfo(annotation=dict, required=False, default={}), 'note': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'occurrence_period_end': FieldInfo(annotation=Union[datetime, NoneType], required=False, default=None), 'status': FieldInfo(annotation=MedicationAdministrationStatus, 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 MedicationAdministrationReadSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] = None, status: ~care.emr.resources.medication.administration.spec.MedicationAdministrationStatus, status_reason: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, category: ~care.emr.resources.medication.administration.spec.MedicationAdministrationCategory | None = None, medication: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, authored_on: ~datetime.datetime | None = None, occurrence_period_start: ~datetime.datetime, occurrence_period_end: ~datetime.datetime | None = None, recorded: ~datetime.datetime | None = None, encounter: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)], request: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)], performer: list[~care.emr.resources.medication.administration.spec.MedicationAdministrationPerformer] | None = None, dosage: ~care.emr.resources.medication.administration.spec.Dosage | None = None, note: str | None = None, created_by: ~care.emr.resources.user.spec.UserSpec = <class 'dict'>, created_date: ~datetime.datetime, modified_date: ~datetime.datetime, administered_product: dict | None = None)

Bases: BaseMedicationAdministrationSpec

created_by: UserSpec
created_date: datetime
modified_date: datetime
administered_product: 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]] = {'administered_product': FieldInfo(annotation=Union[dict, NoneType], required=False, default=None), 'authored_on': FieldInfo(annotation=Union[datetime, NoneType], required=False, default=None, description='When request was initially authored'), 'category': FieldInfo(annotation=Union[MedicationAdministrationCategory, NoneType], required=False, default=None), 'created_by': FieldInfo(annotation=UserSpec, required=False, default=<class 'dict'>), 'created_date': FieldInfo(annotation=datetime, required=True), 'dosage': FieldInfo(annotation=Union[Dosage, NoneType], required=False, default=None, description='The dosage of the medication'), 'encounter': FieldInfo(annotation=UUID, required=True, description='The encounter where the administration was noted', metadata=[UuidVersion(uuid_version=4)]), 'id': FieldInfo(annotation=UUID, required=False, default=None, metadata=[UuidVersion(uuid_version=4)]), 'medication': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'modified_date': FieldInfo(annotation=datetime, required=True), 'note': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'occurrence_period_end': FieldInfo(annotation=Union[datetime, NoneType], required=False, default=None), 'occurrence_period_start': FieldInfo(annotation=datetime, required=True, description='When the medication was administration started'), 'performer': FieldInfo(annotation=Union[list[MedicationAdministrationPerformer], NoneType], required=False, default=None, description='Who administered the medication'), 'recorded': FieldInfo(annotation=Union[datetime, NoneType], required=False, default=None, description='When administration was recorded'), 'request': FieldInfo(annotation=UUID, required=True, description='The medication request under which the administration was made', metadata=[UuidVersion(uuid_version=4)]), 'status': FieldInfo(annotation=MedicationAdministrationStatus, required=True), 'status_reason': FieldInfo(annotation=Union[ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding, 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.