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)
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)
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)
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 = {}