diff --git a/src/medical_info/db/schemas/medical_card.py b/src/medical_info/db/schemas/medical_card.py index e2ea7a1..580b230 100644 --- a/src/medical_info/db/schemas/medical_card.py +++ b/src/medical_info/db/schemas/medical_card.py @@ -61,5 +61,21 @@ class MedicalCardDetail(BaseModel): created_at: datetime person_id: UUID4 person: Optional[PersonDetail] + class Config: + orm_mode = True + +class MedicalCardSimple(BaseModel): + id: UUID4 + number: Optional[str] + person_id: UUID4 + created_at: Optional[datetime] + class Config: + orm_mode = True + +class MedicalCard(BaseModel): + id: UUID4 + number: str + created_at: datetime + person_id: UUID4 class Config: orm_mode = True \ No newline at end of file diff --git a/src/medical_info/routers/medical_cards.py b/src/medical_info/routers/medical_cards.py index 3304c07..79cdb62 100644 --- a/src/medical_info/routers/medical_cards.py +++ b/src/medical_info/routers/medical_cards.py @@ -2,7 +2,7 @@ from fastapi import Depends from fastapi.routing import APIRouter from typing import List, Optional from pydantic.types import UUID4 -from medical_info.db import models +from medical_info.db import models, schemas from medical_info.db.schemas import MedicalCardResponse, MedicalCardCreate, MedicalCardBase,MedicalCardDetail from medical_info.services import MedicalCardService, get_medical_cards_service diff --git a/src/medical_info/services/medical_cards.py b/src/medical_info/services/medical_cards.py index 74b5b8b..bf63fa2 100644 --- a/src/medical_info/services/medical_cards.py +++ b/src/medical_info/services/medical_cards.py @@ -12,12 +12,20 @@ class MedicalCardService(BaseService[MedicalCard, MedicalCardCreate, Any]): def __init__(self, db_session: Session): super(MedicalCardService, self).__init__(MedicalCard, db_session) - def list(self, searchstring: str) -> dict: - medical_cards_rows = self.db_session.query(MedicalCard).all() - medical_cards = parse_obj_as(List[MedicalCardBase], medical_cards_rows) + def list(self, searchstring: str) -> Any: + objs = self.db_session.query(models.MedicalCard).all() + medical_cards = parse_obj_as(List[schemas.MedicalCard], objs) medical_cards = [medical_card.dict() for medical_card in medical_cards] + # personal_information_host = 'http://localhost:8001/persons' + #TODO обобщение хоста personal_info + #TODO обработка ошибок ответа сервиса personal_info + + # CONTINUE + + # person_response = requests.get(f'{personal_information_host}/{obj.person_id}') + person = {'full_name': 'Жижин Антон Семенович', 'birth_date': '2012-03-10'} for m in medical_cards: print(m) @@ -29,8 +37,8 @@ class MedicalCardService(BaseService[MedicalCard, MedicalCardCreate, Any]): if obj is None: raise HTTPException(status_code=404, detail='NotFound') - # personal_information_host = os.getenv('ASTRA-PESONAL-INFORMATION') - personal_information_host = 'http://localhost:8001/persons' + personal_information_host = os.getenv('ASTRA-PESONAL-INFORMATION') + # personal_information_host = 'http://localhost:8001/persons' #TODO обработка ошибок ответа сервиса personal_info