This commit is contained in:
@ -26,3 +26,27 @@ class VITACORE_API(AsyncClient):
|
||||
case _:
|
||||
self.logger.error(req.json())
|
||||
raise e.UnknownException
|
||||
|
||||
async def getDepartments(self):
|
||||
req = await self.get('/getDepartments')
|
||||
|
||||
match req.status_code:
|
||||
case st.HTTP_200_OK:
|
||||
return [
|
||||
s.DepartmentModel.model_validate(i) for i in req.json()
|
||||
]
|
||||
case _:
|
||||
self.logger.error(req.json())
|
||||
raise e.UnknownException
|
||||
|
||||
async def getWorkers(self, departmentId: str):
|
||||
req = await self.get(
|
||||
'/getWorkers', params={'departmentId': departmentId}
|
||||
)
|
||||
|
||||
match req.status_code:
|
||||
case st.HTTP_200_OK:
|
||||
return s.WorkersModel.model_validate(req.json())
|
||||
case _:
|
||||
self.logger.error(req.json())
|
||||
raise e.UnknownException
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
from datetime import datetime
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
@ -62,3 +64,113 @@ class ProfileModel(BaseModel):
|
||||
trustedPersons: list[TrustedPersonModel] = Field(
|
||||
title='Информация о представителе',
|
||||
)
|
||||
|
||||
|
||||
class DepartmentAddressModel(BaseModel):
|
||||
type: str = Field(
|
||||
title='для МО: «Юридический», для филиалов «Фактический»',
|
||||
examples=['«Юридический»'],
|
||||
)
|
||||
display: str = Field(
|
||||
title='Адрес строкой',
|
||||
examples=['420097, г.Казань, ул.Заслонова, д.5'],
|
||||
)
|
||||
latitude: float | None = Field(
|
||||
title='Широта, при наличии', examples=[55.789], default=None
|
||||
)
|
||||
longitude: float | None = Field(
|
||||
title='Долгота, при наличии', examples=[37.789], default=None
|
||||
)
|
||||
|
||||
|
||||
class DepartmentModel(BaseModel):
|
||||
id: str = Field(
|
||||
title='Идентификатор МО/Филиала',
|
||||
examples=['a3677271-3385-4f27-a65d-c3430b7c61c2'],
|
||||
)
|
||||
OID: str = Field(
|
||||
title='OID МО / Филиала', examples=['1.2.643.5.1.13.13.12.2.16.1084']
|
||||
)
|
||||
parentId: str | None = Field(
|
||||
title='Идентификатор вышестоящего подразделения',
|
||||
examples=['a3677271-3385-4f27-a65d-c3430b7c61c2'],
|
||||
)
|
||||
code: str = Field(
|
||||
title='Региональный код или код ТФОМС',
|
||||
examples=['0000000000'],
|
||||
)
|
||||
fullname: str = Field(
|
||||
title='Полное наименование',
|
||||
examples=['ГБУЗС "Тестовая медицинская организация"'],
|
||||
)
|
||||
shortname: str = Field(
|
||||
title='Краткое наименование',
|
||||
examples=['ГБУЗС "Тестовая медицинская организация"'],
|
||||
)
|
||||
type: str = Field(
|
||||
title='Тип подразделения (для МО: «Юридический»'
|
||||
', для филиалов: Стационар / Поликлиника / ФАП / Амбулатория)',
|
||||
examples=['Юридическое лицо'],
|
||||
)
|
||||
inn: str = Field(title='ИНН', examples=['0000000000'])
|
||||
kpp: str = Field(title='КПП', examples=['0000000000'])
|
||||
ogrn: str = Field(title='ОГРН', examples=['1149204047816'])
|
||||
address: list[DepartmentAddressModel]
|
||||
|
||||
|
||||
class WorkersPositionModel(BaseModel):
|
||||
id: str = Field(
|
||||
title='Идентификатор сотрудника в связке с должностью',
|
||||
examples=['41019'],
|
||||
)
|
||||
dateBegin: datetime = Field(
|
||||
title='Дата приёма на работу', examples=['01.08.2022']
|
||||
)
|
||||
departmentId: str = Field(
|
||||
title='ID ФИЛИАЛА',
|
||||
examples=['10ea04ca-339a-4867-aab4-d9a83b7e9098'],
|
||||
)
|
||||
departmentName: str = Field(
|
||||
title='Краткое наименование филиала',
|
||||
examples=['Поликлиника'],
|
||||
)
|
||||
positionName: str = Field(
|
||||
title='Тип должности.Наименование (POST_TYPE)',
|
||||
examples=['Врач-онколог'],
|
||||
)
|
||||
positionFedCode: str = Field(
|
||||
title='Тип должности.Код (POST_TYPE)',
|
||||
examples=['3037'],
|
||||
)
|
||||
positionRegName: str | None = Field(
|
||||
title='ФРМР. Должности медицинского персонала',
|
||||
examples=['врач-онколог'],
|
||||
)
|
||||
positionSpecialityCode: str = Field(
|
||||
title='Код специальности по V021',
|
||||
examples=['41'],
|
||||
)
|
||||
positionSpecialityName: str = Field(
|
||||
title='Наименование специальности по V021',
|
||||
examples=['Онкология'],
|
||||
)
|
||||
rate: float = Field(
|
||||
title='Ставка',
|
||||
examples=[0.5],
|
||||
)
|
||||
|
||||
|
||||
class WorkersModel(BaseModel):
|
||||
id: str = Field(
|
||||
title='Идентификатор сотрудника',
|
||||
examples=['dc911302-5044-46f4-b935-c6ffd85eb68f'],
|
||||
)
|
||||
SNILS: str = Field(
|
||||
title='СНИЛС',
|
||||
examples=['059-486-659 26'],
|
||||
)
|
||||
firstName: str = Field(title='Имя', examples=['Владимир'])
|
||||
lastName: str = Field(title='Фамилия', examples=['Камашев'])
|
||||
middleName: str = Field(title='Отчество', examples=['Михайлович'])
|
||||
birthDate: datetime = Field(title='Дата рождения', examples=['30.05.1961'])
|
||||
positions: list[WorkersPositionModel]
|
||||
|
||||
Reference in New Issue
Block a user