Фиксы
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

@ -46,7 +46,7 @@ class VITACORE_API(AsyncClient):
match req.status_code:
case st.HTTP_200_OK:
return s.WorkersModel.model_validate(req.json())
return s.WorkersModel.model_validate(req.json()['workers'])
case _:
self.logger.error(req.json())
raise e.UnknownException
@ -67,6 +67,12 @@ class VITACORE_API(AsyncClient):
match req.status_code:
case st.HTTP_200_OK:
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 _:
self.logger.error(req.json())
raise e.UnknownException

View File

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