Добро пожаловать в экосистему Базы данных дела! Этот формат позволяет создавать стандартизированные системы для работы с юридическими документами.
Это JSON-файл, который хранится в корневой папке дела и содержит:
- Метаданные о деле
- Список всех документов с извлеченным текстом
- Факты, доказательства и обстоятельства дела
- Задачи для юристов
- Связи между элементами
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)} записей документов")// Загрузка базы данных
const database = await manager.loadDatabase('/path/to/case/folder');
// Доступ к документам
database.documents.forEach(doc => {
console.log(`${doc.fileName}: ${doc.extractedText?.substring(0, 100)}...`);
});// Добавление факта
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/
└── ...
Главный класс для работы с базами данных:
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);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 # База данных (не редактировать вручную!)
- Используйте постраничную загрузку документов
- Кэшируйте извлеченный текст
- Оптимизируйте запросы к ИИ
- Всегда проверяйте уровень конфиденциальности перед отправкой в ИИ
- Шифруйте чувствительные данные
- Ведите аудит всех изменений
- Изучите спецификацию - SPECIFICATION.md
- Посмотрите примеры - examples/
- Создайте свою реализацию - начните с базового менеджера
- Присоединяйтесь к сообществу - участвуйте в разработке формата
- 📖 Документация: docs/
- 💬 Обсуждения: GitHub Discussions
- 🐛 Баги: Issues
- 💡 Идеи: Discussions