endoreg-db 0.3.7__py3-none-any.whl → 0.3.9__py3-none-any.whl
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.
- endoreg_db/data/__init__.py +4 -0
- endoreg_db/data/agl_service/data.yaml +9 -0
- endoreg_db/data/case_template/rule_value/.init +0 -0
- endoreg_db/data/distribution/multiple_categorical/.init +0 -0
- endoreg_db/data/distribution/numeric/.init +0 -0
- endoreg_db/data/log_type/data.yaml +57 -0
- endoreg_db/data/network_device/data.yaml +9 -3
- endoreg_db/management/commands/load_base_db_data.py +4 -0
- endoreg_db/management/commands/load_logging_data.py +39 -0
- endoreg_db/management/commands/load_network_data.py +11 -3
- endoreg_db/migrations/0068_networkdevicetype_networkdevicetypemanager_and_more.py +57 -0
- endoreg_db/migrations/0069_delete_networkdevicetypemanager_networkdevice_online.py +21 -0
- endoreg_db/migrations/0070_logtype_alter_rawpdffile_file_networkdevicelogentry_and_more.py +71 -0
- endoreg_db/migrations/0071_aglservicelogentry.py +33 -0
- endoreg_db/migrations/0072_alter_rawpdffile_file.py +20 -0
- endoreg_db/models/__init__.py +1 -0
- endoreg_db/models/logging/__init__.py +4 -0
- endoreg_db/models/logging/agl_service.py +15 -0
- endoreg_db/models/logging/base.py +22 -0
- endoreg_db/models/logging/log_type.py +23 -0
- endoreg_db/models/logging/network_device.py +16 -0
- endoreg_db/models/network/__init__.py +2 -1
- endoreg_db/models/network/agl_service.py +38 -0
- endoreg_db/models/network/network_device.py +27 -1
- endoreg_db/models/network/network_device_type.py +1 -1
- {endoreg_db-0.3.7.dist-info → endoreg_db-0.3.9.dist-info}/METADATA +3 -1
- {endoreg_db-0.3.7.dist-info → endoreg_db-0.3.9.dist-info}/RECORD +29 -12
- {endoreg_db-0.3.7.dist-info → endoreg_db-0.3.9.dist-info}/LICENSE +0 -0
- {endoreg_db-0.3.7.dist-info → endoreg_db-0.3.9.dist-info}/WHEEL +0 -0
endoreg_db/data/__init__.py
CHANGED
|
@@ -55,6 +55,10 @@ CASE_TEMPLATE_RULE_VALUE_TYPE_DATA_DIR = CASE_TEMPLATE_BASE_DIR / "rule_value_ty
|
|
|
55
55
|
# NETWORK
|
|
56
56
|
NETWORK_DEVICE_DATA_DIR = DATA_DIR / "network_device"
|
|
57
57
|
NETWORK_DEVICE_TYPE_DATA_DIR = DATA_DIR / "network_device_type"
|
|
58
|
+
AGL_SERVICE_DATA_DIR = DATA_DIR / "agl_service"
|
|
59
|
+
|
|
60
|
+
# LOGS
|
|
61
|
+
LOG_TYPE_DATA_DIR = DATA_DIR / "log_type"
|
|
58
62
|
|
|
59
63
|
# To Do
|
|
60
64
|
LAB_VALUE_DATA_DIR = DATA_DIR / "lab_value"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
- model: endoreg_db.log_type
|
|
2
|
+
fields:
|
|
3
|
+
name: 'service-alive'
|
|
4
|
+
description: 'Data log type'
|
|
5
|
+
|
|
6
|
+
- model: endoreg_db.log_type
|
|
7
|
+
fields:
|
|
8
|
+
name: 'service-error'
|
|
9
|
+
description: 'Data log type'
|
|
10
|
+
|
|
11
|
+
- model: endoreg_db.log_type
|
|
12
|
+
fields:
|
|
13
|
+
name: 'service-info'
|
|
14
|
+
description: 'Data log type'
|
|
15
|
+
|
|
16
|
+
- model: endoreg_db.log_type
|
|
17
|
+
fields:
|
|
18
|
+
name: 'service-warning'
|
|
19
|
+
description: 'Data log type'
|
|
20
|
+
|
|
21
|
+
- model: endoreg_db.log_type
|
|
22
|
+
fields:
|
|
23
|
+
name: 'service-status'
|
|
24
|
+
description: 'Data log type'
|
|
25
|
+
|
|
26
|
+
- model: endoreg_db.log_type
|
|
27
|
+
fields:
|
|
28
|
+
name: 'service-task'
|
|
29
|
+
description: 'Data log type'
|
|
30
|
+
|
|
31
|
+
- model: endoreg_db.log_type
|
|
32
|
+
fields:
|
|
33
|
+
name: 'device-alive'
|
|
34
|
+
description: 'Data log type'
|
|
35
|
+
|
|
36
|
+
- model: endoreg_db.log_type
|
|
37
|
+
fields:
|
|
38
|
+
name: 'device-error'
|
|
39
|
+
description: 'Data log type'
|
|
40
|
+
|
|
41
|
+
# device-status
|
|
42
|
+
- model: endoreg_db.log_type
|
|
43
|
+
fields:
|
|
44
|
+
name: 'device-status'
|
|
45
|
+
description: 'Data log type'
|
|
46
|
+
|
|
47
|
+
# device-task
|
|
48
|
+
- model: endoreg_db.log_type
|
|
49
|
+
fields:
|
|
50
|
+
name: 'device-task'
|
|
51
|
+
description: 'Data log type'
|
|
52
|
+
|
|
53
|
+
# device-info
|
|
54
|
+
- model: endoreg_db.log_type
|
|
55
|
+
fields:
|
|
56
|
+
name: 'device-info'
|
|
57
|
+
description: 'Data log type'
|
|
@@ -2,16 +2,22 @@
|
|
|
2
2
|
fields:
|
|
3
3
|
name: "agl-server-01"
|
|
4
4
|
device_type: "agl-server"
|
|
5
|
-
|
|
5
|
+
ip: "172.16.255.1"
|
|
6
|
+
|
|
7
|
+
- model: endoreg_db.network_device
|
|
8
|
+
fields:
|
|
9
|
+
name: "agl-server-02"
|
|
10
|
+
device_type: "agl-server"
|
|
11
|
+
ip: "172.16.255.2"
|
|
6
12
|
|
|
7
13
|
- model: endoreg_db.network_device
|
|
8
14
|
fields:
|
|
9
15
|
name: "agl-server-03"
|
|
10
16
|
device_type: "agl-server"
|
|
11
|
-
|
|
17
|
+
ip: "172.16.255.3"
|
|
12
18
|
|
|
13
19
|
- model: endoreg_db.network_device
|
|
14
20
|
fields:
|
|
15
21
|
name: "agl-server-04"
|
|
16
22
|
device_type: "agl-server"
|
|
17
|
-
|
|
23
|
+
ip: "172.16.255.4"
|
|
@@ -20,6 +20,10 @@ class Command(BaseCommand):
|
|
|
20
20
|
self.stdout.write(self.style.SUCCESS("Running load_network_data..."))
|
|
21
21
|
call_command('load_network_data', verbose=verbose)
|
|
22
22
|
|
|
23
|
+
# Run the load_logging_data command
|
|
24
|
+
self.stdout.write(self.style.SUCCESS("Running load_logging_data..."))
|
|
25
|
+
call_command('load_logging_data', verbose=verbose)
|
|
26
|
+
|
|
23
27
|
# Run the load_profession_data command
|
|
24
28
|
self.stdout.write(self.style.SUCCESS("Running load_profession_data..."))
|
|
25
29
|
call_command('load_profession_data', verbose=verbose)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
from django.core.management.base import BaseCommand
|
|
2
|
+
from endoreg_db.models import LogType as MODEL_0
|
|
3
|
+
from ...utils import load_model_data_from_yaml
|
|
4
|
+
from ...data import LOG_TYPE_DATA_DIR as SOURCE_DIR
|
|
5
|
+
|
|
6
|
+
IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
7
|
+
MODEL_0.__name__,
|
|
8
|
+
]
|
|
9
|
+
|
|
10
|
+
IMPORT_METADATA = {
|
|
11
|
+
MODEL_0.__name__: {
|
|
12
|
+
"dir": SOURCE_DIR, # e.g. "interventions"
|
|
13
|
+
"model": MODEL_0, # e.g. Intervention
|
|
14
|
+
"foreign_keys": [], # e.g. ["intervention_types"]
|
|
15
|
+
"foreign_key_models": [] # e.g. [InterventionType]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
class Command(BaseCommand):
|
|
20
|
+
help = """Load all .yaml files in the data/intervention directory
|
|
21
|
+
into the Intervention and InterventionType model"""
|
|
22
|
+
|
|
23
|
+
def add_arguments(self, parser):
|
|
24
|
+
parser.add_argument(
|
|
25
|
+
'--verbose',
|
|
26
|
+
action='store_true',
|
|
27
|
+
help='Display verbose output',
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
def handle(self, *args, **options):
|
|
31
|
+
verbose = options['verbose']
|
|
32
|
+
for model_name in IMPORT_MODELS:
|
|
33
|
+
_metadata = IMPORT_METADATA[model_name]
|
|
34
|
+
load_model_data_from_yaml(
|
|
35
|
+
self,
|
|
36
|
+
model_name,
|
|
37
|
+
_metadata,
|
|
38
|
+
verbose
|
|
39
|
+
)
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
from django.core.management.base import BaseCommand
|
|
2
|
-
from endoreg_db.models import NetworkDevice, NetworkDeviceType
|
|
2
|
+
from endoreg_db.models import NetworkDevice, NetworkDeviceType, AglService
|
|
3
3
|
from ...utils import load_model_data_from_yaml
|
|
4
|
-
from ...data import NETWORK_DEVICE_DATA_DIR, NETWORK_DEVICE_TYPE_DATA_DIR
|
|
4
|
+
from ...data import NETWORK_DEVICE_DATA_DIR, NETWORK_DEVICE_TYPE_DATA_DIR, AGL_SERVICE_DATA_DIR
|
|
5
5
|
|
|
6
6
|
MODEL_0 = NetworkDeviceType
|
|
7
7
|
MODEL_1 = NetworkDevice
|
|
8
|
+
MODEL_2 = AglService
|
|
8
9
|
|
|
9
10
|
IMPORT_MODELS = [ # string as model key, serves as key in IMPORT_METADATA
|
|
10
11
|
MODEL_0.__name__,
|
|
11
|
-
MODEL_1.__name__
|
|
12
|
+
MODEL_1.__name__,
|
|
13
|
+
MODEL_2.__name__,
|
|
12
14
|
]
|
|
13
15
|
|
|
14
16
|
IMPORT_METADATA = {
|
|
@@ -23,6 +25,12 @@ IMPORT_METADATA = {
|
|
|
23
25
|
"model": MODEL_1, # e.g. Intervention
|
|
24
26
|
"foreign_keys": ["device_type"], # e.g. ["intervention_types"]
|
|
25
27
|
"foreign_key_models": [NetworkDeviceType] # e.g. [InterventionType]
|
|
28
|
+
},
|
|
29
|
+
MODEL_2.__name__: {
|
|
30
|
+
"dir": AGL_SERVICE_DATA_DIR, # e.g. "interventions"
|
|
31
|
+
"model": MODEL_2, # e.g. Intervention
|
|
32
|
+
"foreign_keys": ["devices"], # e.g. ["intervention_types"]
|
|
33
|
+
"foreign_key_models": [NetworkDevice] # e.g. [InterventionType]
|
|
26
34
|
}
|
|
27
35
|
}
|
|
28
36
|
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Generated by Django 4.2.10 on 2024-08-10 12:39
|
|
2
|
+
|
|
3
|
+
import django.core.files.storage
|
|
4
|
+
import django.core.validators
|
|
5
|
+
from django.db import migrations, models
|
|
6
|
+
import django.db.models.deletion
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Migration(migrations.Migration):
|
|
10
|
+
|
|
11
|
+
dependencies = [
|
|
12
|
+
('endoreg_db', '0067_alter_medicationindication_indication_type'),
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
operations = [
|
|
16
|
+
migrations.CreateModel(
|
|
17
|
+
name='NetworkDeviceType',
|
|
18
|
+
fields=[
|
|
19
|
+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
20
|
+
('name', models.CharField(max_length=255)),
|
|
21
|
+
('description', models.CharField(max_length=255)),
|
|
22
|
+
('created', models.DateTimeField(auto_now_add=True)),
|
|
23
|
+
('updated', models.DateTimeField(auto_now=True)),
|
|
24
|
+
],
|
|
25
|
+
options={
|
|
26
|
+
'db_table': 'network_device_types',
|
|
27
|
+
'ordering': ['name'],
|
|
28
|
+
},
|
|
29
|
+
),
|
|
30
|
+
migrations.CreateModel(
|
|
31
|
+
name='NetworkDeviceTypeManager',
|
|
32
|
+
fields=[
|
|
33
|
+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
34
|
+
],
|
|
35
|
+
),
|
|
36
|
+
migrations.AlterField(
|
|
37
|
+
model_name='rawpdffile',
|
|
38
|
+
name='file',
|
|
39
|
+
field=models.FileField(storage=django.core.files.storage.FileSystemStorage(location='/home/agl-admin/agl-home-django/endoreg_home/endoreg_home/erc_data/raw_pdf'), upload_to='raw_pdf/', validators=[django.core.validators.FileExtensionValidator(allowed_extensions=['pdf'])]),
|
|
40
|
+
),
|
|
41
|
+
migrations.CreateModel(
|
|
42
|
+
name='NetworkDevice',
|
|
43
|
+
fields=[
|
|
44
|
+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
45
|
+
('name', models.CharField(max_length=255)),
|
|
46
|
+
('ip', models.GenericIPAddressField(blank=True, null=True)),
|
|
47
|
+
('description', models.CharField(max_length=255)),
|
|
48
|
+
('created', models.DateTimeField(auto_now_add=True)),
|
|
49
|
+
('updated', models.DateTimeField(auto_now=True)),
|
|
50
|
+
('device_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.networkdevicetype')),
|
|
51
|
+
],
|
|
52
|
+
options={
|
|
53
|
+
'db_table': 'network_devices',
|
|
54
|
+
'ordering': ['name'],
|
|
55
|
+
},
|
|
56
|
+
),
|
|
57
|
+
]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Generated by Django 4.2.15 on 2024-08-10 16:31
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
('endoreg_db', '0068_networkdevicetype_networkdevicetypemanager_and_more'),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.DeleteModel(
|
|
14
|
+
name='NetworkDeviceTypeManager',
|
|
15
|
+
),
|
|
16
|
+
migrations.AddField(
|
|
17
|
+
model_name='networkdevice',
|
|
18
|
+
name='online',
|
|
19
|
+
field=models.BooleanField(default=False),
|
|
20
|
+
),
|
|
21
|
+
]
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Generated by Django 4.2.15 on 2024-08-11 19:16
|
|
2
|
+
|
|
3
|
+
from django.conf import settings
|
|
4
|
+
import django.core.files.storage
|
|
5
|
+
import django.core.validators
|
|
6
|
+
from django.db import migrations, models
|
|
7
|
+
import django.db.models.deletion
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Migration(migrations.Migration):
|
|
11
|
+
|
|
12
|
+
dependencies = [
|
|
13
|
+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
14
|
+
('endoreg_db', '0069_delete_networkdevicetypemanager_networkdevice_online'),
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
operations = [
|
|
18
|
+
migrations.CreateModel(
|
|
19
|
+
name='LogType',
|
|
20
|
+
fields=[
|
|
21
|
+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
22
|
+
('name', models.CharField(max_length=255)),
|
|
23
|
+
('description', models.CharField(max_length=255)),
|
|
24
|
+
('created', models.DateTimeField(auto_now_add=True)),
|
|
25
|
+
('updated', models.DateTimeField(auto_now=True)),
|
|
26
|
+
],
|
|
27
|
+
options={
|
|
28
|
+
'ordering': ['name'],
|
|
29
|
+
},
|
|
30
|
+
),
|
|
31
|
+
migrations.AlterField(
|
|
32
|
+
model_name='rawpdffile',
|
|
33
|
+
name='file',
|
|
34
|
+
field=models.FileField(storage=django.core.files.storage.FileSystemStorage(location='/home/agl-admin/agl-monitor/agl_monitor/agl_monitor/erc_data/raw_pdf'), upload_to='raw_pdf/', validators=[django.core.validators.FileExtensionValidator(allowed_extensions=['pdf'])]),
|
|
35
|
+
),
|
|
36
|
+
migrations.CreateModel(
|
|
37
|
+
name='NetworkDeviceLogEntry',
|
|
38
|
+
fields=[
|
|
39
|
+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
40
|
+
('timestamp', models.DateTimeField(auto_now_add=True)),
|
|
41
|
+
('ip_address', models.GenericIPAddressField(blank=True, null=True)),
|
|
42
|
+
('user_agent', models.CharField(blank=True, max_length=256, null=True)),
|
|
43
|
+
('message', models.TextField()),
|
|
44
|
+
('json_content', models.JSONField(blank=True, null=True)),
|
|
45
|
+
('device', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.networkdevice')),
|
|
46
|
+
('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)),
|
|
47
|
+
],
|
|
48
|
+
options={
|
|
49
|
+
'verbose_name': 'Network Device Log Entry',
|
|
50
|
+
'verbose_name_plural': 'Network Device Log Entries',
|
|
51
|
+
},
|
|
52
|
+
),
|
|
53
|
+
migrations.CreateModel(
|
|
54
|
+
name='AglService',
|
|
55
|
+
fields=[
|
|
56
|
+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
57
|
+
('name', models.CharField(max_length=255)),
|
|
58
|
+
('description', models.CharField(max_length=255)),
|
|
59
|
+
('online', models.BooleanField(default=False)),
|
|
60
|
+
('created', models.DateTimeField(auto_now_add=True)),
|
|
61
|
+
('updated', models.DateTimeField(auto_now=True)),
|
|
62
|
+
('port', models.IntegerField(blank=True, null=True)),
|
|
63
|
+
('protocol', models.CharField(blank=True, max_length=255, null=True)),
|
|
64
|
+
('url', models.URLField(blank=True, null=True)),
|
|
65
|
+
('devices', models.ManyToManyField(related_name='services', to='endoreg_db.networkdevice')),
|
|
66
|
+
],
|
|
67
|
+
options={
|
|
68
|
+
'ordering': ['name'],
|
|
69
|
+
},
|
|
70
|
+
),
|
|
71
|
+
]
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Generated by Django 4.2.15 on 2024-08-11 19:19
|
|
2
|
+
|
|
3
|
+
from django.conf import settings
|
|
4
|
+
from django.db import migrations, models
|
|
5
|
+
import django.db.models.deletion
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Migration(migrations.Migration):
|
|
9
|
+
|
|
10
|
+
dependencies = [
|
|
11
|
+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
12
|
+
('endoreg_db', '0070_logtype_alter_rawpdffile_file_networkdevicelogentry_and_more'),
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
operations = [
|
|
16
|
+
migrations.CreateModel(
|
|
17
|
+
name='AglServiceLogEntry',
|
|
18
|
+
fields=[
|
|
19
|
+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
20
|
+
('timestamp', models.DateTimeField(auto_now_add=True)),
|
|
21
|
+
('ip_address', models.GenericIPAddressField(blank=True, null=True)),
|
|
22
|
+
('user_agent', models.CharField(blank=True, max_length=256, null=True)),
|
|
23
|
+
('message', models.TextField()),
|
|
24
|
+
('json_content', models.JSONField(blank=True, null=True)),
|
|
25
|
+
('service', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='endoreg_db.aglservice')),
|
|
26
|
+
('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)),
|
|
27
|
+
],
|
|
28
|
+
options={
|
|
29
|
+
'verbose_name': 'AGL Service Log Entry',
|
|
30
|
+
'verbose_name_plural': 'AGL Service Log Entries',
|
|
31
|
+
},
|
|
32
|
+
),
|
|
33
|
+
]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Generated by Django 4.2.15 on 2024-08-11 19:52
|
|
2
|
+
|
|
3
|
+
import django.core.files.storage
|
|
4
|
+
import django.core.validators
|
|
5
|
+
from django.db import migrations, models
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Migration(migrations.Migration):
|
|
9
|
+
|
|
10
|
+
dependencies = [
|
|
11
|
+
('endoreg_db', '0071_aglservicelogentry'),
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
operations = [
|
|
15
|
+
migrations.AlterField(
|
|
16
|
+
model_name='rawpdffile',
|
|
17
|
+
name='file',
|
|
18
|
+
field=models.FileField(storage=django.core.files.storage.FileSystemStorage(location='/mnt/hdd-sensitive/Pseudo/import/pdf'), upload_to='raw_pdf/', validators=[django.core.validators.FileExtensionValidator(allowed_extensions=['pdf'])]),
|
|
19
|
+
),
|
|
20
|
+
]
|
endoreg_db/models/__init__.py
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from django.db import models
|
|
2
|
+
from .base import AbstractLogEntry
|
|
3
|
+
|
|
4
|
+
class AglServiceLogEntry(AbstractLogEntry):
|
|
5
|
+
"""
|
|
6
|
+
Model for log entries related to AGL services.
|
|
7
|
+
"""
|
|
8
|
+
service = models.ForeignKey("AglService", on_delete=models.CASCADE)
|
|
9
|
+
|
|
10
|
+
class Meta:
|
|
11
|
+
verbose_name = "AGL Service Log Entry"
|
|
12
|
+
verbose_name_plural = "AGL Service Log Entries"
|
|
13
|
+
|
|
14
|
+
def __str__(self):
|
|
15
|
+
return f"{self.timestamp} - {self.user} - {self.ip_address} - {self.service} - {self.message}"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# django model for logging, first define an abstract base model
|
|
2
|
+
from django.db import models
|
|
3
|
+
from django.conf import settings
|
|
4
|
+
|
|
5
|
+
class AbstractLogEntry(models.Model):
|
|
6
|
+
"""
|
|
7
|
+
Abstract base model for log entries.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
class Meta:
|
|
11
|
+
abstract = True
|
|
12
|
+
|
|
13
|
+
timestamp = models.DateTimeField(auto_now_add=True)
|
|
14
|
+
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, blank=True)
|
|
15
|
+
ip_address = models.GenericIPAddressField(null=True, blank=True)
|
|
16
|
+
user_agent = models.CharField(max_length=256, null=True, blank=True)
|
|
17
|
+
message = models.TextField()
|
|
18
|
+
json_content = models.JSONField(null=True, blank=True)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def __str__(self):
|
|
22
|
+
return f"{self.timestamp} - {self.user} - {self.ip_address} - {self.message}"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from django.db import models
|
|
2
|
+
|
|
3
|
+
class LogTypeManager(models.Manager):
|
|
4
|
+
# Custom manager for LogType; defines name as natural key
|
|
5
|
+
def get_by_natural_key(self, name):
|
|
6
|
+
return self.get(name=name)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class LogType(models.Model):
|
|
10
|
+
name = models.CharField(max_length=255)
|
|
11
|
+
description = models.CharField(max_length=255)
|
|
12
|
+
created = models.DateTimeField(auto_now_add=True)
|
|
13
|
+
updated = models.DateTimeField(auto_now=True)
|
|
14
|
+
objects = LogTypeManager()
|
|
15
|
+
|
|
16
|
+
def __str__(self):
|
|
17
|
+
return self.name
|
|
18
|
+
|
|
19
|
+
class Meta:
|
|
20
|
+
ordering = ['name']
|
|
21
|
+
|
|
22
|
+
def natural_key(self):
|
|
23
|
+
return (self.name,)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from django.db import models
|
|
2
|
+
from .base import AbstractLogEntry
|
|
3
|
+
|
|
4
|
+
class NetworkDeviceLogEntry(AbstractLogEntry):
|
|
5
|
+
"""
|
|
6
|
+
Model for log entries related to network devices.
|
|
7
|
+
"""
|
|
8
|
+
device = models.ForeignKey("NetworkDevice", on_delete=models.CASCADE)
|
|
9
|
+
|
|
10
|
+
class Meta:
|
|
11
|
+
verbose_name = "Network Device Log Entry"
|
|
12
|
+
verbose_name_plural = "Network Device Log Entries"
|
|
13
|
+
|
|
14
|
+
def __str__(self):
|
|
15
|
+
return f"{self.timestamp} - {self.user} - {self.ip_address} - {self.device} - {self.message}"
|
|
16
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
from django.db import models
|
|
2
|
+
|
|
3
|
+
class AglServiceManager(models.Manager):
|
|
4
|
+
# Custom manager for AglService; defines name as natural key
|
|
5
|
+
def get_by_natural_key(self, name):
|
|
6
|
+
return self.get(name=name)
|
|
7
|
+
|
|
8
|
+
class AglService(models.Model):
|
|
9
|
+
name = models.CharField(max_length=255)
|
|
10
|
+
description = models.CharField(max_length=255)
|
|
11
|
+
online = models.BooleanField(default=False)
|
|
12
|
+
created = models.DateTimeField(auto_now_add=True)
|
|
13
|
+
updated = models.DateTimeField(auto_now=True)
|
|
14
|
+
objects = AglServiceManager()
|
|
15
|
+
devices = models.ManyToManyField("NetworkDevice", related_name="services")
|
|
16
|
+
port = models.IntegerField(blank=True, null=True)
|
|
17
|
+
protocol = models.CharField(max_length=255, blank=True, null=True)
|
|
18
|
+
url = models.URLField(blank=True, null=True)
|
|
19
|
+
|
|
20
|
+
def alive_log(self, user, ip_address, user_agent):
|
|
21
|
+
from ..logging import AglServiceLogEntry
|
|
22
|
+
AglServiceLogEntry.objects.create(
|
|
23
|
+
user=user,
|
|
24
|
+
ip_address=ip_address,
|
|
25
|
+
user_agent=user_agent,
|
|
26
|
+
message=f"Service {self.name} is alive.",
|
|
27
|
+
service=self
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
def __str__(self):
|
|
31
|
+
return self.name
|
|
32
|
+
|
|
33
|
+
class Meta:
|
|
34
|
+
ordering = ['name']
|
|
35
|
+
|
|
36
|
+
def natural_key(self):
|
|
37
|
+
return (self.name,)
|
|
38
|
+
|
|
@@ -12,6 +12,7 @@ class NetworkDevice(models.Model):
|
|
|
12
12
|
ip = models.GenericIPAddressField(blank=True, null=True)
|
|
13
13
|
description = models.CharField(max_length=255)
|
|
14
14
|
device_type = models.ForeignKey("NetworkDeviceType", on_delete=models.CASCADE)
|
|
15
|
+
online = models.BooleanField(default=False)
|
|
15
16
|
created = models.DateTimeField(auto_now_add=True)
|
|
16
17
|
updated = models.DateTimeField(auto_now=True)
|
|
17
18
|
objects = NetworkDeviceManager()
|
|
@@ -24,4 +25,29 @@ class NetworkDevice(models.Model):
|
|
|
24
25
|
ordering = ['name']
|
|
25
26
|
|
|
26
27
|
def natural_key(self):
|
|
27
|
-
return (self.name,)
|
|
28
|
+
return (self.name,)
|
|
29
|
+
|
|
30
|
+
def ping(self):
|
|
31
|
+
target_ip = self.ip
|
|
32
|
+
|
|
33
|
+
# Import the required module
|
|
34
|
+
import subprocess
|
|
35
|
+
|
|
36
|
+
# Define the command
|
|
37
|
+
command = ['ping', '-c', '1', target_ip]
|
|
38
|
+
|
|
39
|
+
# Run the command
|
|
40
|
+
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
41
|
+
|
|
42
|
+
# Wait for the process to terminate
|
|
43
|
+
process.wait()
|
|
44
|
+
|
|
45
|
+
# Check the return code
|
|
46
|
+
return_code = process.returncode
|
|
47
|
+
|
|
48
|
+
# Return True if the return code is 0, False otherwise
|
|
49
|
+
self.online = return_code == 0
|
|
50
|
+
self.save()
|
|
51
|
+
return self.online
|
|
52
|
+
|
|
53
|
+
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from django.db import models
|
|
4
4
|
|
|
5
|
-
class NetworkDeviceTypeManager(models.
|
|
5
|
+
class NetworkDeviceTypeManager(models.Manager):
|
|
6
6
|
# Custom manager for NetworkDeviceType; defines name as natural key
|
|
7
7
|
def get_by_natural_key(self, name):
|
|
8
8
|
return self.get(name=name)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: endoreg-db
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.9
|
|
4
4
|
Summary: EndoReg Db Django App
|
|
5
5
|
License: GNU3
|
|
6
6
|
Author: Thomas J. Lux
|
|
@@ -16,9 +16,11 @@ Requires-Dist: djangorestframework (>=3.14.0,<4.0.0)
|
|
|
16
16
|
Requires-Dist: ffmpeg-python (>=0.2.0,<0.3.0)
|
|
17
17
|
Requires-Dist: icecream (>=2.1.3,<3.0.0)
|
|
18
18
|
Requires-Dist: opencv-python (>=4.9.0.80,<5.0.0.0)
|
|
19
|
+
Requires-Dist: pandas (>=2.2.2,<3.0.0)
|
|
19
20
|
Requires-Dist: pillow (>=10.2.0,<11.0.0)
|
|
20
21
|
Requires-Dist: pytesseract (>=0.3.10,<0.4.0)
|
|
21
22
|
Requires-Dist: pyyaml (>=6.0.1,<7.0.0)
|
|
23
|
+
Requires-Dist: scipy (>=1.14.0,<2.0.0)
|
|
22
24
|
Requires-Dist: tqdm (>=4.66.2,<5.0.0)
|
|
23
25
|
Description-Content-Type: text/markdown
|
|
24
26
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
endoreg_db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
endoreg_db/admin.py,sha256=suMo4x8I3JBxAFBVIdE-5qnqZ6JAZV0FESABHOSc-vg,63
|
|
3
3
|
endoreg_db/apps.py,sha256=zYb2_RiEGIsLS6_OMWzCxcTHSNkF28CqF4xcd_6NHUg,151
|
|
4
|
-
endoreg_db/data/__init__.py,sha256
|
|
4
|
+
endoreg_db/data/__init__.py,sha256=-6UJyklMfLgrqrs_dqGAkNoBPLGB5wmq2LcA0A4yRXw,3220
|
|
5
5
|
endoreg_db/data/active_model/data.yaml,sha256=G7PvKmGDm_Gt6Tzf99s18b5vlE5qWruvClzlcINqDQE,86
|
|
6
|
+
endoreg_db/data/agl_service/data.yaml,sha256=HfuoV9MT-rWcwO5jhH2Y7nb8vr5VXE23akAHfz1tzUI,210
|
|
6
7
|
endoreg_db/data/case_template/rule/00_patient_lab_sample_add_default_value.yaml,sha256=H3kTALJ_6GJrY-4EYemeTCaa81NkyI-8LcNJFuEp5zs,4100
|
|
7
8
|
endoreg_db/data/case_template/rule/01_patient-set-age.yaml,sha256=lXfgKtirkQMHfAQtp9y9mojNnYx2KskGvdK-C1GEmtc,281
|
|
8
9
|
endoreg_db/data/case_template/rule/01_patient-set-gender.yaml,sha256=mZqygZ7lhjfSOO9M2m-ax1hmH2ztSXLsJwMEqJnj7e4,300
|
|
@@ -11,6 +12,7 @@ endoreg_db/data/case_template/rule/12_create-patient_medication-anticoagulation.
|
|
|
11
12
|
endoreg_db/data/case_template/rule/13_create-patient_medication_schedule-anticoagulation.yaml,sha256=QJ3fVapFhwf2N6InL7KFeANvZglf-NN3ozPOCZe2Oac,490
|
|
12
13
|
endoreg_db/data/case_template/rule/19_create_patient.yaml,sha256=xo563JMa-S59v3DrMuLW9EbVlTbu4dZdBGFMLAYzeaY,436
|
|
13
14
|
endoreg_db/data/case_template/rule_type/base_types.yaml,sha256=SOxV4SslNAx0DZoknWlKKLb3R1Ng2nlMDK2gfiVS_1M,1253
|
|
15
|
+
endoreg_db/data/case_template/rule_value/.init,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
16
|
endoreg_db/data/case_template/rule_value_type/base_types.yaml,sha256=0flEVxBKOegNxJnc2EOhaf950BNxC7WujrLV2aPncYM,1414
|
|
15
17
|
endoreg_db/data/case_template/template/base.yaml,sha256=lRrvLma0jW57qZEAuWWFQAtTWL8TaRpYiXFenlbTQJE,251
|
|
16
18
|
endoreg_db/data/case_template/template_type/pre_endoscopy.yaml,sha256=pJdvcaxpZsciK3Ok4Z3yCVPBG465v4bISmq1Gmgn2mI,74
|
|
@@ -30,6 +32,8 @@ endoreg_db/data/disease_classification/coronary_vessel_disease.yaml,sha256=olKtH
|
|
|
30
32
|
endoreg_db/data/disease_classification_choice/chronic_kidney_disease.yaml,sha256=jgZVuHUp_ZGhvnl552-XgBZlFl2Uv_s1YNTgcGtW5do,1582
|
|
31
33
|
endoreg_db/data/disease_classification_choice/coronary_vessel_disease.yaml,sha256=Z_MG6bbx_zI4C8qV-U_Yqvn1K3KYbvG-ElFaXbYAMNQ,835
|
|
32
34
|
endoreg_db/data/distribution/date/patient.yaml,sha256=I3fr98VNCja6a4qtf9YnjoFPlqH67LPbDlssQKY_cPE,210
|
|
35
|
+
endoreg_db/data/distribution/multiple_categorical/.init,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
36
|
+
endoreg_db/data/distribution/numeric/.init,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
37
|
endoreg_db/data/distribution/single_categorical/patient.yaml,sha256=R7beZDRqdOWNaFu-8Bd88E6j3eBc9mqhOW_265EA0e0,156
|
|
34
38
|
endoreg_db/data/emission_factor/green_endoscopy_dashboard_EmissionFactor.yaml,sha256=bBLmr3_uSLXdsbtRa9707WK1Z7Xy8TpBGKOfzWcfC_M,2968
|
|
35
39
|
endoreg_db/data/endoscope_type/data.yaml,sha256=k8uF94svJsU02O-ceaLnQBoozJ6cT3iY_s_aKrvJZqg,242
|
|
@@ -57,6 +61,7 @@ endoreg_db/data/lab_value/renal_function.yaml,sha256=HS5oWQ_31mkahABKMvNjhmfspiQ
|
|
|
57
61
|
endoreg_db/data/label/label/data.yaml,sha256=fwBiybtizA_hSGJWWCWNfKoHncy4s5ObxhKfjm9xEb8,1274
|
|
58
62
|
endoreg_db/data/label/label-set/data.yaml,sha256=wpAxOPbpZzZWLM95yjoKXhhjMk6mOKcGQdoLtcDXCZ4,339
|
|
59
63
|
endoreg_db/data/label/label-type/data.yaml,sha256=vffKYpTae_gu63_wza6LONs5ys4pna1EbrUUO6CafQs,136
|
|
64
|
+
endoreg_db/data/log_type/data.yaml,sha256=nZeua8KwnrVGupl-B74PjsUenANSmUwCVkEzdtrTGAQ,1126
|
|
60
65
|
endoreg_db/data/material/material.yaml,sha256=GUY0l4DSm1OQtgExNbTMqAuUMPvUBlTvNWvrtJKhXiY,2035
|
|
61
66
|
endoreg_db/data/medication/anticoagulation.yaml,sha256=NfAXuD9hQqHE2knWl51JGJnyjJvh_I1xRxaF8VS5-Us,1635
|
|
62
67
|
endoreg_db/data/medication/tah.yaml,sha256=UDuY9tn9e8806KdZ3AL1LooGPdxqoPHNz6IX38yk-6g,1701
|
|
@@ -68,7 +73,7 @@ endoreg_db/data/medication_schedule/apixaban.yaml,sha256=TjmoBu4ian9ZwiSN5qBKtiv
|
|
|
68
73
|
endoreg_db/data/medication_schedule/ass.yaml,sha256=ECiHbQcahbZP9B8IDOYRB6vHKj3yl7cBY9QasIHJ7sM,295
|
|
69
74
|
endoreg_db/data/medication_schedule/enoxaparin.yaml,sha256=lI8WfFBspEXhTxnTEfyq1a_VBKbdNAcj34PIF2_X3cQ,653
|
|
70
75
|
endoreg_db/data/model_type/data.yaml,sha256=vCMMo8wiI5uL2zrQROmgsHq1GrC8IdagGIgNdQunUeQ,149
|
|
71
|
-
endoreg_db/data/network_device/data.yaml,sha256=
|
|
76
|
+
endoreg_db/data/network_device/data.yaml,sha256=Vg5H49ZrJn7l9qo4Lq2rOwzI6ly9RR3JPIkcN1cmNyE,498
|
|
72
77
|
endoreg_db/data/network_device_type/data.yaml,sha256=a052EXWgo3m_8DrzJ4tYGUybc8qC6xdRCBgswiSK38M,152
|
|
73
78
|
endoreg_db/data/patient_lab_sample_type/generic.yaml,sha256=nbtummOrGUeBkM7sVpqq48txkC-bmxn4_h40oS4VloY,162
|
|
74
79
|
endoreg_db/data/pdf_type/data.yaml,sha256=0eMCb3-j2_zY0NkyIFFM7H9658kILpd5mt_OgrXxs64,990
|
|
@@ -109,7 +114,7 @@ endoreg_db/management/commands/import_legacy_images.py,sha256=IcBmihG9rvqC37XgMg
|
|
|
109
114
|
endoreg_db/management/commands/import_legacy_videos.py,sha256=OHFTNb53RtznRyVay88vo83fkfafTiwTgUMieI70NX4,2732
|
|
110
115
|
endoreg_db/management/commands/load_active_model_data.py,sha256=NpWIksrVQIyrd-ZhI_B_34NFbLJI1_vhwuN6gXc8hgQ,1337
|
|
111
116
|
endoreg_db/management/commands/load_ai_model_data.py,sha256=rjC-yK8NNr0a0TDqvGHufI27ANQYTWDkWlSEWRkubGY,1329
|
|
112
|
-
endoreg_db/management/commands/load_base_db_data.py,sha256=
|
|
117
|
+
endoreg_db/management/commands/load_base_db_data.py,sha256=Jrtbt7UzFEahMiqeA4goVgShRK9XkyPOgqljjHSZN_I,6475
|
|
113
118
|
endoreg_db/management/commands/load_center_data.py,sha256=Ra7BikibHJF4Ks72WNGwJqtbIw-9MieCxKlZG_RUA-s,1339
|
|
114
119
|
endoreg_db/management/commands/load_disease_classification_choices_data.py,sha256=zSwNVmI56myFtOBUxV9kD_-4NKh0Z4nWuvFN3RSSulU,1361
|
|
115
120
|
endoreg_db/management/commands/load_disease_classification_data.py,sha256=B0sIgDq35e8Js3cqBCpRBoDuKRoDy7YvPbaZ4jjJS2I,1305
|
|
@@ -125,12 +130,13 @@ endoreg_db/management/commands/load_green_endoscopy_wuerzburg_data.py,sha256=rjW
|
|
|
125
130
|
endoreg_db/management/commands/load_information_source.py,sha256=3sL906AMa7FGO3bgrNbfJlptrEwv925n-X_XB4PDZ_Q,1347
|
|
126
131
|
endoreg_db/management/commands/load_lab_value_data.py,sha256=NC3wCo7cnd7l1uyVa7LQzsYXTLVTIuGnRu8z5pgzrck,1609
|
|
127
132
|
endoreg_db/management/commands/load_label_data.py,sha256=0vSBzBweO-M7mjXJotg4q_W7gbcaBoilrnA9e7dyp8o,2217
|
|
133
|
+
endoreg_db/management/commands/load_logging_data.py,sha256=1GWVQFh-tVWGZjSlvqcqkG2ByClJjOqU-GLwgh3TEnE,1222
|
|
128
134
|
endoreg_db/management/commands/load_medication_data.py,sha256=8x-tLE7UrZDcrVFEKHUWe8EWFhJbXju6PANjxYWon6U,1262
|
|
129
135
|
endoreg_db/management/commands/load_medication_indication_data.py,sha256=lR3zJdTjtKeVmXUrb3AyAcTwyutUteppfD-GbkgXRG0,1783
|
|
130
136
|
endoreg_db/management/commands/load_medication_indication_type_data.py,sha256=CJ3zyFv7DnTuhBfG6TAdU9uZ0c2aHd31Y33g3X-SYVA,1282
|
|
131
137
|
endoreg_db/management/commands/load_medication_intake_time_data.py,sha256=Qln3plozYsADcS0gKLdnLzAjbVLxC6N9h3ja-pS5CiI,1270
|
|
132
138
|
endoreg_db/management/commands/load_medication_schedule_data.py,sha256=UTnCGF2gFUsdDb76cYrntaHGFazz4tUWg9ulF8bOVKY,1514
|
|
133
|
-
endoreg_db/management/commands/load_network_data.py,sha256=
|
|
139
|
+
endoreg_db/management/commands/load_network_data.py,sha256=zg8Kt0Qv1ocgRG3pUlweJhNIF2JCMtAFEh-kZb0SiX8,1991
|
|
134
140
|
endoreg_db/management/commands/load_pdf_type_data.py,sha256=sJeGI1M4Xwkagi7rModwUJH3MuQckZXdOkHekoAvRAw,1650
|
|
135
141
|
endoreg_db/management/commands/load_profession_data.py,sha256=oF3OF7zRqxA-SVpMW6e7LJ3MSfEc5Hoz1XlcvcFACRg,1321
|
|
136
142
|
endoreg_db/management/commands/load_report_reader_flag.py,sha256=pvqRgtcjaYTgx2Ce7HYnNzsUB48yJe9lXTk-lzfJUPI,1371
|
|
@@ -205,8 +211,13 @@ endoreg_db/migrations/0064_casetemplaterule_extra_parameters_and_more.py,sha256=
|
|
|
205
211
|
endoreg_db/migrations/0065_rename__date_value_distribution_casetemplaterule_date_value_distribution_and_more.py,sha256=XvKuXBA_O3AjnaeMMPjEu1ltbQIbiYDH79PczecHRdI,2067
|
|
206
212
|
endoreg_db/migrations/0066_alter_patientlabvalue_patient_and_more.py,sha256=XEn9XBxJhh0mNDj8htiLUcViyGMLOkew2UmbbMExeC4,1240
|
|
207
213
|
endoreg_db/migrations/0067_alter_medicationindication_indication_type.py,sha256=HcMRzp-G1bOl2y_aKTU1GMk85bX1sTO-XMeLNG4MzmE,577
|
|
214
|
+
endoreg_db/migrations/0068_networkdevicetype_networkdevicetypemanager_and_more.py,sha256=XlASc_hxZbtrljxxiP-V49C-sVR_710J1qSf3sX3eYg,2439
|
|
215
|
+
endoreg_db/migrations/0069_delete_networkdevicetypemanager_networkdevice_online.py,sha256=AGtnpgd1T6Q7UoKSGsb5ETXvYEYzMklMZnctnBXEh5Y,519
|
|
216
|
+
endoreg_db/migrations/0070_logtype_alter_rawpdffile_file_networkdevicelogentry_and_more.py,sha256=zN0qELi6iDJz8wPKPWj8QK8SV6AIcC326Q_7IFrUuiI,3416
|
|
217
|
+
endoreg_db/migrations/0071_aglservicelogentry.py,sha256=ZIO3niIExRWXYnAcNJdrm-Rj-qLEhId_ScD0360HTyw,1442
|
|
218
|
+
endoreg_db/migrations/0072_alter_rawpdffile_file.py,sha256=7LjAiwZbEW2tbFRC5ndTrWYV5PZzij6RK49S_dwVqjU,652
|
|
208
219
|
endoreg_db/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
209
|
-
endoreg_db/models/__init__.py,sha256=
|
|
220
|
+
endoreg_db/models/__init__.py,sha256=wc1ZyDUNb-sKMZ4P7x_PAb0WtzDhYAq8y19AV8rC7dQ,1552
|
|
210
221
|
endoreg_db/models/ai_model/__init__.py,sha256=rh5npLRGml5iiRocx359gsaA82pGJTW7wdVAfnbZP6w,106
|
|
211
222
|
endoreg_db/models/ai_model/active_model.py,sha256=r7SE3yg54kbjfOkk0Ei0rgs_Wo3ikx88rcEELqvRzGc,343
|
|
212
223
|
endoreg_db/models/ai_model/model_meta.py,sha256=YyYW8dScpAceHePnbrnRpgVBYDByi9x7u5Ydh03OJuo,869
|
|
@@ -264,11 +275,17 @@ endoreg_db/models/laboratory/__init__.py,sha256=UQb4RDHqgMfSvO7UBGi_TzI1wUV3QMtL
|
|
|
264
275
|
endoreg_db/models/laboratory/lab_value.py,sha256=9X39Wqh1zHghEabUS5yPI3r9a3AKKUcrozwNg32LUag,4097
|
|
265
276
|
endoreg_db/models/legacy_data/__init__.py,sha256=J0ewe30Y2qCxCUPktcFOm2WOEz2fQnwrgfZ93FRcnio,115
|
|
266
277
|
endoreg_db/models/legacy_data/image.py,sha256=mKQed6AIJL2XauPB2GevHX6NXaR8gphundI9_IC9Hpc,1622
|
|
278
|
+
endoreg_db/models/logging/__init__.py,sha256=GDsBf4AbhGeyUITBb9teTlTLhzU1A0GYoqQH59XNrMg,158
|
|
279
|
+
endoreg_db/models/logging/agl_service.py,sha256=DQdoGNGPHEbTpm_D4v87p3eRmlFOh9Ilee952ItN_O8,495
|
|
280
|
+
endoreg_db/models/logging/base.py,sha256=39pKcV65Gru4ssZ3xb8T2IJ-ou8cjCGqn1efGuHzoRM,773
|
|
281
|
+
endoreg_db/models/logging/log_type.py,sha256=o_52ZzBBDE9CDgSeBmZJcNBoFyCDxo9HzeSANnOHrj0,636
|
|
282
|
+
endoreg_db/models/logging/network_device.py,sha256=UdcAk8PFJxjFCTZTfEChyI3iu1wcv7xiMiha9FlhHQg,509
|
|
267
283
|
endoreg_db/models/medication/__init__.py,sha256=69K9Iy3zEqJSd0zS_ZS9WKbvGQIgmOJm1PCpPI_vwOg,25
|
|
268
284
|
endoreg_db/models/medication/medication.py,sha256=tPXBnrGVkmyvfhjJQGcD4Jq2TkYeHl8nNLvGuVisBiI,4939
|
|
269
|
-
endoreg_db/models/network/__init__.py,sha256=
|
|
270
|
-
endoreg_db/models/network/
|
|
271
|
-
endoreg_db/models/network/
|
|
285
|
+
endoreg_db/models/network/__init__.py,sha256=lxRpaWeVxKdZDL9Hj45_rAemPs6Y2gM-f_PjmY19nOA,128
|
|
286
|
+
endoreg_db/models/network/agl_service.py,sha256=mS_0jDm4ovww9O-Nz0U8kVOoBK-MGrLnmv4NnFTUtrA,1275
|
|
287
|
+
endoreg_db/models/network/network_device.py,sha256=p2zY4vENy6ZwKVeoTP5yHYvCHmFKopvyCaBTzux1NEI,1586
|
|
288
|
+
endoreg_db/models/network/network_device_type.py,sha256=LHGVGkF0LRH8VmAJHE0If5H3c8HC5wtP0-GZY7r02TU,728
|
|
272
289
|
endoreg_db/models/other/__init__.py,sha256=HDlNBuS98uIvxpw3sww-hiyulG871TzulFRrLO0C8ec,158
|
|
273
290
|
endoreg_db/models/other/distribution.py,sha256=OLMELIpP9xQa4BkiLZoBbEoxzLmOponZh_LYro6g4DM,8404
|
|
274
291
|
endoreg_db/models/other/material.py,sha256=5C09hUD-cQL8vCRFNPyq2OyRHjFwCA5nCwW4Zh16Ak0,520
|
|
@@ -357,7 +374,7 @@ endoreg_db/utils/ocr.py,sha256=jkdT1bl-LSCjZ2PvxlX1AG2TmhdMclayxUPrdZWs7UE,7322
|
|
|
357
374
|
endoreg_db/utils/uuid.py,sha256=T4HXqYtKwXFqE5kPyvlgWHyllBBF6LL6N48nl9TpwBk,53
|
|
358
375
|
endoreg_db/utils/video_metadata.py,sha256=HDyXxAeNQOK3cGzQ06xosmObzEnJBARuKjwz9vmmRIM,2613
|
|
359
376
|
endoreg_db/views.py,sha256=xc1IQHrsij7j33TUbo-_oewy3vs03pw_etpBWaMYJl0,63
|
|
360
|
-
endoreg_db-0.3.
|
|
361
|
-
endoreg_db-0.3.
|
|
362
|
-
endoreg_db-0.3.
|
|
363
|
-
endoreg_db-0.3.
|
|
377
|
+
endoreg_db-0.3.9.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
378
|
+
endoreg_db-0.3.9.dist-info/METADATA,sha256=oIhjtGe_1AZ2EkQUj1j50Lx66j2gWAuQcltuOFet6Us,1054
|
|
379
|
+
endoreg_db-0.3.9.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
380
|
+
endoreg_db-0.3.9.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|