Фиксы
All checks were successful
Build And Push / publish (push) Successful in 1m54s

This commit is contained in:
2025-09-30 12:34:39 +03:00
parent 422adfd503
commit c7f439e48f
3 changed files with 37 additions and 32 deletions

View File

@ -10,8 +10,6 @@ from clients import clients as c
from clients.vitacore import schema as s from clients.vitacore import schema as s
from shared.redis import client as cache from shared.redis import client as cache
from . import mock
logger = getLogger(__name__) logger = getLogger(__name__)
router = APIRouter( router = APIRouter(
prefix='/user', prefix='/user',
@ -229,8 +227,3 @@ async def queue(user: Annotated[bool, Depends(login)]):
'vks_patient_link': None, 'vks_patient_link': None,
'doctor_spec_name': 'врач-терапевт', 'doctor_spec_name': 'врач-терапевт',
} }
@router.get('/findPat')
async def find_pat(user: Annotated[str, Depends(login)]):
return mock.findpat[0]

View File

@ -46,7 +46,7 @@ class VITACORE_API(AsyncClient):
match req.status_code: match req.status_code:
case st.HTTP_200_OK: case st.HTTP_200_OK:
return s.WorkersModel.model_validate(req.json()) return s.WorkersModel.model_validate(req.json()['workers'])
case _: case _:
self.logger.error(req.json()) self.logger.error(req.json())
raise e.UnknownException raise e.UnknownException
@ -67,6 +67,12 @@ class VITACORE_API(AsyncClient):
match req.status_code: match req.status_code:
case st.HTTP_200_OK: case st.HTTP_200_OK:
return s.EntriesModel.model_validate(req.json()) return s.EntriesModel.model_validate(req.json())
case st.HTTP_206_PARTIAL_CONTENT:
error = s.ErrorModel.model_validate(req.json())
if error.error == 'Не найдены записи по указанному patId':
return s.EntriesModel(Entries=[])
case _: case _:
self.logger.error(req.json()) self.logger.error(req.json())
raise e.UnknownException raise e.UnknownException

View File

@ -1,8 +1,12 @@
from datetime import datetime from datetime import date, datetime
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
class ErrorModel(BaseModel):
error: str = Field(title='Текст ошибки')
class TrustedPersonModel(BaseModel): class TrustedPersonModel(BaseModel):
parentSnils: str = Field( parentSnils: str = Field(
title='СНИЛС представителя', examples=['156-125-394 57'] title='СНИЛС представителя', examples=['156-125-394 57']
@ -282,13 +286,15 @@ class MedExamDictModel(BaseModel):
class ResultModel(BaseModel): class ResultModel(BaseModel):
Resource: str = Field(title='Врач', examples=['Изотова Г.М.']) Resource: str = Field(title='Врач', examples=['Изотова Г.М.'])
ExaminationId: str = Field( ExaminationId: str | None = Field(
title='Идентификатор осмотра', title='Идентификатор осмотра',
examples=['4d8550e6-7ad8-46f7-b874-9b20c673d168'], examples=['4d8550e6-7ad8-46f7-b874-9b20c673d168'],
default=None,
) )
DiagResultId: str = Field( DiagResultId: str | None = Field(
title='Идентификатор результата исследования', title='Идентификатор результата исследования',
examples=['77312a5f-0498-4656-8215-9cf151ec2a9b'], examples=['77312a5f-0498-4656-8215-9cf151ec2a9b'],
default=None,
) )
@ -383,9 +389,7 @@ class HospExaminationsModel(BaseModel):
class RouteToDoctorModel(BaseModel): class RouteToDoctorModel(BaseModel):
RouteDate: datetime = Field( RouteDate: date = Field(title='Дата направления', examples=['2025-07-17'])
title='Дата направления', examples=['2025-07-17']
)
SpecialityCode: str = Field(title='Код специальности', examples=['013']) SpecialityCode: str = Field(title='Код специальности', examples=['013'])
SpecialityName: str = Field( SpecialityName: str = Field(
title='Наименование специальности', examples=['Кардиолог'] title='Наименование специальности', examples=['Кардиолог']
@ -393,9 +397,7 @@ class RouteToDoctorModel(BaseModel):
class RouteToDiagnosticModel(BaseModel): class RouteToDiagnosticModel(BaseModel):
RouteDate: datetime = Field( RouteDate: date = Field(title='Дата направления', examples=['2025-08-06'])
title='Дата направления', examples=['2025-08-06']
)
ResearchCode: str = Field(title='Код услуги', examples=['B03.016.003']) ResearchCode: str = Field(title='Код услуги', examples=['B03.016.003'])
ResearchName: str = Field( ResearchName: str = Field(
title='Наименование услуги', title='Наименование услуги',
@ -417,7 +419,7 @@ class HospDestinationModel(BaseModel):
class ExamModel(BaseModel): class ExamModel(BaseModel):
ExaminationDate: datetime = Field( ExaminationDate: date = Field(
title='Дата осмотра', examples=['2025-08-04'] title='Дата осмотра', examples=['2025-08-04']
) )
ExaminationTime: str = Field(title='Время осмотра', examples=['09:21']) ExaminationTime: str = Field(title='Время осмотра', examples=['09:21'])
@ -438,7 +440,7 @@ class ExamModel(BaseModel):
) )
class HospitalizationModel(BaseModel): class BaseHospitalizationModel(BaseModel):
EventID: str = Field( EventID: str = Field(
title='Идентификатор случая госпитализации', title='Идентификатор случая госпитализации',
examples=['ddfa23ea-b0de-4d88-8abe-7d6a7a241df1'], examples=['ddfa23ea-b0de-4d88-8abe-7d6a7a241df1'],
@ -454,14 +456,6 @@ class HospitalizationModel(BaseModel):
'сердечной недостаточности' 'сердечной недостаточности'
], ],
) )
Diagnosis: str = Field(
title='Текущий диагноз',
examples=[
'I11.9 | Гипертензивная [гипертоническая] болезнь с '
'преимущественным поражением сердца без (застойной) '
'сердечной недостаточности'
],
)
HospitalizationType: str = Field( HospitalizationType: str = Field(
title='Тип госпитализации', examples=['экстренная'] title='Тип госпитализации', examples=['экстренная']
) )
@ -470,19 +464,31 @@ class HospitalizationModel(BaseModel):
) )
Division: str = Field(title='Отделение', examples=['Кардиология №1']) Division: str = Field(title='Отделение', examples=['Кардиология №1'])
LpuName: str = Field(title='Наименование МО', examples=['ГАУЗ "ГКБ №7"']) LpuName: str = Field(title='Наименование МО', examples=['ГАУЗ "ГКБ №7"'])
class HospitalizationModel(BaseHospitalizationModel):
Diagnosis: str = Field(
title='Текущий диагноз',
examples=[
'I11.9 | Гипертензивная [гипертоническая] болезнь с '
'преимущественным поражением сердца без (застойной) '
'сердечной недостаточности'
],
)
Exams: list[ExamModel] = Field(title='Список осмотров') Exams: list[ExamModel] = Field(title='Список осмотров')
class HospitalizationsModel(BaseModel): class HospitalizationsModel(BaseModel):
Hospitalizations: list[HospitalizationModel] = Field( Hospitalizations: list[HospitalizationModel | BaseHospitalizationModel] = (
title='Список госпитализаций' Field(title='Список госпитализаций')
) )
class RecommendationModel(BaseModel): class RecommendationModel(BaseModel):
Type: str = Field(title='Тип осмотра', examples=['Осмотр', 'Эпикриз']) Type: str = Field(title='Тип осмотра', examples=['Осмотр', 'Эпикриз'])
DateTime: datetime = Field( DateTime: str = Field(
title='Дата и время создания', examples=['18.07.2025 8:30:43'] title='Дата и время создания',
examples=['18.07.2025 8:30:43'],
) )
Recommendation: str = Field( Recommendation: str = Field(
title='Текст рекомендации', examples=['рекомендации тест'] title='Текст рекомендации', examples=['рекомендации тест']
@ -523,7 +529,7 @@ class DiagnosticResultModel(BaseModel):
title='Идентификатор результата исследования', title='Идентификатор результата исследования',
examples=['1407910a-1901-4b21-be2d-0ef89041f4fe'], examples=['1407910a-1901-4b21-be2d-0ef89041f4fe'],
) )
ContainsFile: str = Field( ContainsFile: int = Field(
title='Признак наличия файла исследования (из ЛИС)', examples=['0'] title='Признак наличия файла исследования (из ЛИС)', examples=['0']
) )
PostingDate: datetime = Field( PostingDate: datetime = Field(