//Кардиогенный отёк легких
Переменные: МАССА, РОСТ, ЭКГ, ПОЛ, ИД_МАССА, ДИУРЕЗ, а1, а2, а3, ВРЕМЕНИ_ПРОШЛО, ДОЗА_НИТРО,  \
            ДОЗА_НОРА, НИВЛ_подключен, Инсуфляция, \
            счетчик_нитро, счетчик_нора , сч_таймер ,прежнее_АД,   \
            ИНФ_НОМЕР_НИТРО, ИНФ_НОМЕР_НОРА, счетчик,\
            ДОЗА_ДОБУТАМИН,\
            ИНФ_НОМЕР_ДОБУТАМИН,\
            счетчик_ДОБУТАМИН,\
            счетчик_САД,\
            ИНФ_НОМЕР_ДОПАМИН, ДОЗА_ДОПАМИН, ИНФ_НОМЕР_ФУРОСЕМИД, счетчик_сад_100, влажные_хрипы, добавить_фуросемид, стратегия, МассивДата[6], ПеременнаяМинуты, коррекция_дозы
            

БЛОК ВХОД 
	коррекция_дозы=0
	добавить_фуросемид=0
	счетчик_сад_100=0
	ДОЗА_НИТРО=0.0
	НИВЛ_подключен=0.0
	Инсуфляция=0.0
	счетчик_нитро=0
	счетчик_нора=0
	сч_таймер=0
	прежнее_АД=0
	счетчик=0.0
	счетчик_ДОБУТАМИН=1.0
	счетчик_САД=1.0
	ДОЗА_ДОПАМИН=0.0
	счетчик_сад_100=0.0
	влажные_хрипы=0.0
	//0я минута. Ввод постоянных параметров пациента
	МАССА=ВВОД("Введите массу пациента (кг)", 30, 250,станд_вес)
	РОСТ= ВВОД("Введите рост пациента (см)", 70, 260,станд_рост)
	ПОЛ=ВЫБОР("Выберите пол пациента", "Мужской",0, "Женский",1, станд_пол)
	ЕСЛИ ПОЛ==0 то ИД_МАССА=0.9*РОСТ-88 иначе ИД_МАССА=0.9*РОСТ-98 КОНЕЦ_ЕСЛИ
	ВЫЗОВ_ВРАЧА("Снимите ЭКГ в 12 отведениях для исключения аритмогенного генеза", 1мин)
ЕСЛИ ЧСС>=90 то
ВЫЗОВ_ВРАЧА("Оцените ритм, при необходимости повторно снимите ЭКГ", 1мин)
КОНЕЦ_ЕСЛИ
	//установка интервалов измерения переменных параметров (стандартных //переменных)
	УСТАНОВИТЬ_ИНТЕРВАЛ(ЧСС, 3сек)
	УСТАНОВИТЬ_ИНТЕРВАЛ(ЧДД, 30сек)
	УСТАНОВИТЬ_ИНТЕРВАЛ(АД, 5сек)
	УСТАНОВИТЬ_ИНТЕРВАЛ(СПО2, 30сек)  

	прежнее_АД=СРАД


	АКТИВИРОВАТЬ_БЛОК(ОБРАБОТКА_ЧСС, 3 сек) 
	АКТИВИРОВАТЬ_БЛОК(ОБРАБОТКА_ЧДД, 30 сек)
	АКТИВИРОВАТЬ_БЛОК(ОБРАБОТКА_АД, 1 мин)
	АКТИВИРОВАТЬ_БЛОК(ОБРАБОТКА_СПО2, 30 сек)
	АКТИВИРОВАТЬ_БЛОК(КОНТРОЛЬ_ДЫХАНИЯ, 20 сек)
	
	//Ввод лекарств общих для всех пациентов
	ЕСЛИ САД>100 то
	ВВЕСТИ_БЫСТРО(1, Фуросемид, (40) мг, в/в)  
	АКТИВИРОВАТЬ_БЛОК(МОРФИН, 15 мин)
	КОНЕЦ_ЕСЛИ
	

	ЕСЛИ САД< 85 и САД >0 то
		стратегия=1
	КОНЕЦ_ЕСЛИ
	ЕСЛИ САД<100 и САД >=85 то
		стратегия=2
	КОНЕЦ_ЕСЛИ
	ЕСЛИ САД>=100  то
		стратегия=3
	КОНЕЦ_ЕСЛИ
	АКТИВИРОВАТЬ_БЛОК(КОНТРОЛЬ_ДАВЛЕНИЯ, 5 мин)
КОНЕЦ_БЛОКА // конец БЛОК ВХОД

//**********
БЛОК ОБРАБОТКА_ЧСС()
	
	ЕСЛИ ЧСС<=40 ИЛИ ЧСС >= 160 то  
		ВЫЗОВ_ВРАЧА("Критически низкая или высокая ЧСС (ЧСС). Завершение работы алгоритма. Переход в экспертный режим", 10мин)
		ОСТАНОВИТЬ_АЛГОРИТМ  // СДЕЛАТЬ ВЫХОД СРАЗУ ИЗ ВСЕХ НИТЕЙ!!!
	КОНЕЦ_ЕСЛИ

КОНЕЦ_БЛОКА

БЛОК ОБРАБОТКА_ЧДД()
	ЕСЛИ ЧДД<8 то  
		ВЫЗОВ_ВРАЧА("Критически низкая ЧДД (ЧДД). Завершение работы алгоритма.Переход в экспертный режим", 10мин)
		ОСТАНОВИТЬ_АЛГОРИТМ   // СДЕЛАТЬ ВЫХОД СРАЗУ ИЗ ВСЕХ НИТЕЙ!!!
	КОНЕЦ_ЕСЛИ
	ЕСЛИ ЧДД>28 то  
		ВЫЗОВ_ВРАЧА("Критически высокая ЧДД (ЧДД). Завершение работы алгоритма.Переход в экспертный режим", 10мин)
		ОСТАНОВИТЬ_АЛГОРИТМ  // СДЕЛАТЬ ВЫХОД СРАЗУ ИЗ ВСЕХ НИТЕЙ!!!
   КОНЕЦ_ЕСЛИ
КОНЕЦ_БЛОКА
//**********************

БЛОК ОБРАБОТКА_АД()    
	ЕСЛИ СРАД<=55 то  
		ВЫЗОВ_ВРАЧА("Критически низкое среднее АД (СРАД). Завершение работы алгоритма.Переход в экспертный режим", 10мин)
		ОСТАНОВИТЬ_АЛГОРИТМ  // СДЕЛАТЬ ВЫХОД СРАЗУ ИЗ ВСЕХ НИТЕЙ!!!
	КОНЕЦ_ЕСЛИ
	ЕСЛИ СРАД>=120 то  
		ВЫЗОВ_ВРАЧА("Критически высокое среднее АД (СРАД). Завершение работы алгоритма.Переход в экспертный режим", 10мин)
		ОСТАНОВИТЬ_АЛГОРИТМ  // СДЕЛАТЬ ВЫХОД СРАЗУ ИЗ ВСЕХ НИТЕЙ!!!
	КОНЕЦ_ЕСЛИ
КОНЕЦ_БЛОКА

//*********************
БЛОК ОБРАБОТКА_СПО2()
	ЕСЛИ СПО2<=60 то  
		ВЫЗОВ_ВРАЧА("Критически низкое СПО2 (СПО2). Завершение работы алгоритма.Переход в экспертный режим", 10мин)
		ОСТАНОВИТЬ_АЛГОРИТМ	// СДЕЛАТЬ ВЫХОД СРАЗУ ИЗ ВСЕХ НИТЕЙ!!!
	КОНЕЦ_ЕСЛИ
КОНЕЦ_БЛОКА

//_______________________
БЛОК КОНТРОЛЬ_ДЫХАНИЯ()
	ЕСЛИ  СПО2<94 и НИВЛ_подключен==0 и Инсуфляция==0 то
		ВЫЗОВ_ВРАЧА("Инсуффляция О2 через носовые канюли, скорость потока 4-8 л/мин (SpO2)", 5мин)
		Инсуфляция=1
		СПАТЬ(2 мин)
	КОНЕЦ_ЕСЛИ

	ЕСЛИ СПО2>=90 и СПО2<95 и НИВЛ_подключен==0 и Инсуфляция==1 то
	    ВЫЗОВ_ВРАЧА("Проверьте правильность работы инсуффлятора (SpO2)", 2мин) 
		Инсуфляция=2
		СПАТЬ(2 мин)
	КОНЕЦ_ЕСЛИ
	ЕСЛИ СПО2<90 и НИВЛ_подключен==0 и инсуфляция==2 то
		ВЫЗОВ_ВРАЧА("Подключите НИВЛ", 10мин)
		НИВЛ_подключен=1
		СПАТЬ(2 мин)
        КОНЕЦ_ЕСЛИ

	ЕСЛИ СПО2<90 и НИВЛ_подключен==1 то
	    ВЫЗОВ_ВРАЧА("Низкое SpO2 (SpO2)! Проверьте правильность работы НИВЛ", 2мин)
		СПАТЬ(2 мин)  
		НИВЛ_подключен=2  
	КОНЕЦ_ЕСЛИ  
	

	
КОНЕЦ_БЛОКА

//------------------------------------------------------------------------------------
БЛОК КОНТРОЛЬ_ДАВЛЕНИЯ()
	//СПАТЬ(1мин)	

// случай САД<85
// заправить инфузоматы №1 допамин, №2 норадреналин
	

      ЕСЛИ счетчик_САД>3 и САД<100 и стратегия==1 то
        ДОЗА_НОРА=0.2+0.2*(счетчик_САД-2)
        ДОЗА(0.2, "мкг/кг/мин")
        Доза(ДОЗА_НОРА, "мкг/кг/мин")
	ИЗМЕНИТЬ_СКОРОСТЬ(ИНФ_НОМЕР_НОРА,Норадреналин,ДОЗА_НОРА*МАССА*60/1000 мг/час)
        счетчик_САД=счетчик_САД+1
      КОНЕЦ_ЕСЛИ

      ЕСЛИ САД<85 и счетчик_САД<=3  и стратегия==1 то
           ДОЗА_ДОПАМИН=5+5*счетчик_САД
           ЕСЛИ счетчик_САД==1 то
		//ЗАКОНЧИТЬ_ВВЕДЕНИЕ(ИНФ_НОМЕР_НИТРО)
		//ЗАКОНЧИТЬ_ВВЕДЕНИЕ(ИНФ_НОМЕР_ДОБУТАМИН)
		счетчик=0
		Доза(ДОЗА_ДОПАМИН, "мкг/кг/мин")
                ИНФ_НОМЕР_ДОПАМИН=ВВЕСТИ_НАЧАТЬ(1,ДОПАМИН,ДОЗА_ДОПАМИН*МАССА*60/1000 мг/час) 
           ИНАЧЕ 
	       Доза(ДОЗА_ДОПАМИН, "мкг/кг/мин")
               ИЗМЕНИТЬ_СКОРОСТЬ(ИНФ_НОМЕР_ДОПАМИН,ДОПАМИН,ДОЗА_ДОПАМИН*МАССА*60/1000 мг/час)
           КОНЕЦ_ЕСЛИ
           КОНЕЦ_ЕСЛИ
      ЕСЛИ счетчик_САД==3 то
      ДОЗА_НОРА=0.2
      ДОЗА(0.2, "мкг/кг/мин")
      Доза(ДОЗА_НОРА, "мкг/кг/мин")
	ИНФ_НОМЕР_НОРА=ВВЕСТИ_НАЧАТЬ(2,Норадреналин, ДОЗА_НОРА*МАССА*60/1000 мг/час)
      КОНЕЦ_ЕСЛИ
	   счетчик_САД=счетчик_САД+1
   


      ЕСЛИ счетчик_САД==7 и САД<100 и стратегия==1 то
          ВЫЗОВ_ВРАЧА("Алгоритм по повышению САД неэффективен. Завершение работы алгоритма. Переход в экспертный режим", 1мин)
          ОСТАНОВИТЬ_АЛГОРИТМ 
      КОНЕЦ_ЕСЛИ

     //КОНЕЦ_ЕСЛИ


//случай 85<САД<100
// заправить инфузоматы  №2 добутамин

        
     ЕСЛИ СРАД<=прежнее_АД и САД<100 и САД>85 и стратегия==2 и счетчик==3 то
           ВЫЗОВ_ВРАЧА("Добутамин развести в 50 мл воды для инъекций или 0,9% NaCl")
	   ДОЗА_ДОБУТАМИН=5*счетчик_ДОБУТАМИН
           Доза(ДОЗА_ДОБУТАМИН, "мкг/кг/мин")
           ИЗМЕНИТЬ_СКОРОСТЬ(ИНФ_НОМЕР_ДОБУТАМИН,ДОБУТАМИН,ДОЗА_ДОБУТАМИН*ИД_МАССА*60/1000 мг/час)
           счетчик_ДОБУТАМИН=счетчик_ДОБУТАМИН+1
           ЕСЛИ счетчик_ДОБУТАМИН==5 то
                ВЫЗОВ_ВРАЧА("Алгоритм повышения САД Добутамином неэффективен. Завершение работы алгоритма. Переход в экспертный режим", 1мин)  
                ОСТАНОВИТЬ_АЛГОРИТМ  
           КОНЕЦ_ЕСЛИ
	Прежнее_ад=СРАД
     КОНЕЦ_ЕСЛИ
 
     ЕСЛИ САД>85 и САД<100 и стратегия==2 то
        ЕСЛИ счетчик==0 то
		ЗАКОНЧИТЬ_ВВЕДЕНИЕ(ИНФ_НОМЕР_ДОПАМИН)
		ЗАКОНЧИТЬ_ВВЕДЕНИЕ(ИНФ_НОМЕР_НОРА)
	    счетчик_САД=0
            счетчик=1
            ДОЗА_ДОБУТАМИН=2.5
            Доза(ДОЗА_ДОБУТАМИН, "мкг/кг/мин")
            ИНФ_НОМЕР_ДОБУТАМИН=ВВЕСТИ_НАЧАТЬ(2,ДОБУТАМИН, ДОЗА_ДОБУТАМИН*МАССА*60/1000 мг/час)        
   
	КОНЕЦ_ЕСЛИ
     КОНЕЦ_ЕСЛИ

     

//сад>=100**********************************************************************

	ЕСЛИ САД>=100 и счетчик_сад_100==0 и стратегия==3 то
	ДОЗА_НИТРО=8
    	Доза(ДОЗА_НИТРО, "мкг/мин")
	ВЫЗОВ_ВРАЧА("Раствор нитроглицерина быстро разрушается на свету. Необходимо экранировать светонепроницаемым материалом")
	ИНФ_НОМЕР_НИТРО=ВВЕСТИ_НАЧАТЬ(1,Нитроглицерин,ДОЗА_НИТРО*60/1000 мг/час)
			ЕСЛИ САД<=90 или СРАД<=70 то
        		ЗАКОНЧИТЬ_ВВЕДЕНИЕ (ИНФ_НОМЕР_НИТРО)
     			КОНЕЦ_ЕСЛИ 
            счетчик_сад_100=1
            Прежнее_ад=СРАД
            	ЕСЛИ САД<120 или СРАД<90 то
           	ВЫЗОВ_ВРАЧА("Добутамин развести в 50 мл воды для инъекций или 0,9% NaCl")
		ДОЗА_ДОБУТАМИН=2.5
            	Доза(ДОЗА_ДОБУТАМИН, "мкг/кг/мин")
            	ИНФ_НОМЕР_ДОБУТАМИН=ВВЕСТИ_НАЧАТЬ(2,ДОБУТАМИН, ДОЗА_ДОБУТАМИН*МАССА*60/1000 мг/час)  
	    	КОНЕЦ_ЕСЛИ
	КОНЕЦ_ЕСЛИ
  
	ЕСЛИ САД>=110 и счетчик_сад_100>=1 и стратегия==3 то
	    ПОКА САД>=110 и ДОЗА_НИТРО<=200
	    счетчик_сад_100=1+счетчик_сад_100
	    ДОЗА_НИТРО=ДОЗА_НИТРО+2.5
            ИЗМЕНИТЬ_СКОРОСТЬ(ИНФ_НОМЕР_НИТРО,Нитроглицерин,ДОЗА_НИТРО*60/1000 мг/час)
	    СПАТЬ(5мин)
			ЕСЛИ САД<=90 или СРАД<=70 то
        		ЗАКОНЧИТЬ_ВВЕДЕНИЕ (ИНФ_НОМЕР_НИТРО)
     			КОНЕЦ_ЕСЛИ 
	ЕСЛИ (Прежнее_ад-СРАД<=10 и САД>100 и счетчик_сад_100>1 ) то
        ДОЗА_НИТРО=10
        ИЗМЕНИТЬ_СКОРОСТЬ(ИНФ_НОМЕР_НИТРО,Нитроглицерин,ДОЗА_НИТРО*60/1000 мг/час)
	коррекция_дозы=1
        КОНЕЦ_ЕСЛИ
			ЕСЛИ (САД>100 и САД<140) и (ЧСС>50 и ЧСС<120) и (ЧДД>16 и ЧДД<22) то 
			коррекция_дозы=1
			КОНЕЦ_ЕСЛИ 

	    КОНЕЦ_ПОКА
	КОНЕЦ_ЕСЛИ

	ЕСЛИ (САД<=90 или СРАД<=70) и ДОЗА_НИТРО>0 и счетчик_сад_100>1 и стратегия==3 то
    	ДОЗА_НИТРО=0
    	ЗАКОНЧИТЬ_ВВЕДЕНИЕ (ИНФ_НОМЕР_НИТРО)
	коррекция_дозы=1
	КОНЕЦ_ЕСЛИ

	ЕСЛИ (Прежнее_ад-СРАД<=10 и САД>100 и счетчик_сад_100>1 и стратегия==3) то
        ДОЗА_НИТРО=10
        ИЗМЕНИТЬ_СКОРОСТЬ(ИНФ_НОМЕР_НИТРО,Нитроглицерин,ДОЗА_НИТРО*60/1000 мг/час)
	коррекция_дозы=1
        КОНЕЦ_ЕСЛИ

	
	ЕСЛИ счетчик_сад_100>5 и добавить_фуросемид==0 и стратегия==3 то
		коррекция_дозы=1
		добавить_фуросемид=1
		//ВЫЗОВ_ВРАЧА("если "+строка(счетчик_сад_100), 1мин)
		влажные_хрипы=ВЫБОР("Произошло ли уменьшение количества влажных хрипов.", "Да", 1, "Нет", 0)	
		ЕСЛИ влажные_хрипы==0 то
			ИНФ_НОМЕР_ФУРОСЕМИД=ВВЕСТИ_НАЧАТЬ(3, Фуросемид, 20 мг/час) // 4 часа
		КОНЕЦ_ЕСЛИ
	КОНЕЦ_ЕСЛИ
	
	ЕСЛИ счетчик_сад_100>1 и ДОЗА_ДОБУТАМИН< 20 и стратегия==3 то
		влажные_хрипы=ВЫБОР("Произошло ли уменьшение количества влажных хрипов.", "Да", 1, "Нет", 0)	
		ЕСЛИ влажные_хрипы==0 то
			ДОЗА_ДОБУТАМИН=ДОЗА_ДОБУТАМИН+0.25
			Доза(ДОЗА_ДОБУТАМИН, "мкг/кг/мин")
			ИЗМЕНИТЬ_СКОРОСТЬ(ИНФ_НОМЕР_ДОБУТАМИН,ДОБУТАМИН,ДОЗА_ДОБУТАМИН*МАССА*60/1000 мг/час)
		КОНЕЦ_ЕСЛИ
		коррекция_дозы=1
	КОНЕЦ_ЕСЛИ

	ЕСЛИ ДОЗА_ДОБУТАМИН==20 то
		ВЫЗОВ_ВРАЧА("Терапия Добутамином неэффективна. Завершение работы алгоритма. Переход в экспертный режим", 1мин)  
        ОСТАНОВИТЬ_АЛГОРИТМ  
	КОНЕЦ_ЕСЛИ
	ЕСЛИ САД>=100 и счетчик_сад_100>=1 и стратегия==3 то
		счетчик_сад_100=1+счетчик_сад_100
		коррекция_дозы=1
	КОНЕЦ_ЕСЛИ

	ЕСЛИ коррекция_дозы==1 то
		ВЫЗОВ_ВРАЧА("Продолжать инфузию в прежней дозе.",15мин)
		коррекция_дозы=0
	КОНЕЦ_ЕСЛИ
		ЕСЛИ САД<90 или СРАД<70 то
        ДОЗА_НИТРО=0
        ЗАКОНЧИТЬ_ВВЕДЕНИЕ (ИНФ_НОМЕР_НИТРО)
    	КОНЕЦ_ЕСЛИ
счетчик_сад_100=1+счетчик_сад_100
	МассивДата = ТекущееВремя
	ПеременнаяМинуты = минуты(МассивДата)+5
	МассивДата = дата(ПеременнаяМинуты)
	Вызов_Врача("Коррекция дозы вводимых препаратов через 5 мин (в "+строка(МассивДата[3])+":"+строка(МассивДата[4])+")", 15 мин )

КОНЕЦ_БЛОКА
//___________
БЛОК МОРФИН()
СПАТЬ(5мин)
МУЛЬТИВЫБОР("Присутствует ли у пациента:", "Выраженная одышка/(Отсутствует=0)/Присутствует=1",а1, "Болевой синдром/(Отсутствует=0)/Присутствует=1", а2,"Выраженное психомоторное возбуждение/(Отсутствует=0)/Присутствует=1", а3)
	ЕСЛИ а1+а2+а3>0 то
	ВЫЗОВ_ВРАЧА("Подготовить раствор морфина 10 мг в физиологическом растворе 20 мл.", 1мин)
	Разведение("2х20")
	ВВЕСТИ_БЫСТРО(1, Морфин, 2 мг, в/в)
	КОНЕЦ_ЕСЛИ
КОНЕЦ_БЛОКА


