Exemplo n.º 1
0
    def setUp(self):
        management.call_command('avocado', 'sync', 'openmrs')

        birthdate_field = DataField.objects.get_by_natural_key('openmrs', 'patient', 'birthdate')
        estimate_field = DataField.objects.get_by_natural_key('openmrs','patient', 'birthdate_estimated')

        self.concept = concept = DataConcept(name="Birthdate")
        concept.save()

        DataConceptField(concept=concept, field=birthdate_field, order=1).save()
        DataConceptField(concept=concept, field=estimate_field, order=2).save()

        formatter = registry.get('Age')
        self.f = formatter(concept)
Exemplo n.º 2
0
 def format(self, *args, **kwargs):
     """Convenience method for formatting data relative to this concept's
     associated formatter. To prevent redundant initializations (say, in
     a tight loop) the formatter instance is cached until the formatter
     name changes.
     """
     name = self.formatter_name
     cache = getattr(self, '_formatter_cache', None)
     if not cache or name != cache[0]:
         formatter = formatters.get(name)(self)
         self._formatter_cache = (name, formatter)
     else:
         formatter = cache[1]
     return formatter(*args, **kwargs)
Exemplo n.º 3
0
    def setUp(self):
        management.call_command('avocado', 'sync', 'openmrs')

        birthdate_field = DataField.objects.get_by_natural_key(
            'openmrs', 'patient', 'birthdate')
        estimate_field = DataField.objects.get_by_natural_key(
            'openmrs', 'patient', 'birthdate_estimated')

        self.concept = concept = DataConcept(name="Birthdate")
        concept.save()

        DataConceptField(concept=concept, field=birthdate_field,
                         order=1).save()
        DataConceptField(concept=concept, field=estimate_field, order=2).save()

        formatter = registry.get('Age')
        self.f = formatter(concept)
Exemplo n.º 4
0
    def __init__(self, concepts=None, preferred_formats=None):
        if preferred_formats is not None:
            self.preferred_formats = preferred_formats

        if concepts is None:
            concepts = ()
        elif isinstance(concepts, DataView):
            node = concepts.parse()
            concepts = node.get_concepts_for_select()

        self.params = []
        self.row_length = 0
        self.concepts = concepts

        self._header = []
        self._header_checked = False

        for concept in concepts:
            formatter_class = formatters.get(concept.formatter)
            self.add_formatter(formatter_class, concept=concept)

        self._format_cache = {}