Cerner CCL (Cerner Command Language) - это язык программирования четвертого поколения Cerner Corporation , который выражен в решении Cerner Discern Explorer . [1] CCL создан по образцу языка структурированных запросов.(SQL). Все решения Cerner Millennium в области информационных технологий здравоохранения используют CCL / Discern Explorer для выбора, вставки, обновления и удаления из базы данных Cerner Millennium. CCL позволяет программисту извлекать данные из базы данных Oracle и отображать их так, как хочет пользователь. Благодаря таким функциям, как структура записи и подпрограммы, он позволяет нам получать данные из базы данных и манипулировать ими, сохраняя их во временной структуре; при необходимости выполнить определенный раздел кода с помощью подпрограммы.
Полная версия для CCL (Cerner Command Language) предоставляется Cerner Corporation.
Discern Explorer предоставляет несколько приложений, которые можно использовать для создания, выполнения и анализа специальных запросов, отчетов и программ. Эти приложения обеспечивают гибкость набора навыков, необходимых для создания программ и разработки отчетов. Программы Discern Explorer можно писать с помощью VisualExplorer.exe (VE), DiscernVisualDeveloper.exe (DVDev), редактора командной строки операционной системы или любого другого текстового редактора. ExplorerMenu.exe (EM) используется для выполнения программ Discern Explorer по запросу. ExplorerAnalyzer.exe (EA) позволяет пользователям анализировать системные ресурсы, используемые запросами СУБД .
Примеры CCL Hello World:
- Пример 1
вызовите эхо ("Hello World!") иди
- Пример 2
сбросить программу helloworld2 goсоздать программу helloworld2 call echo ("Hello World!")конец идти
- Пример 3
сбросить программу helloworld3 goсоздать программу helloworld3 ПОКРАСИТЬ call TEXT (1,1, «Hello World!»)конец идти
- Пример 4 пример класса
УДАЛИТЬ ПРОГРАММУ JCMCLASS1A GO СОЗДАТЬ ПРОГРАММУ JCMCLASS1A СОЗДАТЬ КЛАСС c_pat ; Класс c_pat - это пример типа класса, который инкапсулирует демографические члены, а также ; методы, необходимые для работы с этим классом. ; Класс состоит из необязательных разделов с членами и методами, обозначенными пространством имен init; конструктор класса вызов echo ("раздел класса init c_pat") DECLARE _ :: pvar1 = vc WITH CONSTANT ("pvar1 test"); член экземпляра класса (по умолчанию, если пространство имен опущено) DECLARE class :: pvar2 = vc WITH NOCONSTANT ("pvar2 test"); член класса разделяется между экземплярами ОБЪЯВИТЬ _ :: pvar3 = vc WITH CONSTANT ("pvar3 test") DECLARE private :: pvar4 = i4; член экземпляра частного класса ЗАЯВИТЬ _ :: имя_экземпляра = vc ЗАПИСЬ _ :: rec1 ( 1 квалификация 2 рождение_dt_tm = dq8 2 гонка = c2 2 религия = c2 2 года = i4 2 месяца = i4 2 день = i4 ) DECLARE _ :: set_month (год = i4, месяц = i4, день = i4) = null вызов echo (build ("class :: pvar2 =", class :: pvar2)) SUBROUTINE _ :: set_month (год, месяц, день) SET _ :: rec1-> год = год SET _ :: rec1-> month = месяц SET _ :: rec1-> день = день END; подпрограмма END; конструктор класса FINAL; деструктор класса call echo (build ("последний раздел экземпляра класса c_pat:", имя_экземпляра)) END; деструктор класса С копией = 1 КОНЕЦ ИДТИ УДАЛИТЬ ПРОГРАММУ JCMCLASS1 GO СОЗДАТЬ ПРОГРАММУ JCMCLASS1 выполнить jcmclass1a; загрузить определение класса объявить c1 :: i_patient1 = null с классом (c_pat); объявить первый экземпляр из класса c_pat объявить c1 :: i_patient2 = null с классом (c_pat); объявить второй экземпляр из класса c_pat call echo (">>> переменная класса") установить c1 :: i_patient1.instance_name = "c1 :: i_patient1" установить c1 :: i_patient2.instance_name = "c1 :: i_patient2" call echo (">>> член записи класса") установить c1 :: i_patient1.rec1-> Birth_dt_tm = cnvtdatetime ("01-JAN-2012 08: 30.00") установить c1 :: i_patient2.rec1-> Birth_dt_tm = cnvtdatetime ("01-FEB-2013 10: 30.00") call echo (">>> функция класса") вызов c1 :: i_patient1.set_month (2012,10,16) вызов c1 :: i_patient2.set_month (2012,06,10) вызов echo (build ("instance_name =", c1 :: i_patient1.instance_name)) вызов echo (build ("instance_name =", c1 :: i_patient2.instance_name)) вызвать echorecord (c1 :: i_patient1.rec1) вызвать echorecord (c1 :: i_patient2.rec1) if ($ 1 = 1) трассировка вызова (38) endif ; отображение информации о классе с использованием class (, объявить class_info = vc объявить cid = i4 установить cid = 1 в то время как (cid> 0) установить class_info = class (c1 :: i_patient1, cid, 1) if (class_info = "") set cid = 0 else call echo (class_info) set cid = cid + 1 endif в конце концов установить cid = 1 в то время как (cid> 0) установить class_info = class (c1 :: i_patient1, cid, 3) if (class_info = "") set cid = 0 else call echo (class_info) set cid = cid + 1 endif в конце концов установить curalias r1 c1 :: i_patient1.rec1-> qual установить r1-> race = "AB" выберите в nl из манекена деталь вызов echo (build ("report =", c1 :: i_patient1.instance_name)) эхо вызова (r1-> race) с счетчиком вызовите echo (build (">>>>>>>>>>> c1 :: i_patient1 =", c1 :: i_patient1)) бесплатный набор c1 :: i_patient1 бесплатный набор c1 :: i_patient2 if ($ 1 = 2) трассировка вызова (38) endif КОНЕЦ ИДТИ[, ])