|
4 | 4 |
|
5 | 5 |
|
6 | 6 | 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) |
11 | 13 | history_type = models.CharField(max_length=255) |
12 | 14 | reason = models.TextField(blank=True, null=True) |
13 | 15 | 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 | + ) |
14 | 22 |
|
15 | 23 | sources = models.ManyToManyField( |
16 | 24 | Embeddings, |
17 | 25 | related_name='med_rules', |
18 | 26 | blank=True, |
19 | | - through='MedRuleSource' |
| 27 | + through='api.MedRuleSource' # Correct fully-qualified through model reference |
20 | 28 | ) |
21 | 29 |
|
22 | | - explanation = models.TextField(blank=True, null=True) |
23 | | - |
24 | 30 | class Meta: |
25 | 31 | db_table = 'api_medrule' |
26 | | - unique_together = ['rule_type', 'history_type'] |
| 32 | + # list of tuples is preferred |
| 33 | + unique_together = [('rule_type', 'history_type')] |
27 | 34 |
|
28 | 35 | def __str__(self): |
29 | | - return f"{self.rule_type} - {self.label}" |
| 36 | + return f"{self.rule_type} - {self.label or 'Unnamed'}" |
30 | 37 |
|
31 | 38 |
|
32 | 39 | 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) |
37 | 43 |
|
38 | 44 | class Meta: |
39 | 45 | 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