From a34deaedb35070ce92afa95babe9d91211859bdb Mon Sep 17 00:00:00 2001 From: Miwory Date: Thu, 2 Oct 2025 08:55:24 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/clients/vitacore/api.py | 4 +--- src/clients/vitacore/schema.py | 29 +++++++++++++++++++---------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/clients/vitacore/api.py b/src/clients/vitacore/api.py index 019d3e5..eb78bc3 100644 --- a/src/clients/vitacore/api.py +++ b/src/clients/vitacore/api.py @@ -32,9 +32,7 @@ class VITACORE_API(AsyncClient): match req.status_code: case st.HTTP_200_OK: - return [ - s.DepartmentModel.model_validate(i) for i in req.json() - ] + return s.OrganizationsModel.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 a72de6d..b4bed20 100644 --- a/src/clients/vitacore/schema.py +++ b/src/clients/vitacore/schema.py @@ -99,10 +99,6 @@ class DepartmentModel(BaseModel): title='Идентификатор вышестоящего подразделения', examples=['a3677271-3385-4f27-a65d-c3430b7c61c2'], ) - code: str = Field( - title='Региональный код или код ТФОМС', - examples=['0000000000'], - ) fullname: str = Field( title='Полное наименование', examples=['ГБУЗС "Тестовая медицинская организация"'], @@ -117,9 +113,17 @@ class DepartmentModel(BaseModel): examples=['Юридическое лицо'], ) inn: str = Field(title='ИНН', examples=['0000000000']) - kpp: str = Field(title='КПП', examples=['0000000000']) ogrn: str = Field(title='ОГРН', examples=['1149204047816']) + kpp: str | None = Field(title='КПП', examples=['0000000000'], default=None) address: list[DepartmentAddressModel] + # code: str = Field( + # title='Региональный код или код ТФОМС', + # examples=['0000000000'], + # ) + + +class OrganizationsModel(BaseModel): + Organizations: list[DepartmentModel] class WorkersPositionModel(BaseModel): @@ -389,7 +393,7 @@ class HospExaminationsModel(BaseModel): class RouteToDoctorModel(BaseModel): - RouteDate: date = Field(title='Дата направления', examples=['2025-07-17']) + RouteDate: str = Field(title='Дата направления', examples=['2025-07-17']) SpecialityCode: str = Field(title='Код специальности', examples=['013']) SpecialityName: str = Field( title='Наименование специальности', examples=['Кардиолог'] @@ -397,7 +401,7 @@ class RouteToDoctorModel(BaseModel): class RouteToDiagnosticModel(BaseModel): - RouteDate: date = Field(title='Дата направления', examples=['2025-08-06']) + RouteDate: str = Field(title='Дата направления', examples=['2025-08-06']) ResearchCode: str = Field(title='Код услуги', examples=['B03.016.003']) ResearchName: str = Field( title='Наименование услуги', @@ -448,13 +452,14 @@ class BaseHospitalizationModel(BaseModel): CreationDateTime: datetime = Field( title='Дата и время регистрации', examples=['2025-07-10 17:29'] ) - ReceptionDiagnosis: str = Field( + ReceptionDiagnosis: str | None = Field( title='Диагноз при поступлении', examples=[ 'I11.9 | Гипертензивная [гипертоническая] болезнь с ' 'преимущественным поражением сердца без (застойной) ' 'сердечной недостаточности' ], + default=None, ) HospitalizationType: str = Field( title='Тип госпитализации', examples=['экстренная'] @@ -580,8 +585,12 @@ class PatientELNModel(BaseModel): Number: str = Field( title='Номер листа нетрудоспособности', examples=['910040906829'] ) - OpenDate: datetime = Field(title='Дата открытия', examples=['2020-10-21']) - DateClose: datetime = Field(title='Дата закрытия', examples=['2020-10-25']) + OpenDate: datetime | None = Field( + title='Дата открытия', examples=['2020-10-21'], default=None + ) + DateClose: datetime | None = Field( + title='Дата закрытия', examples=['2020-10-25'], default=None + ) WorkDate: datetime = Field( title='Дата выхода на работу', examples=['2020-10-26'] )