harvest-vocab

Logiciel capture d'écran:
harvest-vocab
Détails logiciels:
Version: 0.9.1 Beta 8
Date de transfert: 14 Apr 15
Développeur: Byron Ruth
Licence: Gratuit
Popularité: 1

Rating: nan/5 (Total Votes: 0)

moisson vocabulaire est une application récolte Stack fournit des modèles abstraits pour définir les modèles de vocabulaire-like et la construction d'un indice correspondant pour les données liées à l'auto-hiérarchiques.
Par exemple, ce est comment vous pouvez définir des modèles pour stocker des codes CIM-9:
de vocab.models importer AbstractItem, AbstractItemIndex
classe Diagnostic (AbstractItem):
& Nbsp; description = models.CharField (max_length = 50)
& Nbsp; code = models.CharField (max_length = 10)
& Nbsp; parent = models.ForeignKey («soi», related_name = «enfants»)
codes CIM-9 sont hiérarchiques donc quand je pose les questions, «Donnez-moi tous les patients qui ont un diagnostic de la CIM-9 367 (troubles de la réfraction et de l'hébergement)", alors ce ne devrait pas seulement requête 367, mais tous les diagnostics de descendants ainsi (qui comprend 2 autres niveaux).
Ce type de requête devient difficile d'écrire puisque vous avez seulement accès à la société mère directe de l'un diagnostic particulier, donc la requête devrait ressembler à ceci.
de django.db.models importation Q
Diagnosis.objects.filter (Q (code = '367') | Q (parent__code = '367'))
Le problème évident est que les niveaux de tous les diagnostics en baisse par '367' ne sont pas inclus.
Créer un index plat
Pour pallier ce problème, une sous-classe AbstractItemIndex peut être défini qui va construire un indice à plat pour une sous-classe AbstractItem. Il suffit de définir comme ceci:
classe DiagnosisIndex (AbstractItemIndex):
& Nbsp; item = models.ForeignKey (Diagnostic, related_name = 'item_indexes')
& Nbsp; parent = models.ForeignKey (Diagnostic, related_name = 'parent_indexes')
# Construit l'indice pour le diagnostic
DiagnosisIndex.objects.index ()
La dernière ligne génère un indice plat de la hiérarchie qui allège la question de la profondeur inconnue. Alors maintenant, la même question posée ci-dessus peut être répondu de cette façon:
# Soit l'élément a ce code ou l'un de ses parents, il a ce code
condition = Q (item__code = '367') | Q (parent__code = '367')
item_ids = DiagnosisIndex.objects.filter (condition) .values_list ('item__id', plat = True)
diagnostics = Diagnosis.objects.filter(id__in=item_ids)

Requirements:

  • Python

D'autres logiciels de développeur Byron Ruth

django-tracking2
django-tracking2

14 Apr 15

django-forkit
django-forkit

11 May 15

django-serrano
django-serrano

20 Feb 15

Commentaires à harvest-vocab

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!