clear
%*****************************obliczanie parametrów k i V********************************
D0 = 100; %dawka leku podana w postaci zastrzyku ( wratosc podana w gramach)
t1 = 10;%czas ( wartosc podan w minutach)
t2 = 20;
C_t1 = 0.07;%wartosc stezenia jaka osiagnie lek po uplywie 10 min 
C_t2 = 0.027;%wartosc stezenia jaka osiaga lek po uplywie 20 min


k = (log(C_t2/C_t1))/(t1-t2); %parametr ktory okresla szybkosc zmian w kompartmencie 
V = (D0/C_t1)*exp(-k*t1);% drugi wyznaczany parametr - objetosc kompartmentu
clc;
disp('objetosc kompartmentu (ml):');
disp(V)
disp('wartosc parametru k okreslajacego szybkosc zmian w kompartmencie:')
disp(k)
%****************************************************************************************

wybor = menu('WYBÓR OBLICZANEGO PARAMETRU','DAWKA LEKU','ODSTEP CZASOWY POMIEDZY WSTRZYKNIECIAMI','MOMENT OSIAGNIECIA ZADANEGO STEZENIA','WARTOSC OSIAGNIETEGO STEZENIA');


if wybor==1 

%**************************************** 1 *********************************************
t = 1:60;
Csr_1 = input('podaj zadana wartosc sredniego stezenia leku:');
T_1 = input('podaj wartosc odstepu czasowego pomiedzy kolejnymi wstrzyknieciami(minuty):');
D_1 = (T_1*Csr_1*V)/(1/k - (1/k * exp(-k*T_1)));%obliczona wartosc wstrzyknietej dawki leku
disp('obliczona wartosc wstrzyknietej dawki leku(mg) wynosi:')
disp(D_1);
%plot((D_1/V)*exp(-k*t))
%***************************************************************************************

elseif wybor==2
%***************************************** 2 *******************************************
Csr_2 = input('wartosc sredniego stezenia leku:');
D_2 = input('wartosc wstrzyknietej dawki leku(mg):');

T_2 = 1:1440;%jako maksymalny odstep czasowy przyjmujemy jedna dobe (24h)
a = size (T_2);
finish = a(1,2);


for i = 1:finish
    temp(i) = (D_2*(1/k*(1-exp(-k*T_2(i))))/(T_2(i)*V))-Csr_2;
    par = abs(temp);
end

b = min(par);
c = size(par);

for i =1 : c(1,2) 
if par(i) == b
    wynik = T_2(i);
    blad = temp(i);
end
end
Csr_real = Csr_2 + blad;
blad_bezwzgl = abs(blad * 100/Csr_real);
disp('odstep czasowy pomiedzy kolejnymi wstrzyknieciami(min):');
disp(wynik);
disp('rzeczywiste srednie stezenie w kompartmencie osiagnie w danym odstepie czasowym:');
disp(Csr_real);
disp('bezwzgledny blad(%)');
disp(blad_bezwzgl)

%***************************************************************************************

elseif wybor==3
%*************************************** 3 *********************************************
C_3 = input('wartosc minimalnego stezenia jakie ma byc osiagniete:'); 
D_3 = input('wartosc wstrzyknietej dawki leku(mg):');
disp('najdluzszy dopuszczalny odstep czasowy pomiedzy dwoma wstrzyknieciami(min)');
T_3 = -log(C_3*V/D_3)/k;%najdluzszy odstep czasowy pomiedzy dwoma wstrzyknieciami 
disp(T_3);

%**************************************************************************************
elseif wybor==4
%**************************************** 4 *******************************************
T_4 = input('wartosc odstepu czasowego pomiedzy dwoma kolejnymi wstrzyknieciami(min):');
D_4 = input('wartosc wstrzyknietej dawki leku(mg):');
C_4 = (D_4/V)*exp(-k*T_4);%wartosc stezenia osiagnieta po zadanym odstepie czasowym 
disp('wartosc stezenia leku osiagnieta po zadanym odstepie czasowym ');
disp(C_4);
%**************************************************************************************

end