This commit is contained in:
@ -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(
|
||||
|
||||
Reference in New Issue
Block a user