Добавил:
Преподаватель Колледжа информационных технологий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.pdf
Скачиваний:
4
Добавлен:
08.05.2022
Размер:
4.69 Mб
Скачать

}}

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