fix pack 2

This commit is contained in:
Rafał Piskorski 2021-01-22 13:42:15 +01:00
parent b2ba30db92
commit 96c515b662
5 changed files with 73 additions and 65 deletions

View File

@ -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"))),

View File

@ -6,55 +6,66 @@ library(DT)
calculatorUI <- function(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) {
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",

View File

@ -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;")
}

View File

@ -121,10 +121,13 @@ 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
@ -133,6 +136,7 @@ profilServer <- function(input, output,session) {
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=="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)
}
})
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,16 +310,16 @@ 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))}
# }

View File

@ -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<String,Object> map = new HashMap<>();