Построение и исследование моделей краткосрочного прогнозирования гликемии у больных сахарным диабетом
.pdf}}
private void normalization(LinkedList<String> iob1, LinkedList<String> mealcob1, LinkedList<String> glucose1) {
int i=0; double x;
double miniob=Double.valueOf(iob1.get(0)),minmealcob = Double.valueOf(mealcob1.get(0)),minglucose=Double.valueOf(glucose1.get(0)),
maxiob=Double.valueOf(iob1.get(0)),maxmealcob = Double.valueOf(mealcob1.get(0)),maxglucose=Double.valueOf(glucose1.get(0));
for(i=0; i< iob1.size(); i++){
miniob = Math.min(miniob, Double.valueOf(iob1.get(i))); maxiob=Math.max(maxiob,Double.valueOf(iob1.get(i)));
}
for (i=0; i< mealcob1.size(); i++){
minmealcob = Math.min(minmealcob,Double.valueOf(mealcob1.get(i))); maxmealcob = Math.max(maxmealcob,Double.valueOf(mealcob1.get(i)));
}
for (i=0; i< glucose1.size(); i++){
minglucose = Math.min(minglucose,Double.valueOf(glucose1.get(i))); maxglucose = Math.max(maxglucose,Double.valueOf(glucose1.get(i)));
}
for(i=0; i< iob1.size(); i++){
x = (2*(( Double.valueOf(iob1.get(i))-miniob)/(maxiob-miniob))-1); normiob.add(String.valueOf(x));
}
for(i=0; i< mealcob1.size(); i++){
x = (2*(( Double.valueOf(mealcob1.get(i))-minmealcob)/(maxmealcob- minmealcob))-1);
normmealcob.add(String.valueOf(x));
131
}
for(i=0; i< this.glucose1.size(); i++){
x= (2*(( Double.valueOf(glucose1.get(i))-minglucose)/(maxglucose-minglu- cose))-1);
normglucose.add(String.valueOf(x));
}
}
private void finddate(String[] stringstr, String date, LinkedList<String> date1) {
int n = 64;
for(int i=0;i<n;i++){ if(stringstr[i].equals("c")&&stringstr[i+1].equals("l")
&&stringstr[i+2].equals("o")&&stringstr[i+3].equals("c")
&&stringstr[i+4].equals("k")&&stringstr[i+5].equals(":") &&stringstr[i+6].equals(" ")&&stringstr[i+7].equals("\"")){
date = stringstr[i+8]; while(!stringstr[i+9].equals("T")){
date+=stringstr[i+9];
i++;
}
}
if(date!=null) {date1.add(date); break;}
}
}
private void findtime(String[] stringstr, String time, LinkedList<String> time1) {
int n = 64;
132
for(int i=0;i<n;i++){ if(stringstr[i].equals(":")&&stringstr[i+3].equals(":")&&string-
str[i+6].equals(" "))
{
time = stringstr[i-2]+stringstr[i-1]+stringstr[i]+stringstr[i+1]+string- str[i+2]+stringstr[i+3]+stringstr[i+4]+stringstr[i+5];
}
if(time!=null){;time1.add(time); break;}
}
}
private void findiob(String[] stringstr, String iob, LinkedList<String> iob1) { int n =64;
for(int i=0;i<n;i++){ if(stringstr[i].equals("\"")&&stringstr[i+1].equals("i")&&
stringstr[i+2].equals("o")&&stringstr[i+3].equals("b")&&stringstr[i+4].equals("\"")){
iob=stringstr[i+6];
while (!stringstr[i+7].equals(",")){ iob+=stringstr[i+7];
i++;
}
if(iob!=null){iob1.add(iob); break;}
}
}
}
private void findmealcob(String[] stringstr, String mealcob, LinkedList<String>
mealcob1) {
133
int n=64;
for(int i=0;i<n;i++){ if(stringstr[i].equals("\"")&&stringstr[i+1].equals("m")&&string-
str[i+2].equals("e") &&stringstr[i+3].equals("a")&&stringstr[i+4].equals("l")&&string-
str[i+5].equals("C") &&stringstr[i+6].equals("O")&&stringstr[i+7].equals("B")&&string-
str[i+8].equals("\"")){
mealcob=stringstr[i+10];
while(!stringstr[i+11].equals(",")){
mealcob+=stringstr[i+11];
i++;
}
if(mealcob!=null){mealcob1.add(mealcob); break;}
}
}
}
private void findglucose(String[] stringstr, String glucose, LinkedList<String> glucose1) {
int n = 64;
for(int i = 0;i<n;i++){ if(stringstr[i].equals("\"")&&stringstr[i+1].equals("g")&&string-
str[i+2].equals("l") &&stringstr[i+3].equals("u")&&stringstr[i+4].equals("c")&&string-
str[i+5].equals("o") &&stringstr[i+6].equals("s")&&stringstr[i+7].equals("e")&&string-
str[i+8].equals("\"")){
glucose = stringstr[i+10];
while(!stringstr[i+11].equals(",")){
134
glucose+=stringstr[i+11];
i++;
}
if(glucose!=null){glucose1.add(glucose); break;}
}
}
}
@FXML
private void saveFile() throws IOException {
int k = time1.size(), u= date1.size(),z=iob1.size(),y=mealcob1.size(),t=glucose1.size(),i=0, min=0;
Workbook wb = new HSSFWorkbook();
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setBorderBottom(CellStyle.BORDER_MEDIUM); cellStyle.setBorderLeft(CellStyle.BORDER_MEDIUM); cellStyle.setBorderRight(CellStyle.BORDER_MEDIUM); cellStyle.setBorderTop(CellStyle.BORDER_MEDIUM); cellStyle.setAlignment(CellStyle.ALIGN_CENTER); CellStyle logcell = wb.createCellStyle(); logcell.setAlignment(CellStyle.ALIGN_CENTER);
Sheet sheet = wb.createSheet("Отработанный лог");
Row row = sheet.createRow(0);
Cell date = row.createCell(0); date.setCellValue("Date"); Cell time = row.createCell(1); time.setCellValue("Time");
Cell mealcob = row.createCell(2); mealcob.setCellValue("mealCOB");
Cell normalmealcob = row.createCell(3); 135
normalmealcob.setCellValue("norm_mealCOB"); Cell iob = row.createCell(4); iob.setCellValue("IOB");
Cell normaliob = row.createCell(5); normaliob.setCellValue("norm_IOB"); Cell glucose = row.createCell(6); glucose.setCellValue("Glucose");
Cell normalglucose = row.createCell(7); normalglucose.setCellValue("norm_Glucose"); date.setCellStyle(cellStyle); time.setCellStyle(cellStyle); mealcob.setCellStyle(cellStyle); normalmealcob.setCellStyle(cellStyle); iob.setCellStyle(cellStyle); normaliob.setCellStyle(cellStyle); glucose.setCellStyle(cellStyle); normalglucose.setCellStyle(cellStyle);
min = Math.min(k,u); min = Math.min(min,z); min = Math.min(min,y); min = Math.min(min,t); for(i=0;i<min;i++){
Row logrow = sheet.createRow(i+1); Cell datecell = logrow.createCell(0); Cell timecell = logrow.createCell(1); Cell mealcobcell = logrow.createCell(2);
Cell normmealcobcell = logrow.createCell(3); Cell iobcell = logrow.createCell(4);
Cell normiobcell = logrow.createCell(5);
Cell glucosecell = logrow.createCell(6); 136
Cell normglucosecell = logrow.createCell(7); datecell.setCellValue(date1.get(i)); timecell.setCellValue(time1.get(i)); mealcobcell.setCellValue(mealcob1.get(i)); normmealcobcell.setCellValue(normmealcob.get(i)); iobcell.setCellValue(iob1.get(i)); normiobcell.setCellValue(normiob.get(i)); glucosecell.setCellValue(glucose1.get(i)); normglucosecell.setCellValue(normglucose.get(i)); datecell.setCellStyle(logcell); timecell.setCellStyle(logcell); mealcobcell.setCellStyle(logcell); normmealcobcell.setCellStyle(logcell); iobcell.setCellStyle(logcell); normiobcell.setCellStyle(logcell); glucosecell.setCellStyle(logcell); normglucosecell.setCellStyle(logcell);
}
sheet.autoSizeColumn(0);
sheet.autoSizeColumn(1);
sheet.autoSizeColumn(2);
sheet.autoSizeColumn(3);
sheet.autoSizeColumn(4);
sheet.autoSizeColumn(5);
sheet.autoSizeColumn(6);
sheet.autoSizeColumn(7);
FileOutputStream fos = new FileOutputStream(date1.getFirst()+"- "+date1.getLast()+".xls");
logtext.appendText("Файл отгружен\n"); 137
cleararray();
wb.write(fos);
fos.close();
}
private void cleararray() {
while (date1.size()>=1) date1.removeLast(); while (time1.size()>=1) time1.removeLast();
while (mealcob1.size()>=1) mealcob1.removeLast(); while (iob1.size()>=1) iob1.removeLast();
while (glucose1.size()>=1) glucose1.removeLast();
while (normglucose.size()>=1)normglucose.removeLast(); while (normiob.size()>=1)normiob.removeLast();
while (normmealcob.size()>=1)normmealcob.removeLast();
}
@FXML
void initialize(){ logtext.setEditable(false);
}
}
package sample;
import javafx.beans.property.SimpleStringProperty; public class Employeis {
private SimpleStringProperty DateColumn; private SimpleStringProperty GlucoseColumn; private SimpleStringProperty IOBColumn; private SimpleStringProperty TimeColumn; private SimpleStringProperty mealCOBColumn;
public Employeis(String Date, String Glucose, String IOB, String Time, String mealCOB){
this.DateColumn= new SimpleStringProperty(Date); 138
this.GlucoseColumn= new SimpleStringProperty(Glucose); this.IOBColumn = new SimpleStringProperty(IOB); this.mealCOBColumn = new SimpleStringProperty(mealCOB); this.TimeColumn = new SimpleStringProperty(Time);
}
public String getDateColumn() { return DateColumn.get();} public void setDateColumn(String dateColumn) {
this.DateColumn.set(dateColumn);
}
public String getGlucoseColumn() { return GlucoseColumn.get();
}
public void setGlucoseColumn(String glucoseColumn) { this.GlucoseColumn.set(glucoseColumn);
}
public String getIOBColumn() { return IOBColumn.get();
}
public void setIOBColumn(String IOBColumn) { this.IOBColumn.set(IOBColumn);
}
public String getTimeColumn() { return TimeColumn.get();
}
public void setTimeColumn(String timeColumn) { this.TimeColumn.set(timeColumn);
}
public String getMealCOBColumn() {
return mealCOBColumn.get();
139
}
public void setMealCOBColumn(String mealCOBColumn) { this.mealCOBColumn.set(mealCOBColumn);
}
}
package sample;
import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent;
import javafx.scene.Scene; import javafx.stage.Stage;
public class Main extends Application { @Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml")); primaryStage.setTitle("Диплом Евсейченко"); primaryStage.setScene(new Scene(root, 800, 320)); primaryStage.show();
}
public static void main(String[] args) { launch(args);
}
}
140