Skip to content

Commit f64367b

Browse files
committed
hoping this fix all the errors this table is causing.
1 parent d012e23 commit f64367b

File tree

3 files changed

+71
-30
lines changed

3 files changed

+71
-30
lines changed

server/api/migrations/0012_remove_medrule_medications_medrulesource_and_more.py

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,27 @@ class Migration(migrations.Migration):
99
]
1010

1111
operations = [
12-
migrations.CreateModel(
13-
name='MedRuleSource',
14-
fields=[
15-
('id', models.BigAutoField(auto_created=True,
16-
primary_key=True, serialize=False, verbose_name='ID')),
17-
('embedding', models.ForeignKey(
18-
on_delete=django.db.models.deletion.CASCADE, to='api.embeddings')),
19-
('medication', models.ForeignKey(
20-
on_delete=django.db.models.deletion.CASCADE, to='api.medication')),
21-
('medrule', models.ForeignKey(
22-
on_delete=django.db.models.deletion.CASCADE, to='api.medrule')),
23-
],
24-
options={
25-
'db_table': 'api_medrule_sources',
26-
'unique_together': {('medrule', 'embedding', 'medication')},
27-
},
12+
migrations.SeparateDatabaseAndState(
13+
database_operations=[], # Don't create DB table
14+
state_operations=[
15+
migrations.CreateModel(
16+
name='MedRuleSource',
17+
fields=[
18+
('id', models.BigAutoField(auto_created=True,
19+
primary_key=True, serialize=False, verbose_name='ID')),
20+
('medrule', models.ForeignKey(
21+
on_delete=django.db.models.deletion.CASCADE, to='api.medrule')),
22+
('embedding', models.ForeignKey(
23+
on_delete=django.db.models.deletion.CASCADE, to='api.embeddings')),
24+
('medication', models.ForeignKey(
25+
on_delete=django.db.models.deletion.CASCADE, to='api.medication')),
26+
],
27+
options={
28+
'db_table': 'api_medrule_sources',
29+
'unique_together': {('medrule', 'embedding', 'medication')},
30+
},
31+
),
32+
]
2833
),
2934
migrations.SeparateDatabaseAndState(
3035
database_operations=[],
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Generated by Django 4.2.3 on 2025-07-11 03:30
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('api', '0012_remove_medrule_medications_medrulesource_and_more'),
10+
]
11+
12+
operations = [
13+
migrations.SeparateDatabaseAndState(
14+
database_operations=[],
15+
state_operations=[
16+
migrations.AddField(
17+
model_name='medrule',
18+
name='medications',
19+
field=models.ManyToManyField(
20+
related_name='med_rules',
21+
to='api.medication',
22+
),
23+
),
24+
]
25+
),
26+
]

server/api/models/model_medRule.py

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,47 @@
44

55

66
class MedRule(models.Model):
7-
rule_type = models.CharField(
8-
max_length=7,
9-
choices=[('INCLUDE', 'Include'), ('EXCLUDE', 'Exclude')]
10-
)
7+
RULE_TYPE_CHOICES = [
8+
('INCLUDE', 'Include'),
9+
('EXCLUDE', 'Exclude'),
10+
]
11+
12+
rule_type = models.CharField(max_length=7, choices=RULE_TYPE_CHOICES)
1113
history_type = models.CharField(max_length=255)
1214
reason = models.TextField(blank=True, null=True)
1315
label = models.CharField(max_length=255, blank=True, null=True)
16+
explanation = models.TextField(blank=True, null=True)
17+
18+
medications = models.ManyToManyField(
19+
Medication,
20+
related_name='med_rules'
21+
)
1422

1523
sources = models.ManyToManyField(
1624
Embeddings,
1725
related_name='med_rules',
1826
blank=True,
19-
through='MedRuleSource'
27+
through='api.MedRuleSource' # Correct fully-qualified through model reference
2028
)
2129

22-
explanation = models.TextField(blank=True, null=True)
23-
2430
class Meta:
2531
db_table = 'api_medrule'
26-
unique_together = ['rule_type', 'history_type']
32+
# list of tuples is preferred
33+
unique_together = [('rule_type', 'history_type')]
2734

2835
def __str__(self):
29-
return f"{self.rule_type} - {self.label}"
36+
return f"{self.rule_type} - {self.label or 'Unnamed'}"
3037

3138

3239
class MedRuleSource(models.Model):
33-
medrule = models.ForeignKey(MedRule, on_delete=models.CASCADE)
34-
embedding = models.ForeignKey(Embeddings, on_delete=models.CASCADE)
35-
medication = models.ForeignKey(
36-
Medication, on_delete=models.CASCADE)
40+
medrule = models.ForeignKey('api.MedRule', on_delete=models.CASCADE)
41+
embedding = models.ForeignKey('api.Embeddings', on_delete=models.CASCADE)
42+
medication = models.ForeignKey('api.Medication', on_delete=models.CASCADE)
3743

3844
class Meta:
3945
db_table = 'api_medrule_sources'
40-
unique_together = ('medrule', 'embedding', 'medication')
46+
# list of tuples
47+
unique_together = [('medrule', 'embedding', 'medication')]
48+
49+
def __str__(self):
50+
return f"Rule {self.medrule_id} | Embedding {self.embedding_id} | Medication {self.medication_id}"

0 commit comments

Comments
 (0)