harvest-vocab

Software screenshot:
harvest-vocab
Software informatie:
Versie: 0.9.1 Beta 8
Upload datum: 14 Apr 15
Ontwikkelaar: Byron Ruth
Licentie: Gratis
Populariteit: 16

Rating: nan/5 (Total Votes: 0)

oogst-vocab is een Harvest Stack app biedt abstracte modellen voor het definiëren van de woordenschat-achtige modellen en het bouwen van een bijbehorende index voor hiërarchische zelf-gerelateerde gegevens.
Bijvoorbeeld, dit is hoe je modellen kunnen definiëren voor het opslaan ICD9 codes:
van vocab.models importeren AbstractItem, AbstractItemIndex
klasse Diagnose (AbstractItem):
& Nbsp; description = models.CharField (max_length = 50)
& Nbsp; code = models.CharField (max_length = 10)
& Nbsp; ouder = models.ForeignKey ('zelf', related_name = 'kinderen')
ICD9 codes zijn hiërarchische dus toen ik de vragen stellen, "Geef me alle patiënten met een diagnose in ICD9 367 (Aandoeningen van breking en accommodatie)", dan moet dit niet alleen query-367, maar alle afstammeling diagnoses en (waaronder andere 2 niveaus).
Dit soort vragen wordt het moeilijk om te schrijven, omdat je alleen toegang tot de directe ouder van de een bepaalde diagnose, waardoor de query zou uitzien.
van django.db.models import Q
Diagnosis.objects.filter (Q (code = '367') | Q (parent__code = '367'))
De voor de hand liggende probleem hier is dat elke diagnoses 2+ niveaus naar beneden van '367' zijn niet inbegrepen.
A Flat Index
Om dit probleem te verlichten, kan een AbstractItemIndex subklasse worden gedefinieerd die een vlakke index voor een AbstractItem subklasse zal bouwen. Definiëren het gewoon zo:
klasse DiagnosisIndex (AbstractItemIndex):
& Nbsp; punt = models.ForeignKey (Diagnose, related_name = 'item_indexes')
& Nbsp; ouder = models.ForeignKey (Diagnose, related_name = 'parent_indexes')
# Bouwt de index voor Diagnose
DiagnosisIndex.objects.index ()
De laatste regel genereert een flatscreen-index van de hiërarchie die de onbekende diepte kwestie verlicht. Dus nu kan dezelfde vraag hierboven vermeld worden beantwoord op deze manier:
# Ofwel het item heeft deze code of een van zijn ouders heeft deze code
voorwaarde = Q (item__code = '367') | Q (parent__code = '367')
item_ids = DiagnosisIndex.objects.filter (conditie) .values_list ('item__id', platte = True)
diagnoses = Diagnosis.objects.filter(id__in=item_ids)

Requirements:

  • Python

Andere software van ontwikkelaar Byron Ruth

Marky
Marky

20 Feb 15

django-serrano
django-serrano

20 Feb 15

django-tracking2
django-tracking2

14 Apr 15

Reacties op harvest-vocab

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!