Медицина/Документы Jinja: различия между версиями

Материал из Medlogic
 
(не показано 5 промежуточных версий этого же участника)
Строка 91: Строка 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>


Строка 97: Строка 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>


Строка 129: Строка 144:
   {% endfor %}
   {% endfor %}
</Файл>
</Файл>
{% endfilter %}
</syntaxhighlight>
</syntaxhighlight>
{% endfilter %}

Текущая версия от 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 %}