Медицина/Документы Jinja: различия между версиями
Admin (обсуждение | вклад) Нет описания правки |
Admin (обсуждение | вклад) |
||
| (не показаны 23 промежуточные версии 2 участников) | |||
| Строка 5: | Строка 5: | ||
=== Медицинский осмотр === | === Медицинский осмотр === | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="django"> | ||
{{ record.case }} | {{ record.case }} | ||
{% | {% set case_services = get_case_services(record.case, include_complex_service=False) %} | ||
{% set case_record_services = get_case_record_services(record.case) %} | |||
{% set record_services = get_record_services(record) %} | |||
{% for service in case_services %} | |||
<p>{{ service.name }}</p> | <p>{{ service.name }}</p> | ||
{% endfor %} | {% endfor %} | ||
{% for record_service in case_record_services %} | |||
<p>{{ record_service.service.name }}</p> | |||
<p>{{ record_service.cost }}</p> | |||
<p>{{ record_service.status }}</p> | |||
{% endfor %} | |||
{% for record_service in record_services %} | |||
<p>{{ record_service.service.name }}</p> | |||
<p>{{ record_service.cost }}</p> | |||
<p>{{ record_service.status }}</p> | |||
{% endfor %} | |||
</syntaxhighlight> | |||
=== Значения из справочника === | |||
<syntaxhighlight lang="django"> | |||
{% set values = get_catalog_values('RECORD_SERVICE_STATUS') %} | |||
{% for value in values %} | |||
{{ value.name }} | |||
{% endfor %} | |||
</syntaxhighlight> | |||
== Шаблоны (jinja2) == | |||
"Документация":http://jinja.pocoo.org/docs/2.10/templates/ | |||
=== Pymorphy2 === | |||
https://pymorphy2.readthedocs.io/en/latest/user/grammemes.html | |||
<syntaxhighlight lang="Jinja"> | |||
{{ "Хомяк ест"|inflect("datv", "plur") }} | |||
{{ "Хомяк"|agree_with_number(4) }} | |||
</syntaxhighlight> | |||
=== Petrovich === | |||
<syntaxhighlight lang="Jinja"> | |||
{{ "Иванов Иван Иванович"|inflectfio(case, gender) }} | |||
post= [0...4] | |||
gender = [0...1] | |||
# Родительный | |||
GENITIVE = 0 | |||
# Дательный | |||
DATIVE = 1 | |||
# Винительный | |||
ACCUSATIVE = 2 | |||
# Творительный | |||
INSTRUMENTAL = 3 | |||
# Предложный | |||
PREPOSITIONAL = 4 | |||
</syntaxhighlight> | |||
=== Barcode 128 === | |||
<syntaxhighlight lang="Jinja"> | |||
{{ barcode128('PATIENT', patient.id) }} | |||
{{ barcode128('PATIENT', patient.id, separator='~', width='300px', height='200px') }} | |||
</syntaxhighlight> | |||
=== Any Barcode === | |||
<syntaxhighlight lang="Jinja"> | |||
{{ barcode('123455551111', barcode_class='ean13') }} | |||
</syntaxhighlight> | |||
=== Qrcode === | |||
<syntaxhighlight lang="Jinja"> | |||
{{ qrcode('PATIENT', patient.id) }} | |||
{{ qrcode('PATIENT', patient.id, separator='~', size='50px') }} | |||
</syntaxhighlight> | |||
=== Даты === | |||
<syntaxhighlight lang="Jinja"> | |||
{{ now() }} | |||
{{ now('%d.%m.%Y %H:%M') }} | |||
{{ today() }} | |||
{{ today('%d.%m.%Y') }} | |||
</syntaxhighlight> | |||
=== Логотип === | |||
<syntaxhighlight lang="Jinja"> | |||
{% set LOGO=lpu.logo.path %} | |||
{% set LOGO_THUMBNAIL=lpu.logo_thumbnail.path %} | |||
<img src="{{ LOGO }}" /> | |||
<img src="{{ LOGO_THUMBNAIL }}" /> | |||
</syntaxhighlight> | |||
=== Функции === | |||
==== Подключение шаблона ==== | |||
<syntaxhighlight lang="Jinja"> | |||
{{ render_layout('name') }} | |||
</syntaxhighlight> | |||
==== Рендер печатного шаблона ==== | |||
<syntaxhighlight lang="Jinja"> | |||
{% set record=get_record(record_id) %} | |||
{{ render_print_template("0080600c-d9f2-4623-bc88-fba59c0aa465", record=record) }} | |||
</syntaxhighlight> | |||
==== Конвертация числа в тексовое представление ==== | |||
<syntaxhighlight lang="Jinja"> | |||
{{ num2words(52, ordinal=True) }} | |||
{{ 52|num2words }} | |||
{{ num2currency(52.2) }} | |||
</syntaxhighlight> | |||
==== Удаление тегов ==== | |||
<syntaxhighlight lang="Jinja"> | |||
{{ data.text|remove_tags }} | |||
</syntaxhighlight> | |||
==== Разное ==== | |||
<syntaxhighlight lang="Jinja"> | |||
{{ "{:02}".format(5) }} 05 | |||
</syntaxhighlight> | |||
==== Отчет с XML ==== | |||
<syntaxhighlight lang="Jinja"> | |||
{% set lines = results.result.lines %}<?xml version="1.0" encoding="windows-1251"?> | |||
{% filter pretty_xml %} | |||
<Файл ВерсФорм="5.01"> | |||
<Документ КНД="1184043" ДатаДок="11.02.2025" КодНО="2511" /> | |||
{% for line in lines %} | |||
<НППлатМедУсл> | |||
<ФИО>{{ line.last_name }}</ФИО> | |||
</НППлатМедУсл> | |||
{% endfor %} | |||
</Файл> | |||
{% endfilter %} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Текущая версия от 01:18, 23 ноября 2025
Некешируемое изображение
<img src="{{ src }}?{{ timestamp() }}" />
Медицинский осмотр
{{ record.case }}
{% set case_services = get_case_services(record.case, include_complex_service=False) %}
{% set case_record_services = get_case_record_services(record.case) %}
{% set record_services = get_record_services(record) %}
{% for service in case_services %}
<p>{{ service.name }}</p>
{% endfor %}
{% for record_service in case_record_services %}
<p>{{ record_service.service.name }}</p>
<p>{{ record_service.cost }}</p>
<p>{{ record_service.status }}</p>
{% endfor %}
{% for record_service in record_services %}
<p>{{ record_service.service.name }}</p>
<p>{{ record_service.cost }}</p>
<p>{{ record_service.status }}</p>
{% endfor %}
Значения из справочника
{% set values = get_catalog_values('RECORD_SERVICE_STATUS') %}
{% for value in values %}
{{ value.name }}
{% endfor %}
Шаблоны (jinja2)
"Документация":http://jinja.pocoo.org/docs/2.10/templates/
Pymorphy2
https://pymorphy2.readthedocs.io/en/latest/user/grammemes.html
{{ "Хомяк ест"|inflect("datv", "plur") }}
{{ "Хомяк"|agree_with_number(4) }}
Petrovich
{{ "Иванов Иван Иванович"|inflectfio(case, gender) }}
post= [0...4]
gender = [0...1]
# Родительный
GENITIVE = 0
# Дательный
DATIVE = 1
# Винительный
ACCUSATIVE = 2
# Творительный
INSTRUMENTAL = 3
# Предложный
PREPOSITIONAL = 4
Barcode 128
{{ barcode128('PATIENT', patient.id) }}
{{ barcode128('PATIENT', patient.id, separator='~', width='300px', height='200px') }}
Any Barcode
{{ barcode('123455551111', barcode_class='ean13') }}
Qrcode
{{ qrcode('PATIENT', patient.id) }}
{{ qrcode('PATIENT', patient.id, separator='~', size='50px') }}
Даты
{{ now() }}
{{ now('%d.%m.%Y %H:%M') }}
{{ today() }}
{{ today('%d.%m.%Y') }}
Логотип
{% set LOGO=lpu.logo.path %}
{% set LOGO_THUMBNAIL=lpu.logo_thumbnail.path %}
<img src="{{ LOGO }}" />
<img src="{{ LOGO_THUMBNAIL }}" />
Функции
Подключение шаблона
{{ render_layout('name') }}
Рендер печатного шаблона
{% set record=get_record(record_id) %}
{{ render_print_template("0080600c-d9f2-4623-bc88-fba59c0aa465", record=record) }}
Конвертация числа в тексовое представление
{{ num2words(52, ordinal=True) }}
{{ 52|num2words }}
{{ num2currency(52.2) }}
Удаление тегов
{{ data.text|remove_tags }}
Разное
{{ "{:02}".format(5) }} 05
Отчет с XML
{% set lines = results.result.lines %}<?xml version="1.0" encoding="windows-1251"?>
{% filter pretty_xml %}
<Файл ВерсФорм="5.01">
<Документ КНД="1184043" ДатаДок="11.02.2025" КодНО="2511" />
{% for line in lines %}
<НППлатМедУсл>
<ФИО>{{ line.last_name }}</ФИО>
</НППлатМедУсл>
{% endfor %}
</Файл>
{% endfilter %}