fix pack 2
This commit is contained in:
parent
b2ba30db92
commit
96c515b662
@ -6,6 +6,7 @@ library(plotly)
|
|||||||
library(DT)
|
library(DT)
|
||||||
library(shinyjs)
|
library(shinyjs)
|
||||||
library(leaflet)
|
library(leaflet)
|
||||||
|
library(tidyverse)
|
||||||
|
|
||||||
#source(".R/home_module.R",encoding="utf-8")
|
#source(".R/home_module.R",encoding="utf-8")
|
||||||
#source(".R/about_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")),
|
inlineCSS(list(.clicked = "background-color: #008375 !important")),
|
||||||
column(12,
|
column(12,
|
||||||
navbarPage("",
|
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("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("O nas",id="tab2",class = "tab-link", href = route_link("about"))),
|
||||||
tabPanel(a("Zaloguj",id="tab3",class="tab-link", href = route_link("login"))),
|
tabPanel(a("Zaloguj",id="tab3",class="tab-link", href = route_link("login"))),
|
||||||
|
@ -6,55 +6,66 @@ library(DT)
|
|||||||
|
|
||||||
calculatorUI <- function(id){
|
calculatorUI <- function(id){
|
||||||
ns <- NS(id)
|
ns <- NS(id)
|
||||||
fluidPage(
|
uiOutput("calculatorPage")
|
||||||
|
|
||||||
|
|
||||||
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')
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
calculatorServer <- function(input, output, session) {
|
calculatorServer <- function(input, output, session) {
|
||||||
calculatorRV <-reactiveValues(value=NULL)
|
calculatorRV <-reactiveValues(value=NULL)
|
||||||
calculatorTV <-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(
|
output$report <- downloadHandler(
|
||||||
|
|
||||||
filename = "raport.pdf",
|
filename = "raport.pdf",
|
||||||
|
@ -85,7 +85,7 @@ loginServer <- function(input, output,session) {
|
|||||||
|
|
||||||
output$loginErr<-renderUI({
|
output$loginErr<-renderUI({
|
||||||
if (isCorrect()==TRUE){
|
if (isCorrect()==TRUE){
|
||||||
p("OK",style="color:white;text-align:center;")
|
|
||||||
}else{
|
}else{
|
||||||
p("Uzytkownik nie istnieje lub wprowadzono bledne dane",style="color:yellow;text-align:center;")
|
p("Uzytkownik nie istnieje lub wprowadzono bledne dane",style="color:yellow;text-align:center;")
|
||||||
}
|
}
|
||||||
|
@ -121,18 +121,22 @@ profilServer <- function(input, output,session) {
|
|||||||
|
|
||||||
personalDataVector <- reactiveVal()
|
personalDataVector <- reactiveVal()
|
||||||
historyDataVector <- reactiveVal()
|
historyDataVector <- reactiveVal()
|
||||||
|
activeTab<-reactiveVal()
|
||||||
|
|
||||||
downloadPersonalData<-reactive({
|
downloadPersonalData<-reactive({
|
||||||
|
|
||||||
|
|
||||||
r<-httr::GET("http://localhost:8080/api/profile",add_headers(Authorization=paste("Bearer",input$token,sep=" ")))
|
r<-httr::GET("http://localhost:8080/api/profile",add_headers(Authorization=paste("Bearer",input$token,sep=" ")))
|
||||||
|
print("Reactive data")
|
||||||
r
|
r
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
downloadHistoryData<-reactive({
|
downloadHistoryData<-reactive({
|
||||||
|
|
||||||
r<-httr::GET("http://localhost:8080/api/prediction/usersPredictions/ind",add_headers(Authorization=paste("Bearer",input$token,sep=" ")),encode = 'json')
|
r<-httr::GET("http://localhost:8080/api/prediction/usersPredictions/ind",add_headers(Authorization=paste("Bearer",input$token,sep=" ")),encode = 'json')
|
||||||
|
print("Reactive hist")
|
||||||
r
|
r
|
||||||
|
|
||||||
|
|
||||||
@ -140,29 +144,25 @@ profilServer <- function(input, output,session) {
|
|||||||
|
|
||||||
observe({
|
observe({
|
||||||
currPage = get_page()
|
currPage = get_page()
|
||||||
if(currPage=="profile" | currPage=="calculator" | currPage=="iota"){
|
if(currPage=="profil" | currPage=="calculator" | currPage=="iota"){
|
||||||
|
|
||||||
if(currPage=="profile"){
|
|
||||||
run = paste('Shiny.onInputChange("pagePROFILE","',timestamp(),'");',sep="")
|
|
||||||
shinyjs::runjs(run)
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
shinyjs::runjs('Shiny.onInputChange("profileTabs", "");')
|
|
||||||
}
|
|
||||||
session$sendCustomMessage(type='tokenHandlerAccess',(session$clientData)$url_hash)
|
session$sendCustomMessage(type='tokenHandlerAccess',(session$clientData)$url_hash)
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
observeEvent(input$profileTabs,{
|
observeEvent(input$profileTabs,{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(input$profileTabs=="data"){
|
if(input$profileTabs=="data"){
|
||||||
|
|
||||||
personalDataVector(downloadPersonalData())
|
personalDataVector(downloadPersonalData())
|
||||||
}else if(input$profileTabs=="history"){
|
}else if(input$profileTabs=="history"){
|
||||||
|
|
||||||
historyDataVector(downloadHistoryData())
|
historyDataVector(downloadHistoryData())
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -246,6 +246,7 @@ profilServer <- function(input, output,session) {
|
|||||||
|
|
||||||
|
|
||||||
output$afterLogin<-renderUI({
|
output$afterLogin<-renderUI({
|
||||||
|
if(get_page()=="profil"){
|
||||||
if(!is.null(input$auth) & length(input$auth)>0 ){
|
if(!is.null(input$auth) & length(input$auth)>0 ){
|
||||||
fluidRow(
|
fluidRow(
|
||||||
|
|
||||||
@ -262,6 +263,7 @@ profilServer <- function(input, output,session) {
|
|||||||
}else{
|
}else{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
@ -308,17 +310,17 @@ profilServer <- function(input, output,session) {
|
|||||||
df_historyTable<-df_historyTable %>%
|
df_historyTable<-df_historyTable %>%
|
||||||
mutate(Akcja=historyTableButtons)%>%
|
mutate(Akcja=historyTableButtons)%>%
|
||||||
select(name,resultValue,localDateTime,Akcja) %>%
|
select(name,resultValue,localDateTime,Akcja) %>%
|
||||||
|
mutate(localDateTime = (str_replace(strptime(str_replace(localDateTime,"T"," "),"%Y-%m-%d %H:%M:%S")," CET","")))%>%
|
||||||
rename(
|
rename(
|
||||||
Nazwa = name,
|
Nazwa = name,
|
||||||
Wynik = resultValue,
|
Wynik = resultValue,
|
||||||
Data = localDateTime
|
Data = localDateTime
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
df_historyTable$Nazwa<-do.call(c, df_historyTable$Nazwa)
|
df_historyTable$Nazwa<-do.call(c, df_historyTable$Nazwa)
|
||||||
df_historyTable$Wynik<-do.call(c, df_historyTable$Wynik)
|
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))}
|
DT::datatable(df_historyTable,selection="none",options = list(scrollX = TRUE,language=pl))}
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
@ -60,13 +60,7 @@ public class UserController {
|
|||||||
HttpServletResponse httpServletResponse){
|
HttpServletResponse httpServletResponse){
|
||||||
|
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
try {
|
|
||||||
String jsonString = mapper.writeValueAsString(personalProfileDTO);
|
|
||||||
System.out.println(jsonString);
|
|
||||||
}catch(Exception e){
|
|
||||||
e.printStackTrace();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String,Object> map = new HashMap<>();
|
Map<String,Object> map = new HashMap<>();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user