Добавлен эндпоинт getRoutesList

This commit is contained in:
2025-09-30 10:50:26 +03:00
parent eff590df2b
commit 92b889faf5
3 changed files with 75 additions and 5 deletions

View File

@ -83,6 +83,16 @@ async def get_med_exam_dict():
return await c.vitacore_api.getMedExamDict() return await c.vitacore_api.getMedExamDict()
@router.get('/getRoutesList')
async def get_routes_list():
"""
Get list of routes.
"""
return await c.vitacore_api.getRoutesList(
'4e6de5f7-4dc9-451b-bf0d-7a64a9b8c279'
)
@router.post('/measurement', status_code=status.HTTP_202_ACCEPTED) @router.post('/measurement', status_code=status.HTTP_202_ACCEPTED)
async def measurement( async def measurement(
user: Annotated[str, Depends(login)], user: Annotated[str, Depends(login)],
@ -172,11 +182,6 @@ async def get_pat_flg(user: Annotated[str, Depends(login)]):
return mock.patFLG[0] return mock.patFLG[0]
@router.get('/getRoutesList')
async def get_routes_list(user: Annotated[str, Depends(login)]):
return mock.routesList[0]
@router.get('/getHospRecommendations') @router.get('/getHospRecommendations')
async def get_hosp_recommendations(user: Annotated[str, Depends(login)]): async def get_hosp_recommendations(user: Annotated[str, Depends(login)]):
return mock.hospRecommendations return mock.hospRecommendations

View File

@ -90,3 +90,13 @@ class VITACORE_API(AsyncClient):
case _: case _:
self.logger.error(req.json()) self.logger.error(req.json())
raise e.UnknownException raise e.UnknownException
async def getRoutesList(self, patId: str):
req = await self.get('/getRoutesList', params={'patId': patId})
match req.status_code:
case st.HTTP_200_OK:
return s.RoutesListModel.model_validate(req.json())
case _:
self.logger.error(req.json())
raise e.UnknownException

View File

@ -278,3 +278,58 @@ class MedExamTypeModel(BaseModel):
class MedExamDictModel(BaseModel): class MedExamDictModel(BaseModel):
MedExamTypes: list[MedExamTypeModel] MedExamTypes: list[MedExamTypeModel]
class ResultModel(BaseModel):
Resource: str = Field(title='Врач', examples=['Изотова Г.М.'])
ExaminationId: str = Field(
title='Идентификатор осмотра',
examples=['4d8550e6-7ad8-46f7-b874-9b20c673d168'],
)
DiagResultId: str = Field(
title='Идентификатор результата исследования',
examples=['77312a5f-0498-4656-8215-9cf151ec2a9b'],
)
class RouteModel(BaseModel):
Type: str = Field(
title='Тип',
examples=['ROUTE_TO_DOCTOR_INSPECTION', 'ROUTE_TO_DIAGNOSTICS'],
)
CreationDateTime: datetime = Field(
title='Дата и время создания', examples=['2025-03-24 14:49']
)
Name: str = Field(
title='Наименование услуги / специальности',
examples=['Кардиолог [1259]', 'Общий анализ крови [B03.016.002]'],
)
EntryPlace: str | None = Field(
title='Кабинет приёма',
examples=['Каб.№211 Шайдуллина Г.И. (Кардиолог)', None],
default=None,
)
EntryResName: str | None = Field(
title='ФИО врача или кабинета полностью',
examples=['Каб.№211 Шайдуллина Г.И. (Кардиолог)', None],
default=None,
)
ResultExits: str = Field(title='Исполнение', examples=['0', '1'])
Result: ResultModel | None = Field(
title='Связка осмотра/услуги с выполнением направления', default=None
)
LpuName: str | None = Field(
title='Наименование МО', examples=['ГАУЗ "ГКБ №7"'], default=None
)
class RoutesListModel(BaseModel):
EventID: str = Field(
title='Идентификатор случая госпитализации',
examples=['a268e6d7-618c-4b83-97ca-c9dc8b79b55b'],
)
EventDate: datetime = Field(
title='Дата обращения', examples=['2025-03-17']
)
LpuName: str = Field(title='Наименование МО', examples=['ГАУЗ "ГКБ №7"'])
Routes: list[RouteModel] = Field(title='Список направлений')