# Лк
## Пациент
Получение
Создание
Поиск дубля (по фио, телефону, дате рождения)
## Дети
Список детей, добавление
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
}
```
---
## Профиль