DataOpsHub 6.2.0__tar.gz → 6.6.12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dataopshub-6.2.0 → dataopshub-6.6.12}/DataOpsHub/__init__.py +1 -1
- dataopshub-6.6.12/DataOpsHub.egg-info/PKG-INFO +446 -0
- dataopshub-6.6.12/DataOpsHub.egg-info/SOURCES.txt +11 -0
- {dataopshub-6.2.0 → dataopshub-6.6.12}/DataOpsHub.egg-info/requires.txt +5 -4
- dataopshub-6.6.12/LICENSE +21 -0
- dataopshub-6.6.12/MANIFEST.in +7 -0
- dataopshub-6.6.12/PKG-INFO +446 -0
- dataopshub-6.6.12/README.md +389 -0
- dataopshub-6.6.12/pyproject.toml +75 -0
- dataopshub-6.6.12/setup.py +25 -0
- dataopshub-6.2.0/DataOpsHub/constants/__init__.py +0 -29
- dataopshub-6.2.0/DataOpsHub/constants/error_messages.py +0 -30
- dataopshub-6.2.0/DataOpsHub/constants/table_mappings.py +0 -15
- dataopshub-6.2.0/DataOpsHub/data_entry_forms/__init__.py +0 -34
- dataopshub-6.2.0/DataOpsHub/data_entry_forms/forms/__init__.py +0 -13
- dataopshub-6.2.0/DataOpsHub/data_entry_forms/forms/forms.py +0 -27
- dataopshub-6.2.0/DataOpsHub/data_entry_forms/validators/__init__.py +0 -53
- dataopshub-6.2.0/DataOpsHub/data_entry_forms/validators/form_field_validations.py +0 -513
- dataopshub-6.2.0/DataOpsHub/databases/__init__.py +0 -10
- dataopshub-6.2.0/DataOpsHub/databases/database_handler.py +0 -878
- dataopshub-6.2.0/DataOpsHub/databases/upload_data.py +0 -118
- dataopshub-6.2.0/DataOpsHub/models/__init__.py +0 -17
- dataopshub-6.2.0/DataOpsHub/models/base.py +0 -82
- dataopshub-6.2.0/DataOpsHub/models/user.py +0 -110
- dataopshub-6.2.0/DataOpsHub/security/__init__.py +0 -15
- dataopshub-6.2.0/DataOpsHub/security/automated_passwords.py +0 -54
- dataopshub-6.2.0/DataOpsHub/security/config.py +0 -86
- dataopshub-6.2.0/DataOpsHub/security/exceptions.py +0 -56
- dataopshub-6.2.0/DataOpsHub/services/__init__.py +0 -14
- dataopshub-6.2.0/DataOpsHub/services/user_service.py +0 -213
- dataopshub-6.2.0/DataOpsHub.egg-info/PKG-INFO +0 -160
- dataopshub-6.2.0/DataOpsHub.egg-info/SOURCES.txt +0 -28
- dataopshub-6.2.0/PKG-INFO +0 -160
- dataopshub-6.2.0/README.md +0 -110
- dataopshub-6.2.0/setup.py +0 -81
- {dataopshub-6.2.0 → dataopshub-6.6.12}/DataOpsHub.egg-info/dependency_links.txt +0 -0
- {dataopshub-6.2.0 → dataopshub-6.6.12}/DataOpsHub.egg-info/top_level.txt +0 -0
- {dataopshub-6.2.0 → dataopshub-6.6.12}/setup.cfg +0 -0
|
@@ -6,7 +6,7 @@ DataOpsHub is a comprehensive Python package for data operations in healthcare a
|
|
|
6
6
|
It provides a set of tools for database operations, form validation, security, and web automation.
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
-
__version__ = '6.
|
|
9
|
+
__version__ = '6.6.12'
|
|
10
10
|
|
|
11
11
|
# Define what should be available when using 'from DataOpsHub import *'
|
|
12
12
|
__all__ = [
|
|
@@ -0,0 +1,446 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: DataOpsHub
|
|
3
|
+
Version: 6.6.12
|
|
4
|
+
Summary: A Python toolkit for streamlined data operations and database management
|
|
5
|
+
Author-email: Jon Ander Gabantxo <jagabantxo@gmail.com>
|
|
6
|
+
License: MIT License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2024 DataOpsHub
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in all
|
|
18
|
+
copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
+
SOFTWARE.
|
|
27
|
+
Project-URL: Homepage, https://github.com/EusDancerDev/DataOpsHub
|
|
28
|
+
Project-URL: Documentation, https://github.com/EusDancerDev/DataOpsHub#readme
|
|
29
|
+
Project-URL: Repository, https://github.com/EusDancerDev/DataOpsHub.git
|
|
30
|
+
Project-URL: Bug Reports, https://github.com/EusDancerDev/DataOpsHub/issues
|
|
31
|
+
Classifier: Development Status :: 4 - Beta
|
|
32
|
+
Classifier: Intended Audience :: Developers
|
|
33
|
+
Classifier: Topic :: Database
|
|
34
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
35
|
+
Classifier: Programming Language :: Python :: 3
|
|
36
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
37
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
38
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
39
|
+
Classifier: Operating System :: OS Independent
|
|
40
|
+
Requires-Python: >=3.10
|
|
41
|
+
Description-Content-Type: text/markdown
|
|
42
|
+
License-File: LICENSE
|
|
43
|
+
Requires-Dist: sqlalchemy>=2.0.0
|
|
44
|
+
Requires-Dist: numpy>=2.2.3
|
|
45
|
+
Requires-Dist: pandas>=2.2.3
|
|
46
|
+
Requires-Dist: filewise>=3.14.0
|
|
47
|
+
Requires-Dist: pygenutils>=17.1.0
|
|
48
|
+
Requires-Dist: paramlib>=3.5.0
|
|
49
|
+
Requires-Dist: email_validator>=2.0.0
|
|
50
|
+
Requires-Dist: selenium>=4.0.0
|
|
51
|
+
Provides-Extra: dev
|
|
52
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
53
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
54
|
+
Requires-Dist: black>=22.0.0; extra == "dev"
|
|
55
|
+
Requires-Dist: flake8>=5.0.0; extra == "dev"
|
|
56
|
+
Dynamic: license-file
|
|
57
|
+
|
|
58
|
+
# DataOpsHub
|
|
59
|
+
|
|
60
|
+
[](https://www.python.org/downloads/)
|
|
61
|
+
[](LICENSE)
|
|
62
|
+
[](https://pypi.org/project/dataopshub/)
|
|
63
|
+
|
|
64
|
+
**DataOpsHub** is a comprehensive Python toolkit designed specifically for healthcare data operations and management. It provides a robust set of tools for managing medical records, user data, form validation, database operations, and web automation in healthcare environments. The package emphasises data integrity, security, and compliance with healthcare standards including HL7 v2 compatibility.
|
|
65
|
+
|
|
66
|
+
## Features
|
|
67
|
+
|
|
68
|
+
- **Healthcare Data Models**:
|
|
69
|
+
- Comprehensive user management with medical data relationships
|
|
70
|
+
- Vital signs tracking and monitoring
|
|
71
|
+
- Laboratory results management
|
|
72
|
+
- Medication history and prescription tracking
|
|
73
|
+
- HL7 v2 compatibility for healthcare data interchange
|
|
74
|
+
|
|
75
|
+
- **Database Operations**:
|
|
76
|
+
- Advanced SQLAlchemy-based database handling
|
|
77
|
+
- Multi-database support (MySQL, PostgreSQL, SQLite)
|
|
78
|
+
- Automated file-to-database loading (CSV, Excel, ODS)
|
|
79
|
+
- Comprehensive CRUD operations with error handling
|
|
80
|
+
- Data filtering and querying with temporal range support
|
|
81
|
+
|
|
82
|
+
- **Form Validation and Data Entry**:
|
|
83
|
+
- WTForms-based form validation for healthcare applications
|
|
84
|
+
- Comprehensive field validation (email, medical IDs, dates, demographics)
|
|
85
|
+
- Spanish DNI validation support
|
|
86
|
+
- JSON and form data validation with error reporting
|
|
87
|
+
- Medical data entry forms with specialised validations
|
|
88
|
+
|
|
89
|
+
- **Security and Configuration**:
|
|
90
|
+
- Automated secure password generation
|
|
91
|
+
- Comprehensive security configuration management
|
|
92
|
+
- Custom exception hierarchy for precise error handling
|
|
93
|
+
- Environment-based configuration with security best practices
|
|
94
|
+
|
|
95
|
+
- **Web Automation**:
|
|
96
|
+
- Selenium WebDriver setup and testing utilities
|
|
97
|
+
- Headless browser configuration for automated testing
|
|
98
|
+
- Support for Firefox and Chrome browsers in CI/CD environments
|
|
99
|
+
|
|
100
|
+
## Installation
|
|
101
|
+
|
|
102
|
+
### Prerequisites
|
|
103
|
+
|
|
104
|
+
Before installing, please ensure the following dependencies are available on your system:
|
|
105
|
+
|
|
106
|
+
- **External Tools** (required for full functionality):
|
|
107
|
+
- Database server (MySQL, PostgreSQL, or SQLite)
|
|
108
|
+
- Web browser (Firefox/Chrome for web automation features)
|
|
109
|
+
|
|
110
|
+
- **Required Third-Party Libraries**:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
pip install sqlalchemy pandas numpy scipy wtforms email-validator selenium
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Or via Anaconda (recommended channel: `conda-forge`):
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
conda install -c conda-forge sqlalchemy pandas numpy scipy
|
|
120
|
+
pip install wtforms email-validator selenium
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
- **Database Drivers** (choose based on your database):
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# For MySQL
|
|
127
|
+
pip install pymysql
|
|
128
|
+
|
|
129
|
+
# For PostgreSQL
|
|
130
|
+
pip install psycopg2-binary
|
|
131
|
+
|
|
132
|
+
# SQLite is included with Python
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
- **Internal Package Dependencies**:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
pip install filewise paramlib
|
|
139
|
+
pip install pygenutils # Core functionality
|
|
140
|
+
pip install pygenutils[arrow] # With arrow support (optional)
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### For regular users (from PyPI)
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
pip install dataopshub
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### For contributors/developers (with latest Git versions)
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
# Install with development dependencies (includes latest Git versions)
|
|
153
|
+
pip install -e .[dev]
|
|
154
|
+
|
|
155
|
+
# Alternative: Use requirements-dev.txt for explicit Git dependencies
|
|
156
|
+
pip install -r requirements-dev.txt
|
|
157
|
+
pip install -e .
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Benefits of the new approach:**
|
|
161
|
+
|
|
162
|
+
- **Regular users**: Simple `pip install dataopshub` with all dependencies included
|
|
163
|
+
- **Developers**: Access to latest Git versions for development and testing
|
|
164
|
+
- **PyPI compatibility**: All packages can be published without Git dependency issues
|
|
165
|
+
|
|
166
|
+
### Troubleshooting
|
|
167
|
+
|
|
168
|
+
**If you encounter import errors:**
|
|
169
|
+
|
|
170
|
+
1. **For PyPI users**: The package should install all dependencies automatically. If you get import errors, try:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
pip install --upgrade dataopshub
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
2. **For developers**: Make sure you've installed the development dependencies:
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
pip install -e .[dev]
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
3. **Common issues**:
|
|
183
|
+
- **Missing dependencies**: For regular users, all dependencies are included. For developers, use `pip install -e .[dev]`
|
|
184
|
+
- **Python version**: Ensure you're using Python 3.10 or higher
|
|
185
|
+
- **Database drivers**: Install the appropriate database driver for your database system
|
|
186
|
+
|
|
187
|
+
### Verify Installation
|
|
188
|
+
|
|
189
|
+
To verify that your installation is working correctly:
|
|
190
|
+
|
|
191
|
+
```python
|
|
192
|
+
try:
|
|
193
|
+
import DataOpsHub
|
|
194
|
+
from filewise.general.introspection_utils import get_type_str
|
|
195
|
+
from pygenutils.arrays_and_lists.data_manipulation import flatten_list
|
|
196
|
+
from paramlib.config_params import DB_ERROR_CODE_DICT
|
|
197
|
+
|
|
198
|
+
print("✅ All imports successful!")
|
|
199
|
+
print(f"✅ DataOpsHub version: {DataOpsHub.__version__}")
|
|
200
|
+
print("✅ Installation is working correctly.")
|
|
201
|
+
|
|
202
|
+
except ImportError as e:
|
|
203
|
+
print(f"❌ Import error: {e}")
|
|
204
|
+
print("💡 For regular users: pip install dataopshub")
|
|
205
|
+
print("💡 For developers: pip install -e .[dev]")
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Usage
|
|
209
|
+
|
|
210
|
+
### Basic Example - User Management
|
|
211
|
+
|
|
212
|
+
```python
|
|
213
|
+
from DataOpsHub.models.user import User
|
|
214
|
+
from DataOpsHub.services.user_service import UserService
|
|
215
|
+
from DataOpsHub.databases.database_handler import init_db
|
|
216
|
+
from DataOpsHub.security.config import DATABASE_CREDENTIALS
|
|
217
|
+
|
|
218
|
+
# Initialize database
|
|
219
|
+
engine, Session = init_db(DATABASE_CREDENTIALS)
|
|
220
|
+
session = Session()
|
|
221
|
+
|
|
222
|
+
# Create user service
|
|
223
|
+
user_service = UserService(session)
|
|
224
|
+
|
|
225
|
+
# Create a new user
|
|
226
|
+
user_data = {
|
|
227
|
+
'user_id': 'U001',
|
|
228
|
+
'first_name': 'John',
|
|
229
|
+
'last_name': 'Doe',
|
|
230
|
+
'email': 'john.doe@example.com',
|
|
231
|
+
'date_of_birth': '1990-01-01',
|
|
232
|
+
'gender': 'Male'
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
result = user_service.create_user(user_data)
|
|
236
|
+
print(result['message']) # "User created successfully"
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### Advanced Example - Medical Data Management
|
|
240
|
+
|
|
241
|
+
```python
|
|
242
|
+
from DataOpsHub.models.user import VitalSigns, LabResults
|
|
243
|
+
from datetime import datetime
|
|
244
|
+
|
|
245
|
+
# Add vital signs for a user
|
|
246
|
+
vital_signs = VitalSigns(
|
|
247
|
+
user_id='U001',
|
|
248
|
+
heart_rate=72,
|
|
249
|
+
blood_pressure='120/80',
|
|
250
|
+
temperature=98.6,
|
|
251
|
+
oxygen_saturation=98
|
|
252
|
+
)
|
|
253
|
+
|
|
254
|
+
# Add lab results
|
|
255
|
+
lab_result = LabResults(
|
|
256
|
+
user_id='U001',
|
|
257
|
+
test_name='Complete Blood Count',
|
|
258
|
+
result='Normal',
|
|
259
|
+
unit='cells/mcL',
|
|
260
|
+
reference_range='4,500-11,000'
|
|
261
|
+
)
|
|
262
|
+
|
|
263
|
+
session.add(vital_signs)
|
|
264
|
+
session.add(lab_result)
|
|
265
|
+
session.commit()
|
|
266
|
+
|
|
267
|
+
# Get user with all medical data
|
|
268
|
+
user_data = user_service.get_user_with_related_data('U001')
|
|
269
|
+
print(f"User: {user_data['user'].first_name}")
|
|
270
|
+
print(f"Vital signs: {len(user_data['vital_signs'])}")
|
|
271
|
+
print(f"Lab results: {len(user_data['lab_results'])}")
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### Form Validation Example
|
|
275
|
+
|
|
276
|
+
```python
|
|
277
|
+
from DataOpsHub.data_entry_forms.forms.forms import RegistrationForm
|
|
278
|
+
from DataOpsHub.data_entry_forms.validators.form_field_validations import validate_field
|
|
279
|
+
|
|
280
|
+
# Validate a registration form
|
|
281
|
+
form_data = {
|
|
282
|
+
'email': 'user@example.com',
|
|
283
|
+
'first_name': 'John',
|
|
284
|
+
'last_name': 'Doe'
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
form = RegistrationForm(data=form_data)
|
|
288
|
+
if form.validate():
|
|
289
|
+
print("Form validation successful!")
|
|
290
|
+
else:
|
|
291
|
+
print("Validation errors:", form.errors)
|
|
292
|
+
|
|
293
|
+
# Validate individual fields
|
|
294
|
+
email_result = validate_field('email', 'test@example.com', {}, [])
|
|
295
|
+
print(f"Email valid: {not email_result['has_error']}")
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Database File Upload Example
|
|
299
|
+
|
|
300
|
+
```python
|
|
301
|
+
from DataOpsHub.databases.database_handler import upload_file_data
|
|
302
|
+
|
|
303
|
+
# Upload CSV data to database
|
|
304
|
+
upload_file_data(
|
|
305
|
+
input_file_list='medical_data.csv',
|
|
306
|
+
config=DATABASE_CREDENTIALS,
|
|
307
|
+
database_type='mysql',
|
|
308
|
+
if_exists='append',
|
|
309
|
+
dtype_dict={'patient_id': 'str', 'age': 'int64', 'temperature': 'float64'}
|
|
310
|
+
)
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Security Example
|
|
314
|
+
|
|
315
|
+
```python
|
|
316
|
+
from DataOpsHub.security.automated_passwords import generate_automated_password
|
|
317
|
+
from DataOpsHub.security.exceptions import ValidationError
|
|
318
|
+
|
|
319
|
+
# Generate secure password
|
|
320
|
+
password = generate_automated_password(33, 127, 16)
|
|
321
|
+
print(password)
|
|
322
|
+
|
|
323
|
+
# Handle custom exceptions
|
|
324
|
+
try:
|
|
325
|
+
# Some operation that might fail
|
|
326
|
+
pass
|
|
327
|
+
except ValidationError as e:
|
|
328
|
+
print(f"Validation failed: {e.message}")
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
## Project Structure
|
|
332
|
+
|
|
333
|
+
The package is organised into specialised sub-packages for healthcare operations:
|
|
334
|
+
|
|
335
|
+
```text
|
|
336
|
+
DataOpsHub/
|
|
337
|
+
├── constants/
|
|
338
|
+
│ ├── error_messages.py # Standardised error messages
|
|
339
|
+
│ └── table_mappings.py # Database table field mappings
|
|
340
|
+
├── data_entry_forms/
|
|
341
|
+
│ ├── forms/
|
|
342
|
+
│ │ └── forms.py # WTForms-based form classes
|
|
343
|
+
│ └── validators/
|
|
344
|
+
│ └── form_field_validations.py # Comprehensive validation functions
|
|
345
|
+
├── databases/
|
|
346
|
+
│ ├── database_handler.py # Core database operations and utilities
|
|
347
|
+
│ └── upload_data.py # File-to-database upload utilities
|
|
348
|
+
├── models/
|
|
349
|
+
│ ├── base.py # Base model with HL7 compatibility
|
|
350
|
+
│ └── user.py # User and medical data models
|
|
351
|
+
├── security/
|
|
352
|
+
│ ├── automated_passwords.py # Secure password generation
|
|
353
|
+
│ ├── config.py # Security configuration management
|
|
354
|
+
│ └── exceptions.py # Custom exception hierarchy
|
|
355
|
+
├── services/
|
|
356
|
+
│ └── user_service.py # User management service layer
|
|
357
|
+
└── web_automation/
|
|
358
|
+
└── webdriver_Firefox-Chrome_setup_test.py # WebDriver testing utilities
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
## Key Functions
|
|
362
|
+
|
|
363
|
+
### Database Operations
|
|
364
|
+
|
|
365
|
+
- `init_db()` - Initialize database with healthcare models
|
|
366
|
+
- `upload_file_data()` - Load CSV/Excel/ODS files into database tables
|
|
367
|
+
- `filter_data()` - Advanced data filtering with temporal ranges
|
|
368
|
+
- `create_user()`, `update_user()`, `delete_user()` - User CRUD operations
|
|
369
|
+
|
|
370
|
+
### Medical Data Models
|
|
371
|
+
|
|
372
|
+
- `User` - Comprehensive user model with medical relationships
|
|
373
|
+
- `VitalSigns` - Vital signs tracking and monitoring
|
|
374
|
+
- `LabResults` - Laboratory test results management
|
|
375
|
+
- `MedicationsHistory` - Medication and prescription tracking
|
|
376
|
+
|
|
377
|
+
### Form Validation
|
|
378
|
+
|
|
379
|
+
- `RegistrationForm` - User registration with validation
|
|
380
|
+
- `validate_field()` - Individual field validation
|
|
381
|
+
- `validate_date_range()` - Medical date range validation
|
|
382
|
+
- `verify_spanish_dni()` - Spanish ID validation
|
|
383
|
+
|
|
384
|
+
### Security Functions
|
|
385
|
+
|
|
386
|
+
- `generate_automated_password()` - Secure password generation
|
|
387
|
+
- Custom exception classes for precise error handling
|
|
388
|
+
- Environment-based security configuration
|
|
389
|
+
|
|
390
|
+
### Web Automation
|
|
391
|
+
|
|
392
|
+
- `test_firefox_webdriver()` - WebDriver setup testing
|
|
393
|
+
- `configure_firefox_options()` - Headless browser configuration
|
|
394
|
+
|
|
395
|
+
## Healthcare Standards Compliance
|
|
396
|
+
|
|
397
|
+
DataOpsHub is designed with healthcare standards in mind:
|
|
398
|
+
|
|
399
|
+
- **HL7 v2 Compatibility**: All models include HL7 v2 fields for healthcare data interchange
|
|
400
|
+
- **Medical Data Integrity**: Comprehensive validation for medical identifiers and data
|
|
401
|
+
- **Audit Trails**: Automatic timestamp tracking for all medical records
|
|
402
|
+
- **Security**: Healthcare-grade security configuration and password policies
|
|
403
|
+
- **Data Relationships**: Proper medical data relationships between users and their health records
|
|
404
|
+
|
|
405
|
+
## Contributing
|
|
406
|
+
|
|
407
|
+
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
|
|
408
|
+
|
|
409
|
+
### Development Guidelines
|
|
410
|
+
|
|
411
|
+
- Follow healthcare data security best practices
|
|
412
|
+
- Ensure all medical data models maintain HL7 compatibility
|
|
413
|
+
- Add comprehensive validation for any new form fields
|
|
414
|
+
- Include proper error handling and custom exceptions
|
|
415
|
+
- Write tests for database operations and data validation
|
|
416
|
+
|
|
417
|
+
## License
|
|
418
|
+
|
|
419
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
420
|
+
|
|
421
|
+
## Acknowledgments
|
|
422
|
+
|
|
423
|
+
- SQLAlchemy team for robust database operations
|
|
424
|
+
- WTForms community for form validation framework
|
|
425
|
+
- Healthcare standards organisations for HL7 specifications
|
|
426
|
+
- Open-source contributors to the healthcare data ecosystem
|
|
427
|
+
|
|
428
|
+
## Contact
|
|
429
|
+
|
|
430
|
+
For any questions or suggestions, please open an issue on GitHub or contact the maintainers.
|
|
431
|
+
|
|
432
|
+
## Version
|
|
433
|
+
|
|
434
|
+
Current version: 6.6.12
|
|
435
|
+
|
|
436
|
+
For detailed changelog, see [CHANGELOG.md](CHANGELOG.md).
|
|
437
|
+
|
|
438
|
+
## Security Notice
|
|
439
|
+
|
|
440
|
+
This package handles sensitive healthcare data. Please ensure:
|
|
441
|
+
|
|
442
|
+
- Use secure database connections in production
|
|
443
|
+
- Implement proper access controls and authentication
|
|
444
|
+
- Follow HIPAA compliance guidelines where applicable
|
|
445
|
+
- Regularly update security configurations and dependencies
|
|
446
|
+
- Use environment variables for sensitive configuration data
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
MANIFEST.in
|
|
3
|
+
README.md
|
|
4
|
+
pyproject.toml
|
|
5
|
+
setup.py
|
|
6
|
+
DataOpsHub/__init__.py
|
|
7
|
+
DataOpsHub.egg-info/PKG-INFO
|
|
8
|
+
DataOpsHub.egg-info/SOURCES.txt
|
|
9
|
+
DataOpsHub.egg-info/dependency_links.txt
|
|
10
|
+
DataOpsHub.egg-info/requires.txt
|
|
11
|
+
DataOpsHub.egg-info/top_level.txt
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 DataOpsHub
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|