Hello CSPro users,
I've just wanna ask on how to get value label its on the attached images, what I want to get is the name of the illness but it seems the value came out is AB..so on. Any suggestion would be highly appreciated, Thanks in advance.
Images:
1. Dictionary
2. CAPI Questions
3. Above Image (Choices)
4. Below Image (Results)
getvaluelabel
-
- Posts: 32
- Joined: June 2nd, 2022, 5:55 am
getvaluelabel
- Attachments
-
- Dictionary.jpg (111.85 KiB) Viewed 12781 times
-
- CAPI Question.jpg (123.74 KiB) Viewed 12781 times
-
- Choices and Results.jpg (90.83 KiB) Viewed 12781 times
-
- Posts: 1801
- Joined: December 5th, 2011, 11:27 pm
- Location: Washington, DC
Re: getvaluelabel
The getvaluelabel function isn't looking at the capture type (checkbox), so it's not formatting your checked options appropriately. You can do something like this in your question text: ~~GetCheckboxLabel()~~
And then add a user-defined function:
And then add a user-defined function:
function string GetCheckboxLabel()
string labels;
do numeric ctr = 1 while ctr <= I1MULTI_VS1.codes.length()
if ischecked(I1MULTI_VS1.codes(ctr), I1MULTI) then
// add a comma between each entry
if labels <> "" then
labels = labels + ", ";
endif;
labels = labels + I1MULTI_VS1.labels(ctr);
endif;
enddo;
exit labels;
end;
string labels;
do numeric ctr = 1 while ctr <= I1MULTI_VS1.codes.length()
if ischecked(I1MULTI_VS1.codes(ctr), I1MULTI) then
// add a comma between each entry
if labels <> "" then
labels = labels + ", ";
endif;
labels = labels + I1MULTI_VS1.labels(ctr);
endif;
enddo;
exit labels;
end;
Last edited by Gregory Martin on November 6th, 2023, 1:17 pm, edited 1 time in total.
-
- Posts: 32
- Joined: June 2nd, 2022, 5:55 am
Re: getvaluelabel
Thank you Gregory Martin for replying to my problem and I am sorry it takes me long to reply, but it seems when I try to apply the code that you give me it return blank.Gregory Martin wrote: ↑September 26th, 2023, 9:28 am The getvaluelabel function isn't looking at the capture type (checkbox), so it's not formatting your checked options appropriately. You can do something like this in your question text: ~~GetCheckboxLabel()~~
And then add a user-defined function:
function string GetCheckboxLabel()
string labels;
do numeric ctr = 1 while ctr <= I1MULTI_VS1.codes.length()
if ischecked(I1MULTI, I1MULTI_VS1.codes(ctr)) then
// add a comma between each entry
if labels <> "" then
labels = labels + ", ";
endif;
labels = labels + I1MULTI_VS1.labels(ctr);
endif;
enddo;
exit labels;
end;
Re: getvaluelabel
Greg is out this week so let me respond. I haven't used the codes and labels feature, but it should be working. In the interim, you can do this, which is working for me:
function string GetCheckboxLabel()
string labels;
do numeric ctr = 1 while ctr <= length(strip(I1MULTI)) // I1MULTI_VS1.codes.length()
alpha(1) letter = I1MULTI[ctr:1];
if ischecked(letter, I1MULTI) then
// add a comma between each entry
if labels <> "" then
labels = labels + ", ";
endif;
labels = labels + getlabel (I1MULTI, letter);
endif;
enddo;
exit labels;
end;
string labels;
do numeric ctr = 1 while ctr <= length(strip(I1MULTI)) // I1MULTI_VS1.codes.length()
alpha(1) letter = I1MULTI[ctr:1];
if ischecked(letter, I1MULTI) then
// add a comma between each entry
if labels <> "" then
labels = labels + ", ";
endif;
labels = labels + getlabel (I1MULTI, letter);
endif;
enddo;
exit labels;
end;
-
- Posts: 32
- Joined: June 2nd, 2022, 5:55 am
Re: getvaluelabel
Thanks sherrell for the response.
sherrell wrote: ↑October 9th, 2023, 9:14 pm Greg is out this week so let me respond. I haven't used the codes and labels feature, but it should be working. In the interim, you can do this, which is working for me:
function string GetCheckboxLabel()
string labels;
do numeric ctr = 1 while ctr <= length(strip(I1MULTI)) // I1MULTI_VS1.codes.length()
alpha(1) letter = I1MULTI[ctr:1];
if ischecked(letter, I1MULTI) then
// add a comma between each entry
if labels <> "" then
labels = labels + ", ";
endif;
labels = labels + getlabel (I1MULTI, letter);
endif;
enddo;
exit labels;
end;
-
- Posts: 32
- Joined: June 2nd, 2022, 5:55 am
Re: getvaluelabel
Hi sherrell, I was just wondering it works on the first and second checkbox(e.g. Diabetes and Heart disease) but when I change the answer to another illness it would only display one illness or it would not display at all, what would I change for this to work on all checkbox.
sherrell wrote: ↑October 9th, 2023, 9:14 pm Greg is out this week so let me respond. I haven't used the codes and labels feature, but it should be working. In the interim, you can do this, which is working for me:
function string GetCheckboxLabel()
string labels;
do numeric ctr = 1 while ctr <= length(strip(I1MULTI)) // I1MULTI_VS1.codes.length()
alpha(1) letter = I1MULTI[ctr:1];
if ischecked(letter, I1MULTI) then
// add a comma between each entry
if labels <> "" then
labels = labels + ", ";
endif;
labels = labels + getlabel (I1MULTI, letter);
endif;
enddo;
exit labels;
end;
Re: getvaluelabel
I've made two passes.
In the first app, you can pass a pointer to a function that makes the evaluation, but you'll just need to create a function for each variable you want to analyze.
In the second app (v2, after consult with Greg ), you can pass a valueset in as a function argument. However since the variable is a string, we have to identify the valueset as being for a string, not numeric (as it expects by default).
Sherrell
In the first app, you can pass a pointer to a function that makes the evaluation, but you'll just need to create a function for each variable you want to analyze.
In the second app (v2, after consult with Greg ), you can pass a valueset in as a function argument. However since the variable is a string, we have to identify the valueset as being for a string, not numeric (as it expects by default).
Sherrell
- Attachments
-
- Simple CAPI labels_v2.zip
- (6.72 KiB) Downloaded 408 times
-
- Simple CAPI labels.zip
- (3.33 KiB) Downloaded 410 times