VIP medical_cards detail
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
from typing import Any, List
|
||||
from typing import Any, List, Optional
|
||||
from medical_info.db.models import MedicalCard
|
||||
from medical_info.db.schemas import MedicalCardCreate, MedicalCardBase, MedicalCardResponse, MedicalCards
|
||||
from medical_info.db.schemas import MedicalCardCreate, MedicalCardBase, MedicalCardResponse, PersonDetail, MedicalCardDetail
|
||||
from medical_info.services.base import BaseService
|
||||
from sqlalchemy.orm import Session
|
||||
from sqlalchemy.sql.expression import literal
|
||||
from pydantic import parse_obj_as
|
||||
import requests
|
||||
|
||||
class MedicalCardService(BaseService[MedicalCard, MedicalCardCreate, Any]):
|
||||
def __init__(self, db_session: Session):
|
||||
@@ -14,15 +15,24 @@ class MedicalCardService(BaseService[MedicalCard, MedicalCardCreate, Any]):
|
||||
medical_cards_rows = self.db_session.query(MedicalCard).all()
|
||||
medical_cards = parse_obj_as(List[MedicalCardBase], medical_cards_rows)
|
||||
|
||||
# medical_cards = MedicalCards.from_orm(medical_cards_rows)
|
||||
|
||||
medical_cards = [medical_card.dict() for medical_card in medical_cards]
|
||||
|
||||
|
||||
# medical_cards = medical_cards["__root__"]
|
||||
print(medical_cards)
|
||||
person = {'full_name': 'Жижин Антон Семенович', 'birth_date': '2012-03-10'}
|
||||
for m in medical_cards:
|
||||
print(m)
|
||||
m["person"] = person
|
||||
return medical_cards
|
||||
return medical_cards
|
||||
|
||||
def get(self, id: Any) -> Optional[MedicalCard]:
|
||||
obj: Optional[MedicalCard] = self.db_session.get(self.model, id)
|
||||
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'
|
||||
|
||||
response = requests.get(f'{personal_information_host}/{obj.person_id}')
|
||||
|
||||
medical_info = MedicalCardDetail.from_orm(obj).dict()
|
||||
medical_info['person'] = PersonDetail(**response.json()).dict()
|
||||
return medical_info
|
||||
Reference in New Issue
Block a user