From 5d84ea567dc6157be424420233633287a3d49095 Mon Sep 17 00:00:00 2001 From: Miwory Date: Tue, 30 Sep 2025 11:07:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=8D=D0=BD=D0=B4=D0=BF=D0=BE=D0=B8=D0=BD=D1=82=20get?= =?UTF-8?q?HospRecommendations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apps/users/v1/router.py | 15 ++++++++++----- src/clients/vitacore/api.py | 12 ++++++++++++ src/clients/vitacore/schema.py | 25 ++++++++++++++++++++++++- 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/src/apps/users/v1/router.py b/src/apps/users/v1/router.py index ddca53d..e2bf72e 100644 --- a/src/apps/users/v1/router.py +++ b/src/apps/users/v1/router.py @@ -124,6 +124,16 @@ async def get_hosps(): ) +@router.get('/getHospRecommendations') +async def get_hosp_recommendations(): + """ + Get list of recommended hospitals. + """ + return await c.vitacore_api.getHospRecommendations( + 'b708e782-4f83-4f3b-8639-512c0c9637bf' + ) + + @router.post('/measurement', status_code=status.HTTP_202_ACCEPTED) async def measurement( user: Annotated[str, Depends(login)], @@ -203,11 +213,6 @@ async def get_pat_flg(user: Annotated[str, Depends(login)]): return mock.patFLG[0] -@router.get('/getHospRecommendations') -async def get_hosp_recommendations(user: Annotated[str, Depends(login)]): - return mock.hospRecommendations - - @router.get('/getHospRoutes') async def get_hosp_routes(user: Annotated[str, Depends(login)]): return mock.hospRoutes diff --git a/src/clients/vitacore/api.py b/src/clients/vitacore/api.py index 1d13e9f..bbfb318 100644 --- a/src/clients/vitacore/api.py +++ b/src/clients/vitacore/api.py @@ -133,3 +133,15 @@ class VITACORE_API(AsyncClient): case _: self.logger.error(req.json()) raise e.UnknownException + + async def getHospRecommendations(self, patId: str): + req = await self.get( + '/getHospRecommendations', params={'patId': patId} + ) + + match req.status_code: + case st.HTTP_200_OK: + return s.HospRecommendationsModel.model_validate(req.json()) + case _: + self.logger.error(req.json()) + raise e.UnknownException diff --git a/src/clients/vitacore/schema.py b/src/clients/vitacore/schema.py index 5d71cf9..f9b67ad 100644 --- a/src/clients/vitacore/schema.py +++ b/src/clients/vitacore/schema.py @@ -443,7 +443,7 @@ class HospitalizationModel(BaseModel): title='Идентификатор случая госпитализации', examples=['ddfa23ea-b0de-4d88-8abe-7d6a7a241df1'], ) - CreationDateTime: str = Field( + CreationDateTime: datetime = Field( title='Дата и время регистрации', examples=['2025-07-10 17:29'] ) ReceptionDiagnosis: str = Field( @@ -477,3 +477,26 @@ class HospitalizationsModel(BaseModel): Hospitalizations: list[HospitalizationModel] = Field( title='Список госпитализаций' ) + + +class RecommendationModel(BaseModel): + Type: str = Field(title='Тип осмотра', examples=['Осмотр', 'Эпикриз']) + DateTime: datetime = Field( + title='Дата и время создания', examples=['18.07.2025 8:30:43'] + ) + Recommendation: str = Field( + title='Текст рекомендации', examples=['рекомендации тест'] + ) + + +class HospRecommendationsModel(BaseModel): + EventID: str = Field( + title='Идентификатор случая госпитализации', + examples=['ddfa23ea-b0de-4d88-8abe-7d6a7a241df1'], + ) + EventDate: datetime = Field( + title='Дата обращения', examples=['2025-07-10'] + ) + Recommendations: list[RecommendationModel] = Field( + title='Список рекомендаций' + )