checkup detail
This commit is contained in:
@@ -1 +1,2 @@
|
|||||||
from .medical_card import *
|
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):
|
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]
|
|
||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user