# Лк ## Пациент Получение Создание Поиск дубля (по фио, телефону, дате рождения) ## Дети Список детей, добавление GET: ```typescript interface { id: string | number lastName: string firstName: string middleName: string | null birthday: date approved: boolean // одобрен ли родитель (который делает запрос) для ребенка } ``` POST: ```typescript interface { lastName: string firstName: string middleName: string | null birthday: date } ``` --- ## Загрузка файла Сейчас создается запись в мд, потом загружаем файлы по ftp. Учитывается тип - идс, пользовательский файл, дневник POST: ```typescript interface { name: string comment: string | null files: File[] type: enum // ? } ``` --- ## Приемы ### Будущие приемы Должна быть возможность отмена приема ```typescript= interface FutureVisit { id: number | string patientId: number | string createdAt: Date planningAt: Date clinic: Clinic | null doctor: Doctor | null service: Service bankCardRequired: bool // требуется для предупреждения methodCommunication: { type: enum{'phone', 'skype', 'zoom'} value: string } | null // если онлайн } ``` TODO: штрафы? ### Прошедшие приемы Должна быть возможность поиска и фильтрация по типу записи, по отмене записи ```typescript= interface VisitFile { name: string description: string | null path: string } interface PastVisit { id: number | string patientId: number | string createdAt: Date planningAt: Date // название услуги (?) name: string service: Service clinic: Clinic | null doctor: Doctor | null // доктор который направил senderDoctor: Doctor | null speciality: Speciality | null // не используется? // прикрепленные файлы files: VisitFile[]; // заключение details: any /** * тип записи: * TYPE_DOCTOR = 0, // все остальное * TYPE_ANALYSIS = 1, // анализ * TYPE_DIAGNOSTICS = 2, // диагностика * TYPE_SURGICAL_MANIPULATION = 3, // хирургическая манипуляция * TYPE_VACCINATION = 4, // вакцинация * TYPE_USER_FILES = 5, // Пользовательские файлы * TYPE_DOCUMENT = 6 // Различные ИДС и т.п. */ recordType: enum // rec_type в медиалоге recordTypeName: string // model в медиалоге // дата готовности результата resultsDueDate: Date | null // Дата сдачи анализа dateOfReceiptOfTestSample: Date | null // ссылка на pacs radiologyUrl: string | null // внешняя ссылка externalRadiologyUrl: string | null // дата отмены canceledAt: Date | null // кто отменил initiatorOfCancellation: enum // стоимость, которую нужно оплатить, если была отмена и еще не оплачено amountOfFineForCancellation: number | null } ``` --- ## Лицевой счет 1. Привязка карты 2. Список привязанных пользователей. Добавление, удаление. 3. Повторить оплату 4. Список карт пользователя (его и привязанные). Выбор карты по умолчанию. Получение текущей карты ```typescript= interface PaymentMethod { id: number | string number: string | null expires: Date isDefault: bool owner: User (больше не нужно ?) } ``` У пользователя карты показываем все счета (его , привязанных, детей), только у привязанных не показывам что входит в счет. (?) Объединить запрос счетов в один api? #### Неоплаченные счета ```typescript= interface { id: number | string datetime: Date totalAmount: number patient: Patient type: enum // возврат, оплата items: Item[] } interface Item { datetime: Date amount: number clinic: Clinic service: Service } ``` #### Оплаченные счета ```typescript= interface { id: number | string datetime: Date totalAmount: number patient: Patient type: enum // возврат, оплата items: Item[] } interface Item { datetime: Date amount: number clinic: Clinic service: Service } ``` --- ## Направления ```typescript= ``` --- ## Aнамнез жизни GET: Anamnesis[] ```typescript= interface Anamnesis { param: string name: string description: string } ``` --- ## Вакцинация GET: Disease[] ```typescript= interface Disease { id: number | string name: string vaccines: Disease[] } interface Disease { id: number | string name: string groupType: enum{'vaccination', 'antibody', 'event'} date: Date organization: string | null appointmentId: number | string | null info: string | null clinic: Clinic | null } ``` --- ## Анализы GET: AnalysisInDynamics[] ```typescript= interface AnalysisInDynamics { name: string items: AnalysisInDynamicsResult[] } interface AnalysisInDynamicsResult { date: Date value: float | string reference: float | string measure: string } ``` ## Документы GET: InformedVoluntaryConsent[] Неподписанные ИДС которые появляются в ЛК. ```typescript= interface Documents { ids: InformedVoluntaryConsent[] } interface InformedVoluntaryConsent { patientId: number | string file_label: string PATH: string file_date: Date } ``` --- ## Профиль