Медицина/Документы Jinja: различия между версиями
Admin (обсуждение | вклад) Нет описания правки |
Admin (обсуждение | вклад) |
||
| (не показано 9 промежуточных версий 2 участников) | |||
| Строка 66: | Строка 66: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Barcode === | === Barcode 128 === | ||
<syntaxhighlight lang="Jinja"> | <syntaxhighlight lang="Jinja"> | ||
{{ barcode128('PATIENT', patient.id) }} | {{ barcode128('PATIENT', patient.id) }} | ||
{{ barcode128('PATIENT', patient.id, separator='~', width='300px', height='200px') }} | {{ barcode128('PATIENT', patient.id, separator='~', width='300px', height='200px') }} | ||
</syntaxhighlight> | |||
=== Any Barcode === | |||
<syntaxhighlight lang="Jinja"> | |||
{{ barcode('123455551111', barcode_class='ean13') }} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| Строка 86: | Строка 91: | ||
{{ today() }} | {{ today() }} | ||
{{ today('%d.%m.%Y') }} | {{ 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> | ||
| Строка 92: | Строка 106: | ||
<syntaxhighlight lang="Jinja"> | <syntaxhighlight lang="Jinja"> | ||
{{ render_layout('name') }} | {{ 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> | ||
| Строка 98: | Строка 118: | ||
{{ num2words(52, ordinal=True) }} | {{ num2words(52, ordinal=True) }} | ||
{{ 52|num2words }} | {{ 52|num2words }} | ||
{{ num2currency(52.2) }} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| Строка 110: | Строка 132: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==== Отчет с XML ==== | |||
<syntaxhighlight lang="Jinja"> | <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 %}