library('jsonlite');
library("uuid");
computeSF36 <- function(json) {
#physical
a <- as.numeric(json$items$'2'$subquestions$'0'$response_value)+1;
b <- as.numeric(json$items$'2'$subquestions$'1'$response_value)+1;
c <- as.numeric(json$items$'2'$subquestions$'2'$response_value)+1;
d <- as.numeric(json$items$'2'$subquestions$'3'$response_value)+1;
e <- as.numeric(json$items$'2'$subquestions$'4'$response_value)+1;
f <- as.numeric(json$items$'2'$subquestions$'5'$response_value)+1;
g <- as.numeric(json$items$'2'$subquestions$'6'$response_value)+1;
h <- as.numeric(json$items$'2'$subquestions$'7'$response_value)+1;
i <- as.numeric(json$items$'2'$subquestions$'8'$response_value)+1;
j <- as.numeric(json$items$'2'$subquestions$'9'$response_value)+1;
sum <-a+b+c+d+e+f+g+h+i+j;
phy_score <- (sum-10)/20*100;
physical_list <-list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('Physical Health'), timestamp=unbox(''), value=unbox(phy_score), unit=unbox(''));
#role-physical
a <- as.numeric(json$items$'3'$subquestions$'0'$response_value)+1;
b <- as.numeric(json$items$'3'$subquestions$'1'$response_value)+1;
c <- as.numeric(json$items$'3'$subquestions$'2'$response_value)+1;
d <- as.numeric(json$items$'3'$subquestions$'3'$response_value)+1;
sum <- a+b+c+d;
role_phy_score <- (sum-4)/4*100;
role_physical_list <-list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('Role-Physical Health'), timestamp=unbox(''), value=unbox(role_phy_score), unit=unbox(''));
#bodily pain
a <- as.numeric(json$items$'6'$response_value)+1;
b <- as.numeric(json$items$'7'$response_value)+1;
if(b==1){if (a==1) b<-6 else b<-5} else b<-6-b;
if (a==1) {a <- 6} else if (a==2) {a <- 5.4} else if (a==3) {a <- 4.2} else if (a==4) {a <- 3.1} else if (a==5) {a <- 2.2} else if (a==6) {a <-1};
sum <- a+b;
pain_score <- (sum-2)/10*100;
pain_list <-list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('Bodily Pain'), timestamp=unbox(''), value=unbox(pain_score), unit=unbox(''));
#general health
a <- as.numeric(json$items$'0'$response_value)+1;
b <- as.numeric(json$items$'10'$subquestions$'0'$response_value)+1;
c <- as.numeric(json$items$'10'$subquestions$'1'$response_value)+1;
d <- as.numeric(json$items$'10'$subquestions$'2'$response_value)+1;
e <- as.numeric(json$items$'10'$subquestions$'3'$response_value)+1;
if (a==1) {a <- 5} else if (a==2) {a <- 4.4} else if (a==3) {a <- 3.4} else if (a==4) {a <- 2.0} else if (a==5) {a <- 1};
c <- 6-c;
e <- 6-e;
sum <- a+b+c+d+e;
general_health_score <- (sum-5)/20*100;
general_health_list <-list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('General Health'), timestamp=unbox(''), value=unbox(general_health_score), unit=unbox(''));
#vitality
a <- as.numeric(json$items$'8'$subquestions$'0'$response_value)+1;
e <- as.numeric(json$items$'8'$subquestions$'4'$response_value)+1;
g <- as.numeric(json$items$'8'$subquestions$'6'$response_value)+1;
i <- as.numeric(json$items$'8'$subquestions$'8'$response_value)+1;
a <- 7-a;
e <- 7-e;
sum <- a+e+g+i;
vitality_score <- (sum-4)/20*100;
vitality_list <-list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('Vitality'), timestamp=unbox(''), value=unbox(vitality_score), unit=unbox(''));
#social
a <- as.numeric(json$items$'5'$response_value)+1;
b <- as.numeric(json$items$'9'$response_value)+1;
a <- 6-a;
sum <- a+b;
social_score <- (sum-2)/8*100;
social_list <-list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('Social'), timestamp=unbox(''), value=unbox(social_score), unit=unbox(''));
#role-emotional
a <- as.numeric(json$items$'4'$subquestions$'0'$response_value)+1;
b <- as.numeric(json$items$'4'$subquestions$'1'$response_value)+1;
c <- as.numeric(json$items$'4'$subquestions$'2'$response_value)+1;
sum <- a+b+c;
role_emotional_score <- (sum-3)/3*100;
role_emotional_list <-list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('Role-Emotional Health'), timestamp=unbox(''), value=unbox(role_emotional_score), unit=unbox(''));
#mental health
b <- as.numeric(json$items$'8'$subquestions$'1'$response_value)+1;
c <- as.numeric(json$items$'8'$subquestions$'2'$response_value)+1;
d <- as.numeric(json$items$'8'$subquestions$'3'$response_value)+1;
f <- as.numeric(json$items$'8'$subquestions$'5'$response_value)+1;
h <- as.numeric(json$items$'8'$subquestions$'7'$response_value)+1;
d <- 7-d;
h <- 7-h;
sum <- b+c+d+f+g;
mental_health_score <- (sum-5)/25*100;
mental_list <-list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('Mental'), timestamp=unbox(''), value=unbox(mental_health_score), unit=unbox(''));
#health transition
a <- as.numeric(json$items$'1'$response_value)+1;
a <- 6-a;
health_transition_score <- (a-3)/2*100;
health_transition_list <-list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('Health Transition'), timestamp=unbox(''), value=unbox(health_transition_score), unit=unbox(''));
#means
physical_mean <- list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('Physical Health Average'), timestamp=unbox(''), value=unbox(87), unit=unbox(''));
role_physical_mean <-list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('Role-Physical Health Average'), timestamp=unbox(''), value=unbox(84), unit=unbox(''));
pain_mean <-list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('Bodily Pain Average'), timestamp=unbox(''), value=unbox(78), unit=unbox(''));
general_health_mean <-list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('General Health Average'), timestamp=unbox(''), value=unbox(72), unit=unbox(''));
vitality_mean <-list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('Vitality Average'), timestamp=unbox(''), value=unbox(61), unit=unbox(''));
social_mean <-list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('Social Average'), timestamp=unbox(''), value=unbox(84), unit=unbox(''));
role_emotional_mean <-list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('Role-Emotional Health Average'), timestamp=unbox(''), value=unbox(80), unit=unbox(''));
mental_mean <-list(type=unbox('New'),source=unbox('OCPU'),id=unbox(UUIDgenerate()), category=unbox('sf36'), measurement=unbox('Mental Average'), timestamp=unbox(''), value=unbox(73), unit=unbox(''));
all_results <- list(physical_list, role_physical_list, pain_list, general_health_list, vitality_list, social_list, role_emotional_list, mental_list, health_transition_list, physical_mean, role_physical_mean, pain_mean, general_health_mean, vitality_mean, social_mean, role_emotional_mean, mental_mean);
return(all_results);
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.