コード例 #1
0
ファイル: tests.py プロジェクト: hassanNS/avocado
    def test_format(self):
        name_field = DataField.objects.get_by_natural_key(
            'tests', 'title', 'name')
        salary_field = DataField.objects.get_by_natural_key(
            'tests', 'title', 'salary')
        boss_field = DataField.objects.get_by_natural_key(
            'tests', 'title', 'boss')

        concept = DataConcept(name='Title')
        concept.save()

        DataConceptField(concept=concept, field=name_field, order=1).save()
        DataConceptField(concept=concept, field=salary_field, order=2).save()
        DataConceptField(concept=concept, field=boss_field, order=3).save()

        values = ['CEO', 100000, True]

        self.assertEqual(
            concept.format(values),
            OrderedDict([(u'name', u'CEO'), (u'salary', 100000),
                         (u'boss', True)]))

        self.assertEqual(concept._formatter_cache[0], None)

        from avocado.formatters import Formatter, registry as formatters

        class HtmlFormatter(Formatter):
            def to_html(self, values, **context):
                fvalues = self(values, preferred_formats=['string'])
                return OrderedDict({
                    'profile':
                    '<span>' + '</span><span>'.join(fvalues.values()) +
                    '</span>'
                })

            to_html.process_multiple = True

        formatters.register(HtmlFormatter, 'HTML')
        concept.formatter_name = 'HTML'

        self.assertEqual(
            concept.format(values, preferred_formats=['html']),
            OrderedDict([
                ('profile',
                 u'<span>CEO</span><span>100000</span><span>True</span>')
            ]))
コード例 #2
0
ファイル: tests.py プロジェクト: leipzig/avocado
    def test_format(self):
        name_field = DataField.objects.get_by_natural_key('models', 'title', 'name')
        salary_field = DataField.objects.get_by_natural_key('models', 'title', 'salary')
        boss_field = DataField.objects.get_by_natural_key('models', 'title', 'boss')

        concept = DataConcept(name='Title')
        concept.save()

        DataConceptField(concept=concept, field=name_field, order=1).save()
        DataConceptField(concept=concept, field=salary_field, order=2).save()
        DataConceptField(concept=concept, field=boss_field, order=3).save()

        values = ['CEO', 100000, True]

        self.assertEqual(concept.format(values),
            OrderedDict([
                (u'name', u'CEO'),
                (u'salary', 100000),
                (u'boss', True)
            ]))

        self.assertEqual(concept._formatter_cache[0], None)

        from avocado.formatters import Formatter, registry as formatters

        class HtmlFormatter(Formatter):
            def to_html(self, values, **context):
                fvalues = self(values, preferred_formats=['string'])
                return OrderedDict({
                    'profile': '<span>' + '</span><span>'.join(fvalues.values()) + '</span>'
                })
            to_html.process_multiple = True

        formatters.register(HtmlFormatter, 'HTML')
        concept.formatter_name = 'HTML'

        self.assertEqual(concept.format(values, preferred_formats=['html']),
            OrderedDict([
                ('profile', u'<span>CEO</span><span>100000</span><span>True</span>')
            ]))
コード例 #3
0
    def to_html(self, values, **context):
        from avocado.models import DataField
        test_names = ['plan','pro_adhere']
        html_str = ""
        for name in test_names:
            if getattr(values, name) != None and getattr(values, name) != 'NONE':
                data_field = DataField.objects.get_by_natural_key('openmrs', 'pcpdetails', name)
                html_str += "<tr><td>{0}</td><td>{1}</td></tr>".format(data_field, getattr(values, name))
        if html_str != "":
            return "<table class='table table-striped'>{0}</table>".format(html_str)
        return ""


class MRNFormatter(Formatter):
    def to_html(self, value, **context):
        url = reverse('patient-detail', kwargs={'mrn': value})
        return '<a href="{0}">{1}</a>'.format(url, value)


registry.register(AgeFormatter, 'Age')
registry.register(GenderFormatter, 'Gender')
registry.register(EncounterAgeFormatter, 'EncounterAge')
registry.register(CbcPanelFormatter, 'CbcPanel')
registry.register(Chem7PanelFormatter, 'Chem7')
registry.register(MiscPanelFormatter, 'MiscLab')
registry.register(SystemsFormatter, 'SystemsReview')
registry.register(HIVDetailFormatter, 'HIVDetail')
registry.register(TBDetailFormatter, 'TBDetail')
registry.register(PCPDetailFormatter, 'PCPDetail')
registry.register(MRNFormatter, 'MRN')
コード例 #4
0
ファイル: formatters.py プロジェクト: andrewjesaitis/varify
        except Pathogenicity.DoesNotExist:
            return 'n/a'

        return pathogenicity.name


class AssessmentCategory(HTMLFormatter):
    def to_html(self, value, **context):
        from .models import AssessmentCategory

        try:
            category = AssessmentCategory.objects.get(pk=value)
        except AssessmentCategory.DoesNotExist:
            return '<span class="muted">n/a</span>'

        return category.name

    def to_excel(self, value, **context):
        from .models import AssessmentCategory

        try:
            category = AssessmentCategory.objects.get(pk=value)
        except AssessmentCategory.DoesNotExist:
            return 'n/a'

        return category.name


formatters.register(Pathogenicity, 'Pathogenicity')
formatters.register(AssessmentCategory, 'Assessment Category')
コード例 #5
0
ファイル: formatters.py プロジェクト: curiousTauseef/varify
                href=href, label=values['symbol'])
    to_html.process_multiple = True

    def to_excel(self, values, **context):
        if values['symbol']:
            href = self.href.format(values['symbol'])
            return '=HYPERLINK("{href}", "{label}")'.format(
                href=href, label=values['symbol'])
    to_excel.process_multiple = True


class RefSeqTranscript(HTMLFormatter):
    href = 'http://www.ncbi.nlm.nih.gov/nuccore/{}'

    def to_html(self, value, **context):
        if value:
            href = self.href.format(value)
            return '<a target=_blank href="{href}">{label}</a>'.format(
                href=href, label=value)

    def to_excel(self, value, **context):
        if value:
            href = self.href.format(value)
            return '=HYPERLINK("{href}", "{label}")'.format(
                href=href, label=value)


formatters.register(HGNCGene, 'HGNC Gene')
formatters.register(NCBIGene, 'NCBI Gene')
formatters.register(RefSeqTranscript, 'RefSeq Transcript')
コード例 #6
0
from avocado.formatters import registry
from serrano.formatters import HTMLFormatter


class VaccineFormatter(HTMLFormatter):

    def to_html(self, values, **context):
        print values
        status = values['status']
        name = values['name']
        if status == 'PREVIOUS IMMUNIZATIONS ADMINISTERED':
            status = "(PREVIOUSLY ADMINISTERED)"
            return "<strong>" + name + "</strong> " + "<span class='text-info'>" + status +  "</span></br>"
        elif status == "IMMUNIZATIONS ORDERED":
            status = "(ORDERED)"
            return "<strong>" + name + "</strong> " + "<span class='text-warning'>" + status + "</span></br>"
        return "<h5>" + name + " " + status + "</h5>"

    to_html.process_multiple = True


registry.register(VaccineFormatter, 'Vaccine')
コード例 #7
0
ファイル: formatters.py プロジェクト: curiousTauseef/varify
from avocado.formatters import registry as formatters
from serrano.formatters import HTMLFormatter


class FowardSlashDelimited(HTMLFormatter):
    delimiter = ' / '


class CommaSeparated(HTMLFormatter):
    delimiter = ', '


formatters.register(HTMLFormatter, 'HTML')
formatters.register(FowardSlashDelimited, 'Forward-slash Delimited')
formatters.register(CommaSeparated, 'Comma-separated')
コード例 #8
0
ファイル: formatters.py プロジェクト: andrewjesaitis/varify
    to_csv = to_excel


class PolyPhen2Formatter(HTMLFormatter):
    alt_keys = ('PolyPhen2 Score', 'PolyPhen2 Prediction')

    def _get_values(self, value):
        from .models import PolyPhen2
        return value, PolyPhen2.get_prediction(value)

    def to_html(self, value, **context):
        if value is None:
            return self.html_map[value]
        score, prediction = self._get_values(value)
        return '{0} <span class=muted>({1})</span>'.format(prediction, score)

    def to_excel(self, value, **context):
        score, prediction = self._get_values(value)
        return OrderedDict(zip(self.alt_keys, [score, prediction]))

    to_csv = to_excel


formatters.register(GenomicCoordinate, 'Genomic Coordinate')
formatters.register(dbSNP, 'dbSNP')
formatters.register(VariantEffect, 'Variant Effect')
formatters.register(AlleleFrequency, 'Allele Frequency')
formatters.register(SiftFormatter, 'Sift')
formatters.register(PolyPhen2Formatter, 'PolyPhen2')
コード例 #9
0
ファイル: formatters.py プロジェクト: curiousTauseef/varify
    to_csv = to_excel


class PolyPhen2Formatter(HTMLFormatter):
    alt_keys = ('PolyPhen2 Score', 'PolyPhen2 Prediction')

    def _get_values(self, value):
        from vdw.variants.models import PolyPhen2
        return value, PolyPhen2.get_prediction(value)

    def to_html(self, value, **context):
        if value is None:
            return self.html_map[value]
        score, prediction = self._get_values(value)
        return '{0} <span class=muted>({1})</span>'.format(prediction, score)

    def to_excel(self, value, **context):
        score, prediction = self._get_values(value)
        return OrderedDict(zip(self.alt_keys, [score, prediction]))

    to_csv = to_excel


formatters.register(GenomicCoordinate, 'Genomic Coordinate')
formatters.register(dbSNP, 'dbSNP')
formatters.register(VariantEffect, 'Variant Effect')
formatters.register(AlleleFrequency, 'Allele Frequency')
formatters.register(SiftFormatter, 'Sift')
formatters.register(PolyPhen2Formatter, 'PolyPhen2')
コード例 #10
0
    distinct = True


class OtherMedConditionFormatter(SubjectAggregationFormatter):
    model = OtherMedCondition
    field = 'other_med_condition'
    distinct = True


class LimsIDFormatter(SubjectAggregationFormatter):
    model = NautilusSubject
    field = 'sample_subject_id'
    distinct = True


registry.register(PathologyReportFormatter, 'PathologyReportFormatter')
registry.register(OperativeReportFormatter, 'OperativeReportFormatter')
registry.register(AgeDescAggregationFormatter, 'AgeDescAggregationFormatter')
registry.register(AgeAtDiagAggregationFormatter, 'AgeAtDiagAggregationFormatter')
registry.register(AgeYmdAggregationFormatter, 'AgeYmdAggregationFormatter')
registry.register(PatientSummaryFormatter, 'PatientSummaryFormatter')
registry.register(LinkAggFormatter, 'LinkAggFormatter')
registry.register(AliquotAggFormatter, 'AliqAggFormatter')
registry.register(TumorLocFormatter, 'TumorLocFormatter')
registry.register(OtherMedConditionFormatter, 'OtherMedConditionFormatter')
registry.register(PathDiagFormatter, 'PathDiagFormatter')
registry.register(RaceFormatter, 'RaceFormatter')
registry.register(MolecularTestsDoneFormatter, 'MolecularTestsDoneFormatter')
registry.register(DiagnosisTypeListFormatter, 'DiagnosisTypeListFormatter')
registry.register(CancerPredispositionFormatter, 'CancerPredispositionFormatter')
registry.register(RelapseNumberFormatter, 'RelapseNumberFormatter')
コード例 #11
0
        for c in cohorts:
            output.append((c.name, variants.get(c.pk, 0), c.count))
        return output

    def to_html(self, value, **context):
        variants = self._get_cohort_variants(value, **context)

        html = ['<ul class=unstyled>']
        for name, af, count in variants:
            html.append('<li><small>{0}</small> {1}% <span class=muted>({2})'
                        '</span></li>'.format(name, str(af * 100), count))
        html.append('</ul>')

        return ''.join(html)

    def to_excel(self, value, **context):
        variants = self._get_cohort_variants(value, **context)
        output = OrderedDict()
        for name, af, count in variants:
            key = '{0} Cohort Allele Freq ({1} samples)'.format(name, count)
            output[key] = af
        return output

    to_csv = to_excel


formatters.register(AlamutFormatter, 'Alamut Query Link')
formatters.register(SampleFormatter, 'Sample')
formatters.register(ReadDepthFormatter, 'Read Depth')
formatters.register(CohortsFormatter, 'Cohorts')
コード例 #12
0
        test_names = ["plan", "pro_adhere"]
        html_str = ""
        for name in test_names:
            if values[name] != None and values[name] != "NONE":
                data_field = DataField.objects.get_by_natural_key("openmrs", "pcpdetails", name)
                html_str += "<tr><td>{0}</td><td>{1}</td></tr>".format(data_field, values[name])
        if html_str != "":
            return "<table class='table table-striped'>{0}</table>".format(html_str)
        return ""

    to_html.process_multiple = True


class MRNFormatter(HTMLFormatter):
    def to_html(self, value, **context):
        url = reverse("patient-detail", kwargs={"mrn": value})
        return '<a href="{0}">{1}</a>'.format(url, value)


registry.register(AgeFormatter, "Age")
registry.register(GenderFormatter, "Gender")
registry.register(EncounterAgeFormatter, "EncounterAge")
registry.register(CbcPanelFormatter, "CbcPanel")
registry.register(Chem7PanelFormatter, "Chem7")
registry.register(MiscPanelFormatter, "MiscLab")
registry.register(SystemsFormatter, "SystemsReview")
registry.register(HIVDetailFormatter, "HIVDetail")
registry.register(TBDetailFormatter, "TBDetail")
registry.register(PCPDetailFormatter, "PCPDetail")
registry.register(MRNFormatter, "MRN")
コード例 #13
0
ファイル: formatters.py プロジェクト: rv816/serrano
from avocado.formatters import Formatter, process_multiple, registry


class HTMLFormatter(Formatter):
    delimiter = u' '

    html_map = {
        None: '<em>n/a</em>'
    }

    @process_multiple
    def to_html(self, values, **context):
        toks = []
        for value in values.values():
            # Check the html_map first
            if value in self.html_map:
                tok = self.html_map[value]
            # Ignore NoneTypes
            elif value is None:
                continue
            # Prettify floats
            elif type(value) is float:
                tok = filters.floatformat(value)
            else:
                tok = unicode(value)
            toks.append(tok)
        return self.delimiter.join(toks)


registry.register(HTMLFormatter, default=True)
コード例 #14
0
        for name in test_names:
            if getattr(values, name) != None and getattr(values,
                                                         name) != 'NONE':
                data_field = DataField.objects.get_by_natural_key(
                    'openmrs', 'pcpdetails', name)
                html_str += "<tr><td>{0}</td><td>{1}</td></tr>".format(
                    data_field, getattr(values, name))
        if html_str != "":
            return "<table class='table table-striped'>{0}</table>".format(
                html_str)
        return ""


class MRNFormatter(Formatter):
    def to_html(self, value, **context):
        url = reverse('patient-detail', kwargs={'mrn': value})
        return '<a href="{0}">{1}</a>'.format(url, value)


registry.register(AgeFormatter, 'Age')
registry.register(GenderFormatter, 'Gender')
registry.register(EncounterAgeFormatter, 'EncounterAge')
registry.register(CbcPanelFormatter, 'CbcPanel')
registry.register(Chem7PanelFormatter, 'Chem7')
registry.register(MiscPanelFormatter, 'MiscLab')
registry.register(SystemsFormatter, 'SystemsReview')
registry.register(HIVDetailFormatter, 'HIVDetail')
registry.register(TBDetailFormatter, 'TBDetail')
registry.register(PCPDetailFormatter, 'PCPDetail')
registry.register(MRNFormatter, 'MRN')
コード例 #15
0
ファイル: formatters.py プロジェクト: awenocur/varify
            pathogenicity = Pathogenicity.objects.get(pk=value)
        except Pathogenicity.DoesNotExist:
            return 'n/a'

        return pathogenicity.name


class AssessmentCategory(HTMLFormatter):
    def to_html(self, value, **context):
        from vdw.assessments.models import AssessmentCategory

        try:
            category = AssessmentCategory.objects.get(pk=value)
        except AssessmentCategory.DoesNotExist:
            return '<span class="muted">n/a</span>'

        return category.name

    def to_excel(self, value, **context):
        from vdw.assessments.models import AssessmentCategory

        try:
            category = AssessmentCategory.objects.get(pk=value)
        except AssessmentCategory.DoesNotExist:
            return 'n/a'

        return category.name

formatters.register(Pathogenicity, 'Pathogenicity')
formatters.register(AssessmentCategory, 'Assessment Category')
コード例 #16
0
ファイル: formatters.py プロジェクト: leipzig/varify
        for c in cohorts:
            output.append((c.name, variants.get(c.pk, 0), c.count))
        return output

    def to_html(self, value, **context):
        variants = self._get_cohort_variants(value, **context)

        html = ['<ul class=unstyled>']
        for name, af, count in variants:
            html.append('<li><small>{0}</small> {1}% <span class=muted>({2})'
                        '</span></li>'.format(name, str(af * 100), count))
        html.append('</ul>')

        return ''.join(html)

    def to_excel(self, value, **context):
        variants = self._get_cohort_variants(value, **context)
        output = OrderedDict()
        for name, af, count in variants:
            key = '{0} Cohort Allele Freq ({1} samples)'.format(name, count)
            output[key] = af
        return output

    to_csv = to_excel


formatters.register(AlamutFormatter, 'Alamut Query Link')
formatters.register(SampleFormatter, 'Sample')
formatters.register(ReadDepthFormatter, 'Read Depth')
formatters.register(CohortsFormatter, 'Cohorts')
コード例 #17
0
ファイル: formatters.py プロジェクト: ryanjohara/varify
    to_csv = to_excel


class PolyPhen2Formatter(HTMLFormatter):
    alt_keys = ("PolyPhen2 Score", "PolyPhen2 Prediction")

    def _get_values(self, value):
        from vdw.variants.models import PolyPhen2

        return value, PolyPhen2.get_prediction(value)

    def to_html(self, value, **context):
        if value is None:
            return self.html_map[value]
        score, prediction = self._get_values(value)
        return "{0} <span class=muted>({1})</span>".format(prediction, score)

    def to_excel(self, value, **context):
        score, prediction = self._get_values(value)
        return OrderedDict(zip(self.alt_keys, [score, prediction]))

    to_csv = to_excel


formatters.register(GenomicCoordinate, "Genomic Coordinate")
formatters.register(dbSNP, "dbSNP")
formatters.register(VariantEffect, "Variant Effect")
formatters.register(AlleleFrequency, "Allele Frequency")
formatters.register(SiftFormatter, "Sift")
formatters.register(PolyPhen2Formatter, "PolyPhen2")