checkup detail

This commit is contained in:
dderbentsov
2023-07-22 16:57:20 +03:00
parent 9c5b389849
commit 54cd6872e4
4 changed files with 47 additions and 31 deletions

View File

@@ -1 +1,2 @@
from .medical_card import * from .medical_card import *
from .checkup import *

View 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]

View File

@@ -11,29 +11,3 @@ class MedicalCardResponse(BaseModel):
class MedicalCardCreate(BaseModel): class MedicalCardCreate(BaseModel):
number: str number: str
person_id: UUID4 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]

View File

@@ -1,20 +1,27 @@
from fastapi import Depends from fastapi import Depends
from fastapi.routing import APIRouter 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 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 from medical_info.services import CheckupService, get_checkups_service
router = APIRouter(prefix='/checkups') router = APIRouter(prefix='/checkups')
@router.get('/', response_model=List[CheckupDetail]) @router.get('/', response_model=List[CheckupBase])
def list_checkups( def list_checkups(
checkups_service: CheckupService = Depends(get_checkups_service) checkups_service: CheckupService = Depends(get_checkups_service)
) -> List[models.Checkup]: ) -> List[models.Checkup]:
return checkups_service.list() 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( async def create_checkup(
checkup: CheckupCreate, checkups_service: CheckupService = Depends(get_checkups_service) checkup: CheckupCreate, checkups_service: CheckupService = Depends(get_checkups_service)
) -> models.Checkup: ) -> models.Checkup: