Привет, ребята!

Это первая статья в блоге об интересной функции, которую большинство из нас всегда хотело, используя письменныевозможности ESAPI.

Все, чем я здесь делюсь, предназначено для образовательных целей, я советую вам сначала изучить, а затем внедрять любой сценарий в клиническую среду. Это не рекомендация и не клинически проверенный сценарий.

Важно признать, что в клинической среде запись через ESAPI разрешена в версиях Eclipse выше 15.1.1.

Утверждения сценариев и TBOX:

Varian Testing Station, также известная как TBOX, имитирует клиническую среду, в которой вы можете свободно тестировать свои сценарии.

В моем начальном руководстве по ESAPI я показал, как создавать одиночные файлы, бинарные плагины и исполняемые файлы для скриптов только для чтения. Записываемые подключаемые модули сохраняют те же свойства, но если они будут использоваться в клинике, их необходимо одобрить в пользовательском интерфейсе Eclipse, и вы не можете одобрить надстройку с одним файлом.

Декларируя, мы собираемся записать в базу данных:

В исполняемых файлах мы объявляем в начале кода флаг [STAThread]. ESAPI необходимо, чтобы в любом файле кода, который вы создаете (исполняемом или двоичном), присутствовал следующий флаг:

[assembly: ESAPIScript(IsWriteable = true)]

И запустите метод Patient.BeginModification() перед изменением любого свойства объекта пациента.

scriptContext.Patient.BeginModifications();

Не забудьте использовать оба.

Я заметил, что в TBOX последний не нужен. Но это, безусловно, в клинической среде.

Шаблон:

Для бинарных плагинов это должен быть код для начала:

Для исполняемых файлов:

Помните, что вы можете сохранить с помощью скрипта в исполняемых файлах, в плагинах вы должны сохранить в UI после того, как скрипт завершит свою задачу.

Если вы действительно хотите автоматизировать задачу и не иметь контакта с человеком, но запускать каждого пациента за раз, вы всегда можете эмулировать плагин с помощью исполняемых файлов (см.Как эмулировать плагин).

Трубопровод:

Мы рассмотрим следующие этапы клинического принятия перезаписываемого двоичного плагина:

  1. Разработка сценария
  2. Тестирование скрипта в TBOX с помощью Eclipse Plugin Runner Карлоса Андерсона.
  3. Оцените функцию скрипта в Clinical Environment
  4. Утвердить его

Работа разработчиков:

В чем проблема?

Предположим, что когда вы начинаете планировать обращение 3DCRT, вы добавляете несколько полей и не назначаете им идентификатор или имя. Затем вы начинаете использовать Поле в полях и дополнительных полях, и в конце вы получаете эту прекрасную картинку:

Какое решение?

Мы автоматически назначим идентификаторыстатическим полям на основе их угла гентри. А также добавьте флаг FF или Comp, если поле является одним из них.

Желаемый результат:

Код:

Мы создадим двоичный подключаемый модуль, поэтому создайте новое решение Библиотека классов .NET Framework 4.5 с именем FieldIdFromGantry. Измените имя сборки на FieldIdFromGantry.esapi и конфигурацию ЦП на x64.

В этом проекте мы создадим один класс с именем BeamIdChanger. Создайте новый файл класса .cs (Ctrl + Shift + A) с именем BeamIdChanger.cs :

Также переименуйте Class1.cs в Script.cs:

Теперь у вас должны быть эти два файла:

Ссылка на библиотеки VMS.TPS:

Вставьте следующий код в BeamIdChanger.cs:

И в Script.cs вставьте:

Следующая блок-схема описывает процесс принятия решений, происходящий в Beam Id Changer:

Тестирование на TBOX:

Мы могли бы просто создать код в Visual Studio и запустить его на любом допустимом плане расчета дозы в TBOX. Однако вас может интересовать не копирование и вставка, а скорее создание и тестированиедоступных для записи сценариев и тестирование во время разработки. В моем Первоначальном руководстве по ESAPI я кратко рассказываю о необходимости перезапускать eclipse или менять имя сборки каждый раз, когда мы хотим протестировать бинарный плагин. Мы можем решить эту проблему, используя исполняемые файлы, или при тестировании в TBOX мы можем просто использовать решение Carlos Anderson’s plugin Runner.

ESAPI Plugin Runner и Git Карлоса Андерсона:

На мой взгляд, наиболее подходящий вариант для тестирования ваших скриптов — создать решение, содержащее пакеты NuGet, ESAPI Plugin Runner и ESAPI Essentials, а также каждый новый проект. вы входите, вы разветвляете решение Plugin Tester через Git и добавляете проект, над которым работаете, в качестве внешней ссылки.

Модуль запуска плагинов позволяет выполнять Отладку, это очень и очень полезно.

Поступая таким образом, вам не нужно ссылаться на эти тестовые библиотеки в вашем клиническом сценарии.

Давайте протестируем наш проект с помощью ESAPI plugin Runner.

Закройте решение FieldIdFromGantry:

Создайте новое решение .NET Framework 4.5 WPF под названием PluginTester.

Перейдите на архитектуру x64.

Удалите файл MainWindow.xaml из проекта!

Установите выделенные библиотеки из NuGet Manager:

После установки пакетов обратитесь к библиотекам VMS.TPS.

Ваш обозреватель решений должен выглядеть следующим образом:

Создайте файл с именем ScriptTesting.cs.

Можно использовать сочетание клавиш(Ctrl + Shift + A).

Вставьте в этот файл следующий код:

Теперь это важная часть!

Поскольку мы удалили MainWindow.xaml из проекта, нам нужно переписать App.xaml, изменив строку:

....
StartupUri="MainWindow.xaml">

To:

....
Startup="App_OnStartup">

В App.xaml.cs мы создадим метод App_OnStartup:

Это должно быть его содержание:

Это шаблон для Eclipse Plugin Runner.

Теперь создайте репозиторий git с помощью визуального инструмента git в Visual Studio:

Ветвление и тестирование:

Создайте новую ветку от мастера через git.

Вызовите его на основе решения FieldIdFromGantry:

В новой ссылке на ветку проекта FieldIdFromGantry щелкните правой кнопкой мыши имя решения:

Найдите папку проекта и нажмите «Открыть» в файле FieldIdFromGantry.csproj:

Проверьте обозреватель решений:

В файл ScriptTesting.cs добавьте следующие строки внутри метода Run:

BeamIdChanger changer = new BeamIdChanger(scriptContext.PlanSetup);
changer.ChangeBeamsIdsFromGantryAngles();
MessageBox.Show(changer.Log);

Используйте сочетание клавиш Ctrl + ., чтобы устранить ссылку на FieldIdFromGantry.

Добавить и зафиксировать изменения…

Наконец-то тестируем:

Нажмите Ctrl + F5 или нажмите Run, Eclipse Runner подключится к DB Eclipse в TBOX:

Найдите план, который хотите протестировать:

Вот и желаемый результат!

Используя Plugin Runner, вы также можете отлаживать код с помощью Visual Studio (установлена ​​на TBOX):

Теперь, когда мы уже протестировали в Plugin Runner, мы должны протестировать его в пользовательском интерфейсе Eclipse.

Все хорошо!

Утверждение сценария:

После ваших тестов вы должны быть уверены, что можете начать использовать его в клинике.

Теперь вы, как физик, должны проверить авторизацию пользователей на использование скриптов в сервисе varian.

Если с привилегиями пользователей все в порядке, вам следует перейти к .

Появится черное окно одобрения, после чего вам следует зарегистрировать новый скрипт.

Спасибо за чтение!

Спасибо Джонасу за рецензирование этого поста.