---
# System prepended metadata

title: Лк

---

# Лк

## Пациент

Получение

Создание

Поиск дубля (по фио, телефону, дате рождения)

## Дети

Список детей, добавление

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
}

 ```
 

---

## Профиль





