checkup detail
This commit is contained in:
@@ -1 +1,2 @@
|
||||
from .medical_card import *
|
||||
from .checkup import *
|
||||
34
src/medical_info/db/schemas/checkup.py
Normal file
34
src/medical_info/db/schemas/checkup.py
Normal file
@@ -0,0 +1,34 @@
|
||||
from pydantic import BaseModel
|
||||
from pydantic.types import UUID4, Json
|
||||
from typing import List, Optional, Any
|
||||
from datetime import datetime
|
||||
|
||||
class CheckupBase(BaseModel):
|
||||
id: UUID4
|
||||
medic_id: UUID4
|
||||
created_at: datetime
|
||||
|
||||
class Config:
|
||||
orm_mode = True
|
||||
|
||||
class CheckupDetail(CheckupBase):
|
||||
claims: Optional[List[str]]
|
||||
allergies: Optional[List[str]]
|
||||
diseases: Optional[List[str]]
|
||||
medicines: Optional[List[str]]
|
||||
disease_process: Optional[str]
|
||||
visual_inspection: Optional[str]
|
||||
dental_formula: Optional[Any]
|
||||
dental_formula_ext: Optional[Json]
|
||||
|
||||
class CheckupCreate(BaseModel):
|
||||
medical_card_id: UUID4
|
||||
medic_id: UUID4
|
||||
claims: Optional[List[str]]
|
||||
allergies: Optional[List[str]]
|
||||
diseases: Optional[List[str]]
|
||||
medicines: Optional[List[str]]
|
||||
disease_process: Optional[str]
|
||||
visual_inspection: Optional[str]
|
||||
dental_formula: Optional[Any]
|
||||
dental_formula_ext: Optional[Json]
|
||||
@@ -11,29 +11,3 @@ class MedicalCardResponse(BaseModel):
|
||||
class MedicalCardCreate(BaseModel):
|
||||
number: str
|
||||
person_id: UUID4
|
||||
|
||||
class CheckupDetail(BaseModel):
|
||||
id: UUID4
|
||||
medical_card_id: UUID4
|
||||
medic_id: UUID4
|
||||
claims: Optional[List[str]]
|
||||
allergies: Optional[List[str]]
|
||||
diseases: Optional[List[str]]
|
||||
medicines: Optional[List[str]]
|
||||
disease_process: Optional[str]
|
||||
visual_inspection: Optional[str]
|
||||
dental_formula: Optional[Any]
|
||||
dental_formula_ext: Optional[Json]
|
||||
class Config:
|
||||
orm_mode = True
|
||||
class CheckupCreate(BaseModel):
|
||||
medical_card_id: UUID4
|
||||
medic_id: UUID4
|
||||
claims: Optional[List[str]]
|
||||
allergies: Optional[List[str]]
|
||||
diseases: Optional[List[str]]
|
||||
medicines: Optional[List[str]]
|
||||
disease_process: Optional[str]
|
||||
visual_inspection: Optional[str]
|
||||
dental_formula: Optional[Any]
|
||||
dental_formula_ext: Optional[Json]
|
||||
@@ -1,20 +1,27 @@
|
||||
from fastapi import Depends
|
||||
from fastapi.routing import APIRouter
|
||||
from typing import List
|
||||
from typing import List, Optional
|
||||
from pydantic.types import UUID4
|
||||
|
||||
from medical_info.db import models
|
||||
from medical_info.db.schemas import CheckupDetail, CheckupCreate
|
||||
from medical_info.db.schemas import CheckupCreate, CheckupBase, CheckupDetail
|
||||
from medical_info.services import CheckupService, get_checkups_service
|
||||
|
||||
router = APIRouter(prefix='/checkups')
|
||||
|
||||
@router.get('/', response_model=List[CheckupDetail])
|
||||
@router.get('/', response_model=List[CheckupBase])
|
||||
def list_checkups(
|
||||
checkups_service: CheckupService = Depends(get_checkups_service)
|
||||
) -> List[models.Checkup]:
|
||||
return checkups_service.list()
|
||||
|
||||
@router.post('/', status_code=201, response_model=CheckupDetail)
|
||||
@router.get('/{checkup_id}', response_model=CheckupDetail)
|
||||
async def get_checkup(
|
||||
checkup_id: UUID4, checkups_service: CheckupService = Depends(get_checkups_service)
|
||||
) -> Optional[models.Checkup]:
|
||||
return checkups_service.get(checkup_id)
|
||||
|
||||
@router.post('/', status_code=201, response_model=CheckupBase)
|
||||
async def create_checkup(
|
||||
checkup: CheckupCreate, checkups_service: CheckupService = Depends(get_checkups_service)
|
||||
) -> models.Checkup:
|
||||
|
||||
Reference in New Issue
Block a user