moved procedures field from treatment to appointment and updated schema
This commit is contained in:
@@ -159,7 +159,6 @@ def create_treatment(payload: TreatmentCreate) -> Treatment:
|
|||||||
id=_treatments_next_id,
|
id=_treatments_next_id,
|
||||||
label=payload.label,
|
label=payload.label,
|
||||||
description=payload.description,
|
description=payload.description,
|
||||||
procedures=payload.procedures,
|
|
||||||
metadata={"createdOn": now, "updatedOn": now} if payload.metadata else None,
|
metadata={"createdOn": now, "updatedOn": now} if payload.metadata else None,
|
||||||
)
|
)
|
||||||
_treatments[_treatments_next_id] = treatment
|
_treatments[_treatments_next_id] = treatment
|
||||||
@@ -176,7 +175,6 @@ def update_treatment(treatment_id: int, payload: TreatmentCreate) -> Treatment:
|
|||||||
id=treatment_id,
|
id=treatment_id,
|
||||||
label=payload.label,
|
label=payload.label,
|
||||||
description=payload.description if payload.description is not None else current.description,
|
description=payload.description if payload.description is not None else current.description,
|
||||||
procedures=payload.procedures,
|
|
||||||
metadata={"createdOn": current.metadata["createdOn"] if current.metadata else None, "updatedOn": now},
|
metadata={"createdOn": current.metadata["createdOn"] if current.metadata else None, "updatedOn": now},
|
||||||
)
|
)
|
||||||
_treatments[treatment_id] = updated
|
_treatments[treatment_id] = updated
|
||||||
@@ -271,6 +269,7 @@ def create_appointment(payload: AppointmentCreate) -> Appointment:
|
|||||||
id=_appointments_next_id,
|
id=_appointments_next_id,
|
||||||
date=payload.date,
|
date=payload.date,
|
||||||
notes=payload.notes,
|
notes=payload.notes,
|
||||||
|
procedures=payload.procedures,
|
||||||
pet=_pets[payload.pet_id],
|
pet=_pets[payload.pet_id],
|
||||||
vet=_vets[payload.vet_id],
|
vet=_vets[payload.vet_id],
|
||||||
treatment=_treatments[payload.treatment_id],
|
treatment=_treatments[payload.treatment_id],
|
||||||
@@ -290,6 +289,7 @@ def update_appointment(appointment_id: int, payload: AppointmentCreate) -> Appoi
|
|||||||
id=appointment_id,
|
id=appointment_id,
|
||||||
date=payload.date,
|
date=payload.date,
|
||||||
notes=payload.notes if payload.notes is not None else current.notes,
|
notes=payload.notes if payload.notes is not None else current.notes,
|
||||||
|
procedures=payload.procedures,
|
||||||
pet=_pets.get(payload.pet_id, current.pet),
|
pet=_pets.get(payload.pet_id, current.pet),
|
||||||
vet=_vets.get(payload.vet_id, current.vet),
|
vet=_vets.get(payload.vet_id, current.vet),
|
||||||
treatment=_treatments.get(payload.treatment_id, current.treatment),
|
treatment=_treatments.get(payload.treatment_id, current.treatment),
|
||||||
@@ -324,21 +324,11 @@ def _seed_data():
|
|||||||
_vets[3] = Vet(id=3, name="Emily Davis", specialty="General Practice", email="emily@clinic.com", phone="555-0203", metadata=meta)
|
_vets[3] = Vet(id=3, name="Emily Davis", specialty="General Practice", email="emily@clinic.com", phone="555-0203", metadata=meta)
|
||||||
_vets_next_id = 4
|
_vets_next_id = 4
|
||||||
|
|
||||||
_treatments[1] = Treatment(id=1, label="Annual Checkup", description="Full physical examination",
|
_treatments[1] = Treatment(id=1, label="Annual Checkup", description="Full physical examination", metadata=meta)
|
||||||
procedures=[Procedure(name="Physical Exam", cost=50.0), Procedure(name="Heart Rate", notes=ProcedureNotes(summary="Normal rhythm"))],
|
_treatments[2] = Treatment(id=2, label="Vaccination", description="Core vaccines for common diseases", metadata=meta)
|
||||||
metadata=meta)
|
_treatments[3] = Treatment(id=3, label="Dental Cleaning", description="Scaling, polishing, and oral exam", metadata=meta)
|
||||||
_treatments[2] = Treatment(id=2, label="Vaccination", description="Core vaccines for common diseases",
|
_treatments[4] = Treatment(id=4, label="Spay/Neuter", description="Surgical sterilization", metadata=meta)
|
||||||
procedures=[Procedure(name="DHPP Vaccine", cost=35.0), Procedure(name="Rabies Vaccine", cost=45.0)],
|
_treatments[5] = Treatment(id=5, label="Blood Panel", description="Complete blood count and chemistry", metadata=meta)
|
||||||
metadata=meta)
|
|
||||||
_treatments[3] = Treatment(id=3, label="Dental Cleaning", description="Scaling, polishing, and oral exam",
|
|
||||||
procedures=[Procedure(name="Scaling", cost=80.0), Procedure(name="Polishing", cost=40.0, notes=ProcedureNotes(summary="High-speed polish"))],
|
|
||||||
metadata=meta)
|
|
||||||
_treatments[4] = Treatment(id=4, label="Spay/Neuter", description="Surgical sterilization",
|
|
||||||
procedures=[Procedure(name="Pre-op Exam", cost=30.0), Procedure(name="Surgery", cost=200.0), Procedure(name="Post-op Care", cost=50.0)],
|
|
||||||
metadata=meta)
|
|
||||||
_treatments[5] = Treatment(id=5, label="Blood Panel", description="Complete blood count and chemistry",
|
|
||||||
procedures=[Procedure(name="CBC", cost=25.0), Procedure(name="Chemistry Panel", cost=60.0, notes=ProcedureNotes(summary="Fasting required"))],
|
|
||||||
metadata=meta)
|
|
||||||
_treatments_next_id = 6
|
_treatments_next_id = 6
|
||||||
|
|
||||||
_pets[1] = Pet(id=1, name="Max", species="dog", age=4, weight=25.5, birthDate=date(2022, 3, 15), parents=[_parents[1]], metadata=meta)
|
_pets[1] = Pet(id=1, name="Max", species="dog", age=4, weight=25.5, birthDate=date(2022, 3, 15), parents=[_parents[1]], metadata=meta)
|
||||||
@@ -348,10 +338,18 @@ def _seed_data():
|
|||||||
_pets[5] = Pet(id=5, name="Rocky", species="dog", age=3, weight=30.0, birthDate=date(2023, 11, 5), parents=[_parents[4]], metadata=meta)
|
_pets[5] = Pet(id=5, name="Rocky", species="dog", age=3, weight=30.0, birthDate=date(2023, 11, 5), parents=[_parents[4]], metadata=meta)
|
||||||
_pets_next_id = 6
|
_pets_next_id = 6
|
||||||
|
|
||||||
_appointments[1] = Appointment(id=1, date=datetime(2026, 6, 18, 9, 0, tzinfo=timezone.utc), notes="Annual checkup", pet=_pets[1], vet=_vets[1], treatment=_treatments[1], metadata=meta)
|
_appointments[1] = Appointment(id=1, date=datetime(2026, 6, 18, 9, 0, tzinfo=timezone.utc), notes="Annual checkup",
|
||||||
_appointments[2] = Appointment(id=2, date=datetime(2026, 6, 18, 10, 30, tzinfo=timezone.utc), notes="Dental cleaning", pet=_pets[2], vet=_vets[2], treatment=_treatments[3], metadata=meta)
|
procedures=[Procedure(name="Physical Exam", cost=50.0), Procedure(name="Heart Rate", notes=ProcedureNotes(summary="Normal rhythm"))],
|
||||||
_appointments[3] = Appointment(id=3, date=datetime(2026, 6, 19, 11, 0, tzinfo=timezone.utc), notes="Vaccination booster", pet=_pets[3], vet=_vets[3], treatment=_treatments[2], metadata=meta)
|
pet=_pets[1], vet=_vets[1], treatment=_treatments[1], metadata=meta)
|
||||||
_appointments[4] = Appointment(id=4, date=datetime(2026, 6, 20, 14, 0, tzinfo=timezone.utc), notes="Follow-up after surgery", pet=_pets[5], vet=_vets[1], treatment=_treatments[4], metadata=meta)
|
_appointments[2] = Appointment(id=2, date=datetime(2026, 6, 18, 10, 30, tzinfo=timezone.utc), notes="Dental cleaning",
|
||||||
|
procedures=[Procedure(name="Scaling", cost=80.0), Procedure(name="Polishing", cost=40.0, notes=ProcedureNotes(summary="High-speed polish"))],
|
||||||
|
pet=_pets[2], vet=_vets[2], treatment=_treatments[3], metadata=meta)
|
||||||
|
_appointments[3] = Appointment(id=3, date=datetime(2026, 6, 19, 11, 0, tzinfo=timezone.utc), notes="Vaccination booster",
|
||||||
|
procedures=[Procedure(name="DHPP Vaccine", cost=35.0), Procedure(name="Rabies Vaccine", cost=45.0)],
|
||||||
|
pet=_pets[3], vet=_vets[3], treatment=_treatments[2], metadata=meta)
|
||||||
|
_appointments[4] = Appointment(id=4, date=datetime(2026, 6, 20, 14, 0, tzinfo=timezone.utc), notes="Follow-up after surgery",
|
||||||
|
procedures=[Procedure(name="Pre-op Exam", cost=30.0), Procedure(name="Surgery", cost=200.0), Procedure(name="Post-op Care", cost=50.0)],
|
||||||
|
pet=_pets[5], vet=_vets[1], treatment=_treatments[4], metadata=meta)
|
||||||
_appointments_next_id = 5
|
_appointments_next_id = 5
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ class Procedure(BaseModel):
|
|||||||
class TreatmentBase(BaseModel):
|
class TreatmentBase(BaseModel):
|
||||||
label: str
|
label: str
|
||||||
description: str | None = None
|
description: str | None = None
|
||||||
procedures: list[Procedure] = []
|
|
||||||
metadata: Metadata | None = None
|
metadata: Metadata | None = None
|
||||||
|
|
||||||
|
|
||||||
@@ -87,6 +86,7 @@ class Pet(PetBase):
|
|||||||
class AppointmentBase(BaseModel):
|
class AppointmentBase(BaseModel):
|
||||||
date: datetime
|
date: datetime
|
||||||
notes: str | None = None
|
notes: str | None = None
|
||||||
|
procedures: list[Procedure] = []
|
||||||
metadata: Metadata | None = None
|
metadata: Metadata | None = None
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -166,13 +166,6 @@ components:
|
|||||||
x-order: 2
|
x-order: 2
|
||||||
x-label: "Description"
|
x-label: "Description"
|
||||||
x-description: "Detailed description of the treatment"
|
x-description: "Detailed description of the treatment"
|
||||||
procedures:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
$ref: '#/components/schemas/Procedure'
|
|
||||||
x-order: 3
|
|
||||||
x-label: "Procedures"
|
|
||||||
x-description: "List of procedures performed during this treatment"
|
|
||||||
metadata:
|
metadata:
|
||||||
$ref: '#/components/schemas/Metadata'
|
$ref: '#/components/schemas/Metadata'
|
||||||
x-order: 4
|
x-order: 4
|
||||||
@@ -276,6 +269,13 @@ components:
|
|||||||
x-order: 2
|
x-order: 2
|
||||||
x-label: "Notes"
|
x-label: "Notes"
|
||||||
x-description: "Any additional notes"
|
x-description: "Any additional notes"
|
||||||
|
procedures:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/components/schemas/Procedure'
|
||||||
|
x-order: 3
|
||||||
|
x-label: "Procedures"
|
||||||
|
x-description: "List of procedures performed during this appointment"
|
||||||
pet:
|
pet:
|
||||||
$ref: '#/components/schemas/Pet'
|
$ref: '#/components/schemas/Pet'
|
||||||
x-fk:
|
x-fk:
|
||||||
|
|||||||
Reference in New Issue
Block a user