endoreg-db 0.3.8__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.

Potentially problematic release.


This version of endoreg-db might be problematic. Click here for more details.

@@ -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"
@@ -0,0 +1,9 @@
1
+ - model: endoreg_db.agl_service
2
+ fields:
3
+ name: "agl-home-django"
4
+ description: "AGL Home Django service"
5
+ devices: [
6
+ "agl-server-04",
7
+ ]
8
+ port: 9100
9
+ url: "https://home.endo-reg.net/"
@@ -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'
@@ -4,6 +4,12 @@
4
4
  device_type: "agl-server"
5
5
  ip: "172.16.255.1"
6
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"
12
+
7
13
  - model: endoreg_db.network_device
8
14
  fields:
9
15
  name: "agl-server-03"
@@ -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,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
+ ]
@@ -5,6 +5,7 @@ from .report_reader import ReportReaderConfig, ReportReaderFlag
5
5
  from .emission import *
6
6
  from .persons import *
7
7
  from .network import *
8
+ from .logging import *
8
9
 
9
10
  from .case_template import *
10
11
  # from .other.distribution import (
@@ -0,0 +1,4 @@
1
+ from .base import AbstractLogEntry
2
+ from .network_device import NetworkDeviceLogEntry
3
+ from .log_type import LogType
4
+ from .agl_service import AglServiceLogEntry
@@ -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
+
@@ -1,2 +1,3 @@
1
1
  from .network_device import NetworkDevice
2
- from .network_device_type import NetworkDeviceType
2
+ from .network_device_type import NetworkDeviceType
3
+ from .agl_service import AglService
@@ -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
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: endoreg-db
3
- Version: 0.3.8
3
+ Version: 0.3.9
4
4
  Summary: EndoReg Db Django App
5
5
  License: GNU3
6
6
  Author: Thomas J. Lux
@@ -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=OAsZAYQQOEpVIo9NCZJ9D8c0w1AhInBfPeCQ0lvVEoE,3122
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
@@ -60,6 +61,7 @@ endoreg_db/data/lab_value/renal_function.yaml,sha256=HS5oWQ_31mkahABKMvNjhmfspiQ
60
61
  endoreg_db/data/label/label/data.yaml,sha256=fwBiybtizA_hSGJWWCWNfKoHncy4s5ObxhKfjm9xEb8,1274
61
62
  endoreg_db/data/label/label-set/data.yaml,sha256=wpAxOPbpZzZWLM95yjoKXhhjMk6mOKcGQdoLtcDXCZ4,339
62
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
63
65
  endoreg_db/data/material/material.yaml,sha256=GUY0l4DSm1OQtgExNbTMqAuUMPvUBlTvNWvrtJKhXiY,2035
64
66
  endoreg_db/data/medication/anticoagulation.yaml,sha256=NfAXuD9hQqHE2knWl51JGJnyjJvh_I1xRxaF8VS5-Us,1635
65
67
  endoreg_db/data/medication/tah.yaml,sha256=UDuY9tn9e8806KdZ3AL1LooGPdxqoPHNz6IX38yk-6g,1701
@@ -71,7 +73,7 @@ endoreg_db/data/medication_schedule/apixaban.yaml,sha256=TjmoBu4ian9ZwiSN5qBKtiv
71
73
  endoreg_db/data/medication_schedule/ass.yaml,sha256=ECiHbQcahbZP9B8IDOYRB6vHKj3yl7cBY9QasIHJ7sM,295
72
74
  endoreg_db/data/medication_schedule/enoxaparin.yaml,sha256=lI8WfFBspEXhTxnTEfyq1a_VBKbdNAcj34PIF2_X3cQ,653
73
75
  endoreg_db/data/model_type/data.yaml,sha256=vCMMo8wiI5uL2zrQROmgsHq1GrC8IdagGIgNdQunUeQ,149
74
- endoreg_db/data/network_device/data.yaml,sha256=SRlFiE9ijdQj787KhWDbtmP9CUHsulnqzIUMJF5OG_k,373
76
+ endoreg_db/data/network_device/data.yaml,sha256=Vg5H49ZrJn7l9qo4Lq2rOwzI6ly9RR3JPIkcN1cmNyE,498
75
77
  endoreg_db/data/network_device_type/data.yaml,sha256=a052EXWgo3m_8DrzJ4tYGUybc8qC6xdRCBgswiSK38M,152
76
78
  endoreg_db/data/patient_lab_sample_type/generic.yaml,sha256=nbtummOrGUeBkM7sVpqq48txkC-bmxn4_h40oS4VloY,162
77
79
  endoreg_db/data/pdf_type/data.yaml,sha256=0eMCb3-j2_zY0NkyIFFM7H9658kILpd5mt_OgrXxs64,990
@@ -112,7 +114,7 @@ endoreg_db/management/commands/import_legacy_images.py,sha256=IcBmihG9rvqC37XgMg
112
114
  endoreg_db/management/commands/import_legacy_videos.py,sha256=OHFTNb53RtznRyVay88vo83fkfafTiwTgUMieI70NX4,2732
113
115
  endoreg_db/management/commands/load_active_model_data.py,sha256=NpWIksrVQIyrd-ZhI_B_34NFbLJI1_vhwuN6gXc8hgQ,1337
114
116
  endoreg_db/management/commands/load_ai_model_data.py,sha256=rjC-yK8NNr0a0TDqvGHufI27ANQYTWDkWlSEWRkubGY,1329
115
- endoreg_db/management/commands/load_base_db_data.py,sha256=xewHewt_4OMunmEX-yntX2EFfd5bGSBhAWKVdqNzMcY,6293
117
+ endoreg_db/management/commands/load_base_db_data.py,sha256=Jrtbt7UzFEahMiqeA4goVgShRK9XkyPOgqljjHSZN_I,6475
116
118
  endoreg_db/management/commands/load_center_data.py,sha256=Ra7BikibHJF4Ks72WNGwJqtbIw-9MieCxKlZG_RUA-s,1339
117
119
  endoreg_db/management/commands/load_disease_classification_choices_data.py,sha256=zSwNVmI56myFtOBUxV9kD_-4NKh0Z4nWuvFN3RSSulU,1361
118
120
  endoreg_db/management/commands/load_disease_classification_data.py,sha256=B0sIgDq35e8Js3cqBCpRBoDuKRoDy7YvPbaZ4jjJS2I,1305
@@ -128,12 +130,13 @@ endoreg_db/management/commands/load_green_endoscopy_wuerzburg_data.py,sha256=rjW
128
130
  endoreg_db/management/commands/load_information_source.py,sha256=3sL906AMa7FGO3bgrNbfJlptrEwv925n-X_XB4PDZ_Q,1347
129
131
  endoreg_db/management/commands/load_lab_value_data.py,sha256=NC3wCo7cnd7l1uyVa7LQzsYXTLVTIuGnRu8z5pgzrck,1609
130
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
131
134
  endoreg_db/management/commands/load_medication_data.py,sha256=8x-tLE7UrZDcrVFEKHUWe8EWFhJbXju6PANjxYWon6U,1262
132
135
  endoreg_db/management/commands/load_medication_indication_data.py,sha256=lR3zJdTjtKeVmXUrb3AyAcTwyutUteppfD-GbkgXRG0,1783
133
136
  endoreg_db/management/commands/load_medication_indication_type_data.py,sha256=CJ3zyFv7DnTuhBfG6TAdU9uZ0c2aHd31Y33g3X-SYVA,1282
134
137
  endoreg_db/management/commands/load_medication_intake_time_data.py,sha256=Qln3plozYsADcS0gKLdnLzAjbVLxC6N9h3ja-pS5CiI,1270
135
138
  endoreg_db/management/commands/load_medication_schedule_data.py,sha256=UTnCGF2gFUsdDb76cYrntaHGFazz4tUWg9ulF8bOVKY,1514
136
- endoreg_db/management/commands/load_network_data.py,sha256=JMusB-hPmuhuHbaIyg2tJ95yTfuJwTbf9MIUUqHD6aE,1637
139
+ endoreg_db/management/commands/load_network_data.py,sha256=zg8Kt0Qv1ocgRG3pUlweJhNIF2JCMtAFEh-kZb0SiX8,1991
137
140
  endoreg_db/management/commands/load_pdf_type_data.py,sha256=sJeGI1M4Xwkagi7rModwUJH3MuQckZXdOkHekoAvRAw,1650
138
141
  endoreg_db/management/commands/load_profession_data.py,sha256=oF3OF7zRqxA-SVpMW6e7LJ3MSfEc5Hoz1XlcvcFACRg,1321
139
142
  endoreg_db/management/commands/load_report_reader_flag.py,sha256=pvqRgtcjaYTgx2Ce7HYnNzsUB48yJe9lXTk-lzfJUPI,1371
@@ -209,8 +212,12 @@ endoreg_db/migrations/0065_rename__date_value_distribution_casetemplaterule_date
209
212
  endoreg_db/migrations/0066_alter_patientlabvalue_patient_and_more.py,sha256=XEn9XBxJhh0mNDj8htiLUcViyGMLOkew2UmbbMExeC4,1240
210
213
  endoreg_db/migrations/0067_alter_medicationindication_indication_type.py,sha256=HcMRzp-G1bOl2y_aKTU1GMk85bX1sTO-XMeLNG4MzmE,577
211
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
212
219
  endoreg_db/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
213
- endoreg_db/models/__init__.py,sha256=o0z5ORbMweAR15gSHRkXJzScj7Fr8SLXUoZ2J-p660k,1529
220
+ endoreg_db/models/__init__.py,sha256=wc1ZyDUNb-sKMZ4P7x_PAb0WtzDhYAq8y19AV8rC7dQ,1552
214
221
  endoreg_db/models/ai_model/__init__.py,sha256=rh5npLRGml5iiRocx359gsaA82pGJTW7wdVAfnbZP6w,106
215
222
  endoreg_db/models/ai_model/active_model.py,sha256=r7SE3yg54kbjfOkk0Ei0rgs_Wo3ikx88rcEELqvRzGc,343
216
223
  endoreg_db/models/ai_model/model_meta.py,sha256=YyYW8dScpAceHePnbrnRpgVBYDByi9x7u5Ydh03OJuo,869
@@ -268,10 +275,16 @@ endoreg_db/models/laboratory/__init__.py,sha256=UQb4RDHqgMfSvO7UBGi_TzI1wUV3QMtL
268
275
  endoreg_db/models/laboratory/lab_value.py,sha256=9X39Wqh1zHghEabUS5yPI3r9a3AKKUcrozwNg32LUag,4097
269
276
  endoreg_db/models/legacy_data/__init__.py,sha256=J0ewe30Y2qCxCUPktcFOm2WOEz2fQnwrgfZ93FRcnio,115
270
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
271
283
  endoreg_db/models/medication/__init__.py,sha256=69K9Iy3zEqJSd0zS_ZS9WKbvGQIgmOJm1PCpPI_vwOg,25
272
284
  endoreg_db/models/medication/medication.py,sha256=tPXBnrGVkmyvfhjJQGcD4Jq2TkYeHl8nNLvGuVisBiI,4939
273
- endoreg_db/models/network/__init__.py,sha256=RjhUS0qXDvcAwrszx2nG_C9fXKO43q1jQZIM1tY6j90,92
274
- endoreg_db/models/network/network_device.py,sha256=s_zuLMSwu-6mpwxS7Gc0P9wSih_HzJtMWHW4hkjH5Vg,916
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
275
288
  endoreg_db/models/network/network_device_type.py,sha256=LHGVGkF0LRH8VmAJHE0If5H3c8HC5wtP0-GZY7r02TU,728
276
289
  endoreg_db/models/other/__init__.py,sha256=HDlNBuS98uIvxpw3sww-hiyulG871TzulFRrLO0C8ec,158
277
290
  endoreg_db/models/other/distribution.py,sha256=OLMELIpP9xQa4BkiLZoBbEoxzLmOponZh_LYro6g4DM,8404
@@ -361,7 +374,7 @@ endoreg_db/utils/ocr.py,sha256=jkdT1bl-LSCjZ2PvxlX1AG2TmhdMclayxUPrdZWs7UE,7322
361
374
  endoreg_db/utils/uuid.py,sha256=T4HXqYtKwXFqE5kPyvlgWHyllBBF6LL6N48nl9TpwBk,53
362
375
  endoreg_db/utils/video_metadata.py,sha256=HDyXxAeNQOK3cGzQ06xosmObzEnJBARuKjwz9vmmRIM,2613
363
376
  endoreg_db/views.py,sha256=xc1IQHrsij7j33TUbo-_oewy3vs03pw_etpBWaMYJl0,63
364
- endoreg_db-0.3.8.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
365
- endoreg_db-0.3.8.dist-info/METADATA,sha256=i4RzdOedmqZgro-AqA9a-BiBg8AdvL9wYZnlaeXSU2w,1054
366
- endoreg_db-0.3.8.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
367
- endoreg_db-0.3.8.dist-info/RECORD,,
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,,