Skip to content

Latest commit

 

History

History
252 lines (192 loc) · 8.31 KB

File metadata and controls

252 lines (192 loc) · 8.31 KB

Быстрый старт для разработчиков

Введение

Добро пожаловать в экосистему Базы данных дела! Этот формат позволяет создавать стандартизированные системы для работы с юридическими документами.

Что такое .case_database.json?

Это JSON-файл, который хранится в корневой папке дела и содержит:

  • Метаданные о деле
  • Список всех документов с извлеченным текстом
  • Факты, доказательства и обстоятельства дела
  • Задачи для юристов
  • Связи между элементами

Быстрый старт

1. Создание базы данных

const CaseDatabaseManager = require('case-database-format');

const manager = new CaseDatabaseManager();

// Создание новой базы данных
const database = await manager.createDatabase('/path/to/case/folder');
console.log(`Создано ${database.documents.length} записей документов`);
from case_database import CaseDatabaseManager

manager = CaseDatabaseManager()

# Создание базы данных
database = manager.create_database('/path/to/case/folder')
print(f"Создано {len(database.documents)} записей документов")

2. Чтение существующей базы

// Загрузка базы данных
const database = await manager.loadDatabase('/path/to/case/folder');

// Доступ к документам
database.documents.forEach(doc => {
    console.log(`${doc.fileName}: ${doc.extractedText?.substring(0, 100)}...`);
});

3. Работа с элементами дела

// Добавление факта
const fact = {
    title: "Факт залива квартиры",
    description: "Произошел залив из-за прорыва трубы",
    isProven: true,
    importance: "critical"
};

database.facts.push(fact);

// Добавление задачи
const task = {
    task: "Заказать экспертизу",
    priority: "urgent",
    status: "pending",
    deadline: "15.01.2024"
};

database.lawyerTasks.push(task);

// Сохранение изменений
await manager.saveDatabase(database, '/path/to/case/folder');

Структура проекта

your-case-management-app/
├── src/
│   ├── case-database/
│   │   ├── CaseDatabaseManager.js
│   │   ├── models/
│   │   │   ├── CaseMetadata.js
│   │   │   ├── DocumentRecord.js
│   │   │   └── ...
│   │   └── utils/
│   │       ├── text-extraction.js
│   │       └── validation.js
│   └── app.js
└── case-files/
    ├── case-001/
    │   ├── documents/
    │   │   ├── contract.pdf
    │   │   └── photos/
    │   └── .case_database.json
    └── case-002/
        └── ...

Основные компоненты

CaseDatabaseManager

Главный класс для работы с базами данных:

  • createDatabase(folderPath) - Создание новой базы
  • loadDatabase(folderPath) - Загрузка существующей
  • saveDatabase(database, folderPath) - Сохранение изменений
  • addDocument(database, filePath) - Добавление документа

Модели данных

  • CaseMetadata - Информация о деле
  • DocumentRecord - Запись о документе
  • CaseFact - Факт по делу
  • CaseEvidence - Доказательство
  • CaseCircumstance - Обстоятельство
  • LawyerTask - Задача для юриста

Обработка документов

Поддерживаемые форматы

  • PDF - через PDF.js или PDF-lib
  • DOC/DOCX - через mammoth.js или python-docx
  • TXT - прямое чтение
  • Изображения - OCR через Tesseract
  • RTF - через специализированные библиотеки

Извлечение текста

const textExtractor = new TextExtractor();

const text = await textExtractor.extract('/path/to/document.pdf');
console.log(`Извлечено ${text.length} символов`);

Отслеживание изменений

const documentRecord = {
    filePath: 'contract.pdf',
    fileHash: await calculateFileHash('/path/to/contract.pdf'),
    extractedText: extractedText,
    // ...
};

// Проверка на изменения
const currentHash = await calculateFileHash('/path/to/contract.pdf');
if (currentHash !== documentRecord.fileHash) {
    // Документ изменился, нужно переизвлечь текст
}

Работа с ИИ

Анализ документов

const aiAnalyzer = new AIAnalyzer();

const analysis = await aiAnalyzer.analyzeDocuments(database.documents);
console.log(analysis.caseType); // "Гражданский спор"
console.log(analysis.keyFacts); // [...]

Генерация задач

const taskGenerator = new TaskGenerator();

const tasks = await taskGenerator.generateFromEvidenceGaps(database);
database.lawyerTasks.push(...tasks);

Валидация данных

Проверка JSON Schema

const validator = new CaseDatabaseValidator();

const isValid = validator.validate(database);
if (!isValid) {
    console.log('Ошибки валидации:', validator.errors);
}

Интеграция с существующими системами

Импорт из других форматов

// Импорт из CSV с делами
const importer = new CSVImporter();
const cases = await importer.importFromCSV('/path/to/cases.csv');

for (const caseData of cases) {
    const database = await manager.createDatabase(caseData.folderPath);
    // Заполнение данными из CSV
    Object.assign(database.metadata, caseData.metadata);
}

Экспорт данных

// Экспорт в формат отчета
const exporter = new ReportExporter();
const report = await exporter.generateReport(database);

// Сохранение в PDF или DOCX
await report.saveAsPDF('/path/to/report.pdf');

Лучшие практики

Организация файлов

case-folder/
├── documents/          # Все документы дела
│   ├── contracts/     # Договоры
│   ├── evidence/      # Доказательства
│   └── correspondence/# Переписка
├── analysis/          # Аналитические материалы
└── .case_database.json # База данных (не редактировать вручную!)

Работа с большими делами

  • Используйте постраничную загрузку документов
  • Кэшируйте извлеченный текст
  • Оптимизируйте запросы к ИИ

Безопасность

  • Всегда проверяйте уровень конфиденциальности перед отправкой в ИИ
  • Шифруйте чувствительные данные
  • Ведите аудит всех изменений

Следующие шаги

  1. Изучите спецификацию - SPECIFICATION.md
  2. Посмотрите примеры - examples/
  3. Создайте свою реализацию - начните с базового менеджера
  4. Присоединяйтесь к сообществу - участвуйте в разработке формата

Нужна помощь?