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

This commit is contained in:
2025-09-30 10:58:51 +03:00
parent da772336ee
commit d553b93825
3 changed files with 117 additions and 5 deletions

View File

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

View File

@ -380,3 +380,100 @@ class HospExaminationsModel(BaseModel):
)
LpuName: str = Field(title='Наименование МО', examples=['ГАУЗ "ГКБ №7"'])
Examinations: list[ExaminationModel] = Field(title='Список осмотров')
class RouteToDoctorModel(BaseModel):
RouteDate: datetime = Field(
title='Дата направления', examples=['2025-07-17']
)
SpecialityCode: str = Field(title='Код специальности', examples=['013'])
SpecialityName: str = Field(
title='Наименование специальности', examples=['Кардиолог']
)
class RouteToDiagnosticModel(BaseModel):
RouteDate: datetime = Field(
title='Дата направления', examples=['2025-08-06']
)
ResearchCode: str = Field(title='Код услуги', examples=['B03.016.003'])
ResearchName: str = Field(
title='Наименование услуги',
examples=['Общий (клинический) анализ крови'],
)
class HospDestinationModel(BaseModel):
Signa: str = Field(
title='Сигнатура назначения',
examples=[
'Diphenhydraminum+Oleum foliorum Menthae piperitae+'
'Tinctura Leonuri+Ethylbromisovalerinatum капли для приема внутрь'
' 25 мл x 1 доза. \nВнутрь (перорально) (утром) 3 раза через день'
'(08:00, 13:00, 18:00). Повторять 2 раза. Назначил:Изотова Г.М.'
' (Сердечно-сосудистый хирург)'
],
)
class ExamModel(BaseModel):
ExaminationDate: datetime = Field(
title='Дата осмотра', examples=['2025-08-04']
)
ExaminationTime: str = Field(title='Время осмотра', examples=['09:21'])
Status: str = Field(title='Состояние при осмотре', examples=[''])
Post: str = Field(title='Врач', examples=['Шайдуллина Г.И. (Кардиолог)'])
MedicalExaminationType: str = Field(
title='Тип медицинского осмотра',
examples=['Осмотр врача-консультанта'],
)
RoutesToDoctor: list[RouteToDoctorModel] | None = Field(
title='Направления ко врачу', default=None
)
RoutesToDiagnostic: list[RouteToDiagnosticModel] | None = Field(
title='Направления на услугу', default=None
)
HospDestinations: list[HospDestinationModel] | None = Field(
title='Лекарственные назначения', default=None
)
class HospitalizationModel(BaseModel):
EventID: str = Field(
title='Идентификатор случая госпитализации',
examples=['ddfa23ea-b0de-4d88-8abe-7d6a7a241df1'],
)
CreationDateTime: str = Field(
title='Дата и время регистрации', examples=['2025-07-10 17:29']
)
ReceptionDiagnosis: str = Field(
title='Диагноз при поступлении',
examples=[
'I11.9 | Гипертензивная [гипертоническая] болезнь с '
'преимущественным поражением сердца без (застойной) '
'сердечной недостаточности'
],
)
Diagnosis: str = Field(
title='Текущий диагноз',
examples=[
'I11.9 | Гипертензивная [гипертоническая] болезнь с '
'преимущественным поражением сердца без (застойной) '
'сердечной недостаточности'
],
)
HospitalizationType: str = Field(
title='Тип госпитализации', examples=['экстренная']
)
HospitalizationReason: str = Field(
title='Причина госпитализации', examples=['заболевание']
)
Division: str = Field(title='Отделение', examples=['Кардиология №1'])
LpuName: str = Field(title='Наименование МО', examples=['ГАУЗ "ГКБ №7"'])
Exams: list[ExamModel] = Field(title='Список осмотров')
class HospitalizationsModel(BaseModel):
Hospitalizations: list[HospitalizationModel] = Field(
title='Список госпитализаций'
)