feat: align surgery API with schemas and extend client tooling

- Refactor app API and schemas; adjust surgery pipeline, repository, and session manager.

- Improve consumption TSV logging and consumable vision integration; trim voice resolution.

- Add Baidu Face 1:N search script, .env.example entries, and client API integration doc.

- Update demo client, staging checklist, surgery interface doc, and related tests; add sample face image.

Made-with: Cursor
This commit is contained in:
Kevin
2026-04-23 16:09:20 +08:00
parent 0c05463617
commit 69980d8073
20 changed files with 994 additions and 610 deletions

View File

@@ -6,7 +6,7 @@ from sqlalchemy import delete, select
from sqlalchemy.ext.asyncio import AsyncSession
from app.db.models import SurgeryFinalResult, SurgeryResultDetailRow
from app.schemas import SurgeryConsumptionDetail
from app.schemas import SurgeryConsumptionDetail, SurgeryConsumptionStored
class SurgeryResultRepository:
@@ -17,7 +17,7 @@ class SurgeryResultRepository:
session: AsyncSession,
*,
surgery_id: str,
details: list[SurgeryConsumptionDetail],
details: list[SurgeryConsumptionStored],
completed_at: datetime | None = None,
) -> None:
when = completed_at or datetime.now(timezone.utc)
@@ -37,7 +37,7 @@ class SurgeryResultRepository:
surgery_id=surgery_id,
item_id=d.item_id,
item_name=d.item_name,
quantity=d.quantity,
quantity=d.qty,
doctor_id=d.doctor_id,
recorded_at=d.timestamp,
source=d.source,
@@ -64,10 +64,9 @@ class SurgeryResultRepository:
SurgeryConsumptionDetail(
item_id=r.item_id,
item_name=r.item_name,
quantity=r.quantity,
qty=r.quantity,
doctor_id=r.doctor_id,
timestamp=r.recorded_at,
source=r.source,
)
for r in rows
]