harvest-vocab

Software screenshot:
harvest-vocab
Dettagli del software:
Versione: 0.9.1 Beta 8
Data di caricamento: 14 Apr 15
Sviluppatore: Byron Ruth
Licenza: Libero
Popolarità: 1

Rating: nan/5 (Total Votes: 0)

raccolta-vocabolario è un app Harvest Stack fornisce modelli astratti per la definizione di modelli di vocabolario-like e la costruzione di un indice corrispondente per i dati autonomi connessi gerarchici.
Ad esempio, questo è come è possibile definire modelli per la memorizzazione dei codici ICD9:
da vocab.models importare AbstractItem, AbstractItemIndex
Classe Diagnosis (AbstractItem):
& Nbsp; description = models.CharField (max_length = 50)
& Nbsp; codice = models.CharField (max_length = 10)
& Nbsp; parent = models.ForeignKey ('self', related_name = 'bambini')
Codici ICD9 sono gerarchiche quindi quando chiedo le domande, "Dammi tutti i pazienti che hanno una diagnosi in ICD9 367 (disturbi di rifrazione e alloggio)", allora questo dovrebbe non solo di query 367, ma tutte le diagnosi discendenti così (che comprende altri 2 livelli).
Questo tipo di ricerca diventa difficile scrivere poiché avete accesso solo alla controllante diretta della diagnosi particolare, quindi la query sarebbe simile a questa.
da django.db.models import Q
Diagnosis.objects.filter (Q (codice = '367') | Q (parent__code = '367'))
Il problema evidente è che qualsiasi diagnosi 2+ livelli giù da '367' non sono inclusi.
creare un indice piatto
Per ovviare a questo problema, una sottoclasse AbstractItemIndex può essere definito che compila un indice di appartamento in una sottoclasse AbstractItem. Basta definire in questo modo:
Classe DiagnosisIndex (AbstractItemIndex):
& Nbsp; item = models.ForeignKey (Diagnosis, related_name = 'item_indexes')
& Nbsp; parent = models.ForeignKey (Diagnosis, related_name = 'parent_indexes')
# Costruisce l'indice per la diagnosi
DiagnosisIndex.objects.index ()
L'ultima riga genera un indice piatta della gerarchia che allevia il problema di profondità sconosciuta. Così ora, la stessa domanda sopra enunciato può essere risolta in questo modo:
# O il prodotto ha il codice o uno dei suoi genitori ha questo codice
condizione = Q (item__code = '367') | Q (parent__code = '367')
item_ids = DiagnosisIndex.objects.filter (condizione) .values_list ('item__id', piatta = True)
diagnosi = Diagnosis.objects.filter(id__in=item_ids)

Requirements:

  • Python

Altri software di sviluppo Byron Ruth

django-redcap
django-redcap

15 Apr 15

django-forkit
django-forkit

11 May 15

django-tracking2
django-tracking2

14 Apr 15

Commenti a harvest-vocab

I commenti non trovato
Aggiungi commento
Accendere le immagini!