care.emr.resources.medication.request.spec module

class MedicationRequestStatus(*values)

Bases: str, Enum

active = 'active'
on_hold = 'on_hold'
ended = 'ended'
stopped = 'stopped'
completed = 'completed'
cancelled = 'cancelled'
entered_in_error = 'entered_in_error'
draft = 'draft'
unknown = 'unknown'
class StatusReason(*values)

Bases: str, Enum

alt_choice = 'altchoice'
clarif = 'clarif'
drughigh = 'drughigh'
hospadm = 'hospadm'
labint = 'labint'
non_avail = 'non_avail'
preg = 'preg'
salg = 'salg'
sddi = 'sddi'
sdupther = 'sdupther'
sintol = 'sintol'
surg = 'surg'
washout = 'washout'
class MedicationRequestIntent(*values)

Bases: str, Enum

proposal = 'proposal'
plan = 'plan'
order = 'order'
original_order = 'original_order'
reflex_order = 'reflex_order'
filler_order = 'filler_order'
instance_order = 'instance_order'
class MedicationRequestPriority(*values)

Bases: str, Enum

routine = 'routine'
urgent = 'urgent'
asap = 'asap'
stat = 'stat'
class MedicationRequestCategory(*values)

Bases: str, Enum

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

Bases: str, Enum

complete = 'complete'
partial = 'partial'
incomplete = 'incomplete'
declined = 'declined'
class TimingUnit(*values)

Bases: str, Enum

s = 's'
min = 'min'
h = 'h'
d = 'd'
wk = 'wk'
mo = 'mo'
a = 'a'
class DoseType(*values)

Bases: str, Enum

ordered = 'ordered'
calculated = 'calculated'
class DosageQuantity(*, value: float, unit: Coding)

Bases: BaseModel

value: float
unit: Coding
model_config: ClassVar[ConfigDict] = {}

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

class TimingQuantity(*, value: float, unit: TimingUnit)

Bases: BaseModel

value: float
unit: TimingUnit
model_config: ClassVar[ConfigDict] = {}

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

class DoseRange(*, low: DosageQuantity, high: DosageQuantity)

Bases: BaseModel

low: DosageQuantity
high: DosageQuantity
model_config: ClassVar[ConfigDict] = {}

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

class DoseAndRate(*, type: DoseType, dose_range: DoseRange | None = None, dose_quantity: DosageQuantity | None = None)

Bases: BaseModel

type: DoseType
dose_range: DoseRange | None
dose_quantity: DosageQuantity | None
model_config: ClassVar[ConfigDict] = {}

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

class TimingRepeat(*, frequency: int, period: float, period_unit: TimingUnit, bounds_duration: TimingQuantity)

Bases: BaseModel

frequency: int
period: float
period_unit: TimingUnit
bounds_duration: TimingQuantity
model_config: ClassVar[ConfigDict] = {}

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

class Timing(*, repeat: TimingRepeat, code: Coding)

Bases: BaseModel

repeat: TimingRepeat
code: Coding
model_config: ClassVar[ConfigDict] = {}

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

class DosageInstruction(*, sequence: int | None = None, text: str | None = None, additional_instruction: list[~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding] | None = None, patient_instruction: str | None = None, timing: ~care.emr.resources.medication.request.spec.Timing | None = None, as_needed_boolean: bool, as_needed_for: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | 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_and_rate: ~care.emr.resources.medication.request.spec.DoseAndRate | None = None, max_dose_per_period: ~care.emr.resources.medication.request.spec.DoseRange | None = None)

Bases: BaseModel

sequence: int | None
text: str | None
additional_instruction: list[~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding] | None
patient_instruction: str | None
timing: Timing | None
as_needed_boolean: bool
as_needed_for: BoundCoding | None
site: BoundCoding | None
route: BoundCoding | None
method: BoundCoding | None
dose_and_rate: DoseAndRate | None
max_dose_per_period: DoseRange | None
model_config: ClassVar[ConfigDict] = {}

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

class MedicationRequestResource(*, meta: dict = {})

Bases: EMRResource

model_config: ClassVar[ConfigDict] = {}

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

class BaseMedicationRequestSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] = None, status: ~care.emr.resources.medication.request.spec.MedicationRequestStatus, status_reason: ~care.emr.resources.medication.request.spec.StatusReason | None = None, intent: ~care.emr.resources.medication.request.spec.MedicationRequestIntent, category: ~care.emr.resources.medication.request.spec.MedicationRequestCategory, priority: ~care.emr.resources.medication.request.spec.MedicationRequestPriority, do_not_perform: bool, medication: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, dosage_instruction: list[~care.emr.resources.medication.request.spec.DosageInstruction], authored_on: ~datetime.datetime, note: str | None = None, dispense_status: ~care.emr.resources.medication.request.spec.MedicationRequestDispenseStatus | None = None)

Bases: MedicationRequestResource

id: Annotated[UUID, UuidVersion(uuid_version=4)]
status: MedicationRequestStatus
status_reason: StatusReason | None
intent: MedicationRequestIntent
category: MedicationRequestCategory
priority: MedicationRequestPriority
do_not_perform: bool
medication: BoundCoding | None
dosage_instruction: list[DosageInstruction]
authored_on: datetime
note: str | None
dispense_status: MedicationRequestDispenseStatus | None
model_config: ClassVar[ConfigDict] = {}

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

class CreatePrescription(*, name: str | None = None, note: str | None = None, alternate_identifier: str)

Bases: BaseModel

name: str | None
note: str | None
alternate_identifier: str
model_config: ClassVar[ConfigDict] = {}

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

class MedicationRequestSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] = None, status: ~care.emr.resources.medication.request.spec.MedicationRequestStatus, status_reason: ~care.emr.resources.medication.request.spec.StatusReason | None = None, intent: ~care.emr.resources.medication.request.spec.MedicationRequestIntent, category: ~care.emr.resources.medication.request.spec.MedicationRequestCategory, priority: ~care.emr.resources.medication.request.spec.MedicationRequestPriority, do_not_perform: bool, medication: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, dosage_instruction: list[~care.emr.resources.medication.request.spec.DosageInstruction], authored_on: ~datetime.datetime, note: str | None = None, dispense_status: ~care.emr.resources.medication.request.spec.MedicationRequestDispenseStatus | None = None, requester: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, requested_product: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, prescription: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] | None = None, create_prescription: ~care.emr.resources.medication.request.spec.CreatePrescription | None = None, encounter: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)])

Bases: BaseMedicationRequestSpec

requester: Annotated[UUID, UuidVersion(uuid_version=4)] | None
requested_product: Annotated[UUID, UuidVersion(uuid_version=4)] | None
prescription: Annotated[UUID, UuidVersion(uuid_version=4)] | None
create_prescription: CreatePrescription | None
encounter: Annotated[UUID, UuidVersion(uuid_version=4)]
validate_prescription()
validate_request_code()
classmethod validate_encounter_exists(encounter)
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 MedicationRequestUpdateSpec(*, meta: dict = {}, status: MedicationRequestStatus, note: str | None = None, dispense_status: MedicationRequestDispenseStatus | None = None)

Bases: MedicationRequestResource

status: MedicationRequestStatus
note: str | None
dispense_status: MedicationRequestDispenseStatus | None
model_config: ClassVar[ConfigDict] = {}

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

class MedicationRequestReadWithoutPrescriptionSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] = None, status: ~care.emr.resources.medication.request.spec.MedicationRequestStatus, status_reason: ~care.emr.resources.medication.request.spec.StatusReason | None = None, intent: ~care.emr.resources.medication.request.spec.MedicationRequestIntent, category: ~care.emr.resources.medication.request.spec.MedicationRequestCategory, priority: ~care.emr.resources.medication.request.spec.MedicationRequestPriority, do_not_perform: bool, medication: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, dosage_instruction: list[~care.emr.resources.medication.request.spec.DosageInstruction], authored_on: ~datetime.datetime, note: str | None = None, dispense_status: ~care.emr.resources.medication.request.spec.MedicationRequestDispenseStatus | None = None, created_by: ~care.emr.resources.user.spec.UserSpec = {}, updated_by: ~care.emr.resources.user.spec.UserSpec = {}, created_date: ~datetime.datetime, modified_date: ~datetime.datetime, requested_product: dict | None = None, requester: ~care.emr.resources.user.spec.UserSpec | None = None)

Bases: BaseMedicationRequestSpec

created_by: UserSpec
updated_by: UserSpec
created_date: datetime
modified_date: datetime
requested_product: dict | None
requester: UserSpec | None
classmethod perform_extra_serialization(mapping, obj)
model_config: ClassVar[ConfigDict] = {}

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

class MedicationRequestReadSpec(*, meta: dict = {}, id: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)] = None, status: ~care.emr.resources.medication.request.spec.MedicationRequestStatus, status_reason: ~care.emr.resources.medication.request.spec.StatusReason | None = None, intent: ~care.emr.resources.medication.request.spec.MedicationRequestIntent, category: ~care.emr.resources.medication.request.spec.MedicationRequestCategory, priority: ~care.emr.resources.medication.request.spec.MedicationRequestPriority, do_not_perform: bool, medication: ~care.emr.utils.valueset_coding_type.ValueSetBoundCoding.__class_getitem__.<locals>.BoundCoding | None = None, dosage_instruction: list[~care.emr.resources.medication.request.spec.DosageInstruction], authored_on: ~datetime.datetime, note: str | None = None, dispense_status: ~care.emr.resources.medication.request.spec.MedicationRequestDispenseStatus | None = None, created_by: ~care.emr.resources.user.spec.UserSpec = {}, updated_by: ~care.emr.resources.user.spec.UserSpec = {}, created_date: ~datetime.datetime, modified_date: ~datetime.datetime, requested_product: dict | None = None, requester: ~care.emr.resources.user.spec.UserSpec | None = None, prescription: dict | None = None, encounter: ~typing.Annotated[~uuid.UUID, ~pydantic.types.UuidVersion(uuid_version=4)])

Bases: MedicationRequestReadWithoutPrescriptionSpec

prescription: dict | None
encounter: Annotated[UUID, UuidVersion(uuid_version=4)]
classmethod perform_extra_serialization(mapping, obj)
model_config: ClassVar[ConfigDict] = {}

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