From eff590df2b97be4995188c9fdc52fee3d8a4e448 Mon Sep 17 00:00:00 2001 From: Miwory Date: Tue, 30 Sep 2025 10:42:38 +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?MedExamDict?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apps/users/v1/router.py | 13 ++++++---- src/clients/vitacore/api.py | 10 ++++++++ src/clients/vitacore/schema.py | 44 ++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 5 deletions(-) diff --git a/src/apps/users/v1/router.py b/src/apps/users/v1/router.py index 3e73f37..495670c 100644 --- a/src/apps/users/v1/router.py +++ b/src/apps/users/v1/router.py @@ -75,6 +75,14 @@ async def get_vaccs_report(): ) +@router.get('/getMedExamDict') +async def get_med_exam_dict(): + """ + Get medical examination dictionary. + """ + return await c.vitacore_api.getMedExamDict() + + @router.post('/measurement', status_code=status.HTTP_202_ACCEPTED) async def measurement( user: Annotated[str, Depends(login)], @@ -169,11 +177,6 @@ async def get_routes_list(user: Annotated[str, Depends(login)]): return mock.routesList[0] -@router.get('/getMedExamDict') -async def get_med_exam_dict(user: Annotated[str, Depends(login)]): - return mock.medexamDict - - @router.get('/getHospRecommendations') async def get_hosp_recommendations(user: Annotated[str, Depends(login)]): return mock.hospRecommendations diff --git a/src/clients/vitacore/api.py b/src/clients/vitacore/api.py index def2896..0db9a2c 100644 --- a/src/clients/vitacore/api.py +++ b/src/clients/vitacore/api.py @@ -80,3 +80,13 @@ class VITACORE_API(AsyncClient): case _: self.logger.error(req.json()) raise e.UnknownException + + async def getMedExamDict(self): + req = await self.get('/getMedExamDict') + + match req.status_code: + case st.HTTP_200_OK: + return s.MedExamDictModel.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 bcc52bc..9c289db 100644 --- a/src/clients/vitacore/schema.py +++ b/src/clients/vitacore/schema.py @@ -234,3 +234,47 @@ class VaccsReportModel(BaseModel): title='Содержимое документа в формате .doc ' '(сжатое методом кодирования Base64)' ) + + +class MedExamItemModel(BaseModel): + AgeGroupName: str = Field( + title='Наименование возрастной группы', + examples=['ДВН 1 этап. приказ 404н'], + ) + # AgeGroupCriteria + Required: str = Field( + title='Обязательность', + examples=['Обязательный/Дополнительный'], + ) + Type: str = Field( + title='Тип', + examples=['Специальность/Услуга'], + ) + MedicalServiceCode: str = Field( + title='Код услуги', + examples=['B04.010.002'], + ) + MedicalServiceName: str = Field( + title='Наименрование услуги', + examples=['Осмотр фельдшером (акушеркой) или врачом акушером'], + ) + SpecialityName: str = Field( + title='Специальность', + examples=['Акушер-гинеколог'], + ) + + +class MedExamTypeModel(BaseModel): + Name: str = Field( + title='Наименование медосмотра', + examples=['ДВН 1 этап. приказ 404н'], + ) + Code: str = Field( + title='Код медосмотра', + examples=['024'], + ) + MedExamItems: list[MedExamItemModel] + + +class MedExamDictModel(BaseModel): + MedExamTypes: list[MedExamTypeModel]