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]