![Pypi version](https://img.shields.io/pypi/v/django-tmmis.svg)
![Python versions](https://img.shields.io/pypi/pyversions/django-tmmis)
![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)

## Описание проекта

`django-tmmis` — это Django-приложение, которое предоставляет биндинг к базе данных медицинской информационной системы (МИС) "ТМ:МИС". Это позволяет использовать сущности МИС в других проектах Django, используя ORM (Object-Relational Mapping). С помощью этого приложения вы можете легко интегрировать данные из МИС в свои Django-проекты, что упрощает работу с медицинскими данными и их обработку.

### Основные возможности

- Подключение к базе данных МИС через MSSQL.
- Автоматическая генерация Django-моделей на основе существующих таблиц в базе данных.
- Использование Django ORM для работы с данными МИС.
- Поддержка различных версий Python и Django.

## Настройка

Для начала установки необходимых зависимостей и создания нового проекта Django выполните следующие команды:

```shell
python -m pip install django~=4.0 mssql-django
django-admin startproject config .
```

Добавьте подключение к базе данных МИС в файле `config/settings.py`:

```python
DATABASES = {
    'default': {
        # Настройки основной базы данных
        ...
    },
    'tmmis'  : {
        'ENGINE'  : 'mssql',
        'NAME'    : 'ИМЯ БД',  # Укажите имя базы данных
        'USER'    : 'sa',  # Укажите имя пользователя
        'PASSWORD': 'ПАРОЛЬ К БД',  # Укажите пароль
        'HOST'    : 'АДРЕС СЕРВЕРА',  # Укажите адрес сервера
        'PORT'    : 1433,  # Укажите порт, по умолчанию 1433
        'OPTIONS' : {
            'driver': 'ODBC Driver 17 for SQL Server',  # Укажите драйвер ODBC
        },
    }
}
```

### Интроспекция БД

Для интроспекции таблиц МИС можно использовать скрипт `introspection.py`, передавая ему в качестве аргументов наименования таблиц, для которых необходимо создать модели.

Пример использования:

```shell
python introspection.py hlt_TAP oms_LPU
```

После создания моделей обязательно протестируйте модуль:

```shell
python manage.py test
```