From 96c515b6626e87d630363764eda8c2b49478248e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Piskorski?= Date: Fri, 22 Jan 2021 13:42:15 +0100 Subject: [PATCH] fix pack 2 --- app/app.R | 3 +- app/calculator.R | 95 +++++++++++-------- app/login_module.R | 2 +- app/profil_module.R | 32 ++++--- .../project/controllers/UserController.java | 6 -- 5 files changed, 73 insertions(+), 65 deletions(-) diff --git a/app/app.R b/app/app.R index 991c93e..072f783 100644 --- a/app/app.R +++ b/app/app.R @@ -6,6 +6,7 @@ library(plotly) library(DT) library(shinyjs) library(leaflet) +library(tidyverse) #source(".R/home_module.R",encoding="utf-8") #source(".R/about_module.R",encoding="utf-8") @@ -161,7 +162,7 @@ server <- shinyServer(function(input, output, session){ inlineCSS(list(.clicked = "background-color: #008375 !important")), column(12, navbarPage("", - tabPanel(a("TakeCareApp",id='takeCareApp',class = "tab-link", href = route_link("home"))), + tabPanel(a("TakeCareApp",id='takeCareApp',class = "tab-link", href = route_link("/home"))), tabPanel(a("Firmy",id="tab1",class = "tab-link", href = route_link("firms"))), tabPanel(a("O nas",id="tab2",class = "tab-link", href = route_link("about"))), tabPanel(a("Zaloguj",id="tab3",class="tab-link", href = route_link("login"))), diff --git a/app/calculator.R b/app/calculator.R index e453374..ee0451d 100644 --- a/app/calculator.R +++ b/app/calculator.R @@ -6,55 +6,66 @@ library(DT) calculatorUI <- function(id){ ns <- NS(id) - fluidPage( - - - fluidRow( - column(3, - tags$div("Panel sterowania") %>% tagAppendAttributes(class="panel-title"), - wellPanel( - sliderInput("slider1", strong("Wiek pacjenta:"),min = 14, max = 100, value = 40), - selectInput("select1",strong("Obecność wodobrzusza:"),choices = list("Nie"=0,"Tak"=1),selected=0), - selectInput("select2",strong("Obecność przepływu krwi w projekcji brodawkowatej:"),choices = list("Nie"=0,"Tak"=1),selected=0), - sliderInput("slider2", strong("Największa średnica elementu stałego (w mm):"),min = 0, max = 200, value = 0), - selectInput("select3",strong("Nieregularna wewnętrzna ściana torbieli:"),choices = list("Nie"=0,"Tak"=1),selected=0), - selectInput("select4",strong("Obecność cieni akustycznych:"),choices = list("Nie"=0,"Tak"=1),selected=0), - actionButton("update" ,"Oblicz"), - downloadButton("report", "Generuj raport")) - - - )%>% tagAppendAttributes(id = 'column-panel'), - column(9, - tags$div("Kalkulator wskaźnika ryzyka nowotworu jajnika (IOTA LR2)") %>% tagAppendAttributes(class="panel-title"), - wellPanel( - p("Aplikacja przeznaczona jest dla lekarzy ginekologów i wdraża wskaźnik złośliwości nowotworu jajnika w oparciu o algorytm IOTA LR2. Wizualizuje również wynik regresji logistycznej."), - p("Szczegółowy opis algorytmu znajduje się w artykule: Timmerman D, Testa AC, Bourne T, [i in.]. Model regresji logistycznej do rozróżniania łagodnych i złośliwych guzów przydatków przed operacją: wieloośrodkowe badanie przeprowadzone przez International Ovarian Tumor Analysis Group. J Clin Oncol. 2005, 23, 8794-8801."), - p("Ogólnie algorytm LR2 przewiduje, że nowotwór jest łagodny, gdy pacjent jest młody, lity składnik zmiany jest mały i występują cienie akustyczne. Możesz to sprawdzić empirycznie za pomocą różnych kombinacji wartości wejściowych."), - p("Wypełnij formularz i kliknij",strong("Oblicz")," "), - - htmlOutput("selected_var"), - htmlOutput("var"), - br(), - plotlyOutput("wykres"), - uiOutput("calculatorSave") - ) - )%>% tagAppendAttributes(id = 'column-content') - ) %>% tagAppendAttributes(id = 'row-content'), - fluidRow( - column(12, - tags$span("© Copyright Wszystkie prawa zastrzeżone."))%>% tagAppendAttributes(id = 'column-copyright'), - - )%>% tagAppendAttributes(id = 'row-footer') - - + uiOutput("calculatorPage") -) } calculatorServer <- function(input, output, session) { calculatorRV <-reactiveValues(value=NULL) calculatorTV <-reactiveValues(value=NULL) + + output$calculatorPage<-renderUI({ + if(get_page()=="calculator"){ + + fluidPage( + + + fluidRow( + column(3, + tags$div("Panel sterowania") %>% tagAppendAttributes(class="panel-title"), + wellPanel( + sliderInput("slider1", strong("Wiek pacjenta:"),min = 14, max = 100, value = 40), + selectInput("select1",strong("Obecność wodobrzusza:"),choices = list("Nie"=0,"Tak"=1),selected=0), + selectInput("select2",strong("Obecność przepływu krwi w projekcji brodawkowatej:"),choices = list("Nie"=0,"Tak"=1),selected=0), + sliderInput("slider2", strong("Największa średnica elementu stałego (w mm):"),min = 0, max = 200, value = 0), + selectInput("select3",strong("Nieregularna wewnętrzna ściana torbieli:"),choices = list("Nie"=0,"Tak"=1),selected=0), + selectInput("select4",strong("Obecność cieni akustycznych:"),choices = list("Nie"=0,"Tak"=1),selected=0), + actionButton("update" ,"Oblicz"), + downloadButton("report", "Generuj raport")) + + + )%>% tagAppendAttributes(id = 'column-panel'), + column(9, + tags$div("Kalkulator wskaźnika ryzyka nowotworu jajnika (IOTA LR2)") %>% tagAppendAttributes(class="panel-title"), + wellPanel( + p("Aplikacja przeznaczona jest dla lekarzy ginekologów i wdraża wskaźnik złośliwości nowotworu jajnika w oparciu o algorytm IOTA LR2. Wizualizuje również wynik regresji logistycznej."), + p("Szczegółowy opis algorytmu znajduje się w artykule: Timmerman D, Testa AC, Bourne T, [i in.]. Model regresji logistycznej do rozróżniania łagodnych i złośliwych guzów przydatków przed operacją: wieloośrodkowe badanie przeprowadzone przez International Ovarian Tumor Analysis Group. J Clin Oncol. 2005, 23, 8794-8801."), + p("Ogólnie algorytm LR2 przewiduje, że nowotwór jest łagodny, gdy pacjent jest młody, lity składnik zmiany jest mały i występują cienie akustyczne. Możesz to sprawdzić empirycznie za pomocą różnych kombinacji wartości wejściowych."), + p("Wypełnij formularz i kliknij",strong("Oblicz")," "), + + htmlOutput("selected_var"), + htmlOutput("var"), + br(), + plotlyOutput("wykres"), + uiOutput("calculatorSave") + ) + )%>% tagAppendAttributes(id = 'column-content') + ) %>% tagAppendAttributes(id = 'row-content'), + fluidRow( + column(12, + tags$span("© Copyright Wszystkie prawa zastrzeżone."))%>% tagAppendAttributes(id = 'column-copyright'), + + )%>% tagAppendAttributes(id = 'row-footer') + + + + ) + } + + + }) + output$report <- downloadHandler( filename = "raport.pdf", diff --git a/app/login_module.R b/app/login_module.R index 19167e7..c3e412f 100644 --- a/app/login_module.R +++ b/app/login_module.R @@ -85,7 +85,7 @@ loginServer <- function(input, output,session) { output$loginErr<-renderUI({ if (isCorrect()==TRUE){ - p("OK",style="color:white;text-align:center;") + }else{ p("Uzytkownik nie istnieje lub wprowadzono bledne dane",style="color:yellow;text-align:center;") } diff --git a/app/profil_module.R b/app/profil_module.R index bef588e..070dad9 100644 --- a/app/profil_module.R +++ b/app/profil_module.R @@ -121,18 +121,22 @@ profilServer <- function(input, output,session) { personalDataVector <- reactiveVal() historyDataVector <- reactiveVal() + activeTab<-reactiveVal() downloadPersonalData<-reactive({ + r<-httr::GET("http://localhost:8080/api/profile",add_headers(Authorization=paste("Bearer",input$token,sep=" "))) + print("Reactive data") r }) downloadHistoryData<-reactive({ - + r<-httr::GET("http://localhost:8080/api/prediction/usersPredictions/ind",add_headers(Authorization=paste("Bearer",input$token,sep=" ")),encode = 'json') + print("Reactive hist") r @@ -140,29 +144,25 @@ profilServer <- function(input, output,session) { observe({ currPage = get_page() - if(currPage=="profile" | currPage=="calculator" | currPage=="iota"){ - - if(currPage=="profile"){ - run = paste('Shiny.onInputChange("pagePROFILE","',timestamp(),'");',sep="") - shinyjs::runjs(run) - - - } - else{ - shinyjs::runjs('Shiny.onInputChange("profileTabs", "");') - } + if(currPage=="profil" | currPage=="calculator" | currPage=="iota"){ + session$sendCustomMessage(type='tokenHandlerAccess',(session$clientData)$url_hash) } }) + + observeEvent(input$profileTabs,{ + + if(input$profileTabs=="data"){ - + personalDataVector(downloadPersonalData()) }else if(input$profileTabs=="history"){ + historyDataVector(downloadHistoryData()) } @@ -246,6 +246,7 @@ profilServer <- function(input, output,session) { output$afterLogin<-renderUI({ + if(get_page()=="profil"){ if(!is.null(input$auth) & length(input$auth)>0 ){ fluidRow( @@ -262,6 +263,7 @@ profilServer <- function(input, output,session) { }else{ } + } }) @@ -308,17 +310,17 @@ profilServer <- function(input, output,session) { df_historyTable<-df_historyTable %>% mutate(Akcja=historyTableButtons)%>% select(name,resultValue,localDateTime,Akcja) %>% + mutate(localDateTime = (str_replace(strptime(str_replace(localDateTime,"T"," "),"%Y-%m-%d %H:%M:%S")," CET","")))%>% rename( Nazwa = name, Wynik = resultValue, Data = localDateTime ) + df_historyTable$Nazwa<-do.call(c, df_historyTable$Nazwa) df_historyTable$Wynik<-do.call(c, df_historyTable$Wynik) - df_historyTable$Data<-do.call(c, df_historyTable$Data) - DT::datatable(df_historyTable,selection="none",options = list(scrollX = TRUE,language=pl))} # } diff --git a/backend/src/main/java/project/controllers/UserController.java b/backend/src/main/java/project/controllers/UserController.java index a64bc23..eeed694 100644 --- a/backend/src/main/java/project/controllers/UserController.java +++ b/backend/src/main/java/project/controllers/UserController.java @@ -60,13 +60,7 @@ public class UserController { HttpServletResponse httpServletResponse){ ObjectMapper mapper = new ObjectMapper(); - try { - String jsonString = mapper.writeValueAsString(personalProfileDTO); - System.out.println(jsonString); - }catch(Exception e){ - e.printStackTrace(); - } Map map = new HashMap<>();