Руководство по редактированию анализов: различия между версиями

Материал из Medlogic
Нет описания правки
Строка 32: Строка 32:
   * Локальная активность: Неизвестно
   * Локальная активность: Неизвестно


== Структура JSON-поля data ==
== Описание структуры JSON-поля <code>data</code> ==


<source lang="json">
<source lang="json">
{
{  
   "group": "Биохимические исследования",
   "group": "Биохимические исследования",  
   "tests": [
   "selectable": true ,
  "tests": [ /* ... */ ],
  "patient_options": { "oms": true, "address": true },
  "custom": {
    "form": [ /* ... */ ],
    "print_results": { /* ... */ },
    "print_referral": { /* ... */ }
  }
}
</source>
=== Верхний уровень ===
 
'''group''' — Название группы анализов (заголовок раздела).
 
Пример: <code>Биохимические исследования</code>
 
'''tests''' — Массив описаний конкретных анализов.
 
Подробности — см. раздел ниже.
 
'''patient_options''' — Дополнительные параметры для отображения полей пациента:
 
<code>oms</code> — отображать поле «ОМС»
 
<code>address</code> — отображать поле «Адрес»
 
'''custom''' — Конфигурация пользовательского поведения и шаблонов.
 
См. вложенные секции ниже.
 
'''selectable''' — Логическое значение (true/false), указывает, можно ли выбирать данный блок анализов вручную при создании назначения.
 
<code>true</code> — отображается для выбора
 
<code>false</code> — скрыт
 
=== tests (Массив анализов) ===
 
Каждый элемент массива имеет следующую структуру:
 
<source lang="json">
"tests": [
      
      
     {
     {
Строка 55: Строка 96:
     // ...
     // ...
   ],
   ],
</source>
'''ref''' — Референсные значения (строка)
'''code''' — Уникальный код теста
'''name''' — Название теста
'''unit''' — Единицы измерения
'''selected''' — Булево значение (по умолчанию выбран)
=== patient_options ===
<source lang="json">
   "patient_options": {
   "patient_options": {
     "oms": true,
     "oms": true,
     "address": true
     "address": true
   },
   }
</source>
 
Определяет, какие дополнительные поля отображать на форме пациента:
 
<code>oms</code> — Показывать поле "ОМС"
 
<code>address</code> — Показывать поле "Адрес"
 
=== custom.form ===
 
Массив формовых компонентов (виджетов) для ввода дополнительных данных вручную:
 
Пример одного виджета выбора группы крови:
<source lang="json">
{
   "custom": {
   "custom": {
     "form": [
     "form": [
Строка 115: Строка 185:
         ]
         ]
       }
       }
     ],
     ]
  }
}
</source>
 
Пояснения:
 
'''type''' — тип поля (например, <code>select</code>, <code>text</code>, <code>checkbox</code>)
 
'''label''' — подпись к полю
 
'''choices''' — массив доступных вариантов (для <code>select</code>)
 
'''ng_model''' — AngularJS-модель для привязки данных
 
'''snippet''' — тип используемого шаблона (чаще всего — <code>widget</code>)
 
=== custom.print_results ===
 
Настройки печати результатов анализа:
 
<source lang="json">
{
  "custom": {
     "print_results": {
     "print_results": {
       "class": "mono font-size-10",
       "class": "mono font-size-10",
Строка 142: Строка 235:
         }
         }
       ]
       ]
     },
     }
  }
}
</source>
'''class''' — CSS-классы всего блока
 
'''widgets''' — массив печатных элементов:
 
'''get''' — путь к значению (например, <code>blood_type.display</code>)
 
'''title''' — заголовок поля
 
'''class''' — CSS-класс для текста
 
'''target''' — источник данных (обычно <code>record</code>)
 
'''snippet''' — шаблон отображения (например, <code>p_entry</code>)
 
=== custom.print_referral ===
 
Настройки шаблона печати направления:
 
<source lang="json">
{
  "custom": {
     "print_referral": {
     "print_referral": {
       "widgets": [
       "widgets": [
Строка 151: Строка 268:
       ]
       ]
     }
     }
   },
   }
  "selectable": true
}
}
</source>
</source>
'''widgets''' — массив блоков


=== Описание атрибутов верхнего уровня ===
'''class''' — CSS-классы
 
* '''group''' — Название группы анализов (раздел на форме).
  * Пример: <code>Биохимические исследования</code>
 
* '''tests''' — Массив тестов (анализов), каждый с параметрами:
  * <code>ref</code> — референсные значения 
  * <code>code</code> — код анализа 
  * <code>name</code> — название анализа 
  * <code>unit</code> — единица измерения 
  * <code>order</code> — порядок сортировки
  * <code>selected</code> — Определяет выбор теста по умолчанию (Необязательный параметр - Если не указан, считается false)
 
* '''custom''' — Объект с расширенными настройками отображения (например, для печатных шаблонов):
  * '''print_referral''' — настройки для вывода направления
    * '''widgets''' — массив компонентов
      * <code>class</code> — CSS-классы для блока
      * <code>snippet</code> — ID или тип фрагмента шаблона (например, <code>__div</code>)


* '''selectable''' — Логическое значение (true/false), указывает, можно ли выбирать данный блок анализов вручную при создании назначения.
'''snippet''' — шаблон-фрагмент для рендеринга (например, <code>__div</code>)

Версия от 00:26, 21 июля 2025

Основная информация об анализе

Параметр Значение
Справочник LABORATORY_ANALYSES
Значение Биохимический анализ крови
Название Биохимический анализ крови
Данные

Редактирование параметров

1. Основные настройки

  • Активность:
 * По умолчанию
 * Включено
 * Выключено
  • Локальные переопределения:
 * Локальное значение: [пусто]
 * Локальное название: [пусто]
 * Локальная активность: Неизвестно

Описание структуры JSON-поля data

{ 
  "group": "Биохимические исследования", 
  "selectable": true , 
  "tests": [ /* ... */ ], 
  "patient_options": { "oms": true, "address": true }, 
  "custom": { 
    "form": [ /* ... */ ], 
    "print_results": { /* ... */ }, 
    "print_referral": { /* ... */ } 
  }
}

Верхний уровень

group — Название группы анализов (заголовок раздела).

Пример: Биохимические исследования

tests — Массив описаний конкретных анализов.

Подробности — см. раздел ниже.

patient_options — Дополнительные параметры для отображения полей пациента:

oms — отображать поле «ОМС»

address — отображать поле «Адрес»

custom — Конфигурация пользовательского поведения и шаблонов.

См. вложенные секции ниже.

selectable — Логическое значение (true/false), указывает, можно ли выбирать данный блок анализов вручную при создании назначения.

true — отображается для выбора

false — скрыт

tests (Массив анализов)

Каждый элемент массива имеет следующую структуру:

 
"tests": [
    
    {
      "ref": "65-85",
      "code": "TP",
      "name": "Белок общий",
      "unit": "г/л",
      "selected": true
    },
    {
      "ref": "35-50",
      "code": "ALB",
      "name": "Альбумин",
      "unit": "г/л",
      "selected": false
    }
    // ...
  ],

ref — Референсные значения (строка)

code — Уникальный код теста

name — Название теста

unit — Единицы измерения

selected — Булево значение (по умолчанию выбран)

patient_options

 
  "patient_options": {
    "oms": true,
    "address": true
  }

Определяет, какие дополнительные поля отображать на форме пациента:

oms — Показывать поле "ОМС"

address — Показывать поле "Адрес"

custom.form

Массив формовых компонентов (виджетов) для ввода дополнительных данных вручную:

Пример одного виджета выбора группы крови:

{
  "custom": {
    "form": [
      {
        "widgets": [
          {
            "options": {
              "type": "select",
              "label": "Группа крови",
              "choices": [
                {
                  "id": 1,
                  "code": "1",
                  "display": "I(0)"
                },
                {
                  "id": 2,
                  "code": "2",
                  "display": "II"
                },
                {
                  "id": 3,
                  "code": "3",
                  "display": "III"
                },
                {
                  "id": 4,
                  "code": "4",
                  "display": "IV"
                }
              ],
              "ng_model": "blood_type"
            },
            "snippet": "widget"
          },
          {
            "options": {
              "type": "select",
              "label": "Резус-фактор",
              "choices": [
                {
                  "id": 1,
                  "code": "1",
                  "display": "Rh(+) положительный"
                },
                {
                  "id": 2,
                  "code": "2",
                  "display": "Rh(-) отрицательный"
                }
              ],
              "ng_model": "rh_factor"
            },
            "snippet": "widget"
          }
        ]
      }
    ]
  }
}

Пояснения:

type — тип поля (например, select, text, checkbox)

label — подпись к полю

choices — массив доступных вариантов (для select)

ng_model — AngularJS-модель для привязки данных

snippet — тип используемого шаблона (чаще всего — widget)

custom.print_results

Настройки печати результатов анализа:

{
  "custom": {
    "print_results": {
      "class": "mono font-size-10",
      "widgets": [
        {
          "class": "pt5",
          "options": {
            "is_dl": true,
            "items": [
              {
                "get": "blood_type.display",
                "class": "text-danger font-size-9",
                "title": "Группа крови",
                "target": "record"
              },
              {
                "get": "rh_factor.display",
                "class": "text-danger font-size-9",
                "title": "Резус-фактор",
                "target": "record"
              }
            ],
            "full_body": true
          },
          "snippet": "p_entry"
        }
      ]
    }
  }
}

class — CSS-классы всего блока

widgets — массив печатных элементов:

get — путь к значению (например, blood_type.display)

title — заголовок поля

class — CSS-класс для текста

target — источник данных (обычно record)

snippet — шаблон отображения (например, p_entry)

custom.print_referral

Настройки шаблона печати направления:

{
  "custom": {
    "print_referral": {
      "widgets": [
        {
          "class": " h-100",
          "snippet": "__div"
        }
      ]
    }
  }
}

widgets — массив блоков

class — CSS-классы

snippet — шаблон-фрагмент для рендеринга (например, __div)