From 40f44eff6ec2a0bec010d0e9fa61c5193a7730aa Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Sun, 3 Nov 2024 16:53:07 -0600 Subject: [PATCH 01/40] starting CoPH test instance ref #552 --- inst/misc/coph.credentials | 38 ++ inst/misc/project-redirection.yml | 34 ++ inst/test-data/projects/README.md | 11 +- inst/test-data/projects/simple/README.md | 32 ++ .../test-data/projects/simple/project-old.xml | 542 ++++++++++++++++++ inst/test-data/projects/simple/project.xml | 34 +- tests/test-all.R | 4 + 7 files changed, 674 insertions(+), 21 deletions(-) create mode 100644 inst/misc/coph.credentials create mode 100644 inst/test-data/projects/simple/README.md create mode 100644 inst/test-data/projects/simple/project-old.xml diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials new file mode 100644 index 00000000..5915bb8c --- /dev/null +++ b/inst/misc/coph.credentials @@ -0,0 +1,38 @@ +# This is an example credential file for the REDCap API. +# Each record represents one accessible project for the current user. +# Make sure that the real file with the sensitive password-like tokens +# is stored securely. +# +redcap_uri,username,project_id,token,comment +"https://redcap.ouhsc.edu/redcap/api/","myusername","2298","6F37356C18D9A9F5E1248B6D1E7FAB9B","simple" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","longitudinal" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","simple-write" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","russian" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","empty-rows" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","single-column" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","super-wide-1" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","survey" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","clinical-trial-1" +"https://redcap.ouhsc.edu/redcap/api/","myusername","","---","Clinical Trial (Fake) --read & write, contributed by @higgi13425" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","nonnumeric-record-id" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","dag" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","potentially-problematic-values" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","repeating-instruments" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","potentially-problematic-dictionary" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","metadata-write" +"https://redcap.ouhsc.edu/redcap/api/","admin" ,"0","","dag-write --admin" +"https://redcap.ouhsc.edu/redcap/api/","user-dag1" ,"0","","dag-write --group A" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","super-wide-2" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","super-wide-3" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","repeating-instruments-sparse" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","arm-single-delete" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","arm-multiple-delete" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","arm-single-longitudinal" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","decimal-comma-and-dot" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","decimal-comma" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","decimal-dot" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","validation-types-1" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","blank-for-gray-status" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","checkboxes-1" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","vignette-repeating" +"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","file-repo" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 573e2368..e0ee1a52 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -67,3 +67,37 @@ - checkboxes-1: 61 - vignette-repeating: 62 - file-repo: 63 +- + instance: coph + credential_file: "misc/coph.credentials" + projects: + - simple: 2298 + - longitudinal: 0 + - simple-write: 0 + - russian: 0 + - empty-rows: 0 + - single-column: 0 + - super-wide-1: 0 + - survey: 0 + - clinical-trial-1: 0 + - nonnumeric-record-id: 0 + - dag: 0 + - potentially-problematic-values: 0 + - repeating-instruments: 0 + - potentially-problematic-dictionary: 0 + - metadata-write: 0 + - dag-write: 0 + - super-wide-2: 0 + - super-wide-3: 0 + - repeating-instruments-sparse: 0 + - arm-single-delete: 0 + - arm-multiple-delete: 0 + - arm-single-longitudinal: 0 + - decimal-comma-and-dot: 0 + - decimal-comma: 0 + - decimal-dot: 0 + - validation-types-1: 0 + - blank-for-gray-status: 0 + - checkboxes-1: 0 + - vignette-repeating: 0 + - file-repo: 0 diff --git a/inst/test-data/projects/README.md b/inst/test-data/projects/README.md index f6cd316c..36736180 100644 --- a/inst/test-data/projects/README.md +++ b/inst/test-data/projects/README.md @@ -8,12 +8,8 @@ Steps to recreate on a fresh server Tests are case-sensitive. 1. 'unittestphifree': First name = "Unit Test"; Last name "Phi Free". 1. 'unittestphifree-dag1': First name = "Unit Test"; Last name "PHI Free DAG1" -1. Install plugins - 1. Copy from [source](https://github.com/OuhscBbmc/REDCapR/tree/main/utility/plugins) - 1. Change the `project_id` value at the bottom of each php file. - 1. Move to destination directory - 1. Update [plugin-redirection.yml](https://github.com/OuhscBbmc/REDCapR/blob/main/inst/misc/plugin-redirection.yml) 1. Copy all the projects to the new server + (I find it easier to walk down the credential file as I add them.) 1. Assign the user (created above) to the "api" user role for each project. 1. Add a token for each project 1. Create a credential file for the new project @@ -24,3 +20,8 @@ Steps to recreate on a fresh server 1. Update the corresponding `token` 1. Leave `username` and `comment` untouched 1. Add new entries to [project-redirection.yml](https://github.com/OuhscBbmc/REDCapR/blob/main/inst/misc/project-redirection.yml) +1. Install plugins + 1. Copy from [source](https://github.com/OuhscBbmc/REDCapR/tree/main/utility/plugins) + 1. Change the `project_id` value at the bottom of each php file. + 1. Move to destination directory + 1. Update [plugin-redirection.yml](https://github.com/OuhscBbmc/REDCapR/blob/main/inst/misc/plugin-redirection.yml) diff --git a/inst/test-data/projects/simple/README.md b/inst/test-data/projects/simple/README.md new file mode 100644 index 00000000..ed02b15a --- /dev/null +++ b/inst/test-data/projects/simple/README.md @@ -0,0 +1,32 @@ +simple Project +======= + +Steps to establish this project on a new server + +1. Click the "New Project" button on the home screen + (ie, it has green letters and a "+") +1. Name it "REDCapR: simple" +1. Designate the purpose as "Operational Support" +1. Upload [project.xml](project.xml) +1. In the "Health" instrument, save each of the five records, + so `bmi` is populated + (ie, it's a calculated field) +1. In records 4 & 5, in the `comments`, add an extra line break after the first line if necessary. + Sometimes consecutive line breaks are combined when the xml is imported. + + 1. Record 4 should look like + + ``` + This record doesn't have a DAG assigned + + So call up Trudy on the telephone + Send her a letter in the mail + ``` + + 1. Record 5 should look like + + ``` + Had a hand for trouble and a eye for cash + + He had a gold watch chain and a black mustache + ``` diff --git a/inst/test-data/projects/simple/project-old.xml b/inst/test-data/projects/simple/project-old.xml new file mode 100644 index 00000000..32afe7d4 --- /dev/null +++ b/inst/test-data/projects/simple/project-old.xml @@ -0,0 +1,542 @@ + + + + + REDCapR: simple + This file contains the metadata, events, and data for REDCap project "REDCapR: simple". + REDCapR: simple + 1 + + + 1 + 1 + 0 + 0 + + 0 + 1 + 0 + 0 + 1 + + 2 + 0 + 4 + + + + 0 + + ALL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Study ID + + + Data Access Group + + + First Name + + + Last Name + + + Street, City, State, ZIP + + + Phone number + + + E-mail + + + Date of birth + + + Age (years) + + + Gender + + + + Complete? + + + + Height (cm) + + 130 + The value you provided is outside the suggested range (130 - 215). This value is admissible, but you may wish to double check it. + + + 215 + The value you provided is outside the suggested range (130 - 215). This value is admissible, but you may wish to double check it. + + + + Weight (kilograms) + + 35 + The value you provided is outside the suggested range (35 - 200). This value is admissible, but you may wish to double check it. + + + 200 + The value you provided is outside the suggested range (35 - 200). This value is admissible, but you may wish to double check it. + + + + BMI + + + Comments + + + Mugshot + + + Complete? + + + + Race (Select all that apply) + + + + Race (Select all that apply) + + + + Race (Select all that apply) + + + + Race (Select all that apply) + + + + Race (Select all that apply) + + + + Race (Select all that apply) + + + + Ethnicity + + + + Are interpreter services requested? + + + + Complete? + + + + Female + Male + + + Incomplete + Unverified + Complete + + + Incomplete + Unverified + Complete + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Unknown / Not Reported + NOT Hispanic or Latino + Hispanic or Latino + + + True + False + + + Incomplete + Unverified + Complete + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/inst/test-data/projects/simple/project.xml b/inst/test-data/projects/simple/project.xml index 622baf35..ddbe5766 100644 --- a/inst/test-data/projects/simple/project.xml +++ b/inst/test-data/projects/simple/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Target Simple Static -see https://github.com/OuhscBbmc/REDCapR - This file contains the metadata, events, and data for REDCap project "REDCapR Target Simple Static -see https://github.com/OuhscBbmc/REDCapR". - REDCapR Target Simple Static -see https://github.com/OuhscBbmc/REDCapR + REDCapR: simple + This file contains the metadata, events, and data for REDCap project "REDCapR: simple". + REDCapR: simple 1 @@ -13,13 +13,15 @@ 0 0 + 0 1 0 0 1 + 0 0 - 0 + 4 @@ -35,11 +37,11 @@ - - + + - + @@ -222,27 +224,27 @@ Unverified Complete - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked @@ -262,7 +264,7 @@ - + diff --git a/tests/test-all.R b/tests/test-all.R index 32ba90dc..d8001886 100644 --- a/tests/test-all.R +++ b/tests/test-all.R @@ -11,3 +11,7 @@ testthat::test_check("REDCapR") # Sys.setenv("redcapr_test_server" = "bbmc") # message("Using test server '", Sys.getenv("redcapr_test_server"), "'.") # testthat::test_check("REDCapR") + +# Sys.setenv("redcapr_test_server" = "coph") +# message("Using test server '", Sys.getenv("redcapr_test_server"), "'.") +# testthat::test_check("REDCapR") From 0ccd3c06699bc2189c21c86539fd56df64266666 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Sun, 3 Nov 2024 17:03:06 -0600 Subject: [PATCH 02/40] longitudinal ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../projects/longitudinal/project.xml | 21 ++++++++++++------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 5915bb8c..65329008 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -5,7 +5,7 @@ # redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2298","6F37356C18D9A9F5E1248B6D1E7FAB9B","simple" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","longitudinal" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2299","7AFF619FA04E66CF092F8472D508C6FF","longitudinal" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","simple-write" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","russian" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","empty-rows" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index e0ee1a52..205b458f 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -72,7 +72,7 @@ credential_file: "misc/coph.credentials" projects: - simple: 2298 - - longitudinal: 0 + - longitudinal: 2299 - simple-write: 0 - russian: 0 - empty-rows: 0 diff --git a/inst/test-data/projects/longitudinal/project.xml b/inst/test-data/projects/longitudinal/project.xml index 97cda220..abbfa948 100644 --- a/inst/test-data/projects/longitudinal/project.xml +++ b/inst/test-data/projects/longitudinal/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Target Longitudinal Arm -see https://github.com/OuhscBbmc/REDCapR - This file contains the metadata, events, and data for REDCap project "REDCapR Target Longitudinal Arm -see https://github.com/OuhscBbmc/REDCapR". - REDCapR Target Longitudinal Arm -see https://github.com/OuhscBbmc/REDCapR + REDCapR: longitudinal + This file contains the metadata, events, and data for REDCap project "REDCapR: longitudinal". + REDCapR: longitudinal 0 @@ -13,13 +13,15 @@ 0 0 + 0 1 0 0 1 + 0 0 - 0 + 4 @@ -27,8 +29,11 @@ ALL + + + - + @@ -1107,7 +1112,7 @@ - + From 5a0523fe2f16b1292cd46fe4a2560da1eb470bb2 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Sun, 3 Nov 2024 17:16:12 -0600 Subject: [PATCH 03/40] simple: write ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../projects/simple-write/project.xml | 44 ++++++++----------- 3 files changed, 20 insertions(+), 28 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 65329008..feb7ba0f 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -6,7 +6,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2298","6F37356C18D9A9F5E1248B6D1E7FAB9B","simple" "https://redcap.ouhsc.edu/redcap/api/","myusername","2299","7AFF619FA04E66CF092F8472D508C6FF","longitudinal" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","simple-write" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2300","6FE8CDC56065D234A7CF2C65AA9106D3","simple-write" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","russian" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","empty-rows" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","single-column" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 205b458f..43dee77a 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -73,7 +73,7 @@ projects: - simple: 2298 - longitudinal: 2299 - - simple-write: 0 + - simple-write: 2300 - russian: 0 - empty-rows: 0 - single-column: 0 diff --git a/inst/test-data/projects/simple-write/project.xml b/inst/test-data/projects/simple-write/project.xml index b3467fb2..2790f5ab 100644 --- a/inst/test-data/projects/simple-write/project.xml +++ b/inst/test-data/projects/simple-write/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Target Simple -Write Data - This file contains the metadata, events, and data for REDCap project "REDCapR Target Simple -Write Data". - REDCapR Target Simple -Write Data + REDCapR: simple-write + This file contains the metadata, events, and data for REDCap project "REDCapR: simple-write". + REDCapR: simple-write 1 @@ -13,15 +13,17 @@ 0 0 + 0 1 0 0 1 + 0 0 - 0 + 4 - see https://github.com/OuhscBbmc/REDCapR + 0 @@ -35,7 +37,7 @@ - + @@ -213,27 +215,27 @@ Unverified Complete - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked @@ -249,7 +251,7 @@ - + @@ -260,8 +262,6 @@ - - @@ -312,8 +312,6 @@ - - @@ -364,8 +362,6 @@ - - @@ -416,11 +412,9 @@ - - - + @@ -471,8 +465,6 @@ Send her a letter in the mail"/> - - From f943a55e71eb7508b3bee37b6a0ce2554ebd1ca0 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Sun, 3 Nov 2024 17:48:23 -0600 Subject: [PATCH 04/40] russian ref #544 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- inst/test-data/projects/russian/project.xml | 5821 +++++++++++++++++++ inst/test-data/projects/russian/project.zip | Bin 91102 -> 0 bytes 4 files changed, 5823 insertions(+), 2 deletions(-) create mode 100644 inst/test-data/projects/russian/project.xml delete mode 100644 inst/test-data/projects/russian/project.zip diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index feb7ba0f..4e5a72fa 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -7,7 +7,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2298","6F37356C18D9A9F5E1248B6D1E7FAB9B","simple" "https://redcap.ouhsc.edu/redcap/api/","myusername","2299","7AFF619FA04E66CF092F8472D508C6FF","longitudinal" "https://redcap.ouhsc.edu/redcap/api/","myusername","2300","6FE8CDC56065D234A7CF2C65AA9106D3","simple-write" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","russian" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2301","0172DF46EE90004E567F55E2D1BCD3D5","russian" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","empty-rows" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","single-column" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","super-wide-1" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 43dee77a..39d80395 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -74,7 +74,7 @@ - simple: 2298 - longitudinal: 2299 - simple-write: 2300 - - russian: 0 + - russian: 2301 - empty-rows: 0 - single-column: 0 - super-wide-1: 0 diff --git a/inst/test-data/projects/russian/project.xml b/inst/test-data/projects/russian/project.xml new file mode 100644 index 00000000..05db4ab2 --- /dev/null +++ b/inst/test-data/projects/russian/project.xml @@ -0,0 +1,5821 @@ + + + + + REDCapR: russian + This file contains the metadata, events, and data for REDCap project "REDCapR: russian". + REDCapR: russian + 0 + + + 1 + 1 + 0 + 0 + + 0 + 1 + 0 + 0 + 1 + + 0 + 0 + 4 + + + + 0 + + ALL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Record ID + + + Дата / Date + + + Интервьюер / Interviewer + + + Откуда участница узнала о проекте: / Where a participant found out about the project: + + + + если "из другого источника", отметьте какой: / Other (specify): + + + 1. Сколько Вам полных лет? / How old are you? + + 18 + The value you provided is outside the suggested range (18 - 44). This value is admissible, but you may wish to double check it. + + + 44 + The value you provided is outside the suggested range (18 - 44). This value is admissible, but you may wish to double check it. + + + + 2. Насколько вы знаете, беременны ли Вы в настоящее время? / As far as you know, are you pregnant now? + + + + 3. За последние 6 месяцев имели ли Вы один или более вагинальных половых контактов с мужчиной? / Have you had at least one vaginal sexual intercourse with male partner in the last 6 months? + + + + + + + + 4. Не могли бы вы поделиться причиной, по которой Вы отказываетесь от участия в исследовании? / Could you please share with us why do you refuse from participating in the study? + + + + Другая причина (отметьте какая) / Other reason (specify) + + + 5. За последние 12 месяцев проходили ли Вы тестирование на ВИЧ-инфекцию? / Have you been tested for HIV in the last 12 months? + + + + 6. Была ли у Вас когда-либо выявлена ВИЧ-инфекция? / Have you ever been diagnosed with HIV infection? + + + + 7. За последние 12 месяцев была ли у Вас выявлена какая-либо инфекция, передаваемая половым путём (ИППП), такая как сифилис, гонорея или хламидиоз? / In the last 12 months have you been diagnosed with any sexually transmitted infections (STI), such as syphilis, gonorrhea or chlamydia? + +покажите участнице карточку со списком ИППП - карточка № 1 / show the card with the STI list to the participant - card#1 + + + + 8. За последние 3 месяца имели ли Вы половые контакты (вагинальные или анальные) без презерватива? / Have you had sexual intercourse (vaginal or anal) without condom in the last 3 months? + + + + 9. Сколько половых партнёров было у Вас за последние 12 месяцев? / How many sexual partners did you have in the last 12 months? + + 1 + The value you provided is outside the suggested range (1 - no limit). This value is admissible, but you may wish to double check it. + + + + 10. У Вашего партнера была когда-либо обнаружена ВИЧ-инфекция? / Has your partner ever been diagnosed with HIV infection? + + + + 11. За последние 12 месяцев Ваш партнер проходил тестирование на ВИЧ-инфекцию? / Has your partner been tested for HIV infection in the last 12 months? + + + + 12. Насколько Вы знаете ... Был ли когда-нибудь Ваш партнер в заключении (в тюрьме)? / As far as you know ... Has your partner ever been incarcerated (imprisoned)? + + + + + + 13. Проводилось ли ему когда-либо переливание крови или иных продуктов крови? / Did he ever receive a transfusion of blood or blood products? + + + + + 14. Употреблял ли он когда-либо внутривенные наркотики? / Has he ever used injecting drugs? + + + + 15. За последние 12 месяцев у Вашего партнера ... + +... была обнаружена инфекция, передаваемая половым путем, или наблюдались выделения из половых органов, похожие на симптомы ИППП? / In the last 12 months did your partner have ... ... been diagnosed with sexually transmitted infections or have abnormal discharge from his penis or any other symptom that might be a sign of an STI? + + + + + + 16. ... были другие сексуальные партнерши, кроме Вас? / ... had sex with other female partners but you? + + + + 17. ... был опыт сексуальных отношений с мужчинами? / ... had sex with male partners? + + + + 18. < не зачитывать участнице, интервьюер заполняет самостоятельно > СООТВЕТСТВИЕ УЧАСТНИЦЫ КРИТЕРИЯМ ВКЛЮЧЕНИЯ В ПОВЕДЕНЧЕСКИЙ ЭКСПЕРИМЕНТ: / < Interviewer, do not read to the participant, make notes by yourself > ELIGIBILITY OF THE PARTICIPANT FOR THE EXPERIMENTAL PART:18. < не зачитывать участнице, интервьюер заполняет самостоятельно > СООТВЕТСТВИЕ УЧАСТНИЦЫ КРИТЕРИЯМ ВКЛЮЧЕНИЯ В ПОВЕДЕНЧЕСКИЙ ЭКСПЕРИМЕНТ: / < Interviewer, do not read to the participant, make notes by yourself > ELIGIBILITY OF THE PARTICIPANT FOR THE EXPERIMENTAL PART: + + + + 19. РАНДОМИЗАЦИЯ / RANDOMIZATION + + + + RANDOMIZATION ID + + + 20. ПРЕДЛОЖЕНИЕ ТЕСТИРОВАНИЯ / TESTING OFFER + + + + 21. ВИЧ-инфекция / HIV infection + + + + 22. Глюкоза / Blood Sugar + + + + 23. Гемоглобин / Hemoglobin + + + + 24. Холестерин / Cholesterol + + + + Complete? + + + + 1.1. Из этих причин, какая является самой важной для Вас? / Of this reason which was the most important for you? + + + + если другая причина (19), впишите / If the other reason (19), specify + + + 1.2. Из этих причин, какая является второй по важности для Вас? / Of this reason which was the second important for you? + + + + если другая причина (19), впишите / If the other reason (19), specify + + + 1.3. Из этих причин, какая является третьей по важности для Вас? / Of this reason which was the third important for you? + + + + если другая причина (19), впишите / If the other reason (19), specify + + + 2.1. Из этих причин, какая является самой важной для Вас? / Of this reason which was the most important for you? + + + + если другая причина (15), впишите / If the other reason (15), specify + + + 2.2. Из этих причин, какая является второй по важности для Вас? / Of this reason which was the second important for you? + + + + если другая причина (15), впишите / If the other reason (15), specify + + + 2.3. Из этих причин, какая является третьей по важности для Вас? / Of this reason which was the third important for you? + + + + если другая причина (15), впишите / If the other reason (15), specify + + + Complete? + + + + 1. До сегодняшнего дня сколько раз в жизни Вы тестировались на ВИЧ-инфекцию? / Before today, how many times you have been tested for HIV infection during the lifetime? + + + 2. Сколько месяцев назад Вы в последний раз проходили тестирование на ВИЧ-инфекцию? / How many months ago you have been tested for HIV? + + + 3.1. Из этих причин, какая являлась самой важной для Вас? / Of this reason which was the most important for you? + + + + если другая причина (20), впишите / If the other reason (20), specify + + + 3.2. Из этих причин, какая являлась второй по важности для Вас? / 3.2. Of this reason which was the second important for you? + + + + если другая причина (20), впишите / If the other reason (20), specify + + + 3.3. Из этих причин, какая являлась третьей по важности для Вас? / Of this reason which was the third important for you? + + + + если другая причина (20), впишите / If the other reason (20), specify + + + 4. Когда Вы сдавали анализы на ВИЧ-инфекцию в последний раз, было это именно Вашим желанием или Вас направили на тестирование? / The last time you take HIV test, was it your own wish or you were referred for the testing? + + + + интервьюер, уточните кем была направлена участница на тестирование / interviewer, clarify who refer the participant for HIV testing + + + 5.1. Из этих причин, какая являлась самой важной для Вас? / Of this reason which was the most important for you? + + + + если другая причина (22), впишите / If the other reason (22), specify + + + 5.2. Из этих причин, какая являлась второй по важности для Вас? / Of this reason which was the second important for you? + + + + если другая причина (22), впишите / If the other reason (22), specify + + + 5.3. Из этих причин, какая являлась третьей по важности для Вас? / Of this reason which was the third important for you? + + + + если другая причина (22), впишите / If the other reason (22), specify + + + 6. Укажите, пожалуйста, место, где Вы проходили тестирование на ВИЧ-инфекцию в последний раз? / Where did you take test for HIV infection last time? + + + + Другое (впишите) / Other (specify) + + + 7. Проводилось ли с Вами дотестовое консультирование во время проведения тестирования на ВИЧ-инфекцию? (Под дотестовым консультированием понимается специфическая беседа, проводимая специалистом до взятия крови для тестирования, в ходе которой обсуждаются причины обращения пациента на обследование, его знания о ВИЧ, путях инфицирования и индивидуальных способах профилактики, а также его поведение в плане возможных рисков заражения ВИЧ). / Did you have counseling before HIV testing? (Here I mean that some healthcare provider talk to the patient before HIV testing to discuss their reason for taking HIV test, patient's knowledge about HIV, ways of HIV transmission and prevention as well as his/her risky behaviors in relation to possible HIV contamination). + + + + 8. Если проводилось, кто проводил дотестовое консультирование? / If you had, who was conducting counseling before HIV testing? + + + + Другое (впишите) / Other (specify) + + + 9. Знаете ли Вы результат своего последнего тестирования на ВИЧ? / Do you know the result of your last HIV test? + + + + 10. Проводилось ли с Вами послетестовое консультирование в момент сообщения Вам результата тестирования на ВИЧ-инфекцию? (Под послетестовым консультированием понимается специфическая беседа, проводимая специалистом во время сообщения результата тестирования на ВИЧ, включающая разъяснение значения результата теста, а также обсуждение дальнейших путей снижения риска заражения ВИЧ и (или) лечения). / Did you have counseling after HIV testing while being told your test result? (Here I mean that some healthcare provider talk to the patient after HIV testing while informing them about their test result to explain result meaning and to discuss possible ways of HIV risk reduction and (or) treatment). + + + + 11. Если проводилось, кто проводил послетестовое консультирование? / If you had, who was conducting counseling after HIV testing? + + + + Другое (впишите) / Other (specify) + + + 12. Каково было Ваше общие впечатление от процедуры тестирования на ВИЧ-инфекцию? / What was your impression of the procedure of testing for HIV infection? + + + + 14. Рассказали ли Вы о результате кому-нибудь? / Did you share the result with someone? + + + + 14. Рассказали ли Вы о результате кому-нибудь? / Did you share the result with someone? + + + + 14. Рассказали ли Вы о результате кому-нибудь? / Did you share the result with someone? + + + + 14. Рассказали ли Вы о результате кому-нибудь? / Did you share the result with someone? + + + + 14. Рассказали ли Вы о результате кому-нибудь? / Did you share the result with someone? + + + + 14. Рассказали ли Вы о результате кому-нибудь? / Did you share the result with someone? + + + + 14. Рассказали ли Вы о результате кому-нибудь? / Did you share the result with someone? + + + + 14. Рассказали ли Вы о результате кому-нибудь? / Did you share the result with someone? + + + + 14. Рассказали ли Вы о результате кому-нибудь? / Did you share the result with someone? + + + + Другое (впишите) / Other (specify) + + + Complete? + + + + 15. В какие учреждения Вы обычно обращаетесь в случае, когда Вам необходима медицинская помощь, либо консультация относительно вашего здоровья? / Where do usually apply for a medical help or advice about your health when you need it? + + + + другое учреждение (впишите) / other institution (specify) + + + 16. В какие учреждения Вы обычно обращаетесь за специализированной медицинской помощью, либо консультацией относительно женского здоровья? / Where do you apply for a specialized medical help or advice related to woman health? + + + + 17. Есть ли у Вас возможность получать медицинскую помощь на платной основе? / Can you afford to pay for a medical aid? + + + + 18. Есть ли среди Ваших друзей и знакомых ВИЧ-инфицированные люди? / Do you have HIV-positive persons among the people you know? + + + + 19. Обсуждали ли Вы с кем-нибудь (другом или кем-то ещё) вопросы, связанные с ВИЧ/СПИД? / Have you discussed HIV/AIDS with anybody (friend or someone else)? + + + + 20. Как Вы считаете, в течение последних 12 месяцев, насколько был велик Ваш риск заразиться ВИЧ? / In the last 12 months, from your point of view, how high was your risk of getting HIV infection? + + + + 21. Как Вы считаете, сейчас Вы находитесь в зоне риска заражения ВИЧ? / How do you suppose, are you at risk of HIV infection now? + + + + 22. Почему Вы не считаете себя в зоне риска заражения ВИЧ? Посмотрите на список возможных причин. Выберите самую важную причину или предложите свою. / Why do you suppose that you are not at risk of HIV? Look at the list of possible reasons. Choose the most relevant for you or offer your own. + + + + Другая причина (впишите) / Other reason (specify) + + + 23. Почему Вы считаете себя в зоне риска заражения ВИЧ? Посмотрите на список возможных причин. Выберите самую важную причину или предложите свою. / Why do you suppose that you are at risk of HIV? Look at the list of possible reasons. Choose the main reason or offer your own. + + + + Другая причина (впишите) / Other reason (specify) + + + 24. В течение последних 90 дней, использовали ли Вы какие-либо методы эффективной контрацепции? / In the past 90 days, did you use any methods of efficient contraception? + + + + 25. За последние 90 дней по какой причине Вы не предохранялись (выберите одну, основную причину) / Which was the main reason why you did not use contraception? (Check one, the main reason) + + + + Другое (укажите) / Other (specify) + + + 26. В течение последних 90 дней, случалось ли, что у Вас был половой акт без любого предохранения (презерватив, таблетки или другой эффективный метод)? (календарный метод или прерванный половой акт или кормление грудью, -не считаются эффективными методами предохранения от беременности). / В In the past 90 days, have you had vaginal intercourse without using any birth control (were not using pills, condoms, IUD or other effective contraception)? (Note, that rhythm, withdrawal or recent delivery/breastfeeding are not effective contraception methods.) + + + + Complete? + + + + 27. Курите ли Вы? / Do you smoke? + + + + 28. В среднем за последние 90 дней сколько дней в неделю Вы курили? / On average in the last 90 days, how many days per week did you smoke? + + 0 + The value you provided is outside the suggested range (0 - 7). This value is admissible, but you may wish to double check it. + + + 7 + The value you provided is outside the suggested range (0 - 7). This value is admissible, but you may wish to double check it. + + + + 29. Если ответ на вопрос №28 > дней в неделю, то есть женщина курит, но не каждую неделю, спросите: Сколько дней из последних 90 Вы курили: / If answer for question #28 is "0" days per week, that is, woman smoke, but not every week, ask: How many days in the last 90 days did you smoke?:29. Если ответ на вопрос №28 << 0>> дней в неделю, то есть женщина курит, но не каждую неделю, спросите: Сколько дней из последних 90 Вы курили: / If answer for question #28 is "0" days per week, that is, woman smoke, but not every week, ask: How many days in the last 90 days did you smoke?: + + 0 + The value you provided is outside the suggested range (0 - 90). This value is admissible, but you may wish to double check it. + + + 90 + The value you provided is outside the suggested range (0 - 90). This value is admissible, but you may wish to double check it. + + + + 30. В те дни, когда Вы курили, сколько сигарет в среднем Вы выкуривали за день? / On days when smoked, how many cigarettes on average did you smoke each day? + + + 31. Как часто Вы употребляете алкогольные напитки? / How often do you have a drink containing alcohol? + + + + 32. Какова Ваша обычная доза алкогольных напитков за день? / How many drinks containing alcohol do you have on a typical day when you are drinking? + + + + 33. Как часто Вы выпиваете 4 или более доз за один раз? / How often do you have four or more drinks on one occasion? + + + + 34. Как часто за последний год Вы находили, что не способны остановиться, начав пить? / How often during the last year have you found that you were not able to stop drinking once you had started? + + + + 35. Как часто за последний год Вы из-за употребления алкоголя не сделали то, что обычно ожидается, что Вы сделаете? / How often during the last year have you failed to do what was normally expected from you because of drinking? + + + + 36. Как часто за последний год Вам необходимо было выпить утром, чтобы прийти в себя после педшествующей сильной выпивки? / How often during the last year have you needed a first drink in the morning to get yourself going after a heavy drinking session? + + + + 37. Как часто за последний год у Вас было чувство вины и (или) раскаяния после употребления алкоголя? / How often during the last year have you had a feeling of guilt or remorse after drinking? + + + + 38. Как часто за последний год Вы были неспособны вспомнить, что было накануне, из-за того, что Вы выпивали? / How often during the last year have you been unable to remember what happened the night before because you had been drinking? + + + + 39. Являлось ли когда-нибудь Ваше употребление алкоголя причиной телесных повреждений у Вас или других людей? / Have you or someone else been injured as a result of your drinking? + + + + 40. Случалось ли, что Ваш родственник, знакомый, врач или другой медицинский работник проявлял озабоченность по поводу Вашего употребления алкоголя либо рекомендовал уменьшить употребление алкоголя? / 40. Has a relative, friend, doctor, or other health care worker been concerned about your drinking or suggested you cut down? + + + + 41. За последние 3 месяца в среднем сколько дней в неделю Вы употребляли алкогольные напитки? / On average in the last 90 days, how many days per week did you drink? + + 0 + The value you provided is outside the suggested range (0 - 7). This value is admissible, but you may wish to double check it. + + + 7 + The value you provided is outside the suggested range (0 - 7). This value is admissible, but you may wish to double check it. + + + + 42. Если ответ на вопрос № 41 > дней в неделю, то есть женщина пьет, но не каждую неделю, спросите: Сколько дней из прошедших 3 месяцев употребляли любые алкогольные напитки: / If question # 41 was answered > days per week, that is the woman drink, but not every week, ask: How many days out of the past 3 months you drink any alcohol:42. Если ответ на вопрос № 41 << 0>> дней в неделю, то есть женщина пьет, но не каждую неделю, спросите: Сколько дней из прошедших 3 месяцев употребляли любые алкогольные напитки: / If question # 41 was answered << 0>> days per week, that is the woman drink, but not every week, ask: How many days out of the past 3 months you drink any alcohol: + + + 43. За последние 3 месяца в день когда Вы употребляли алкоголь, сколько в среднем стандартных доз Вы употребляли? / When you did drink, on average, how many standard drinks would you have had in a day? + + + 44. За последние три месяца сколько раз было, что Вы выпивали 4 или более стандартных доз за один раз (примерно за 2 часа)? / In the past 3 months how often did you have 4 or more drinks on one occasion (during approximately 2 hours)? + + + Сколько Вам было лет, когда Вы впервые попробовали / How old were you when you first tried + +45.1. Успокоительные, включая транквилизаторы (напр. валиум, барбитураты или т.п. без рецепта (кроме валерианы и тп.) / Downers including tranquilizers, like valium, barbiturates or others (do not count valerian root, etc) + + + + Сколько Вам было лет, когда Вы впервые попробовали / How old were you when you first tried + +45.2. Марихуана/конопля / Marijuana/Cannabis + + + + Сколько Вам было лет, когда Вы впервые попробовали / How old were you when you first tried + +45.3. Кокаин/крэк / Cocaine/Crack + + + + Сколько Вам было лет, когда Вы впервые попробовали / How old were you when you first tried + +45.4. Амфетамины/спид, другие психостимуляторы / Amphetamines/ Speed, ice + + + + Сколько Вам было лет, когда Вы впервые попробовали / How old were you when you first tried + +45.5. ЛСД, PCP, "грибы" и другие галлюциногены / LSD, PCP, "mushrooms" and other hallucinogens + + + + Сколько Вам было лет, когда Вы впервые попробовали / How old were you when you first tried + +45.6. Героин (или метадон) / Heroin (or Methadone) + + + + Сколько Вам было лет, когда Вы впервые попробовали / How old were you when you first tried + +45.7. Сильные обезболивающие, например, морфий, кодеин, т.п. без назначения врача / Strong painkillers like morphine or codeine and other that were not prescribed for you + + + Сколько Вам было лет, когда Вы впервые попробовали / How old were you when you first tried + +45.8. Экстази / Ecstasy + + + + Сколько Вам было лет, когда Вы впервые попробовали / How old were you when you first tried + +45.9. Ингалянты - вдыхаемые например, клей или краска / Inhalants- sniffed things like glue or paint + + + + Сколько Вам было лет, когда Вы впервые попробовали / How old were you when you first tried + +45.10. Другое / Other + + + + Другое, уточните / Other, specify + + + 45.1. Успокоительные, включая транквилизаторы (напр. валиум, барбитураты или т.п. без рецепта (кроме валерианы и тп.) / Downers including tranquilizers, like valium, barbiturates or others (do not count valerian root, etc) + + + + 45.1. Успокоительные, включая транквилизаторы (напр. валиум, барбитураты или т.п. без рецепта (кроме валерианы и тп.) / Downers including tranquilizers, like valium, barbiturates or others (do not count valerian root, etc) + + + + 45.1. Успокоительные, включая транквилизаторы (напр. валиум, барбитураты или т.п. без рецепта (кроме валерианы и тп.) / Downers including tranquilizers, like valium, barbiturates or others (do not count valerian root, etc) + + + + 45.1. Успокоительные, включая транквилизаторы (напр. валиум, барбитураты или т.п. без рецепта (кроме валерианы и тп.) / Downers including tranquilizers, like valium, barbiturates or others (do not count valerian root, etc) + + + + 45.2. Марихуана/конопля / Marijuana/Cannabis + + + + 45.2. Марихуана/конопля / Marijuana/Cannabis + + + + 45.2. Марихуана/конопля / Marijuana/Cannabis + + + + 45.2. Марихуана/конопля / Marijuana/Cannabis + + + + 45.3. Кокаин/крэк / Cocaine/Crack + + + + 45.3. Кокаин/крэк / Cocaine/Crack + + + + 45.3. Кокаин/крэк / Cocaine/Crack + + + + 45.3. Кокаин/крэк / Cocaine/Crack + + + + 45.4. Амфетамины/спид, другие психостимуляторы / Amphetamines/ Speed, ice + + + + 45.4. Амфетамины/спид, другие психостимуляторы / Amphetamines/ Speed, ice + + + + 45.4. Амфетамины/спид, другие психостимуляторы / Amphetamines/ Speed, ice + + + + 45.4. Амфетамины/спид, другие психостимуляторы / Amphetamines/ Speed, ice + + + + 45.5. ЛСД, PCP, "грибы" и другие галлюциногены / LSD, PCP, "mushrooms" and other hallucinogens + + + + 45.5. ЛСД, PCP, "грибы" и другие галлюциногены / LSD, PCP, "mushrooms" and other hallucinogens + + + + 45.5. ЛСД, PCP, "грибы" и другие галлюциногены / LSD, PCP, "mushrooms" and other hallucinogens + + + + 45.5. ЛСД, PCP, "грибы" и другие галлюциногены / LSD, PCP, "mushrooms" and other hallucinogens + + + + 45.6. Героин (или метадон) / Heroin (or Methadone) + + + + 45.6. Героин (или метадон) / Heroin (or Methadone) + + + + 45.6. Героин (или метадон) / Heroin (or Methadone) + + + + 45.6. Героин (или метадон) / Heroin (or Methadone) + + + + 45.7. Сильные обезболивающие, например, морфий, кодеин, т.п. без назначения врача / Strong painkillers like morphine or codeine and other that were not prescribed for you + + + + 45.7. Сильные обезболивающие, например, морфий, кодеин, т.п. без назначения врача / Strong painkillers like morphine or codeine and other that were not prescribed for you + + + + 45.7. Сильные обезболивающие, например, морфий, кодеин, т.п. без назначения врача / Strong painkillers like morphine or codeine and other that were not prescribed for you + + + + 45.7. Сильные обезболивающие, например, морфий, кодеин, т.п. без назначения врача / Strong painkillers like morphine or codeine and other that were not prescribed for you + + + + 45.8. Экстази / Ecstasy + + + + 45.8. Экстази / Ecstasy + + + + 45.8. Экстази / Ecstasy + + + + 45.8. Экстази / Ecstasy + + + + 45.9. Ингалянты - вдыхаемые например, клей или краска / Inhalants- sniffed things like glue or paint + + + + 45.9. Ингалянты - вдыхаемые например, клей или краска / Inhalants- sniffed things like glue or paint + + + + 45.9. Ингалянты - вдыхаемые например, клей или краска / Inhalants- sniffed things like glue or paint + + + + 45.9. Ингалянты - вдыхаемые например, клей или краска / Inhalants- sniffed things like glue or paint + + + + 45.10. Другое / Other + + + + 45.10. Другое / Other + + + + 45.10. Другое / Other + + + + 45.10. Другое / Other + + + + 47. Употребляли ли Вы когда-либо наркотики ВНУТРИВЕННО (в виде инъекций)? / Have you ever used drugs through INJECTION? + + + + 48.1. Хламидии / Chlamydia + + + + 48.2. Гонорея (триппер) / Gonorrhea (clap) + + + + 48.3.Генитальный герпес / Genital herpes + + + + 48.4.Сифилис / Syphilis + + + + 48.5.Бородавки на половых органах возле влагалища, прямой кишки или шейки матки или же папиллома / Gynecological warts near the vagina or rectum or on the cervix or human papilloma virus + + + + 48.6.Трихомониаз / Trichomoniasis + + + + 48.7.Лобковые вши / Pubic lice (Crabs) + + + + 48.8.Гепатит B / Hepatitis B + + + + 48.9.Гепатит C / Hepatitis C + + + + 48.10. Другое заболевание, полученное половым путем (кроме грибковых заболеваний) + + + + Другое заболевание, полученное половым путем (кроме грибковых заболеваний) (укажите какое) / Any other disease that you have gotten from having sex (exclude yeast infections), specify: + + + Complete? + + + + 49. Сколько Вам было лет когда у Вас был первый вагинальный половой контакт с мужчиной? / How old were you the first time you had sexual intercourse with men? + + + 50. Ваш первый вагинальный половой контакт с мужчиной был ... / Was the first time you had sex voluntary or involuntary... + + + + 51. Сколько половых партнёров было у Вас за последние 3 месяца? / How many sexual partners have you had in the last 3 months? + + + 52. Сколько половых партнёров было у Вас за последние 12 месяцев? (это включает партнеров за последние 3 месяца) / How many sexual partners have you had in the last 12 months? (this includes partners in the past 3 months) + + + + + 53. За последние 12 месяцев какое максимальное число партнеров у Вас было одновременно? (имеются в виду половые отношения с несколькими партнерами в один период времени). / In the last 12 months what was the maximal number of partners that you had at the same time? (I mean sexual contacts with different men in one period of time). + + + 54. Сколько половых партнёров было у Вас в течение жизни? (это включает партнеров которых назвали за последние 3-12 месяцев) / How many sexual partners have you had in your life? (this includes partners in the past 3-12 months) + + + + + 55. Сколько среди Ваших половых партнёров за последние 3 месяца было мужчин? / How many men did you have sexual intercourse with in the last 3 months? + + + 56. Как Вы определите Ваши отношения с этим партнёром? (выберите ОДНУ из категорий) (слушайте, что отвечает женщина и отметьте ниже, если женщина спросит о вариантах ответа, зачитайте) / How would you define your relationship with this partner? (choose ONE category, listen what woman say and mark below, if the woman ask about possible answers, read) + + + + Другое (уточните) / Other (specify) + + + 57. Сколько раз за последние 3 месяца у Вас был ВАГИНАЛЬНЫЙ секс с этим партнёром (если ни разу, укажите >)? / In the last 3 months how many times you had VAGINAL sex with this partner? (If never, mark "0")57. Сколько раз за последние 3 месяца у Вас был ВАГИНАЛЬНЫЙ секс с этим партнёром (если ни разу, укажите << 0>>)? / In the last 3 months how many times you had VAGINAL sex with this partner? (If never, mark "0") + + + 58. Сколько раз во время вагинального секса с этим партнёром Вы использовали презерватив от начала до конца (если ни разу, укажите >)? / How many times during vaginal sex with this partner you used condom from the beginning till the end (If never, mark "0")?58. Сколько раз во время вагинального секса с этим партнёром Вы использовали презерватив от начала до конца (если ни разу, укажите << 0>>)? / How many times during vaginal sex with this partner you used condom from the beginning till the end (If never, mark "0")? + + + 59. Сколько раз перед вагинальным сексом Вы или Ваш партнёр употребляли алкоголь (если ни разу, укажите >)? / How many times before vaginal sex you or your partner used alcohol (If never, mark "0")? 59. Сколько раз перед вагинальным сексом Вы или Ваш партнёр употребляли алкоголь (если ни разу, укажите << 0>>)? / How many times before vaginal sex you or your partner used alcohol (If never, mark "0")? + + + 60. Сколько раз за последние 3 месяца у Вас был АНАЛЬНЫЙ секс с этим партнёром (если ни разу, укажите >)? / In the last 3 months how many times you had ANAL sex with this partner? (If never, mark "0")60. Сколько раз за последние 3 месяца у Вас был АНАЛЬНЫЙ секс с этим партнёром (если ни разу, укажите << 0>>)? / In the last 3 months how many times you had ANAL sex with this partner? (If never, mark "0") + + + 61. Сколько раз во время анального секса с этим партнёром Вы использовали презерватив от начала до конца (если ни разу, укажите >)? / How many times during anal sex with this partner you used condom from the beginning till the end (If never, mark "0")?61. Сколько раз во время анального секса с этим партнёром Вы использовали презерватив от начала до конца (если ни разу, укажите << 0>>)? / How many times during anal sex with this partner you used condom from the beginning till the end (If never, mark "0")? + + + 62. Сколько раз перед анальным сексом Вы или Ваш партнёр употребляли алкоголь (если ни разу, укажите >)? / How many times before anal sex you or your partner used alcohol (If never, mark "0")? 62. Сколько раз перед анальным сексом Вы или Ваш партнёр употребляли алкоголь (если ни разу, укажите << 0>>)? / How many times before anal sex you or your partner used alcohol (If never, mark "0")? + + + 63. Вспомните последний раз когда у Вас был секс с этим партнером и Вы выпивали спиртное. (ИНТЕРВЬЮЕР, отметьте подходящее) / Remember the last time when you had sex with this partner and you drink alcohol (INTERVIEWER, check what apply) + + + + 64. Я хотела бы спросить подробнее... Сколько доз Вы выпили до и во время полового контакта (напишите 0, если не выпивала) / I would like to ask about details... How many drinks You took before and during the sexual contact? (mark 0 if she did not drink) + + + 65. Сколько доз выпил Ваш партнер до и во время полового контакта (напишите 0, если не выпивал) / How many drinks your partner took before and during the sexual contact? (mark 0 if he did not drink) + + + + 66. Насколько Ваше употребление алкоголя повлияло на решение иметь половой контакт? (Интервьюер, дайте участнице карточку № 10) / To what degree your alcohol use influenced on your decision about having sex? (Interviewer, give the card #10 to the participant) + + + + 67. При этой встрече сколько раз у вас был секс? / How many times you had sex in that occasion? + + + 68. Сколько раз из этих < ... > половых актов Вы использовали презерватив (от начала до конца)? / How many times of that < ... > intercourses you used condom (from the beginning till the end)?68. Сколько раз из этих < ... > половых актов Вы использовали презерватив (от начала до конца)? / How many times of that < ... > intercourses you used condom (from the beginning till the end)? + + + 69. Если использовали презерватив, кто был инициатором? / If you used condom, who was initiator? + + + + 70. По Вашему мнению, насколько Ваше употребление алкоголя повлияло на то, использовался или нет презерватив? (Интервьюер, дайте участнице карточку № 10) / From your point of view, to what degree your alcohol use influenced on your decision whether to use condom or not? (Interviewer, give the card #10 to the participant) + + + + 71. Был ли когда-нибудь ваш партнер в заключении (в тюрьме)? / Has your partner ever been incarcerated (imprisoned)? + + + + 72. Проводилось ли ему когда-либо переливание крови или иных продуктов крови? / Did he ever receive a transfusion of blood or blood products? + + + + 73. Употреблял ли он когда-либо внутривенные наркотики? / Has he ever used injecting drugs? + + + + 74.1. За последние 12 месяцев у Вашего партнера была обнаружена инфекция, передаваемая половым путем, или наблюдались выделения из половых органов, похожие на симптомы ИППП? / In the last 12 months did your partner have been diagnosed with sexually transmitted infections or have abnormal discharge from his penis or any other symptom that might be a sign of an STI? + + + + 74.2. За последние 12 месяцев у Вашего партнера были другие сексуальные партнерши, кроме Вас? / In the last 12 months did your partner have sex with other female partners but you? + + + + 74.3. За последние 12 месяцев у Вашего партнера был опыт сексуальных отношений с мужчинами? / In the last 12 months did your partner have sex with male partners? + + + + 75. Насколько Вы знаете, есть ли у него ВИЧ, делал ли он анализ на ВИЧ и какой был результат? (не предлагайте варианты ответа, слушайте и отметьте одно) / As far as you know, whether he has HIV infection, did he take HIV test and what was the result? (do not offer possible answers, listen and check one) + + + + 76. Как Вы определите Ваши отношения с этим партнёром? (выберите ОДНУ из категорий) (слушайте, что отвечает женщина и отметьте ниже, если женщина спросит о вариантах ответа, зачитайте) / How would you define your relationship with this partner? (choose ONE category, listen what woman say and mark below, if the woman ask about possible answers, read) + + + + Другое (уточните) / Other (specify) + + + 77. Сколько раз за последние 3 месяца у Вас был ВАГИНАЛЬНЫЙ секс с этим партнёром (если ни разу, укажите >)? / In the last 3 months how many times you had VAGINAL sex with this partner? (If never, mark "0")77. Сколько раз за последние 3 месяца у Вас был ВАГИНАЛЬНЫЙ секс с этим партнёром (если ни разу, укажите << 0>>)? / In the last 3 months how many times you had VAGINAL sex with this partner? (If never, mark "0") + + + 78. Сколько раз во время вагинального секса с этим партнёром Вы использовали презерватив от начала до конца (если ни разу, укажите >)? / How many times during vaginal sex with this partner you used condom from the beginning till the end (If never, mark "0")?78. Сколько раз во время вагинального секса с этим партнёром Вы использовали презерватив от начала до конца (если ни разу, укажите << 0>>)? / How many times during vaginal sex with this partner you used condom from the beginning till the end (If never, mark "0")? + + + 79. Сколько раз перед вагинальным сексом Вы или Ваш партнёр употребляли алкоголь (если ни разу, укажите >)? / How many times before vaginal sex you or your partner used alcohol (If never, mark "0")? 79. Сколько раз перед вагинальным сексом Вы или Ваш партнёр употребляли алкоголь (если ни разу, укажите << 0>>)? / How many times before vaginal sex you or your partner used alcohol (If never, mark "0")? + + + 80. Сколько раз за последние 3 месяца у Вас был АНАЛЬНЫЙ секс с этим партнёром (если ни разу, укажите >)? / In the last 3 months how many times you had ANAL sex with this partner? (If never, mark "0")80. Сколько раз за последние 3 месяца у Вас был АНАЛЬНЫЙ секс с этим партнёром (если ни разу, укажите << 0>>)? / In the last 3 months how many times you had ANAL sex with this partner? (If never, mark "0") + + + 81. Сколько раз во время анального секса с этим партнёром Вы использовали презерватив от начала до конца (если ни разу, укажите >)? / How many times during anal sex with this partner you used condom from the beginning till the end (If never, mark "0")?81. Сколько раз во время анального секса с этим партнёром Вы использовали презерватив от начала до конца (если ни разу, укажите << 0>>)? / How many times during anal sex with this partner you used condom from the beginning till the end (If never, mark "0")? + + + 82. Сколько раз перед анальным сексом Вы или Ваш партнёр употребляли алкоголь (если ни разу, укажите >)? / How many times before anal sex you or your partner used alcohol (If never, mark "0")? 82. Сколько раз перед анальным сексом Вы или Ваш партнёр употребляли алкоголь (если ни разу, укажите << 0>>)? / How many times before anal sex you or your partner used alcohol (If never, mark "0")? + + + 83. Вспомните последний раз когда у Вас был секс с этим партнером и Вы выпивали спиртное. (ИНТЕРВЬЮЕР, отметьте подходящее) / Remember the last time when you had sex with this partner and you drink alcohol (INTERVIEWER, check what apply) + + + + 84. Я хотела бы спросить подробнее... Сколько доз Вы выпили до и во время полового контакта (напишите 0, если не выпивала) / I would like to ask about details... How many drinks You took before and during the sexual contact? (mark 0 if she did not drink) + + + 85. Сколько доз выпил Ваш партнер до и во время полового контакта (напишите 0, если не выпивал) / How many drinks your partner took before and during the sexual contact? (mark 0 if he did not drink) + + + + 86. Насколько Ваше употребление алкоголя повлияло на решение иметь половой контакт? (Интервьюер, дайте участнице карточку № 10) / To what degree your alcohol use influenced on your decision about having sex? (Interviewer, give the card #10 to the participant) + + + + 87. При этой встрече сколько раз у вас был секс? / How many times you had sex in that occasion? + + + 88. Сколько раз из этих < ... > половых актов Вы использовали презерватив (от начала до конца)? / How many times of that < ... > intercourses you used condom (from the beginning till the end)?88. Сколько раз из этих < ... > половых актов Вы использовали презерватив (от начала до конца)? / How many times of that < ... > intercourses you used condom (from the beginning till the end)? + + + 89. Если использовали презерватив, кто был инициатором? / If you used condom, who was initiator? + + + + 90. По Вашему мнению, насколько Ваше употребление алкоголя повлияло на то, использовался или нет презерватив? (Интервьюер, дайте участнице карточку № 10) / From your point of view, to what degree your alcohol use influenced on your decision whether to use condom or not? (Interviewer, give the card #10 to the participant) + + + + 91. Был ли когда-нибудь ваш партнер в заключении (в тюрьме)? / Has your partner ever been incarcerated (imprisoned)? + + + + 92. Проводилось ли ему когда-либо переливание крови или иных продуктов крови? / Did he ever receive a transfusion of blood or blood products? + + + + 93. Употреблял ли он когда-либо внутривенные наркотики? / Has he ever used injecting drugs? + + + + 94.1. За последние 12 месяцев у Вашего партнера была обнаружена инфекция, передаваемая половым путем, или наблюдались выделения из половых органов, похожие на симптомы ИППП? / In the last 12 months did your partner have been diagnosed with sexually transmitted infections or have abnormal discharge from his penis or any other symptom that might be a sign of an STI? + + + + 94.2. За последние 12 месяцев у Вашего партнера были другие сексуальные партнерши, кроме Вас? / In the last 12 months did your partner have sex with other female partners but you? + + + + 94.3. За последние 12 месяцев у Вашего партнера был опыт сексуальных отношений с мужчинами? / In the last 12 months did your partner have sex with male partners? + + + + 95. Насколько Вы знаете, есть ли у него ВИЧ, делал ли он анализ на ВИЧ и какой был результат? (не предлагайте варианты ответа, слушайте и отметьте одно) / As far as you know, whether he has HIV infection, did he take HIV test and what was the result? (do not offer possible answers, listen and check one) + + + + 96. Сколько раз за последние 3 месяца у Вас был ВАГИНАЛЬНЫЙ секс с этим(и) партнёром(и) (если ни разу, укажите >)? / In the last 3 months how many times you had VAGINAL sex with this partner(s)? (If never, mark "0")96. Сколько раз за последние 3 месяца у Вас был ВАГИНАЛЬНЫЙ секс с этим(и) партнёром(и) (если ни разу, укажите << 0>>)? / In the last 3 months how many times you had VAGINAL sex with this partner(s)? (If never, mark "0") + + + 97. Сколько раз во время вагинального секса с этим(и) партнёром(и) Вы использовали презерватив от начала до конца (если ни разу, укажите >)? / How many times during vaginal sex with this partner(s) you used condom from the beginning till the end (If never, mark "0")?97. Сколько раз во время вагинального секса с этим(и) партнёром(и) Вы использовали презерватив от начала до конца (если ни разу, укажите << 0>>)? / How many times during vaginal sex with this partner(s) you used condom from the beginning till the end (If never, mark "0")? + + + 98. Сколько раз перед вагинальным сексом Вы или Ваш(и) партнёр(ы) употребляли алкоголь (если ни разу, укажите >)? / How many times before vaginal sex you or your partner(s) used alcohol (If never, mark "0")? 98. Сколько раз перед вагинальным сексом Вы или Ваш(и) партнёр(ы) употребляли алкоголь (если ни разу, укажите << 0>>)? / How many times before vaginal sex you or your partner(s) used alcohol (If never, mark "0")? + + + 99. Сколько раз за последние 3 месяца у Вас был АНАЛЬНЫЙ секс с этим(и) партнёром(и) (если ни разу, укажите >)? / In the last 3 months how many times you had ANAL sex with this partner(s)? (If never, mark "0")99. Сколько раз за последние 3 месяца у Вас был АНАЛЬНЫЙ секс с этим(и) партнёром(и) (если ни разу, укажите << 0>>)? / In the last 3 months how many times you had ANAL sex with this partner(s)? (If never, mark "0") + + + 100. Сколько раз во время анального секса с этим(и) партнёром(и) Вы использовали презерватив от начала до конца (если ни разу, укажите >)? / How many times during anal sex with this partner(s) you used condom from the beginning till the end (If never, mark "0")?100. Сколько раз во время анального секса с этим(и) партнёром(и) Вы использовали презерватив от начала до конца (если ни разу, укажите << 0>>)? / How many times during anal sex with this partner(s) you used condom from the beginning till the end (If never, mark "0")? + + + 101. Сколько раз перед анальным сексом Вы или Ваш(и) партнёр(ы) употребляли алкоголь (если ни разу, укажите >)? / How many times before anal sex you or your partner used alcohol (If never, mark "0")?101. Сколько раз перед анальным сексом Вы или Ваш(и) партнёр(ы) употребляли алкоголь (если ни разу, укажите << 0>>)? / How many times before anal sex you or your partner used alcohol (If never, mark "0")? + + + 102. Вспомните последний раз когда у Вас был секс с кем-либо из этих партнеров и Вы выпивали спиртное. (ИНТЕРВЬЮЕР, отметьте подходящее) / Remember the last time when you had sex with someone of these partners and you drink alcohol (INTERVIEWER, check what apply) + + + + 103. Я хотела бы спросить подробнее... Сколько доз Вы выпили до и во время полового контакта (напишите 0, если не выпивала) / I would like to ask about details... How many drinks You took before and during the sexual contact? (mark 0 if she did not drink) + + + + + 104. Сколько доз выпил Ваш партнер до и во время полового контакта (напишите 0, если не выпивал) / How many drinks your partner took before and during the sexual contact? + + + + 105. Насколько Ваше употребление алкоголя повлияло на решение иметь половой контакт? (Интервьюер, дайте участнице карточку № 10) / To what degree your alcohol use influenced on your decision about having sex? (Interviewer, give the card #10 to the participant) + + + + 106. При этой встрече сколько раз у вас был секс? (количество раз) / How many times you had sex in that occasion? (# of times) + + + 107. Сколько раз из этих < ... > половых актов Вы использовали презерватив (от начала до конца)? / How many times of that < ... > intercourses you used condom (from the beginning till the end)?107. Сколько раз из этих < ... > половых актов Вы использовали презерватив (от начала до конца)? / How many times of that < ... > intercourses you used condom (from the beginning till the end)? + + + 108. Если использовали презерватив, кто был инициатором? / If you used condom, who was initiator? + + + + 109. По Вашему мнению, насколько Ваше употребление алкоголя повлияло на то, использовался или нет презерватив? (Интервьюер, дайте участнице карточку № 10) / From your point of view, to what degree your alcohol use influenced on your decision whether to use condom or not? (Interviewer, give the card #10 to the participant) + + + + 110. Случалось ли за последние 3 месяца, что кто-либо из Ваших остальных сексуальных партнёр(ов) платил Вам деньги или предоставлял другие ценности в обмен на сексуальные услуги? / In the last3 months did anyone of your other sexual partners give you money or goods in exchange for sex? + + + + Сколько партнеров? / How many partners? + + + 111. Случалось ли за последние 3 месяца, что Вы платили деньги или предоставляли другие ценности кому-либо из Ваших остальных сексуальных партнёр(ов) в обмен на сексуальные услуги? / In the last 3 months did you give to anyone of your other sexual partners money or goods in exchange for sex? + + + + Сколько партнеров? / How many partners? + + + 112. Был ли когда-нибудь кто-либо из Ваших остальных сексуальных партнёров в заключении (в тюрьме)? / Has anyone of your other partners ever been incarcerated (imprisoned))? + + + + Сколько партнеров? / How many partners? + + + 113. Проводилось ли кому-нибудь из Ваших остальных сексуальных партнёров когда-либо переливание крови или иных продуктов крови? / Has anyone of your other partners ever receive a transfusion of blood or blood products? + + + + Сколько партнеров? / How many partners? + + + 114. Употреблял ли кто-либо их них когда-либо внутривенные наркотики? / Has anyone of your other partners ever use injecting drugs? + + + + Сколько партнеров? / How many partners? + + + 115.1. ... была обнаружена инфекция, передаваемая половым путем, или наблюдались выделения из половых органов, похожие на симптомы ИППП? / been diagnosed with sexually transmitted infections or have abnormal discharge from his penis or any other symptom that might be a sign of an STI? + + + + Сколько партнеров? / How many partners? + + + 115.2. ... были другие сексуальные партнерши, кроме Вас? / sex with other female partners but you? + + + + Сколько партнеров? / How many partners? + + + 115.3. ... был опыт сексуальных отношений с мужчинами? / sex with male partners? + + + + Сколько партнеров? / How many partners? + + + 115.4. ... была выявлена ВИЧ-инфекция? / HIV infection diagnosed? + + + + Сколько партнеров? / How many partners? + + + Complete? + + + + 116. В течение последнего года, были ли случаи, что Вас кто-то ударил или каким-то иным способом нанес Вам физические повреждения? / Within the last 12 months, have you been hit, slapped, kicked, or otherwise physically hurt by someone? + + + + 117. Если да: было ли это один раз или больше? / If yes: Did it happen once or more than once? + + + + 118. Если Да: это был знакомый или не знакомый Вам человек? (Отметьте все, что подходит) / If yes: By whom have you been hit or otherwise physically hurt? (Check all that apply) + + + + 118. Если Да: это был знакомый или не знакомый Вам человек? (Отметьте все, что подходит) / If yes: By whom have you been hit or otherwise physically hurt? (Check all that apply) + + + + 118. Если Да: это был знакомый или не знакомый Вам человек? (Отметьте все, что подходит) / If yes: By whom have you been hit or otherwise physically hurt? (Check all that apply) + + + + 118. Если Да: это был знакомый или не знакомый Вам человек? (Отметьте все, что подходит) / If yes: By whom have you been hit or otherwise physically hurt? (Check all that apply) + + + + 119. В течение последнего года совершал ли с Вами кто-то насильно какие-либо сексуальные действия? / Within the last 12 months, has anyone forced you to have sexual activities? + + + + 120. Если да: было ли это один раз или больше? / If yes: Did it happen once or more than once? + + + + 121. Если да: это был знакомый или не знакомый Вам человек? / If yes: By whom (Check all that apply) + + + + 121. Если да: это был знакомый или не знакомый Вам человек? / If yes: By whom (Check all that apply) + + + + 121. Если да: это был знакомый или не знакомый Вам человек? / If yes: By whom (Check all that apply) + + + + 121. Если да: это был знакомый или не знакомый Вам человек? / If yes: By whom (Check all that apply) + + + + 122.1. Был ли у Вас когда-либо сексуальный партнер (или партнеры), который оскорблял Вас, кричал на Вас или угрожал Вам? / Have you EVER had a sexual partner who insulted you, sworn at you or threatened you? + + + + 122.2. Если да, случалось ли это за последние 3 месяца? / If yes, was this in the last 3 months? + + + + 122.3. Когда это происходило в последний раз, находились ли Вы или Ваш партнер в состоянии алкогольного или наркотического опьянения? / The last time this happened, were you or your partner high on alcohol or drugs? + + + + 123.1. Был ли у Вас когда-либо сексуальный партнер (или партнеры), который бил Вас, толкал, хватал, давал пощечину, душил или совершал иные физические действия? / Have you EVER had a sexual partner who pushed, grabbed, slapped, pinched, beaten up, or choked you? + + + + 123.2. Если да, случалось ли это за последние 3 месяца? / If yes, was this in the last 3 months? + + + + 123.3. Когда это происходило в последний раз, находились ли Вы или Ваш партнер в состоянии алкогольного или наркотического опьянения? / The last time this happened, were you or your partner high on alcohol or drugs? + + + + 124.1. Был ли у Вас когда-либо сексуальный партнер (или партнеры), который силой заставлял Вас вступать с ним в половой контакт или без Вашего желания совершал действия сексуального характера? / Have you EVER had a sexual partner who physically forced you to have sex or forced you to do something sexually that you did not want to? + + + + 124.2. Если да, случалось ли это за последние 3 месяца? / If yes, was this in the last 3 months? + + + + 124.3. Когда это происходило в последний раз, находились ли Вы или Ваш партнер в состоянии алкогольного или наркотического опьянения? + + + + Complete? + + + + Меня беспокоили вещи, которые обычно меня не волнуют. / I was bothered by things that usually don't bother me. + + + + Мне было сложно сосредоточить внимание на том, чем я занимался(ась). / I had trouble keeping my mind on what I was doing. + + + + У меня было состояние депрессии. / I felt depressed. + + + + Я чувствовал(а), что все дается мне с большим трудом / I felt that everything I did was an effort. + + + + Я смотрю в будущее с надеждой и оптимизмом. / I felt hopeful about the future. + + + + Я испытывал(а) страх. / I felt fearful. + + + + Сон не приносил мне отдыха. / My sleep was restless. + + + + Я чувствовал(а) себя счастливым(ой). / I was happy. + + + + Я ощущал(а) себя одиноким(ой). / I felt lonely. + + + + Я не мог(ла) себя заставить ничего делать. / I could not get "going" + + + + Complete? + + + + У меня было состояние нервозности, напряженности или тревожности/ Feeling nervous, anxious or on edge + + + + Я ощущал(а) невозможность прекратить или справиться с беспокойством/ Not being able to stop or control worrying + + + + Я испытывал(а) чрезмерное беспокойство по разным поводам/ Worrying too much about different things + + + + Мне было трудно расслабиться /Trouble relaxing + + + + У меня было настолько сильное возбуждение, что было трудно усидеть на месте/ Being so restless that it is hard to sit still + + + + Я чувствовал(а) повышенную раздражительность/ Becoming easily annoyed or irritable + + + + Я боялся(ась), что может произойти что-то ужасное/ Feeling afraid as if something awful might happen + + + + Complete? + + + + 127.1. Противозачаточные таблетки защищают от ВИЧ. / Birth control pills protect against HIV. + + + + 127.2. Заразиться ВИЧ можно, поцеловав больного человека. / One can acquire HIV through kissing of infected person. + + + + 127.3. Наличие венерических заболеваний увеличивает возможность заразиться ВИЧ. / Having sexually transmitted diseases makes it easier to get HIV. + + + + 127.4. Большинство людей с ВИЧ выглядят нездоровыми. / Most people who have HIV look sick. + + + + 127.5. Вы можете заразиться ВИЧ через всего один половой акт с больным человеком. / You can get HIV by having sex with an infected person just once. + + + + 127.6. Беременная женщина может передать ВИЧ своему ребенку. / A pregnant woman can transmit HIV to her child. + + + + 127.7. ВИЧ - это проблема в Африке, а не в России. / HIV - is a problem in Africa, not in Russia. + + + + 127.8. Существует лекарство, которое излечивает от ВИЧ/СПИД. / There is a cure for HIV/AIDS. + + + + 127.9. Латексные презервативы защищают от ВИЧ. / Latex condoms protect against HIV. + + + + 127.10. Большинство людей, у которых есть, ВИЧ знают это. / Everybody that has HIV knows it. + + + + 127.11. Для того, чтобы заразиться ВИЧ человек должен иметь много сексуальных партнеров. / To get HIV, a person must have many sex partners. + + + + 127.12. Можно заразиться ВИЧ через укус комара. / One can get HIV through a mosquito bite. + + + + 127.13. Можно заразиться ВИЧ, если пользоваться совместно с больным ВИЧ посудой, ванной, бассейном, туалетом. / You can get HIV through sharing dishes, bath, swimming pool or toilet with a person who is infected with HIV. + + + + 127.14. Только геи и наркоманы могут заразиться ВИЧ. / Only gay men and drug users can get HIV. + + + + 128.1. Нет ничего постыдного в том, чтобы сказать людям, что у Вас или у кого-то в Вашей семье ВИЧ/СПИД. / It is not embarrassing to tell others that you or someone in your family has HIV. + + + + 128.2. Список людей, у которых есть ВИЧ, должен быть доступен широкой общественности. / A list of people who have HIV should be available to the public. + + + + 128.3. ВИЧ/СПИД не является наказанием за поведение человека. / HIV/AIDS is not a punishment for someone's behavior. + + + + 128.4. Я бы чувствовала себя непринуждённо рядом с людьми, больными СПИД. / I would feel at ease around people with AIDS. + + + + 128.5. Я бы не стала дружить с человеком, больным ВИЧ/СПИД. / I would not be friends with a person who has HIV/AIDS. + + + + 128.6. Люди с ВИЧ/СПИД должны быть изолированы от общества. / People with HIV/AIDS should be isolated from society. + + + + 128.7. Не будет ничего страшного, если я заражусь ВИЧ/СПИД. / It would not be terrible if I got HIV/AIDS. + + + + 128.8. Для меня важно не заболеть ВИЧ. / It is important for me to avoid getting HIV. + + + + 128.9. Для меня важно следовать профилактическим рекомендациям для того, чтобы избежать заражения ВИЧ. / It is important for me to follow preventive recommendations to avoid HIV. + + + + 128.10. Я уверена, что могу защититься от ВИЧ/СПИД / I am confident that I can protect myself from HIV/AIDS + + + + 129. Как Вы считаете, в течение последних 12 месяцев, насколько был велик Ваш риск заразиться ВИЧ? / 129. In the last 12 months, from your point of view, how high was your risk of getting HIV infection? + + + + Complete? + + + + 130. Каков Ваш трудовой статус? (Зачитайте варианты, отметьте один) / What is your employing situation? (Read and choose one) + + + + Другое (укажите) / Other (Specify): + + + 131. Каков был доход в среднем на человека в Вашей семье за последний год? (включая зарплату, дополнительные подработки, пенсию, пособия, деньги от частного бизнеса, алименты и т.п. любые денежные доходы) / 131. What was your total combined income, per person in your family, during the last 12 months? (Include money from jobs, social security, retirement income, unemployment payments, public assistance, and so forth. Also include income from interest, dividends, net income from business, farm, or rent, and any other money income received.) (Show card. Choose one) + + + + 132. Какова Ваша расовая / этническая принадлежность: / What is your ethnicity? + + + + Другое (укажите) / Other (Specify): + + + 133. Вы верующий человек? / Are you believer? + + + + уточните религию / specify religion + + + 134. Каково Ваше семейное положение? / What is your marital status? + + + + Другое (укажите) / Other (Specify): + + + 135. Есть ли у Вас дети? / Do you have children? + + + + сколько? / how many? + + + 136. Сколько у Вас было беременностей? / How many times have you been pregnant? + + + 137. Сколько из них были прерваны (аборт)? / How many times have you terminated your pregnancy (had an abortion)? + + + 138. Какое у Вас образование? / What is the highest grade or year of school you have completed? + + + + Complete? + + + + 139. ПОВТОРНОЕ ПРЕДЛОЖЕНИЕ ТЕСТИРОВАНИЯ / REPEATED TESTING OFFER + + + + 140. ВИЧ-инфекция / HIV infection + + + + 141. Глюкоза / Blood Sugar + + + + 142. Гемоглобин / Hemoglobin + + + + 143. Холестерин / Cholesterol + + + + 144.1. Из этих причин, какая является самой важной для Вас? / Of this reason which was the most important for you? + + + + если другая причина (19), впишите / If the other reason (19), specify + + + 144.2. Из этих причин, какая является второй по важности для Вас? / Of this reason which was the second important for you? + + + + если другая причина (19), впишите / If the other reason (19), specify + + + 144.3. Из этих причин, какая является третьей по важности для Вас? / Of this reason which was the third important for you? + + + + если другая причина (19), впишите / If the other reason (19), specify + + + 145. ПРЕДЛОЖЕНО УЧАСТИЕ В ФОКУС-ГРУППЕ / PARTICIPATION IN FOCUS GROUP IS OFFERED + + + + 146. Участница согласилась участвовать в фокус-группе / Woman agreed to participate in focus group + + + + 147. Не могли бы Вы поделиться причиной, по которой Вы не хотели бы участвовать в фокус-группе? (не зачитываете варианты, отметьте один вариант ответа который был назван участницей первым) / Could you please share why you do not want to participate in focus group? (Don't read options, mark the answer that woman mentioned first) + + + + Другая причина (отметьте какая) / Other reason (specify) + + + Время заполнения опросника (в мин.) / Administration time (minutes.) + + + Полное время выполнения всех процедур (в мин.) / Total time of all procedures (min.) + + + Замечания: / Notes: + + + Complete? + + + + 1. < не зачитывать участнице, интервьюер заполняет самостоятельно исходя из результатов предложения тестирования смотреть форма скрининга (стр. 5) и опросника (стр. 31) > / < don't read to participant, the interviewer fills out individually according to participant's decision after testing offer, see screening form (page. 5) and survey (page. 31) > 1. < не зачитывать участнице, интервьюер заполняет самостоятельно исходя из результатов предложения тестирования смотреть форма скрининга (стр. 5) и опросника (стр. 31) > / < don't read to participant, the interviewer fills out individually according to participant's decision after testing offer, see screening form (page. 5) and survey (page. 31) > + + + + 2. Предложите даты проведения ФГ для разных УСЛОВИЙ: < интервьюер, результаты рандомизации смотреть в форме скрининга (стр. 4) > / Offered dates for FG for different CONDITIONS: < interviewer, look the results of randomization in screening form (page. 4) >2. Предложите даты проведения ФГ для разных УСЛОВИЙ: < интервьюер, результаты рандомизации смотреть в форме скрининга (стр. 4) > / Offered dates for FG for different CONDITIONS: < interviewer, look the results of randomization in screening form (page. 4) > + + + 3. Дата проведения фокус-группы: / Date of FG: + + + 4. Участница тестировалась между заполнением опросника и проведением фокус-группы / Participant was tested between the initial survey and FG + + + + 5. ПРЕДЛОЖЕНИЕ ТЕСТИРОВАНИЯ / TESTING OFFER + + + + 6. ВИЧ-инфекция / HIV infection + + + + 7. Глюкоза / Blood Sugar + + + + 8. Гемоглобин / Hemoglobin + + + + 9. Холестерин / Cholesterol + + + + 10.1. Из этих причин, какая является самой важной для Вас? / Of this reason which was the most important for you? + + + + если другая причина (19), впишите / If the other reason (19), specify + + + 10.2. Из этих причин, какая является второй по важности для Вас? / Of this reason which was the second important for you? + + + + если другая причина (19), впишите / If the other reason (19), specify + + + 10.3. Из этих причин, какая является третьей по важности для Вас? / Of this reason which was the third important for you? + + + + если другая причина (19), впишите / If the other reason (19), specify + + + 11.1. Из этих причин, какая является самой важной для Вас? / Of this reason which was the most important for you? + + + + если другая причина (15), впишите / If the other reason (15), specify + + + 11.2. Из этих причин, какая является второй по важности для Вас? / Of this reason which was the second important for you? + + + + если другая причина (15), впишите / If the other reason (15), specify + + + 11.3. Из этих причин, какая является третьей по важности для Вас? / Of this reason which was the third important for you? + + + + если другая причина (15), впишите / If the other reason (15), specify + + + Complete? + + + + ВИЧ-инфекция / HIV TEST + + + + Глюкоза / Glucose + + + + Глюкоза (ммоль/л) / Glucose (mml/L) + + + Гемоглобин / Hemoglobin + + + + Гемоглобин (ммоль/л) / Hemoglobin (mml/L) + + + Холестерин / Cholesterol + + + + Холестерин (ммоль/л) / Cholesterol (mml/L) + + + Время проведения теста (в мин.) / Time of testing (min.) + + + Примечания: / Comments: + + + Complete? + + + + от другой участницы или от знакомых, которые не участвовали в проекте / from another participant or from friends who were not involved in the project + от врача или другого сотрудника поликлиники / from a physician or other employee of clinic + из информационного буклета или объявления размещенного в поликлинике, интернете или в другом месте / from the information booklet or announcement placed in the clinic, the Internet or elsewhere + из другого источника / Other + + + Беременна / Pregnant + Не беременна / Not pregnant + + + Нет / No + Да / Yes + + + Участница подписала ИС / The participant provided Consent + Участница отказалась подписывать ИС / The participant refused to provide Consent + + + Нет свободного времени / I have no time + Другая причина / Other reason + Н/О / N/A + + + Нет / No + Да / Yes + + + ВИЧ-инфекция не обнаружена / HIV infection has never been detected + ВИЧ-инфекция обнаружена / HIV infection has been detected + Не знает / participant does not know + Не тестировалась / has not been tested + + + Нет / No + Да / Yes + Не знает / participant does not know + Не тестировалась / has not been tested + + + Нет / No + Да / Yes + + + Нет / No + Да / Yes + Не знает / participant does not know + Не тестировался / partner has not been tested + Н/О / N/A + + + Нет / No + Да / Yes + Не знает / participant does not know + Н/О / N/A + + + Нет / No + Да / Yes + Не знает / participant does not know + Н/О / N/A + + + Нет / No + Да / Yes + Не знает / participant does not know + Н/О / N/A + + + Нет / No + Да / Yes + Не знает / participant does not know + Н/О / N/A + + + Нет / No + Да / Yes + Не знает / participant does not know + Н/О / N/A + + + Нет / No + Да / Yes + Не знает / participant does not know + Н/О / N/A + + + Нет / No + Да / Yes + Не знает / participant does not know + Н/О / N/A + + + Участница подходит для поведенческого эксперимента / participant is eligible for the experimental part + Участница НЕ подходит для поведенческого эксперимента / participant IS NOT eligible for the experimental part + + + (A) opt-in + (B) opt-out + Н/О (Участница не подходит для поведенческого эксперимента) / N/A (participant is not eligible for the experimental part) + + + Не согласна на тестирование / Do not agree for testing + Согласна ПОЛНОСТЬЮ на предложенный набор тестирования / Agree TOTALLY for all tests offered + Согласна ЧАСТИЧНО на предложенный набор тестирования / Agree PARTLY for testing offered + Н/О (Участница не подходит для поведенческого эксперимента) / N/A (participant is not eligible for the experimental part) + + + отказ от тестирования на ВИЧ-инфекцию / refused from HIV testing + согласие на тестирование на ВИЧ-инфекцию / accepted HIV testing + Н/О (Участница не подходит для поведенческого эксперимента) / N/A (participant is not eligible for the experimental part) + + + отказ от тестирования на глюкозу / refused from blood sugar testing + согласие на тестирование на глюкозу / accepted blood sugar testing + забор не должен производиться / ВАРИАНТ (А) opt-in / test is not to be taken / OPTION (А) opt-in + Н/О (Участница не подходит для поведенческого эксперимента) / N/A (participant is not eligible for the experimental part) + + + отказ от тестирования на гемоглобин / refused hemoglobin testing + согласие на тестирование на гемоглобин / accepted hemoglobin testing + забор не должен производиться / ВАРИАНТ (А) opt-in / test is not to be taken / OPTION (А) opt-in + Н/О (Участница не подходит для поведенческого эксперимента) / N/A (participant is not eligible for the experimental part) + + + отказ от тестирования на холестерин / refused from cholesterol testing + согласие на тестирование на холестерин / accepted cholesterol testing + забор не должен производиться / ВАРИАНТ (А) opt-in / test is not to be taken / OPTION (А) opt-in + Н/О (Участница не подходит для поведенческого эксперимента) / N/A (participant is not eligible for the experimental part) + + + Incomplete + Unverified + Complete + + + 1. Это просто и удобно / This is simple and comfortable + 2. Результаты готовы очень быстро / Results are very quick + 3. Это бесплатно / This is free + 4. Это только укол в палец / It's just finger prick + 5. Чтобы снизить свое беспокойство по поводу ВИЧ / To reduce my worries about HIV + 6. У меня были ИППП/у партнера были ИППП / I had STI/my partner had STI + 7. Осознала свой риск / Get aware of risk + 8. Новый партнер / New sexual partner + 9. Оказалась в ситуации возможного риска заражения / Potential exposure + 10. Это конфиденциально - никто другой не узнает о результате / This is confidential - nobody else will know my result + 11. Результат не будет вноситься в медицинскую карточку / The result will not be recorded + 12. Персонал доброжелательный и вызывает доверие / Staff is friendly and trustful + 13. Узнала новое о ВИЧ/ЗППП/получила информацию / Learn something new about HIV/STI/gain new information + 14. Чтобы не заразить ребенка / To not infect my child + 15. Чтобы не заразить партнера / To not infect the partner + 16. Хочу перестать пользоваться презервативами / Want to stop using condoms + 17. Чтобы начать лечиться быстрее если заражена / To start treatment earlier if I'm infected + 18. Для защиты от ВИЧ/ИППП / To protect against HIV/STI + 19. Другая причина / Other reason + Н/О / N/A + + + 1. Это просто и удобно / This is simple and comfortable + 2. Результаты готовы очень быстро / Results are very quick + 3. Это бесплатно / This is free + 4. Это только укол в палец / It's just finger prick + 5. Чтобы снизить свое беспокойство по поводу ВИЧ / To reduce my worries about HIV + 6. У меня были ИППП/у партнера были ИППП / I had STI/my partner had STI + 7. Осознала свой риск / Get aware of risk + 8. Новый партнер / New sexual partner + 9. Оказалась в ситуации возможного риска заражения / Potential exposure + 10. Это конфиденциально - никто другой не узнает о результате / This is confidential - nobody else will know my result + 11. Результат не будет вноситься в медицинскую карточку / The result will not be recorded + 12. Персонал доброжелательный и вызывает доверие / Staff is friendly and trustful + 13. Узнала новое о ВИЧ/ЗППП/получила информацию / Learn something new about HIV/STI/gain new information + 14. Чтобы не заразить ребенка / To not infect my child + 15. Чтобы не заразить партнера / To not infect the partner + 16. Хочу перестать пользоваться презервативами / Want to stop using condoms + 17. Чтобы начать лечиться быстрее если заражена / To start treatment earlier if I'm infected + 18. Для защиты от ВИЧ/ИППП / To protect against HIV/STI + 19. Другая причина / Other reason + Н/О / N/A + + + 1. Это просто и удобно / This is simple and comfortable + 2. Результаты готовы очень быстро / Results are very quick + 3. Это бесплатно / This is free + 4. Это только укол в палец / It's just finger prick + 5. Чтобы снизить свое беспокойство по поводу ВИЧ / To reduce my worries about HIV + 6. У меня были ИППП/у партнера были ИППП / I had STI/my partner had STI + 7. Осознала свой риск / Get aware of risk + 8. Новый партнер / New sexual partner + 9. Оказалась в ситуации возможного риска заражения / Potential exposure + 10. Это конфиденциально - никто другой не узнает о результате / This is confidential - nobody else will know my result + 11. Результат не будет вноситься в медицинскую карточку / The result will not be recorded + 12. Персонал доброжелательный и вызывает доверие / Staff is friendly and trustful + 13. Узнала новое о ВИЧ/ЗППП/получила информацию / Learn something new about HIV/STI/gain new information + 14. Чтобы не заразить ребенка / To not infect my child + 15. Чтобы не заразить партнера / To not infect the partner + 16. Хочу перестать пользоваться презервативами / Want to stop using condoms + 17. Чтобы начать лечиться быстрее если заражена / To start treatment earlier if I'm infected + 18. Для защиты от ВИЧ/ИППП / To protect against HIV/STI + 19. Другая причина / Other reason + Н/О / N/A + + + 1. Не доверяю экспресс-тестам на ВИЧ / I don't trust to rapid HIV tests + 2. Не доверяю персоналу / I don't trust to the staff + 3. Боюсь укола в палец / вида крови / I'm afraid of finger prick /blood view + 4. Персонал недоброжелательный / Staff is unfriendly + 5. У меня не может быть ВИЧ. Не считаю, что я в зоне риска / I cannot have HIV. I don't think that I am at risk + 6. Недостаточный уровень конфиденциальности - вдруг кто-то увидит или может узнать / Confidentiality is not enough - what if someone see me here or will know + 7. Предвзятое отношение медицинского персонала к тем, кто делает тест на ВИЧ / Biased attitude of medical staff to those testing for HIV + 8. Боюсь положительного результата на ВИЧ - люди узнают и отвернутся от меня / I was afraid of positive HIV test result - people will know and reject me + 9. Боюсь положительного результата на ВИЧ - никто не захочет иметь со мной сексуальные отношения / I was afraid of positive HIV test result - nobody will want to have sex with me + 10. ВИЧ-инфекции не существует / HIV infection does not exist + 11. Все равно нет лечения от ВИЧ / There is no cure for HIV anyway + 12. Не хочу знать свой результат теста на ВИЧ / I don't want to know my HIV test result + 13. Не смогу платить за лечение / I cannot afford to pay for the treatment + 14. Боюсь, в случае положительного результата меня найдут и причинят беспокойство мне и моим близким / I'm afraid if I have positive HIV test result they will find me and cause troubles to me or my relatives + 15. Другая причина / Other reason + Н/О / N/A + + + 1. Не доверяю экспресс-тестам на ВИЧ / I don't trust to rapid HIV tests + 2. Не доверяю персоналу / I don't trust to the staff + 3. Боюсь укола в палец / вида крови / I'm afraid of finger prick /blood view + 4. Персонал недоброжелательный / Staff is unfriendly + 5. У меня не может быть ВИЧ. Не считаю, что я в зоне риска / I cannot have HIV. I don't think that I am at risk + 6. Недостаточный уровень конфиденциальности - вдруг кто-то увидит или может узнать / Confidentiality is not enough - what if someone see me here or will know + 7. Предвзятое отношение медицинского персонала к тем, кто делает тест на ВИЧ / Biased attitude of medical staff to those testing for HIV + 8. Боюсь положительного результата на ВИЧ - люди узнают и отвернутся от меня / I was afraid of positive HIV test result - people will know and reject me + 9. Боюсь положительного результата на ВИЧ - никто не захочет иметь со мной сексуальные отношения / I was afraid of positive HIV test result - nobody will want to have sex with me + 10. ВИЧ-инфекции не существует / HIV infection does not exist + 11. Все равно нет лечения от ВИЧ / There is no cure for HIV anyway + 12. Не хочу знать свой результат теста на ВИЧ / I don't want to know my HIV test result + 13. Не смогу платить за лечение / I cannot afford to pay for the treatment + 14. Боюсь, в случае положительного результата меня найдут и причинят беспокойство мне и моим близким / I'm afraid if I have positive HIV test result they will find me and cause troubles to me or my relatives + 15. Другая причина / Other reason + Н/О / N/A + + + 1. Не доверяю экспресс-тестам на ВИЧ / I don't trust to rapid HIV tests + 2. Не доверяю персоналу / I don't trust to the staff + 3. Боюсь укола в палец / вида крови / I'm afraid of finger prick /blood view + 4. Персонал недоброжелательный / Staff is unfriendly + 5. У меня не может быть ВИЧ. Не считаю, что я в зоне риска / I cannot have HIV. I don't think that I am at risk + 6. Недостаточный уровень конфиденциальности - вдруг кто-то увидит или может узнать / Confidentiality is not enough - what if someone see me here or will know + 7. Предвзятое отношение медицинского персонала к тем, кто делает тест на ВИЧ / Biased attitude of medical staff to those testing for HIV + 8. Боюсь положительного результата на ВИЧ - люди узнают и отвернутся от меня / I was afraid of positive HIV test result - people will know and reject me + 9. Боюсь положительного результата на ВИЧ - никто не захочет иметь со мной сексуальные отношения / I was afraid of positive HIV test result - nobody will want to have sex with me + 10. ВИЧ-инфекции не существует / HIV infection does not exist + 11. Все равно нет лечения от ВИЧ / There is no cure for HIV anyway + 12. Не хочу знать свой результат теста на ВИЧ / I don't want to know my HIV test result + 13. Не смогу платить за лечение / I cannot afford to pay for the treatment + 14. Боюсь, в случае положительного результата меня найдут и причинят беспокойство мне и моим близким / I'm afraid if I have positive HIV test result they will find me and cause troubles to me or my relatives + 15. Другая причина / Other reason + Н/О / N/A + + + Incomplete + Unverified + Complete + + + 1. Не доверяю тестам на ВИЧ /I don't trust to HIV tests + 2. Не доверяю персоналу / I don't trust to the staff + 3. Боюсь уколов в палец или вену / вида крови / I'm afraid of finger prick or venipuncture /blood view + 4. Долго ждать результатов тестирования на ВИЧ / It takes long to know HIV test result + 5. Персонал недоброжелательный / Staff is unfriendly + 6. Не знала где можно пройти тест на ВИЧ / Did not know where one can take HIV test + 7. Сделать тест занимает время а у меня нет времени / It takes time to do testing and I have no time + 8. Не хотела тратить деньги на тест / Did not want to spend money for test + 9. Не считала, что у меня может быть риск ВИЧ / Didn't suppose that I could have risk of HIV + 10. Не хотела, чтобы кто-нибудь из знакомых меня увидел во время тестирования на ВИЧ / Did not want some of aquaintances to see me while testing for HIV + 11. Предвзятое отношение медицинского персонала к тем, кто делает тест на ВИЧ / Biased attitude of medical staff to those testing for HIV + 12. Боялась положительного результата на ВИЧ - люди узнают и отвернутся от меня / I was afraid of positive HIV test result - people will know and reject me + 13. Боялась положительного результата на ВИЧ - никто не захочет иметь со мной сексуальные отношения / I was afraid of positive HIV test result - nobody will want to have sex with me + 14. Не хотела знать свой результат теста на ВИЧ / Did not want to know my HIV test result + 15. ВИЧ-инфекции не существует / HIV infection does not exist + 16. Все равно нет лечения от ВИЧ / There is no cure for HIV anyway + 17. Не смогу платить за лечение / I cannot afford to pay for the treatment + 18. Влияние партнера / Sexual partner influence + 19. Влияние друга/члена семьи / Friend/Relative influence + 20. Другая причина / Other reason + Н/О / N/A + + + 1. Не доверяю тестам на ВИЧ /I don't trust to HIV tests + 2. Не доверяю персоналу / I don't trust to the staff + 3. Боюсь уколов в палец или вену / вида крови / I'm afraid of finger prick or venipuncture /blood view + 4. Долго ждать результатов тестирования на ВИЧ / It takes long to know HIV test result + 5. Персонал недоброжелательный / Staff is unfriendly + 6. Не знала где можно пройти тест на ВИЧ / Did not know where one can take HIV test + 7. Сделать тест занимает время а у меня нет времени / It takes time to do testing and I have no time + 8. Не хотела тратить деньги на тест / Did not want to spend money for test + 9. Не считала, что у меня может быть риск ВИЧ / Didn't suppose that I could have risk of HIV + 10. Не хотела, чтобы кто-нибудь из знакомых меня увидел во время тестирования на ВИЧ / Did not want some of aquaintances to see me while testing for HIV + 11. Предвзятое отношение медицинского персонала к тем, кто делает тест на ВИЧ / Biased attitude of medical staff to those testing for HIV + 12. Боялась положительного результата на ВИЧ - люди узнают и отвернутся от меня / I was afraid of positive HIV test result - people will know and reject me + 13. Боялась положительного результата на ВИЧ - никто не захочет иметь со мной сексуальные отношения / I was afraid of positive HIV test result - nobody will want to have sex with me + 14. Не хотела знать свой результат теста на ВИЧ / Did not want to know my HIV test result + 15. ВИЧ-инфекции не существует / HIV infection does not exist + 16. Все равно нет лечения от ВИЧ / There is no cure for HIV anyway + 17. Не смогу платить за лечение / I cannot afford to pay for the treatment + 18. Влияние партнера / Sexual partner influence + 19. Влияние друга/члена семьи / Friend/Relative influence + 20. Другая причина / Other reason + Н/О / N/A + + + 1. Не доверяю тестам на ВИЧ /I don't trust to HIV tests + 2. Не доверяю персоналу / I don't trust to the staff + 3. Боюсь уколов в палец или вену / вида крови / I'm afraid of finger prick or venipuncture /blood view + 4. Долго ждать результатов тестирования на ВИЧ / It takes long to know HIV test result + 5. Персонал недоброжелательный / Staff is unfriendly + 6. Не знала где можно пройти тест на ВИЧ / Did not know where one can take HIV test + 7. Сделать тест занимает время а у меня нет времени / It takes time to do testing and I have no time + 8. Не хотела тратить деньги на тест / Did not want to spend money for test + 9. Не считала, что у меня может быть риск ВИЧ / Didn't suppose that I could have risk of HIV + 10. Не хотела, чтобы кто-нибудь из знакомых меня увидел во время тестирования на ВИЧ / Did not want some of aquaintances to see me while testing for HIV + 11. Предвзятое отношение медицинского персонала к тем, кто делает тест на ВИЧ / Biased attitude of medical staff to those testing for HIV + 12. Боялась положительного результата на ВИЧ - люди узнают и отвернутся от меня / I was afraid of positive HIV test result - people will know and reject me + 13. Боялась положительного результата на ВИЧ - никто не захочет иметь со мной сексуальные отношения / I was afraid of positive HIV test result - nobody will want to have sex with me + 14. Не хотела знать свой результат теста на ВИЧ / Did not want to know my HIV test result + 15. ВИЧ-инфекции не существует / HIV infection does not exist + 16. Все равно нет лечения от ВИЧ / There is no cure for HIV anyway + 17. Не смогу платить за лечение / I cannot afford to pay for the treatment + 18. Влияние партнера / Sexual partner influence + 19. Влияние друга/члена семьи / Friend/Relative influence + 20. Другая причина / Other reason + Н/О / N/A + + + Это было моим собственным желанием / It was my own wish + Я была направлена на тестирование / I was reffered for the testing + Н/О / N/A + + + 1. Требование на работе / Employer requirement + 2. Требование из-за беременности / Required because I was pregnant + 3. Требование медицинского учреждения / Requirement of healthcare institution + 4. Донор крови/ Blood donor + 5. Направил врач / Medical referral + 6. По требованию партнера / Partner requirement + 7. Чтобы снизить свое беспокойство по поводу ВИЧ / To reduce my worries about HIV + 8. Планировала завести ребенка / I wanted to have a baby + 9. У меня были ИППП/у партнера были ИППП / I had STI/my partner had STI + 10. Осознала свой риск / Get aware of risk + 11. Появился новый партнер / New sexual partner + 12. Оказалась в ситуации возможного риска заражения / Potential exposure + 13. Узнала новое о ВИЧ/ЗППП/получила информацию / Learn something new about HIV/STI/gain new information + 14. Чтобы не заразить ребенка / To not infect my child + 15. Чтобы не заразить партнера / To not infect the partner + 16. Хочу перестать пользоваться презервативами / Want to stop using condoms + 17. Чтобы начать лечиться быстрее если заражена / To start treatment earlier if I'm infected + 18. Для защиты от ВИЧ/ИППП / To protect against HIV/STI + 19. Влияние медицинского специалиста / Healthcare provider influence + 20. Влияние партнера / Partner influence + 21. Влияние друга/члена семьи / Friend/relative influence + 22.Другая причина / Other reason + Н/О / N/A + + + 1. Требование на работе / Employer requirement + 2. Требование из-за беременности / Required because I was pregnant + 3. Требование медицинского учреждения / Requirement of healthcare institution + 4. Донор крови/ Blood donor + 5. Направил врач / Medical referral + 6. По требованию партнера / Partner requirement + 7. Чтобы снизить свое беспокойство по поводу ВИЧ / To reduce my worries about HIV + 8. Планировала завести ребенка / I wanted to have a baby + 9. У меня были ИППП/у партнера были ИППП / I had STI/my partner had STI + 10. Осознала свой риск / Get aware of risk + 11. Появился новый партнер / New sexual partner + 12. Оказалась в ситуации возможного риска заражения / Potential exposure + 13. Узнала новое о ВИЧ/ЗППП/получила информацию / Learn something new about HIV/STI/gain new information + 14. Чтобы не заразить ребенка / To not infect my child + 15. Чтобы не заразить партнера / To not infect the partner + 16. Хочу перестать пользоваться презервативами / Want to stop using condoms + 17. Чтобы начать лечиться быстрее если заражена / To start treatment earlier if I'm infected + 18. Для защиты от ВИЧ/ИППП / To protect against HIV/STI + 19. Влияние медицинского специалиста / Healthcare provider influence + 20. Влияние партнера / Partner influence + 21. Влияние друга/члена семьи / Friend/relative influence + 22.Другая причина / Other reason + Н/О / N/A + + + 1. Требование на работе / Employer requirement + 2. Требование из-за беременности / Required because I was pregnant + 3. Требование медицинского учреждения / Requirement of healthcare institution + 4. Донор крови/ Blood donor + 5. Направил врач / Medical referral + 6. По требованию партнера / Partner requirement + 7. Чтобы снизить свое беспокойство по поводу ВИЧ / To reduce my worries about HIV + 8. Планировала завести ребенка / I wanted to have a baby + 9. У меня были ИППП/у партнера были ИППП / I had STI/my partner had STI + 10. Осознала свой риск / Get aware of risk + 11. Появился новый партнер / New sexual partner + 12. Оказалась в ситуации возможного риска заражения / Potential exposure + 13. Узнала новое о ВИЧ/ЗППП/получила информацию / Learn something new about HIV/STI/gain new information + 14. Чтобы не заразить ребенка / To not infect my child + 15. Чтобы не заразить партнера / To not infect the partner + 16. Хочу перестать пользоваться презервативами / Want to stop using condoms + 17. Чтобы начать лечиться быстрее если заражена / To start treatment earlier if I'm infected + 18. Для защиты от ВИЧ/ИППП / To protect against HIV/STI + 19. Влияние медицинского специалиста / Healthcare provider influence + 20. Влияние партнера / Partner influence + 21. Влияние друга/члена семьи / Friend/relative influence + 22.Другая причина / Other reason + Н/О / N/A + + + В больнице / hospital + В поликлинике / district policlinic + В кожно-венерологическом диспансере / STD clinic + В женской консультации / OBGN clinic + В центре СПИДа / AIDS Center + Другое / Other + Н/О / N/A + + + Нет, не проводилось / No, I had not + Да, проводилось / Yes, I had + Н/О / N/A + + + Медсестра / Nurse + Врач / Physician + Социальный работник / Social worker + Психолог / Psychologist + Другое / Other + Не знаю / Don't know + Не помню / Don't remember + Н/О / N/A + + + Нет, не узнавала / No, I don't know + Да, узнавала очно (лично пришла за результатами тестирования) / Yes, I learned it personally (came to get my testing results) + Да, узнавала заочно (результат был сообщен по телефону или по электронной почте) / Yes, I learned it distantly (got result through the phone or e-mail) + Н/О / N/A + + + Нет, не проводилось / No, I had not + Да, проводилось / Yes, I had + Н/О / N/A + + + Медсестра / Nurse + Врач / Physician + Социальный работник / Social worker + Психолог / Psychologist + Другое / Other + Не знаю / Don't know + Не помню / Don't remember + Н/О / N/A + + + очень негативное / very negative + негативное / negative + нейтральное / neutral + положительное / positive + очень положительное / very positive + Не помню / Don't remember + Н/О / N/A + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Incomplete + Unverified + Complete + + + районная поликлиника / District policlinic + платная/частная клиника / Private clinic + другое учреждение /other institution + + + районная поликлиника / District policlinic + районная женская консультация / OBGN clinic + кожно-венерологический диспансер / STD clinic + платная/частная клиника / Private clinic + не обращалась / not requested + + + Нет / No + Да / Yes + + + Нет / No + Да / Yes + Не знаю / Don't know + + + Нет / No + Да / Yes + + + Не было совсем / was not at all + Незначительный / low + Умеренный / moderate + Значительный / essential + Крайне высокий / very high + + + Нет / No + Да / Yes + + + У меня только один сексуальный партнёр / I have only one sexual partner + Я не употребляю наркотики / I don't use drugs + У моего сексуального партнера(ов) нет ВИЧ / My sexual partner(s) has/ve no HIV + Я доверяю своему сексуальному партнеру(ам) / I trust to my partner(s) + Я всегда использую презервативы / I always use condoms + Другая причина / Other reason + Н/О / N/A + + + У меня более чем один сексуальный партнёр / I have more than one sexual partner + Я употребляю наркотики / I use drugs + У моего сексуального партнера(ов) есть ВИЧ / My sexual partner(s) has/ve HIV + Я не доверяю своему сексуальному партнеру(ам) / I don't trust to my partner(s) + Я не использую презервативы / I don't use condoms + Другая причина / Other reason + Н/О / N/A + + + Нет, я никогда не предохраняюсь / No, I never use contraception + Да, я предохраняюсь / Yes, I did + ОТК / Refuse + + + Я (мы) хотели ребенка / I am (we were) trying to get pregnant + Это против моих моральных или религиозных убеждений / It is against my moral or religious beliefs + Мне говорил врач, что у меня не может наступить беременность по медицинским причинам / I was told by a doctor that I couldn't get pregnant for medical reasons + Я сознательно не использовала методы контрацепции, потому что в случае беременности я делаю аборт (Интервьюер, ответ ДА ставится в том случае, если женщина указывает на использование аборта в качестве замены контрацепции, те намерение в случае беременности сделать аборт/прервать беременность и доступность этой процедуры) / I intentionally did not use any contraception methods because if I became pregnant I would have a pregnancy termination/abortion (Interviewer, mark this answer if the woman indicates she use termination as an alternative to contraception; that is she plan to perform an abortion if become pregnant and such procedure is available) + Другое / Other + ОТК / Refuse + Н/О / N/A + + + Нет / No + Да / Yes + ОТК / Refuse + Н/О / N/A + + + Incomplete + Unverified + Complete + + + Нет / No + Да / Yes + + + никогда / Never + 1 раз в месяц или реже / Monthly or less + 2-4 раза в месяц / 2 to 4 times a month + 2-3 раза в неделю / 2 to 3 times a week + 4 и более раз в неделю / 4 or more times a week + + + 1 или 2 / 1 or 2 + 3 или 4 / 3 or 4 + 5 или 6 / 5 or 6 + 7 или 9 / 7 or 9 + 10 или более / 10 or more + + + никогда / Never + менее, чем 1 раз в месяц / Less than monthly + ежемесячно / Monthly + еженедельно / Weekly + ежедневно или почти ежедневно / Daily or almost daily + + + никогда / Never + менее, чем 1 раз в месяц / Less than monthly + ежемесячно / Monthly + еженедельно / Weekly + ежедневно или почти ежедневно / Daily or almost daily + + + никогда / Never + менее, чем 1 раз в месяц / Less than monthly + ежемесячно / Monthly + еженедельно / Weekly + ежедневно или почти ежедневно / Daily or almost daily + + + никогда / Never + менее, чем 1 раз в месяц / Less than monthly + ежемесячно / Monthly + еженедельно / Weekly + ежедневно или почти ежедневно / Daily or almost daily + + + никогда / Never + менее, чем 1 раз в месяц / Less than monthly + ежемесячно / Monthly + еженедельно / Weekly + ежедневно или почти ежедневно / Daily or almost daily + + + никогда / Never + менее, чем 1 раз в месяц / Less than monthly + ежемесячно / Monthly + еженедельно / Weekly + ежедневно или почти ежедневно / Daily or almost daily + + + никогда / No + да, но не в последний год / Yes, but not in the last year + да, в течение последнего года / Yes, during the last year + + + никогда / No + да, но не в последний год / Yes, but not in the last year + да, в течение последнего года / Yes, during the last year + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Нет / No + Да / Yes + Н/О / N/A + + + Нет + В последние 12 месяцев + Более 12 месяцев назад + ОТК + + + Нет + В последние 12 месяцев + Более 12 месяцев назад + ОТК + + + Нет + В последние 12 месяцев + Более 12 месяцев назад + ОТК + + + Нет + В последние 12 месяцев + Более 12 месяцев назад + ОТК + + + Нет + В последние 12 месяцев + Более 12 месяцев назад + ОТК + + + Нет + В последние 12 месяцев + Более 12 месяцев назад + ОТК + + + Нет + В последние 12 месяцев + Более 12 месяцев назад + ОТК + + + Нет + В последние 12 месяцев + Более 12 месяцев назад + ОТК + + + Нет + В последние 12 месяцев + Более 12 месяцев назад + ОТК + + + Нет + В последние 12 месяцев + Более 12 месяцев назад + ОТК + + + Incomplete + Unverified + Complete + + + По добровольному согласию / voluntary + Не по добровольному согласию / involuntary + + + Муж (брак зарегистрирован или нет) / Husband (registered or not) + Сожитель / Man, you live with + Друг/Молодой человек / Boyfriend + Жених / Fiance + Любовник / Lover + Кто-то, с кем Вы занимаетесь сексом ради денег, жилья или чего-то другого / Someone you give sex for money, place to live or something else + Кто-то, кто занимается сексом с Вами ради денег, жилья или чего-то другого / Someone who give you sex for money, place to live or something else + Кто-то, с кем Вы начинаете или планируете начать новые взаимоотношения / Someone you're developing or plan to develop a new relationship with + Другое / Other + + + Да, вспомнила / Yes, I remember + Нет, такого не было / No, that did not happen + Не помню / I don't remember + + + совсем не повлияло / did not influence at all + не повлияло / didn't influence + повлияло / yes, it did + сильно повлияло / influenced much + Не помню / Don't remember + Н/О / N/A + + + Сама / I was + Партнер / Partner + Н/О / N/A + + + совсем не повлияло / did not influence at all + не повлияло / didn't influence + повлияло / yes, it did + сильно повлияло / influenced much + Не помню / Don't remember + Н/О / N/A + + + Нет / No + Да / Yes + Н/З / D/K + + + Нет / No + Да / Yes + Н/З / D/K + + + Нет / No + Да / Yes + Н/З / D/K + + + Нет / No + Да / Yes + Н/З / D/K + + + Нет / No + Да / Yes + Н/З / D/K + + + Нет / No + Да / Yes + Н/З / D/K + + + Положительный результат теста на ВИЧ / Positive result of HIV test + Отрицательный результат теста на ВИЧ / Negative result of HIV test + Партнер делал тест на ВИЧ, но участница не знает его результат / Partner did HIV test, but participant don't know his result + Партнер не делал тест на ВИЧ / Partner didn't take HIV test + Участница не знает, делал ли партнер тест на ВИЧ / Participant don't know if partner did HIV test or not + ОТК + + + Муж (брак зарегистрирован или нет) / Husband (registered or not) + Сожитель / Man, you live with + Друг/Молодой человек / Boyfriend + Жених / Fiance + Любовник / Lover + Кто-то, с кем Вы занимаетесь сексом ради денег, жилья или чего-то другого / Someone you give sex for money, place to live or something else + Кто-то, кто занимается сексом с Вами ради денег, жилья или чего-то другого / Someone who give you sex for money, place to live or something else + Кто-то, с кем Вы начинаете или планируете начать новые взаимоотношения / Someone you're developing or plan to develop a new relationship with + Другое / Other + Н/О / N/A + + + Да, вспомнила / Yes, I remember + Нет, такого не было / No, that did not happen + Не помню / I don't remember + Н/О / N/A + + + совсем не повлияло / did not influence at all + не повлияло / didn't influence + повлияло / yes, it did + сильно повлияло / influenced much + Не помню / Don't remember + Н/О / N/A + + + Сама / I was + Партнер / Partner + Н/О / N/A + + + совсем не повлияло / did not influence at all + не повлияло / didn't influence + повлияло / yes, it did + сильно повлияло / influenced much + Не помню / Don't remember + Н/О / N/A + + + Нет / No + Да / Yes + Н/З / D/K + Н/О / N/A + + + Нет / No + Да / Yes + Н/З / D/K + Н/О / N/A + + + Нет / No + Да / Yes + Н/З / D/K + Н/О / N/A + + + Нет / No + Да / Yes + Н/З / D/K + Н/О / N/A + + + Нет / No + Да / Yes + Н/З / D/K + Н/О / N/A + + + Нет / No + Да / Yes + Н/З / D/K + Н/О / N/A + + + Положительный результат теста на ВИЧ / Positive result of HIV test + Отрицательный результат теста на ВИЧ / Negative result of HIV test + Партнер делал тест на ВИЧ, но участница не знает его результат / Partner did HIV test, but participant don't know his result + Партнер не делал тест на ВИЧ / Partner didn't take HIV test + Участница не знает, делал ли партнер тест на ВИЧ / Participant don't know if partner did HIV test or not + ОТК / Refuse + Н/О / N/A + + + Да, вспомнила / Yes, I remember + Нет, такого не было / No, that did not happen + Не помню / I don't remember + Н/О / N/A + + + совсем не повлияло / did not influence at all + не повлияло / didn't influence + повлияло / yes, it did + сильно повлияло / influenced much + Не помню / Don't remember + Н/О / N/A + + + Сама / I was + Партнер / Partner + Н/О / N/A + + + совсем не повлияло / did not influence at all + не повлияло / didn't influence + повлияло / yes, it did + сильно повлияло / influenced much + Не помню / Don't remember + Н/О / N/A + + + Нет / No + Да / Yes + Н/О / N/A + + + Нет / No + Да / Yes + Н/О / N/A + + + Нет / No + Да / Yes + Н/З / D/K + Н/О / N/A + + + Нет / No + Да / Yes + Н/З / D/K + Н/О / N/A + + + Нет / No + Да / Yes + Н/З / D/K + Н/О / N/A + + + Нет / No + Да / Yes + Н/З / D/K + Н/О / N/A + + + Нет / No + Да / Yes + Н/З / D/K + Н/О / N/A + + + Нет / No + Да / Yes + Н/З / D/K + Н/О / N/A + + + Нет / No + Да / Yes + Н/З / D/K + Н/О / N/A + + + Incomplete + Unverified + Complete + + + Нет / No + Да / Yes + ОТК / Refuse + + + Один раз / Once + Более одного раза / More than once + ОТК / Refuse + Н/О / N/A + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Нет / No + Да / Yes + ОТК / Refuse + + + Один раз / Once + Более одного раза / More than once + ОТК / Refuse + Н/О / N/A + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Checked + Unchecked + + + Нет / No + Да / Yes + ОТК / Refuse + + + Нет / No + Да / Yes + ОТК / Refuse + Н/О / N/A + + + Вы были в состоянии опьянения / yes, you were high + Ваш партнер был в состоянии опьянения / yes, your sex partner was high + Вы оба были в состоянии опьянения / yes, both of you were high + Ни один из Вас не был в состоянии опьянения / none of you were high + ОТК / Refuse + Н/О / N/A + + + Нет / No + Да / Yes + ОТК / Refuse + + + Нет / No + Да / Yes + ОТК / Refuse + Н/О / N/A + + + Вы были в состоянии опьянения / yes, you were high + Ваш партнер был в состоянии опьянения / yes, your sex partner was high + Вы оба были в состоянии опьянения / yes, both of you were high + Ни один из Вас не был в состоянии опьянения / none of you were high + ОТК / Refuse + Н/О / N/A + + + Нет / No + Да / Yes + ОТК / Refuse + + + Нет / No + Да / Yes + ОТК / Refuse + Н/О / N/A + + + Вы были в состоянии опьянения / yes, you were high + Ваш партнер был в состоянии опьянения / yes, your sex partner was high + Вы оба были в состоянии опьянения / yes, both of you were high + Ни один из Вас не был в состоянии опьянения / none of you were high + ОТК / Refuse + Н/О / N/A + + + Incomplete + Unverified + Complete + + + Ни разу или менее одного дня / Not at all or less then 1 day + Несколько дней / Several days + Более половины этого периода / More than half the days + Почти каждый день / Nearly every day + + + Ни разу или менее одного дня / Not at all or less then 1 day + Несколько дней / Several days + Более половины этого периода / More than half the days + Почти каждый день / Nearly every day + + + Ни разу или менее одного дня / Not at all or less then 1 day + Несколько дней / Several days + Более половины этого периода / More than half the days + Почти каждый день / Nearly every day + + + Ни разу или менее одного дня / Not at all or less then 1 day + Несколько дней / Several days + Более половины этого периода / More than half the days + Почти каждый день / Nearly every day + + + Ни разу или менее одного дня / Not at all or less then 1 day + Несколько дней / Several days + Более половины этого периода / More than half the days + Почти каждый день / Nearly every day + + + Ни разу или менее одного дня / Not at all or less then 1 day + Несколько дней / Several days + Более половины этого периода / More than half the days + Почти каждый день / Nearly every day + + + Ни разу или менее одного дня / Not at all or less then 1 day + Несколько дней / Several days + Более половины этого периода / More than half the days + Почти каждый день / Nearly every day + + + Ни разу или менее одного дня / Not at all or less then 1 day + Несколько дней / Several days + Более половины этого периода / More than half the days + Почти каждый день / Nearly every day + + + Ни разу или менее одного дня / Not at all or less then 1 day + Несколько дней / Several days + Более половины этого периода / More than half the days + Почти каждый день / Nearly every day + + + Ни разу или менее одного дня / Not at all or less then 1 day + Несколько дней / Several days + Более половины этого периода / More than half the days + Почти каждый день / Nearly every day + + + Incomplete + Unverified + Complete + + + Ни разу или менее одного дня / Not at all or less than 1 day + Несколько дней/ Several days + Более половины этого периода/ More than half the days + Почти каждый день/ Nearly every day + + + Ни разу или менее одного дня / Not at all or less than 1 day + Несколько дней/ Several days + Более половины этого периода/ More than half the days + Почти каждый день/ Nearly every day + + + Ни разу или менее одного дня / Not at all or less than 1 day + Несколько дней/ Several days + Более половины этого периода/ More than half the days + Почти каждый день/ Nearly every day + + + Ни разу или менее одного дня / Not at all or less than 1 day + Несколько дней/ Several days + Более половины этого периода/ More than half the days + Почти каждый день/ Nearly every day + + + Ни разу или менее одного дня / Not at all or less than 1 day + Несколько дней/ Several days + Более половины этого периода/ More than half the days + Почти каждый день/ Nearly every day + + + Ни разу или менее одного дня / Not at all or less than 1 day + Несколько дней/ Several days + Более половины этого периода/ More than half the days + Почти каждый день/ Nearly every day + + + Ни разу или менее одного дня / Not at all or less than 1 day + Несколько дней/ Several days + Более половины этого периода/ More than half the days + Почти каждый день/ Nearly every day + + + Incomplete + Unverified + Complete + + + Согласна / Agree + Не согласна / Disagree + Не знаю / Don't know + + + Согласна / Agree + Не согласна / Disagree + Не знаю / Don't know + + + Согласна / Agree + Не согласна / Disagree + Не знаю / Don't know + + + Согласна / Agree + Не согласна / Disagree + Не знаю / Don't know + + + Согласна / Agree + Не согласна / Disagree + Не знаю / Don't know + + + Согласна / Agree + Не согласна / Disagree + Не знаю / Don't know + + + Согласна / Agree + Не согласна / Disagree + Не знаю / Don't know + + + Согласна / Agree + Не согласна / Disagree + Не знаю / Don't know + + + Согласна / Agree + Не согласна / Disagree + Не знаю / Don't know + + + Согласна / Agree + Не согласна / Disagree + Не знаю / Don't know + + + Согласна / Agree + Не согласна / Disagree + Не знаю / Don't know + + + Согласна / Agree + Не согласна / Disagree + Не знаю / Don't know + + + Согласна / Agree + Не согласна / Disagree + Не знаю / Don't know + + + Согласна / Agree + Не согласна / Disagree + Не знаю / Don't know + + + Совершенно не согласна / Strongly disagree + Не согласна / Disagree + Согласна / Agree + Совершенно согласна / Agree Strongly + + + Совершенно не согласна / Strongly disagree + Не согласна / Disagree + Согласна / Agree + Совершенно согласна / Agree Strongly + + + Совершенно не согласна / Strongly disagree + Не согласна / Disagree + Согласна / Agree + Совершенно согласна / Agree Strongly + + + Совершенно не согласна / Strongly disagree + Не согласна / Disagree + Согласна / Agree + Совершенно согласна / Agree Strongly + + + Совершенно не согласна / Strongly disagree + Не согласна / Disagree + Согласна / Agree + Совершенно согласна / Agree Strongly + + + Совершенно не согласна / Strongly disagree + Не согласна / Disagree + Согласна / Agree + Совершенно согласна / Agree Strongly + + + Совершенно не согласна / Strongly disagree + Не согласна / Disagree + Согласна / Agree + Совершенно согласна / Agree Strongly + + + Совершенно не согласна / Strongly disagree + Не согласна / Disagree + Согласна / Agree + Совершенно согласна / Agree Strongly + + + Совершенно не согласна / Strongly disagree + Не согласна / Disagree + Согласна / Agree + Совершенно согласна / Agree Strongly + + + Совершенно не согласна / Strongly disagree + Не согласна / Disagree + Согласна / Agree + Совершенно согласна / Agree Strongly + + + Не было совсем / was not at all + Незначительный / low + Умеренный / moderate + Значительный / essential + Крайне высокий / very high + + + Incomplete + Unverified + Complete + + + Работаю по найму (по трудовому договору) / Employed for wages + Свой бизнес / Self-employed + Безработная / Unemployed + Домохозяйка / A homemaker + Студентка / A student + На пенсии (по инвалидности, и т.п.) / Retired /On Disability + В отпуске по уходу за ребенком / On maternity leave + Другое / Other + ОТК / Refuse + Не знаю / DK + + + Меньше 6000 рублей / Less than 6000 rub (170$) + От 6000 до 12000 рублей / From 6000 to 12000 rub + От 12001 до 18000 рублей / From 12001 to 18000 rub + От 18001 до 24000 рублей / From 18001 to 24000 rub + От 24001 до 30000 рублей / From 24001 to 30000 rub + От 30001 до 36000 рублей / From 30001 to 36000 rub + От 36001 до 42000 рублей / From 36001 to 42000 rub + От 42001 до 48000 рублей / From 42001 to 48000 rub + От 48001 рублей и более / From 48001 rub and more + ОТК / REFUSE + + + Русская / Russian + Украинка / Ukrainian + Белоруска / Belorussian + Татарка / Tatar + Еврейка / Jude + Другое / Other + ОТК / Refuse + Не знаю / DK + + + Нет / No + Да / Yes + Не знаю / DK + ОТК / REFUSE + + + Никогда не состояла в браке / Single, never married + Замужем (в зарегистрированном браке) / Legally married + Живем вместе в незарегистрированном браке / Living together but not married + Живу отдельно от супруга, развод не оформлен / Separated + В разводе / Divorced + Вдова / Widowed + Другое / Other + Не знаю / DK + ОТК / REFUSE + + + Нет / No + Да / Yes + + + Неоконченное среднее / School is not completed + Среднее (школьный диплом) / School Diploma + Среднее специальное (диплом техникума или колледжа) / Advanced Middle level education (diploma of technical college or middle level college) + Неоконченное высшее (студентка) / Higher Education: not completed (student) + Высшее (диплом бакалавра, специалиста, магистра) / Higher Education Diploma such as Magister (Master) + Научная степень (кандидат или доктор) / PHD (candidate or doctor degree) + Не знаю / DK + ОТК / REFUSE + + + Incomplete + Unverified + Complete + + + Участница не участвовала в поведенческом эксперименте / Woman did not participate in the experimental part + Участница УЖЕ прошла тестирование / Woman has ALREADY DONE the test + ПОВТОРНО не согласна на тестирование / AGAIN disagree for testing + Согласна ПОЛНОСТЬЮ на предложенный набор тестирования / Agree TOTALLY for all tests offered + Согласна ЧАСТИЧНО на предложенный набор тестирования / Agree PARTLY for testing offered + + + отказ от тестирования на ВИЧ-инфекцию / refused from HIV testing + согласие на тестирование на ВИЧ-инфекцию / accepted HIV testing + Н/О / N/A + + + отказ от тестирования на глюкозу / refused from blood sugar testing + согласие на тестирование на глюкозу / accepted blood sugar testing + забор не должен производиться / ВАРИАНТ (А) opt-in / test is not to be taken / OPTION (А) opt-in + Н/О / N/A + + + отказ от тестирования на гемоглобин / refused hemoglobin testing + согласие на тестирование на гемоглобин / accepted hemoglobin testing + забор не должен производиться / ВАРИАНТ (А) opt-in / test is not to be taken / OPTION (А) opt-in + Н/О / N/A + + + отказ от тестирования на холестерин / refused from cholesterol testing + согласие на тестирование на холестерин / accepted cholesterol testing + забор не должен производиться / ВАРИАНТ (А) opt-in / test is not to be taken / OPTION (А) opt-in + Н/О / N/A + + + 1. Это просто и удобно / This is simple and comfortable + 2. Результаты готовы очень быстро / Results are very quick + 3. Это бесплатно / This is free + 4. Это только укол в палец / It's just finger prick + 5. Чтобы снизить свое беспокойство по поводу ВИЧ / To reduce my worries about HIV + 6. У меня были ИППП/у партнера были ИППП / I had STI/my partner had STI + 7. Осознала свой риск / Get aware of risk + 8. Новый партнер / New sexual partner + 9. Оказалась в ситуации возможного риска заражения / Potential exposure + 10. Это конфиденциально - никто другой не узнает о результате / This is confidential - nobody else will know my result + 11. Результат не будет вноситься в медицинскую карточку / The result will not be recorded + 12. Персонал доброжелательный и вызывает доверие / Staff is friendly and trustful + 13. Узнала новое о ВИЧ/ЗППП/получила информацию / Learn something new about HIV/STI/gain new information + 14. Чтобы не заразить ребенка / To not infect my child + 15. Чтобы не заразить партнера / To not infect the partner + 16. Хочу перестать пользоваться презервативами / Want to stop using condoms + 17. Чтобы начать лечиться быстрее если заражена / To start treatment earlier if I'm infected + 18. Для защиты от ВИЧ/ИППП / To protect against HIV/STI + 19. Другая причина / Other reason + Н/О / N/A + + + 1. Это просто и удобно / This is simple and comfortable + 2. Результаты готовы очень быстро / Results are very quick + 3. Это бесплатно / This is free + 4. Это только укол в палец / It's just finger prick + 5. Чтобы снизить свое беспокойство по поводу ВИЧ / To reduce my worries about HIV + 6. У меня были ИППП/у партнера были ИППП / I had STI/my partner had STI + 7. Осознала свой риск / Get aware of risk + 8. Новый партнер / New sexual partner + 9. Оказалась в ситуации возможного риска заражения / Potential exposure + 10. Это конфиденциально - никто другой не узнает о результате / This is confidential - nobody else will know my result + 11. Результат не будет вноситься в медицинскую карточку / The result will not be recorded + 12. Персонал доброжелательный и вызывает доверие / Staff is friendly and trustful + 13. Узнала новое о ВИЧ/ЗППП/получила информацию / Learn something new about HIV/STI/gain new information + 14. Чтобы не заразить ребенка / To not infect my child + 15. Чтобы не заразить партнера / To not infect the partner + 16. Хочу перестать пользоваться презервативами / Want to stop using condoms + 17. Чтобы начать лечиться быстрее если заражена / To start treatment earlier if I'm infected + 18. Для защиты от ВИЧ/ИППП / To protect against HIV/STI + 19. Другая причина / Other reason + Н/О / N/A + + + 1. Это просто и удобно / This is simple and comfortable + 2. Результаты готовы очень быстро / Results are very quick + 3. Это бесплатно / This is free + 4. Это только укол в палец / It's just finger prick + 5. Чтобы снизить свое беспокойство по поводу ВИЧ / To reduce my worries about HIV + 6. У меня были ИППП/у партнера были ИППП / I had STI/my partner had STI + 7. Осознала свой риск / Get aware of risk + 8. Новый партнер / New sexual partner + 9. Оказалась в ситуации возможного риска заражения / Potential exposure + 10. Это конфиденциально - никто другой не узнает о результате / This is confidential - nobody else will know my result + 11. Результат не будет вноситься в медицинскую карточку / The result will not be recorded + 12. Персонал доброжелательный и вызывает доверие / Staff is friendly and trustful + 13. Узнала новое о ВИЧ/ЗППП/получила информацию / Learn something new about HIV/STI/gain new information + 14. Чтобы не заразить ребенка / To not infect my child + 15. Чтобы не заразить партнера / To not infect the partner + 16. Хочу перестать пользоваться презервативами / Want to stop using condoms + 17. Чтобы начать лечиться быстрее если заражена / To start treatment earlier if I'm infected + 18. Для защиты от ВИЧ/ИППП / To protect against HIV/STI + 19. Другая причина / Other reason + Н/О / N/A + + + Нет / No + Да / Yes + Н/О (Участница не участвовала в поведенческом эксперименте) / N/A (Woman did not participate in the experimental part) + + + Нет / No + Да / Yes + Н/О (Участница не участвовала в поведенческом эксперименте) / N/A (Woman did not participate in the experimental part) + + + Нет свободного времени / I have no time + Не заинтересована в участии + Другая причина / Other reason + Н/О / N/A + + + Incomplete + Unverified + Complete + + + участница не согласилась на тестирование / participant didn't agree for testing + участница согласилась ПОЛНОСТЬЮ на предложенный набор тестирования / participant agreed for ALL tests + участница согласилась ЧАСТИЧНО на предложенный набор тестирования / participant agreed for SOME of the tests + + + Нет / No + Да / Yes + + + Не согласна на тестирование / Not agree for testing + Согласна ПОЛНОСТЬЮ на предложенный набор тестирования / Agreed for ALL TESTS + Согласна ЧАСТИЧНО на предложенный набор тестирования / Agreed for PART OF TESTS + + + отказ от тестирования на ВИЧ-инфекцию / refused from HIV testing + согласие на тестирование на ВИЧ-инфекцию / accepted HIV testing + + + отказ от тестирования на глюкозу / refused from blood sugar testing + согласие на тестирование на глюкозу / accepted blood sugar testing + забор не должен производиться / ВАРИАНТ (А) opt-in / test is not to be taken / OPTION (А) opt-in + + + отказ от тестирования на гемоглобин / refused hemoglobin testing + согласие на тестирование на гемоглобин / accepted hemoglobin testing + забор не должен производиться / ВАРИАНТ (А) opt-in / test is not to be taken / OPTION (А) opt-in + + + отказ от тестирования на холестерин / refused from cholesterol testing + согласие на тестирование на холестерин / accepted cholesterol testing + забор не должен производиться / ВАРИАНТ (А) opt-in / test is not to be taken / OPTION (А) opt-in + + + 1. Это просто и удобно / This is simple and comfortable + 2. Результаты готовы очень быстро / Results are very quick + 3. Это бесплатно / This is free + 4. Это только укол в палец / It's just finger prick + 5. Чтобы снизить свое беспокойство по поводу ВИЧ / To reduce my worries about HIV + 6. У меня были ИППП/у партнера были ИППП / I had STI/my partner had STI + 7. Осознала свой риск / Get aware of risk + 8. Новый партнер / New sexual partner + 9. Оказалась в ситуации возможного риска заражения / Potential exposure + 10. Это конфиденциально - никто другой не узнает о результате / This is confidential - nobody else will know my result + 11. Результат не будет вноситься в медицинскую карточку / The result will not be recorded + 12. Персонал доброжелательный и вызывает доверие / Staff is friendly and trustful + 13. Узнала новое о ВИЧ/ЗППП/получила информацию / Learn something new about HIV/STI/gain new information + 14. Чтобы не заразить ребенка / To not infect my child + 15. Чтобы не заразить партнера / To not infect the partner + 16. Хочу перестать пользоваться презервативами / Want to stop using condoms + 17. Чтобы начать лечиться быстрее если заражена / To start treatment earlier if I'm infected + 18. Для защиты от ВИЧ/ИППП / To protect against HIV/STI + 19. Другая причина / Other reason + Н/О / N/A + + + 1. Это просто и удобно / This is simple and comfortable + 2. Результаты готовы очень быстро / Results are very quick + 3. Это бесплатно / This is free + 4. Это только укол в палец / It's just finger prick + 5. Чтобы снизить свое беспокойство по поводу ВИЧ / To reduce my worries about HIV + 6. У меня были ИППП/у партнера были ИППП / I had STI/my partner had STI + 7. Осознала свой риск / Get aware of risk + 8. Новый партнер / New sexual partner + 9. Оказалась в ситуации возможного риска заражения / Potential exposure + 10. Это конфиденциально - никто другой не узнает о результате / This is confidential - nobody else will know my result + 11. Результат не будет вноситься в медицинскую карточку / The result will not be recorded + 12. Персонал доброжелательный и вызывает доверие / Staff is friendly and trustful + 13. Узнала новое о ВИЧ/ЗППП/получила информацию / Learn something new about HIV/STI/gain new information + 14. Чтобы не заразить ребенка / To not infect my child + 15. Чтобы не заразить партнера / To not infect the partner + 16. Хочу перестать пользоваться презервативами / Want to stop using condoms + 17. Чтобы начать лечиться быстрее если заражена / To start treatment earlier if I'm infected + 18. Для защиты от ВИЧ/ИППП / To protect against HIV/STI + 19. Другая причина / Other reason + Н/О / N/A + + + 1. Это просто и удобно / This is simple and comfortable + 2. Результаты готовы очень быстро / Results are very quick + 3. Это бесплатно / This is free + 4. Это только укол в палец / It's just finger prick + 5. Чтобы снизить свое беспокойство по поводу ВИЧ / To reduce my worries about HIV + 6. У меня были ИППП/у партнера были ИППП / I had STI/my partner had STI + 7. Осознала свой риск / Get aware of risk + 8. Новый партнер / New sexual partner + 9. Оказалась в ситуации возможного риска заражения / Potential exposure + 10. Это конфиденциально - никто другой не узнает о результате / This is confidential - nobody else will know my result + 11. Результат не будет вноситься в медицинскую карточку / The result will not be recorded + 12. Персонал доброжелательный и вызывает доверие / Staff is friendly and trustful + 13. Узнала новое о ВИЧ/ЗППП/получила информацию / Learn something new about HIV/STI/gain new information + 14. Чтобы не заразить ребенка / To not infect my child + 15. Чтобы не заразить партнера / To not infect the partner + 16. Хочу перестать пользоваться презервативами / Want to stop using condoms + 17. Чтобы начать лечиться быстрее если заражена / To start treatment earlier if I'm infected + 18. Для защиты от ВИЧ/ИППП / To protect against HIV/STI + 19. Другая причина / Other reason + Н/О / N/A + + + 1. Не доверяю экспресс-тестам на ВИЧ / I don't trust to rapid HIV tests + 2. Не доверяю персоналу / I don't trust to the staff + 3. Боюсь укола в палец / вида крови / I'm afraid of finger prick /blood view + 4. Персонал недоброжелательный / Staff is unfriendly + 5. У меня не может быть ВИЧ. Не считаю, что я в зоне риска / I cannot have HIV. I don't think that I am at risk + 6. Недостаточный уровень конфиденциальности - вдруг кто-то увидит или может узнать / Confidentiality is not enough - what if someone see me here or will know + 7. Предвзятое отношение медицинского персонала к тем, кто делает тест на ВИЧ / Biased attitude of medical staff to those testing for HIV + 8. Боюсь положительного результата на ВИЧ - люди узнают и отвернутся от меня / I was afraid of positive HIV test result - people will know and reject me + 9. Боюсь положительного результата на ВИЧ - никто не захочет иметь со мной сексуальные отношения / I was afraid of positive HIV test result - nobody will want to have sex with me + 10. ВИЧ-инфекции не существует / HIV infection does not exist + 11. Все равно нет лечения от ВИЧ / There is no cure for HIV anyway + 12. Не хочу знать свой результат теста на ВИЧ / I don't want to know my HIV test result + 13. Не смогу платить за лечение / I cannot afford to pay for the treatment + 14. Боюсь, в случае положительного результата меня найдут и причинят беспокойство мне и моим близким / I'm afraid if I have positive HIV test result they will find me and cause troubles to me or my relatives + 15. Другая причина / Other reason + Н/О / N/A + + + 1. Не доверяю экспресс-тестам на ВИЧ / I don't trust to rapid HIV tests + 2. Не доверяю персоналу / I don't trust to the staff + 3. Боюсь укола в палец / вида крови / I'm afraid of finger prick /blood view + 4. Персонал недоброжелательный / Staff is unfriendly + 5. У меня не может быть ВИЧ. Не считаю, что я в зоне риска / I cannot have HIV. I don't think that I am at risk + 6. Недостаточный уровень конфиденциальности - вдруг кто-то увидит или может узнать / Confidentiality is not enough - what if someone see me here or will know + 7. Предвзятое отношение медицинского персонала к тем, кто делает тест на ВИЧ / Biased attitude of medical staff to those testing for HIV + 8. Боюсь положительного результата на ВИЧ - люди узнают и отвернутся от меня / I was afraid of positive HIV test result - people will know and reject me + 9. Боюсь положительного результата на ВИЧ - никто не захочет иметь со мной сексуальные отношения / I was afraid of positive HIV test result - nobody will want to have sex with me + 10. ВИЧ-инфекции не существует / HIV infection does not exist + 11. Все равно нет лечения от ВИЧ / There is no cure for HIV anyway + 12. Не хочу знать свой результат теста на ВИЧ / I don't want to know my HIV test result + 13. Не смогу платить за лечение / I cannot afford to pay for the treatment + 14. Боюсь, в случае положительного результата меня найдут и причинят беспокойство мне и моим близким / I'm afraid if I have positive HIV test result they will find me and cause troubles to me or my relatives + 15. Другая причина / Other reason + Н/О / N/A + + + 1. Не доверяю экспресс-тестам на ВИЧ / I don't trust to rapid HIV tests + 2. Не доверяю персоналу / I don't trust to the staff + 3. Боюсь укола в палец / вида крови / I'm afraid of finger prick /blood view + 4. Персонал недоброжелательный / Staff is unfriendly + 5. У меня не может быть ВИЧ. Не считаю, что я в зоне риска / I cannot have HIV. I don't think that I am at risk + 6. Недостаточный уровень конфиденциальности - вдруг кто-то увидит или может узнать / Confidentiality is not enough - what if someone see me here or will know + 7. Предвзятое отношение медицинского персонала к тем, кто делает тест на ВИЧ / Biased attitude of medical staff to those testing for HIV + 8. Боюсь положительного результата на ВИЧ - люди узнают и отвернутся от меня / I was afraid of positive HIV test result - people will know and reject me + 9. Боюсь положительного результата на ВИЧ - никто не захочет иметь со мной сексуальные отношения / I was afraid of positive HIV test result - nobody will want to have sex with me + 10. ВИЧ-инфекции не существует / HIV infection does not exist + 11. Все равно нет лечения от ВИЧ / There is no cure for HIV anyway + 12. Не хочу знать свой результат теста на ВИЧ / I don't want to know my HIV test result + 13. Не смогу платить за лечение / I cannot afford to pay for the treatment + 14. Боюсь, в случае положительного результата меня найдут и причинят беспокойство мне и моим близким / I'm afraid if I have positive HIV test result they will find me and cause troubles to me or my relatives + 15. Другая причина / Other reason + Н/О / N/A + + + Incomplete + Unverified + Complete + + + положительный / positive + отрицательный / negative + неопределенный / undetermined + отказ от тестирования на ВИЧ-инфекцию / refuse of HIV test + + + выше нормы / higher than norm + ниже нормы / lower than norm + норма / norm + забор не производился / ВАРИАНТ (А) opt-in / test was not conducted / VERSION (А) opt-in + отказ от тестирования на глюкозу / refuse of glucose testing + + + выше нормы / higher than norm + ниже нормы / lower than norm + норма / norm + забор не производился / ВАРИАНТ (А) opt-in / test was not conducted / VERSION (А) opt-in + отказ от тестирования на гемоглобин / refuse of hemoglobin testing + + + выше нормы / higher than norm + норма / norm + забор не производился / ВАРИАНТ (А) opt-in / test was not conducted / VERSION (А) opt-in + отказ от тестирования на холестерин / refuse of cholesterol testing + + + Incomplete + Unverified + Complete + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/inst/test-data/projects/russian/project.zip b/inst/test-data/projects/russian/project.zip deleted file mode 100644 index 74b217440e9e3898d0ea9c57e062a3ee90d83aa1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91102 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

i2DIDvg#^wjQt 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 From 0e8ec5df5edc82cd09581ecbec743f377635d751 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Mon, 4 Nov 2024 08:55:35 -0600 Subject: [PATCH 05/40] simple-write ref #544 --- inst/misc/plugin-redirection.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/inst/misc/plugin-redirection.yml b/inst/misc/plugin-redirection.yml index 1d8455af..f05a2daf 100644 --- a/inst/misc/plugin-redirection.yml +++ b/inst/misc/plugin-redirection.yml @@ -13,3 +13,11 @@ - delete_arm_single : "https://redcap-dev-2.ouhsc.edu/redcap/plugins/redcapr/wipe-project-redcapr-arm-delete-single.php" - delete_arm_multiple : "https://redcap-dev-2.ouhsc.edu/redcap/plugins/redcapr/wipe-project-redcapr-arm-delete-multiple.php" - delete_dag : "https://redcap-dev-2.ouhsc.edu/redcap/plugins/redcapr/wipe-project-redcapr-dag-write.php" + +- + instance: coph + plugins: + - delete_simple : "https://redcap.ouhsc.edu/redcap/plugins/redcapr/wipe-project-redcapr-simple.php" + - delete_arm_single : "https://redcap.ouhsc.edu/redcap/plugins/redcapr/wipe-project-redcapr-arm-delete-single.php" + - delete_arm_multiple : "https://redcap.ouhsc.edu/redcap/plugins/redcapr/wipe-project-redcapr-arm-delete-multiple.php" + - delete_dag : "https://redcap.ouhsc.edu/redcap/plugins/redcapr/wipe-project-redcapr-dag-write.php" From c18cf85096cdcbec1d622f3bbada547506d29109 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Mon, 4 Nov 2024 09:00:54 -0600 Subject: [PATCH 06/40] empty-rows ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../test-data/projects/empty-rows/project.xml | 30 ++++++++++--------- tests/test-all.R | 1 - 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 4e5a72fa..51795933 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -8,7 +8,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2299","7AFF619FA04E66CF092F8472D508C6FF","longitudinal" "https://redcap.ouhsc.edu/redcap/api/","myusername","2300","6FE8CDC56065D234A7CF2C65AA9106D3","simple-write" "https://redcap.ouhsc.edu/redcap/api/","myusername","2301","0172DF46EE90004E567F55E2D1BCD3D5","russian" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","empty-rows" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2302","D143A44FAD05FBEF5C35C797CE227D1E","empty-rows" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","single-column" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","super-wide-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","survey" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 39d80395..09b4b70a 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -75,7 +75,7 @@ - longitudinal: 2299 - simple-write: 2300 - russian: 2301 - - empty-rows: 0 + - empty-rows: 2302 - single-column: 0 - super-wide-1: 0 - survey: 0 diff --git a/inst/test-data/projects/empty-rows/project.xml b/inst/test-data/projects/empty-rows/project.xml index 7229622b..58fb0057 100644 --- a/inst/test-data/projects/empty-rows/project.xml +++ b/inst/test-data/projects/empty-rows/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Target Empty Rows -see https://github.com/OuhscBbmc/REDCapR - This file contains the metadata, events, and data for REDCap project "REDCapR Target Empty Rows -see https://github.com/OuhscBbmc/REDCapR". - REDCapR Target Empty Rows -see https://github.com/OuhscBbmc/REDCapR + REDCapR: empty rows + This file contains the metadata, events, and data for REDCap project "REDCapR: empty rows". + REDCapR: empty rows 1 @@ -13,13 +13,15 @@ 0 0 + 0 1 0 0 1 + 0 0 - 0 + 4 @@ -35,7 +37,7 @@ - + @@ -213,27 +215,27 @@ Unverified Complete - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked @@ -249,6 +251,6 @@ - + \ No newline at end of file diff --git a/tests/test-all.R b/tests/test-all.R index d8001886..1801db30 100644 --- a/tests/test-all.R +++ b/tests/test-all.R @@ -3,7 +3,6 @@ library(testthat) library(REDCapR) # source("R/helpers-testing.R") -# Sys.setenv("redcapr_test_server" = "bbmc") Sys.setenv("redcapr_test_server" = "dev-2") message("Using test server '", Sys.getenv("redcapr_test_server"), "'.") testthat::test_check("REDCapR") From 47317c8d49ff8519713d312074b342e49f9036e8 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Mon, 4 Nov 2024 09:05:37 -0600 Subject: [PATCH 07/40] single-column ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../projects/single-column/project.xml | 22 ++++++++----------- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 51795933..47f2337e 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -9,7 +9,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2300","6FE8CDC56065D234A7CF2C65AA9106D3","simple-write" "https://redcap.ouhsc.edu/redcap/api/","myusername","2301","0172DF46EE90004E567F55E2D1BCD3D5","russian" "https://redcap.ouhsc.edu/redcap/api/","myusername","2302","D143A44FAD05FBEF5C35C797CE227D1E","empty-rows" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","single-column" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2303","3F5E579FA2B611341D4A395C1A560EAA","single-column" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","super-wide-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","survey" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","clinical-trial-1" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 09b4b70a..ae61364f 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -76,7 +76,7 @@ - simple-write: 2300 - russian: 2301 - empty-rows: 2302 - - single-column: 0 + - single-column: 2303 - super-wide-1: 0 - survey: 0 - clinical-trial-1: 0 diff --git a/inst/test-data/projects/single-column/project.xml b/inst/test-data/projects/single-column/project.xml index 2c30857e..79d3ce0d 100644 --- a/inst/test-data/projects/single-column/project.xml +++ b/inst/test-data/projects/single-column/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Target Empty Columns -see https://github.com/OuhscBbmc/REDCapR - This file contains the metadata, events, and data for REDCap project "REDCapR Target Empty Columns -see https://github.com/OuhscBbmc/REDCapR". - REDCapR Target Empty Columns -see https://github.com/OuhscBbmc/REDCapR + REDCapR: single-column + This file contains the metadata, events, and data for REDCap project "REDCapR: single-column". + REDCapR: single-column 1 @@ -13,13 +13,15 @@ 0 0 + 0 1 0 0 1 + 0 0 - 0 + 4 @@ -35,14 +37,13 @@ - + - @@ -50,9 +51,6 @@ Study ID - - Data Access Group - Complete? @@ -64,6 +62,4 @@ - - \ No newline at end of file From 56cf387fdbe245e328a828f3d35abe4d82e123c7 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Mon, 4 Nov 2024 09:10:55 -0600 Subject: [PATCH 08/40] super-wide-1 ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 47f2337e..78457996 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -10,7 +10,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2301","0172DF46EE90004E567F55E2D1BCD3D5","russian" "https://redcap.ouhsc.edu/redcap/api/","myusername","2302","D143A44FAD05FBEF5C35C797CE227D1E","empty-rows" "https://redcap.ouhsc.edu/redcap/api/","myusername","2303","3F5E579FA2B611341D4A395C1A560EAA","single-column" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","super-wide-1" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2304","F783A553504660F85D532B75556575C0","super-wide-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","survey" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","clinical-trial-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","","---","Clinical Trial (Fake) --read & write, contributed by @higgi13425" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index ae61364f..40ebbe8a 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -77,7 +77,7 @@ - russian: 2301 - empty-rows: 2302 - single-column: 2303 - - super-wide-1: 0 + - super-wide-1: 2304 - survey: 0 - clinical-trial-1: 0 - nonnumeric-record-id: 0 From f94eb93b3131948edcccfb51e5fbbd85875b7286 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Mon, 4 Nov 2024 09:23:59 -0600 Subject: [PATCH 09/40] survey project ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- inst/test-data/projects/survey/README.md | 2 ++ inst/test-data/projects/survey/project.xml | 12 +++++++----- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 78457996..df44563d 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -11,7 +11,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2302","D143A44FAD05FBEF5C35C797CE227D1E","empty-rows" "https://redcap.ouhsc.edu/redcap/api/","myusername","2303","3F5E579FA2B611341D4A395C1A560EAA","single-column" "https://redcap.ouhsc.edu/redcap/api/","myusername","2304","F783A553504660F85D532B75556575C0","super-wide-1" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","survey" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2305","14F771B245565F68CE312B3A7C1DFA74","survey" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","clinical-trial-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","","---","Clinical Trial (Fake) --read & write, contributed by @higgi13425" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","nonnumeric-record-id" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 40ebbe8a..3a05871e 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -78,7 +78,7 @@ - empty-rows: 2302 - single-column: 2303 - super-wide-1: 2304 - - survey: 0 + - survey: 2305 - clinical-trial-1: 0 - nonnumeric-record-id: 0 - dag: 0 diff --git a/inst/test-data/projects/survey/README.md b/inst/test-data/projects/survey/README.md index 195209a4..6a7e44af 100644 --- a/inst/test-data/projects/survey/README.md +++ b/inst/test-data/projects/survey/README.md @@ -9,6 +9,7 @@ I don't know how to preserve these states/values in the xml file. 1. For both records, click the "Open Survey" button (in the "Survey Options" dropdown) and submit. + 1. Save the record (eg, blue "Save & Stay" button) 1. For record 1 only: 1. Delete the entry for the "Participant Morale Questionnaire" @@ -16,4 +17,5 @@ I don't know how to preserve these states/values in the xml file. 1. Set it to "Incomplete" 1. In the survey options dropdown box, select "Open survey" 1. Click "Save & Return Later" + 1. Save the record (eg, blue "Save & Stay" button) 1. In the Record Status Dashboard, verify the "Participant Morale Questionnaire" status is orange diff --git a/inst/test-data/projects/survey/project.xml b/inst/test-data/projects/survey/project.xml index 1ad2a818..01ba3eb3 100644 --- a/inst/test-data/projects/survey/project.xml +++ b/inst/test-data/projects/survey/project.xml @@ -1,5 +1,5 @@ - + REDCapR: survey @@ -13,11 +13,13 @@ 0 1 email + 0 1 0 0 1 + 0 0 4 @@ -54,7 +56,7 @@ - + @@ -365,7 +367,7 @@ - + @@ -386,10 +388,10 @@ - + - + From ce726c2627937770db5e478d9b22c3498183da1a Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 12:20:30 -0600 Subject: [PATCH 10/40] clinical-trial-1 ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../projects/clinical-trial-1/project.xml | 20 ++++++++++--------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index df44563d..1347d267 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -12,7 +12,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2303","3F5E579FA2B611341D4A395C1A560EAA","single-column" "https://redcap.ouhsc.edu/redcap/api/","myusername","2304","F783A553504660F85D532B75556575C0","super-wide-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","2305","14F771B245565F68CE312B3A7C1DFA74","survey" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","clinical-trial-1" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2306","B3469CB77B980CDEA5AFA15E9967564B","clinical-trial-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","","---","Clinical Trial (Fake) --read & write, contributed by @higgi13425" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","nonnumeric-record-id" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","dag" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 3a05871e..edea49ed 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -79,7 +79,7 @@ - single-column: 2303 - super-wide-1: 2304 - survey: 2305 - - clinical-trial-1: 0 + - clinical-trial-1: 2306 - nonnumeric-record-id: 0 - dag: 0 - potentially-problematic-values: 0 diff --git a/inst/test-data/projects/clinical-trial-1/project.xml b/inst/test-data/projects/clinical-trial-1/project.xml index 45037691..4b30a35e 100644 --- a/inst/test-data/projects/clinical-trial-1/project.xml +++ b/inst/test-data/projects/clinical-trial-1/project.xml @@ -1,10 +1,10 @@ - - + + - REDCap Target Fake Clinical Trial - This file contains the metadata, events, and data for REDCap project "REDCap Target Fake Clinical Trial". - REDCap Target Fake Clinical Trial + REDCapR: clinical-trial-1 + This file contains the metadata, events, and data for REDCap project "REDCapR: clinical-trial-1". + REDCapR: clinical-trial-1 1 @@ -13,15 +13,17 @@ 0 0 + 0 1 0 0 1 + 0 0 - 0 + 4 - Generated & contributed by Peter Higgins at University of Michigan School of Medicine + Generated and contributed by Peter Higgins at University of Michigan School of Medicine 0 @@ -31,7 +33,7 @@ - + @@ -144,7 +146,7 @@ - + From b55013844858f871a7a6e5993b20af49602e03b0 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 12:26:03 -0600 Subject: [PATCH 11/40] nonnumeric-record-id ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../projects/nonnumeric-record-id/project.xml | 18 ++++++++++-------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 1347d267..c8ad4224 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -14,7 +14,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2305","14F771B245565F68CE312B3A7C1DFA74","survey" "https://redcap.ouhsc.edu/redcap/api/","myusername","2306","B3469CB77B980CDEA5AFA15E9967564B","clinical-trial-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","","---","Clinical Trial (Fake) --read & write, contributed by @higgi13425" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","nonnumeric-record-id" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2307","F93F50EC97CE34BBAA8408F1033D6BD6","nonnumeric-record-id" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","dag" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","potentially-problematic-values" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","repeating-instruments" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index edea49ed..29ed1f29 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -80,7 +80,7 @@ - super-wide-1: 2304 - survey: 2305 - clinical-trial-1: 2306 - - nonnumeric-record-id: 0 + - nonnumeric-record-id: 2307 - dag: 0 - potentially-problematic-values: 0 - repeating-instruments: 0 diff --git a/inst/test-data/projects/nonnumeric-record-id/project.xml b/inst/test-data/projects/nonnumeric-record-id/project.xml index 763dc6f0..337adac3 100644 --- a/inst/test-data/projects/nonnumeric-record-id/project.xml +++ b/inst/test-data/projects/nonnumeric-record-id/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Target -nonumeric record_id - This file contains the metadata, events, and data for REDCap project "REDCapR Target -nonumeric record_id". - REDCapR Target -nonumeric record_id + REDCapR: nonnumeric-record-id + This file contains the metadata, events, and data for REDCap project "REDCapR: nonnumeric-record-id". + REDCapR: nonnumeric-record-id 0 @@ -13,15 +13,17 @@ 0 0 + 0 1 0 0 1 + 0 0 4 - Helps test functions when the record name is not numeric + 0 @@ -31,7 +33,7 @@ - + @@ -60,7 +62,7 @@ - + From 7050f0062f8c6b5265bb6dc005977fdefcf08c48 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 12:30:38 -0600 Subject: [PATCH 12/40] dag ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- inst/test-data/projects/dag/README.md | 3 ++- inst/test-data/projects/dag/project.xml | 18 ++++++++++-------- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index c8ad4224..82b72073 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -15,7 +15,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2306","B3469CB77B980CDEA5AFA15E9967564B","clinical-trial-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","","---","Clinical Trial (Fake) --read & write, contributed by @higgi13425" "https://redcap.ouhsc.edu/redcap/api/","myusername","2307","F93F50EC97CE34BBAA8408F1033D6BD6","nonnumeric-record-id" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","dag" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2308","3C8363A38CF471D90AFC11DF4BC08AE7","dag" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","potentially-problematic-values" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","repeating-instruments" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","potentially-problematic-dictionary" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 29ed1f29..9c1078e6 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -81,7 +81,7 @@ - survey: 2305 - clinical-trial-1: 2306 - nonnumeric-record-id: 2307 - - dag: 0 + - dag: 2308 - potentially-problematic-values: 0 - repeating-instruments: 0 - potentially-problematic-dictionary: 0 diff --git a/inst/test-data/projects/dag/README.md b/inst/test-data/projects/dag/README.md index f83a6672..aea702ef 100644 --- a/inst/test-data/projects/dag/README.md +++ b/inst/test-data/projects/dag/README.md @@ -3,5 +3,6 @@ dag Manual Instructions: -* Assign the API user to "dag-a". +* Assign the API user (eg, "unttestphifree") to the DAG called "dag-a", + in addition to the "api" role. This has to manual because DAGs are assigned at the user-level, not the role-level. diff --git a/inst/test-data/projects/dag/project.xml b/inst/test-data/projects/dag/project.xml index 91c22265..5ef88352 100644 --- a/inst/test-data/projects/dag/project.xml +++ b/inst/test-data/projects/dag/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Target DAG -see https://github.com/OuhscBbmc/REDCapR - This file contains the metadata, events, and data for REDCap project "REDCapR Target DAG -see https://github.com/OuhscBbmc/REDCapR". - REDCapR Target DAG -see https://github.com/OuhscBbmc/REDCapR + REDCapR: dag + This file contains the metadata, events, and data for REDCap project "REDCapR: dag". + REDCapR: dag 0 @@ -13,13 +13,15 @@ 0 0 + 0 1 0 0 1 + 0 0 - 0 + 4 @@ -35,7 +37,7 @@ - + @@ -166,7 +168,7 @@ - + From dce97f5945ddedb61e03f2497cd005ed40878841 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 12:35:15 -0600 Subject: [PATCH 13/40] potentially-problematic-values ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../project.xml | 24 ++++++++++--------- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 82b72073..9f8d69e4 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -16,7 +16,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","","---","Clinical Trial (Fake) --read & write, contributed by @higgi13425" "https://redcap.ouhsc.edu/redcap/api/","myusername","2307","F93F50EC97CE34BBAA8408F1033D6BD6","nonnumeric-record-id" "https://redcap.ouhsc.edu/redcap/api/","myusername","2308","3C8363A38CF471D90AFC11DF4BC08AE7","dag" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","potentially-problematic-values" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2309","48CD1D8660A55B5835CED8D9F2914A4C","potentially-problematic-values" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","repeating-instruments" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","potentially-problematic-dictionary" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","metadata-write" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 9c1078e6..3d7d86a8 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -82,7 +82,7 @@ - clinical-trial-1: 2306 - nonnumeric-record-id: 2307 - dag: 2308 - - potentially-problematic-values: 0 + - potentially-problematic-values: 2309 - repeating-instruments: 0 - potentially-problematic-dictionary: 0 - metadata-write: 0 diff --git a/inst/test-data/projects/potentially-problematic-values/project.xml b/inst/test-data/projects/potentially-problematic-values/project.xml index 4c1343dc..e54b18bb 100644 --- a/inst/test-data/projects/potentially-problematic-values/project.xml +++ b/inst/test-data/projects/potentially-problematic-values/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Problematic values - This file contains the metadata, events, and data for REDCap project "REDCapR Problematic values". - REDCapR Problematic values + REDCapR: potentially-problematic-values + This file contains the metadata, events, and data for REDCap project "REDCapR: potentially-problematic-values". + REDCapR: potentially-problematic-values 1 @@ -13,25 +13,27 @@ 0 0 + 0 1 0 0 1 + 0 0 - 1 - Testing REDCapR API library (in R) - Contains values that might create problems for the API recipient + 4 + + 0 ALL - + - + @@ -72,7 +74,7 @@ See https://github.com/OuhscBbmc/REDCapR/issues/245 - + From 2c840889da39f7b013b5c54ca27cbed7037505dd Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 12:38:49 -0600 Subject: [PATCH 14/40] repeating-instruments ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../repeating-instruments/project.xml | 20 ++++++++++--------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 9f8d69e4..caa90d07 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -17,7 +17,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2307","F93F50EC97CE34BBAA8408F1033D6BD6","nonnumeric-record-id" "https://redcap.ouhsc.edu/redcap/api/","myusername","2308","3C8363A38CF471D90AFC11DF4BC08AE7","dag" "https://redcap.ouhsc.edu/redcap/api/","myusername","2309","48CD1D8660A55B5835CED8D9F2914A4C","potentially-problematic-values" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","repeating-instruments" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2310","942B824E8BF8420E43A18166BB3B8F68","repeating-instruments" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","potentially-problematic-dictionary" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","metadata-write" "https://redcap.ouhsc.edu/redcap/api/","admin" ,"0","","dag-write --admin" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 3d7d86a8..cbe0bcc8 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -83,7 +83,7 @@ - nonnumeric-record-id: 2307 - dag: 2308 - potentially-problematic-values: 2309 - - repeating-instruments: 0 + - repeating-instruments: 2310 - potentially-problematic-dictionary: 0 - metadata-write: 0 - dag-write: 0 diff --git a/inst/test-data/projects/repeating-instruments/project.xml b/inst/test-data/projects/repeating-instruments/project.xml index 5276e9cf..a6eb6e48 100644 --- a/inst/test-data/projects/repeating-instruments/project.xml +++ b/inst/test-data/projects/repeating-instruments/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Repeating Instruments --See https://github.com/OuhscBbmc/REDCapR - This file contains the metadata, events, and data for REDCap project "REDCapR Repeating Instruments --See https://github.com/OuhscBbmc/REDCapR". - REDCapR Repeating Instruments --See https://github.com/OuhscBbmc/REDCapR + REDCapR: repeating-instruments + This file contains the metadata, events, and data for REDCap project "REDCapR: repeating-instruments". + REDCapR: repeating-instruments 1 @@ -13,15 +13,17 @@ 0 0 + 0 1 0 0 1 + 0 0 4 - Repeating instruments + 0 @@ -36,10 +38,10 @@ - + - + @@ -151,7 +153,7 @@ - + From 4cdcccc74a83aa100e1633da60e4c657c6793eac Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 12:42:47 -0600 Subject: [PATCH 15/40] potentially-problematic-dictionary ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../project.xml | 18 ++++++++++-------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index caa90d07..b0164a18 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -18,7 +18,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2308","3C8363A38CF471D90AFC11DF4BC08AE7","dag" "https://redcap.ouhsc.edu/redcap/api/","myusername","2309","48CD1D8660A55B5835CED8D9F2914A4C","potentially-problematic-values" "https://redcap.ouhsc.edu/redcap/api/","myusername","2310","942B824E8BF8420E43A18166BB3B8F68","repeating-instruments" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","potentially-problematic-dictionary" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2311","E26AEBCCB2D8F726A58C5D6B37A31839","potentially-problematic-dictionary" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","metadata-write" "https://redcap.ouhsc.edu/redcap/api/","admin" ,"0","","dag-write --admin" "https://redcap.ouhsc.edu/redcap/api/","user-dag1" ,"0","","dag-write --group A" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index cbe0bcc8..3b4aec6f 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -84,7 +84,7 @@ - dag: 2308 - potentially-problematic-values: 2309 - repeating-instruments: 2310 - - potentially-problematic-dictionary: 0 + - potentially-problematic-dictionary: 2311 - metadata-write: 0 - dag-write: 0 - super-wide-2: 0 diff --git a/inst/test-data/projects/potentially-problematic-dictionary/project.xml b/inst/test-data/projects/potentially-problematic-dictionary/project.xml index 11e781b5..e8fffc06 100644 --- a/inst/test-data/projects/potentially-problematic-dictionary/project.xml +++ b/inst/test-data/projects/potentially-problematic-dictionary/project.xml @@ -1,10 +1,10 @@  - - + + - REDCapR Problematic dictionary - This file contains the metadata, events, and data for REDCap project "REDCapR Problematic dictionary". - REDCapR Problematic dictionary + REDCapR: potentially-problematic-dictionary + This file contains the metadata, events, and data for REDCap project "REDCapR: potentially-problematic-dictionary". + REDCapR: potentially-problematic-dictionary 1 @@ -13,15 +13,17 @@ 0 0 + 0 1 0 0 1 + 0 0 4 - Has variables or descriptions that might cause problems with the API + 0 @@ -31,7 +33,7 @@ - + @@ -103,6 +105,6 @@ - + \ No newline at end of file From 06d2f3c2ea75ccdb8c9a0e61ccdb7331f5027235 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 12:45:52 -0600 Subject: [PATCH 16/40] metadata-write ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../projects/metadata-write/project.xml | 24 +++++++++---------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index b0164a18..4a50bbea 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -19,7 +19,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2309","48CD1D8660A55B5835CED8D9F2914A4C","potentially-problematic-values" "https://redcap.ouhsc.edu/redcap/api/","myusername","2310","942B824E8BF8420E43A18166BB3B8F68","repeating-instruments" "https://redcap.ouhsc.edu/redcap/api/","myusername","2311","E26AEBCCB2D8F726A58C5D6B37A31839","potentially-problematic-dictionary" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","metadata-write" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2312","E030EAC2B318B0285F5A07A49687E9AA","metadata-write" "https://redcap.ouhsc.edu/redcap/api/","admin" ,"0","","dag-write --admin" "https://redcap.ouhsc.edu/redcap/api/","user-dag1" ,"0","","dag-write --group A" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","super-wide-2" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 3b4aec6f..889dfe50 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -85,7 +85,7 @@ - potentially-problematic-values: 2309 - repeating-instruments: 2310 - potentially-problematic-dictionary: 2311 - - metadata-write: 0 + - metadata-write: 2312 - dag-write: 0 - super-wide-2: 0 - super-wide-3: 0 diff --git a/inst/test-data/projects/metadata-write/project.xml b/inst/test-data/projects/metadata-write/project.xml index c785e17e..53a5b45e 100644 --- a/inst/test-data/projects/metadata-write/project.xml +++ b/inst/test-data/projects/metadata-write/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Target Simple -Write Metadata - This file contains the metadata, events, and data for REDCap project "REDCapR Target Simple -Write Metadata". - REDCapR Target Simple -Write Metadata + REDCapR: metadata-write + This file contains the metadata, events, and data for REDCap project "REDCapR: metadata-write". + REDCapR: metadata-write 1 @@ -13,15 +13,17 @@ 0 0 + 0 1 0 0 1 + 0 0 - 0 + 4 - see https://github.com/OuhscBbmc/REDCapR + 0 @@ -35,7 +37,7 @@ - + @@ -121,7 +123,7 @@ Date of birth - + Age (years) @@ -249,7 +251,7 @@ - + @@ -435,7 +437,6 @@ @@ -490,7 +491,6 @@ Send her a letter in the mail"/> From 4592c33d4b3c7b8c25db18dfad8524385f8eb25a Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 12:51:18 -0600 Subject: [PATCH 17/40] dag-write ref #552 --- inst/misc/coph.credentials | 4 ++-- inst/misc/project-redirection.yml | 2 +- inst/test-data/projects/dag-write/README.md | 6 +++--- inst/test-data/projects/dag-write/project.xml | 18 ++++++++++-------- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 4a50bbea..b6f5f386 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -20,8 +20,8 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2310","942B824E8BF8420E43A18166BB3B8F68","repeating-instruments" "https://redcap.ouhsc.edu/redcap/api/","myusername","2311","E26AEBCCB2D8F726A58C5D6B37A31839","potentially-problematic-dictionary" "https://redcap.ouhsc.edu/redcap/api/","myusername","2312","E030EAC2B318B0285F5A07A49687E9AA","metadata-write" -"https://redcap.ouhsc.edu/redcap/api/","admin" ,"0","","dag-write --admin" -"https://redcap.ouhsc.edu/redcap/api/","user-dag1" ,"0","","dag-write --group A" +"https://redcap.ouhsc.edu/redcap/api/","admin" ,"2313","0CC0D062B9A98E9C09AA2086D0900BA4","dag-write --admin" +"https://redcap.ouhsc.edu/redcap/api/","user-dag1" ,"2313","6861DFE81C0D1B1C6060EDBFB4AB0C0B","dag-write --group A" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","super-wide-2" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","super-wide-3" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","repeating-instruments-sparse" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 889dfe50..f4d7db74 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -86,7 +86,7 @@ - repeating-instruments: 2310 - potentially-problematic-dictionary: 2311 - metadata-write: 2312 - - dag-write: 0 + - dag-write: 2313 - super-wide-2: 0 - super-wide-3: 0 - repeating-instruments-sparse: 0 diff --git a/inst/test-data/projects/dag-write/README.md b/inst/test-data/projects/dag-write/README.md index a676b8f1..10299839 100644 --- a/inst/test-data/projects/dag-write/README.md +++ b/inst/test-data/projects/dag-write/README.md @@ -1,9 +1,9 @@ dag-write ================= -Additional steps to import & establish project: +Follow the typical steps to import & establish project, plus -1. Assign two users to the "api" role: +1. Assign two users to the "api" role, plus: 1. "unittestphifree": not assigned to a dag 1. "unittestphifree-dag1": assigned to "dag-a" dag. - +1. Create tokens for each user (and copy to the server's credential file) diff --git a/inst/test-data/projects/dag-write/project.xml b/inst/test-data/projects/dag-write/project.xml index 834671cc..0e234d2c 100644 --- a/inst/test-data/projects/dag-write/project.xml +++ b/inst/test-data/projects/dag-write/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Target DAG -Write Data -see https://github.com/OuhscBbmc/REDCapR - This file contains the metadata, events, and data for REDCap project "REDCapR Target DAG -Write Data -see https://github.com/OuhscBbmc/REDCapR". - REDCapR Target DAG -Write Data -see https://github.com/OuhscBbmc/REDCapR + REDCapR: dag-write + This file contains the metadata, events, and data for REDCap project "REDCapR: dag-write". + REDCapR: dag-write 0 @@ -13,13 +13,15 @@ 0 0 + 0 1 0 0 1 + 0 0 - 3 + 4 @@ -35,7 +37,7 @@ - + @@ -166,7 +168,7 @@ - + From 096d9f73292a37fc6125b0bd6bf2691ff7e88782 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 12:56:10 -0600 Subject: [PATCH 18/40] super-wide-2 ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index b6f5f386..742682aa 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -22,7 +22,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2312","E030EAC2B318B0285F5A07A49687E9AA","metadata-write" "https://redcap.ouhsc.edu/redcap/api/","admin" ,"2313","0CC0D062B9A98E9C09AA2086D0900BA4","dag-write --admin" "https://redcap.ouhsc.edu/redcap/api/","user-dag1" ,"2313","6861DFE81C0D1B1C6060EDBFB4AB0C0B","dag-write --group A" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","super-wide-2" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2314","1D465018BFB8D36AF08A3E869A9906BB","super-wide-2" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","super-wide-3" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","repeating-instruments-sparse" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","arm-single-delete" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index f4d7db74..0f3bab76 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -87,7 +87,7 @@ - potentially-problematic-dictionary: 2311 - metadata-write: 2312 - dag-write: 2313 - - super-wide-2: 0 + - super-wide-2: 2314 - super-wide-3: 0 - repeating-instruments-sparse: 0 - arm-single-delete: 0 From 429c6f8e6ff9fc842d5e38ff45a702bf88728164 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 13:16:03 -0600 Subject: [PATCH 19/40] super-wide-3 ref #552 --- .Rbuildignore | 2 ++ .gitignore | 2 ++ inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- inst/test-data/projects/super-wide-3/README.md | 14 +++++++++----- .../projects/super-wide-3/generate-dictionary.R | 3 ++- 6 files changed, 17 insertions(+), 8 deletions(-) diff --git a/.Rbuildignore b/.Rbuildignore index 2d9a1d4f..200f162e 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -12,6 +12,8 @@ README.html$ project\.xml$ \.zip$ \.tar.xz$ +inst/test-data/projects/super-wide-3/super-wide-3-dictionary\.csv + documentation-peek.pdf documentation-for-developers/ diff --git a/.gitignore b/.gitignore index ff1ec093..659bc25c 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,5 @@ docs inst/doc /doc/ /Meta/ + +inst/test-data/projects/super-wide-3/super-wide-3-dictionary.csv \ No newline at end of file diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 742682aa..6ced8786 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -23,7 +23,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","admin" ,"2313","0CC0D062B9A98E9C09AA2086D0900BA4","dag-write --admin" "https://redcap.ouhsc.edu/redcap/api/","user-dag1" ,"2313","6861DFE81C0D1B1C6060EDBFB4AB0C0B","dag-write --group A" "https://redcap.ouhsc.edu/redcap/api/","myusername","2314","1D465018BFB8D36AF08A3E869A9906BB","super-wide-2" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","super-wide-3" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2315","BC2D824FCF936C80EEEDDDFC3D886043","super-wide-3" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","repeating-instruments-sparse" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","arm-single-delete" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","arm-multiple-delete" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 0f3bab76..77e8a9f0 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -88,7 +88,7 @@ - metadata-write: 2312 - dag-write: 2313 - super-wide-2: 2314 - - super-wide-3: 0 + - super-wide-3: 2315 - repeating-instruments-sparse: 0 - arm-single-delete: 0 - arm-multiple-delete: 0 diff --git a/inst/test-data/projects/super-wide-3/README.md b/inst/test-data/projects/super-wide-3/README.md index 7a22c7cd..48a1dbc3 100644 --- a/inst/test-data/projects/super-wide-3/README.md +++ b/inst/test-data/projects/super-wide-3/README.md @@ -6,12 +6,16 @@ The project.xml file is too large to include in an R package (500Kb compressed, So perform these manual steps to create the project on a new server. 1. Create blank project -1. Create user role "api" with privileges +1. Create user role "api" with only these privileges: 1. API import 1. API export 1. Data Access Groups 1. Add user "unittestphifree" to role -1. Create token -1. Run to - 1. generate the dictionary (then upload it) - 1. upload the data via the api +1. Create token and copy it to the server's credential file +1. Run + 1. to generate the dictionary to this test project's directory, then + 1. wait for the script to hit a `stop()` command, next + 1. upload via the browser, and finally + 1. run the rest of the R file to upload the data via the api +1. Delete , if desired. + This file is ignored/blocked from being committed to the repo diff --git a/inst/test-data/projects/super-wide-3/generate-dictionary.R b/inst/test-data/projects/super-wide-3/generate-dictionary.R index 69fe5413..3a7d55b3 100644 --- a/inst/test-data/projects/super-wide-3/generate-dictionary.R +++ b/inst/test-data/projects/super-wide-3/generate-dictionary.R @@ -70,6 +70,7 @@ ds_dictionary$variable_index <- NULL # Drop before writing to disk. readr::write_csv(ds_dictionary, "inst/test-data/projects/super-wide-3/super-wide-3-dictionary.csv") +stop("Upload the dictionary through the browser, then run the rest of the R file") ds_dictionary_slim <- ds_dictionary |> @@ -84,7 +85,7 @@ row_count <- 20 # # readr::write_csv("inst/test-data/projects/super-wide-3/super-wide-3.csv") ds <- matrix(rep(1, row_count * nrow(ds_dictionary_slim)), nrow = row_count) |> - tibble::as_tibble() |> + tibble::as_tibble(.name_repair = "minimal") |> magrittr::set_colnames(ds_dictionary_slim$`Variable / Field Name`) |> dplyr::mutate( record_id = seq_len(dplyr::n()) From ed119e42f926ba3d31916abac97e1ae5d2f325d1 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 13:20:15 -0600 Subject: [PATCH 20/40] rename for super-wide-3 ref #552 --- .../super-wide-3/{generate-dictionary.R => generate-project.R} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename inst/test-data/projects/super-wide-3/{generate-dictionary.R => generate-project.R} (100%) diff --git a/inst/test-data/projects/super-wide-3/generate-dictionary.R b/inst/test-data/projects/super-wide-3/generate-project.R similarity index 100% rename from inst/test-data/projects/super-wide-3/generate-dictionary.R rename to inst/test-data/projects/super-wide-3/generate-project.R From 98714cf192bcffb236ace49d862a35453c5daf35 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 13:23:08 -0600 Subject: [PATCH 21/40] repeating-instruments-sparse ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../repeating-instruments-sparse/project.xml | 18 ++++++++++-------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 6ced8786..51712342 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -24,7 +24,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","user-dag1" ,"2313","6861DFE81C0D1B1C6060EDBFB4AB0C0B","dag-write --group A" "https://redcap.ouhsc.edu/redcap/api/","myusername","2314","1D465018BFB8D36AF08A3E869A9906BB","super-wide-2" "https://redcap.ouhsc.edu/redcap/api/","myusername","2315","BC2D824FCF936C80EEEDDDFC3D886043","super-wide-3" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","repeating-instruments-sparse" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2316","1226D74DF3068D1749262E8557A597B8","repeating-instruments-sparse" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","arm-single-delete" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","arm-multiple-delete" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","arm-single-longitudinal" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 77e8a9f0..4f3e7254 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -89,7 +89,7 @@ - dag-write: 2313 - super-wide-2: 2314 - super-wide-3: 2315 - - repeating-instruments-sparse: 0 + - repeating-instruments-sparse: 2316 - arm-single-delete: 0 - arm-multiple-delete: 0 - arm-single-longitudinal: 0 diff --git a/inst/test-data/projects/repeating-instruments-sparse/project.xml b/inst/test-data/projects/repeating-instruments-sparse/project.xml index 999bc247..1def24d8 100644 --- a/inst/test-data/projects/repeating-instruments-sparse/project.xml +++ b/inst/test-data/projects/repeating-instruments-sparse/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Repeating Instruments Sparse - This file contains the metadata, events, and data for REDCap project "REDCapR Repeating Instruments Sparse". - REDCapR Repeating Instruments Sparse + REDCapR: repeating-instruments-sparse + This file contains the metadata, events, and data for REDCap project "REDCapR: repeating-instruments-sparse". + REDCapR: repeating-instruments-sparse 1 @@ -13,15 +13,17 @@ 0 0 + 0 1 0 0 1 + 0 0 4 - Repeating instruments See https://github.com/OuhscBbmc/REDCapR + 0 @@ -36,7 +38,7 @@ - + @@ -148,7 +150,7 @@ - + From 8358980e109033512223806ec32422828c1bfe38 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 13:30:06 -0600 Subject: [PATCH 22/40] arm-single-delete ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../projects/arm-single-delete/README.md | 7 +++++++ .../projects/arm-single-delete/project.xml | 18 ++++++++++-------- 4 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 inst/test-data/projects/arm-single-delete/README.md diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 51712342..3787655a 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -25,7 +25,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2314","1D465018BFB8D36AF08A3E869A9906BB","super-wide-2" "https://redcap.ouhsc.edu/redcap/api/","myusername","2315","BC2D824FCF936C80EEEDDDFC3D886043","super-wide-3" "https://redcap.ouhsc.edu/redcap/api/","myusername","2316","1226D74DF3068D1749262E8557A597B8","repeating-instruments-sparse" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","arm-single-delete" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2317","92D434EE7CB6D79D5C847D20DFA43979","arm-single-delete" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","arm-multiple-delete" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","arm-single-longitudinal" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","decimal-comma-and-dot" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 4f3e7254..725eceff 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -90,7 +90,7 @@ - super-wide-2: 2314 - super-wide-3: 2315 - repeating-instruments-sparse: 2316 - - arm-single-delete: 0 + - arm-single-delete: 2317 - arm-multiple-delete: 0 - arm-single-longitudinal: 0 - decimal-comma-and-dot: 0 diff --git a/inst/test-data/projects/arm-single-delete/README.md b/inst/test-data/projects/arm-single-delete/README.md new file mode 100644 index 00000000..7a653e52 --- /dev/null +++ b/inst/test-data/projects/arm-single-delete/README.md @@ -0,0 +1,7 @@ +arm-single-delete Setup +============== + +In addition to the typical steps to establish a project, +make sure the plugin on your test server is updated to the correct `project_id` value in the delete sql. + +The sql is in [wipe-project-redcapr-arm-delete-single.php](../../../../utility/plugins/wipe-project-redcapr-arm-delete-single.php). \ No newline at end of file diff --git a/inst/test-data/projects/arm-single-delete/project.xml b/inst/test-data/projects/arm-single-delete/project.xml index 022ee5ff..b21d22e5 100644 --- a/inst/test-data/projects/arm-single-delete/project.xml +++ b/inst/test-data/projects/arm-single-delete/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Delete Single Arm - This file contains the metadata, events, and data for REDCap project "REDCapR Delete Single Arm". - REDCapR Delete Single Arm + REDCapR: arm-single-delete + This file contains the metadata, events, and data for REDCap project "REDCapR: arm-single-delete". + REDCapR: arm-single-delete 1 @@ -13,15 +13,17 @@ 0 0 + 0 1 0 0 1 + 0 0 4 - REDCapR Test Suite: delete records from a single-arm project + 0 @@ -31,7 +33,7 @@ - + @@ -64,7 +66,7 @@ - + From 0be141f070045f56bc347ddc3923e230f25b4800 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 13:32:21 -0600 Subject: [PATCH 23/40] dag & dag-write readmes ref #552 --- inst/test-data/projects/dag-write/README.md | 3 +++ inst/test-data/projects/dag/README.md | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/inst/test-data/projects/dag-write/README.md b/inst/test-data/projects/dag-write/README.md index 10299839..fe576c3d 100644 --- a/inst/test-data/projects/dag-write/README.md +++ b/inst/test-data/projects/dag-write/README.md @@ -7,3 +7,6 @@ Follow the typical steps to import & establish project, plus 1. "unittestphifree": not assigned to a dag 1. "unittestphifree-dag1": assigned to "dag-a" dag. 1. Create tokens for each user (and copy to the server's credential file) + +1. Make sure the plugin on your test server is updated to the correct `project_id` value in the delete sql. + The sql is in [wipe-project-redcapr-dag-write.php](../../../../utility/plugins/wipe-project-redcapr-dag-write.php). diff --git a/inst/test-data/projects/dag/README.md b/inst/test-data/projects/dag/README.md index aea702ef..768bb320 100644 --- a/inst/test-data/projects/dag/README.md +++ b/inst/test-data/projects/dag/README.md @@ -1,8 +1,8 @@ dag ======== -Manual Instructions: +In addition to the typical steps to establish a project, -* Assign the API user (eg, "unttestphifree") to the DAG called "dag-a", +1. Assign the API user (eg, "unttestphifree") to the DAG called "dag-a", in addition to the "api" role. This has to manual because DAGs are assigned at the user-level, not the role-level. From 8e64afac8c41c25f8abf884ee582c59d1bd206d5 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 14:05:56 -0600 Subject: [PATCH 24/40] Update all-test-projects.R ref #552 --- .../project-info-read/all-test-projects.R | 26 +++++-------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/inst/test-data/specific-redcapr/project-info-read/all-test-projects.R b/inst/test-data/specific-redcapr/project-info-read/all-test-projects.R index 031f5e3d..43391341 100644 --- a/inst/test-data/specific-redcapr/project-info-read/all-test-projects.R +++ b/inst/test-data/specific-redcapr/project-info-read/all-test-projects.R @@ -45,18 +45,12 @@ structure(list(project_id = c(33L, 34L, 36L, 37L, 38L, 39L, 40L, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_ - ), project_notes = c(NA_character_, NA_character_, NA_character_, - NA_character_, NA_character_, NA_character_, NA_character_, - NA_character_, NA_character_, NA_character_, NA_character_, - NA_character_, NA_character_, NA_character_, NA_character_, - NA_character_, NA_character_, NA_character_, NA_character_, - NA_character_, NA_character_, NA_character_, NA_character_, - NA_character_, NA_character_, NA_character_, NA_character_, - NA_character_, NA_character_, NA_character_, NA_character_ - ), custom_record_label = c(NA, NA, NA, NA, NA, NA, NA, NA, + ), project_notes = c(NA, NA, NA, NA, NA, NA, NA, NA, "Generated and contributed by Peter Higgins at University of Michigan School of Medicine", + NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, + NA, NA, NA, NA, NA, NA, NA), custom_record_label = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, - NA, NA, NA, NA, NA, NA, "[height]; [weight]; [bmi]", NA), - secondary_unique_field = c(NA_character_, NA_character_, + NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "[height]; [weight]; [bmi]", + NA), secondary_unique_field = c(NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, @@ -134,15 +128,7 @@ structure(list(project_id = c(33L, 34L, 36L, 37L, 38L, 39L, 40L, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, - NA_character_, NA_character_), external_modules = c("redcap_entity", - "redcap_entity", "redcap_entity", "redcap_entity", "redcap_entity", - "redcap_entity", "redcap_entity", "redcap_entity", "redcap_entity", - "redcap_entity", "redcap_entity", "redcap_entity", "redcap_entity", - "redcap_entity", "redcap_entity", "redcap_entity", "redcap_entity", - "redcap_entity", "redcap_entity", "redcap_entity", "redcap_entity", - "redcap_entity", "redcap_entity", "redcap_entity", "redcap_entity", - "redcap_entity", "redcap_entity", "redcap_entity", "redcap_entity", - "redcap_entity", "redcap_entity"), bypass_branching_erase_field_prompt = c("0", + NA_character_, NA_character_), bypass_branching_erase_field_prompt = c("0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0")), row.names = c(NA, -31L), class = c("tbl_df", From 83e310d53deb4c3dbd0a48a517960652793d96e2 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 15:25:19 -0600 Subject: [PATCH 25/40] document more ref #552 --- inst/test-data/projects/arm-single-delete/README.md | 2 +- inst/test-data/projects/dag/README.md | 6 +++--- inst/test-data/projects/super-wide-3/README.md | 3 ++- inst/test-data/projects/super-wide-3/generate-project.R | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/inst/test-data/projects/arm-single-delete/README.md b/inst/test-data/projects/arm-single-delete/README.md index 7a653e52..840a8bf8 100644 --- a/inst/test-data/projects/arm-single-delete/README.md +++ b/inst/test-data/projects/arm-single-delete/README.md @@ -4,4 +4,4 @@ arm-single-delete Setup In addition to the typical steps to establish a project, make sure the plugin on your test server is updated to the correct `project_id` value in the delete sql. -The sql is in [wipe-project-redcapr-arm-delete-single.php](../../../../utility/plugins/wipe-project-redcapr-arm-delete-single.php). \ No newline at end of file +The sql is in [wipe-project-redcapr-arm-delete-single.php](../../../../utility/plugins/wipe-project-redcapr-arm-delete-single.php). diff --git a/inst/test-data/projects/dag/README.md b/inst/test-data/projects/dag/README.md index 768bb320..0f1ee480 100644 --- a/inst/test-data/projects/dag/README.md +++ b/inst/test-data/projects/dag/README.md @@ -1,8 +1,8 @@ dag ======== -In addition to the typical steps to establish a project, +Follow the typical steps to import & establish project, plus 1. Assign the API user (eg, "unttestphifree") to the DAG called "dag-a", - in addition to the "api" role. - This has to manual because DAGs are assigned at the user-level, not the role-level. + in addition to the "api" role. + This has to manual because DAGs are assigned at the user-level, not the role-level. diff --git a/inst/test-data/projects/super-wide-3/README.md b/inst/test-data/projects/super-wide-3/README.md index 48a1dbc3..ec5b4342 100644 --- a/inst/test-data/projects/super-wide-3/README.md +++ b/inst/test-data/projects/super-wide-3/README.md @@ -16,6 +16,7 @@ So perform these manual steps to create the project on a new server. 1. to generate the dictionary to this test project's directory, then 1. wait for the script to hit a `stop()` command, next 1. upload via the browser, and finally - 1. run the rest of the R file to upload the data via the api + 1. run the rest of the R file to upload the data via the api. + (This takes ~25 min to upload.) 1. Delete , if desired. This file is ignored/blocked from being committed to the repo diff --git a/inst/test-data/projects/super-wide-3/generate-project.R b/inst/test-data/projects/super-wide-3/generate-project.R index 3a7d55b3..bdd3c7e9 100644 --- a/inst/test-data/projects/super-wide-3/generate-project.R +++ b/inst/test-data/projects/super-wide-3/generate-project.R @@ -91,7 +91,7 @@ ds <- record_id = seq_len(dplyr::n()) ) -# takes ~10 min to upload +# takes ~25 min to upload credential <- retrieve_credential_testing("super-wide-3") REDCapR::redcap_write( ds = ds, From a33cfdad015ca8b7b6dc171960f5b6271e449050 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 15:29:42 -0600 Subject: [PATCH 26/40] arm-multiple-delete ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../projects/arm-multiple-delete/README.md | 7 +++++++ .../projects/arm-multiple-delete/project.xml | 18 ++++++++++-------- 4 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 inst/test-data/projects/arm-multiple-delete/README.md diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 3787655a..b74b2125 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -26,7 +26,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2315","BC2D824FCF936C80EEEDDDFC3D886043","super-wide-3" "https://redcap.ouhsc.edu/redcap/api/","myusername","2316","1226D74DF3068D1749262E8557A597B8","repeating-instruments-sparse" "https://redcap.ouhsc.edu/redcap/api/","myusername","2317","92D434EE7CB6D79D5C847D20DFA43979","arm-single-delete" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","arm-multiple-delete" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2318","84E5DE832DDE291203295CDA09557A36","arm-multiple-delete" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","arm-single-longitudinal" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","decimal-comma-and-dot" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","decimal-comma" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 725eceff..303aa69d 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -91,7 +91,7 @@ - super-wide-3: 2315 - repeating-instruments-sparse: 2316 - arm-single-delete: 2317 - - arm-multiple-delete: 0 + - arm-multiple-delete: 2318 - arm-single-longitudinal: 0 - decimal-comma-and-dot: 0 - decimal-comma: 0 diff --git a/inst/test-data/projects/arm-multiple-delete/README.md b/inst/test-data/projects/arm-multiple-delete/README.md new file mode 100644 index 00000000..ff0b0f22 --- /dev/null +++ b/inst/test-data/projects/arm-multiple-delete/README.md @@ -0,0 +1,7 @@ +arm-multiple-delete Setup +============== + +In addition to the typical steps to establish a project, +make sure the plugin on your test server is updated to the correct `project_id` value in the delete sql. + +The sql is in [wipe-project-redcapr-arm-delete-multiple.php](../../../../utility/plugins/wipe-project-redcapr-arm-delete-multiple.php). diff --git a/inst/test-data/projects/arm-multiple-delete/project.xml b/inst/test-data/projects/arm-multiple-delete/project.xml index c82d554f..dbfeedb5 100644 --- a/inst/test-data/projects/arm-multiple-delete/project.xml +++ b/inst/test-data/projects/arm-multiple-delete/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Delete Multiple Arms - This file contains the metadata, events, and data for REDCap project "REDCapR Delete Multiple Arms". - REDCapR Delete Multiple Arms + REDCapR: arm-multiple-delete + This file contains the metadata, events, and data for REDCap project "REDCapR: arm-multiple-delete". + REDCapR: arm-multiple-delete 1 @@ -13,15 +13,17 @@ 0 1 + 0 1 0 0 1 + 0 0 4 - REDCapR Test Suite: delete records from a multiple-arm project + 0 @@ -31,7 +33,7 @@ - + @@ -78,7 +80,7 @@ - + From e8b7c16c496653a033c41f6e11dd108ce642b402 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 15:32:37 -0600 Subject: [PATCH 27/40] arm-single-longitudinal ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../arm-single-longitudinal/project.xml | 18 ++++++++++-------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index b74b2125..f8479e9b 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -27,7 +27,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2316","1226D74DF3068D1749262E8557A597B8","repeating-instruments-sparse" "https://redcap.ouhsc.edu/redcap/api/","myusername","2317","92D434EE7CB6D79D5C847D20DFA43979","arm-single-delete" "https://redcap.ouhsc.edu/redcap/api/","myusername","2318","84E5DE832DDE291203295CDA09557A36","arm-multiple-delete" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","arm-single-longitudinal" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2319","6951EF3E34EB2CCDEE7F247362EB6B4F","arm-single-longitudinal" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","decimal-comma-and-dot" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","decimal-comma" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","decimal-dot" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 303aa69d..f2f7e524 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -92,7 +92,7 @@ - repeating-instruments-sparse: 2316 - arm-single-delete: 2317 - arm-multiple-delete: 2318 - - arm-single-longitudinal: 0 + - arm-single-longitudinal: 2319 - decimal-comma-and-dot: 0 - decimal-comma: 0 - decimal-dot: 0 diff --git a/inst/test-data/projects/arm-single-longitudinal/project.xml b/inst/test-data/projects/arm-single-longitudinal/project.xml index 13b26467..7113895d 100644 --- a/inst/test-data/projects/arm-single-longitudinal/project.xml +++ b/inst/test-data/projects/arm-single-longitudinal/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Longitudinal Single Arm - This file contains the metadata, events, and data for REDCap project "REDCapR Longitudinal Single Arm". - REDCapR Longitudinal Single Arm + REDCapR: arm-single-longitudinal + This file contains the metadata, events, and data for REDCap project "REDCapR: arm-single-longitudinal". + REDCapR: arm-single-longitudinal 1 @@ -13,15 +13,17 @@ 0 0 + 0 1 0 0 1 + 0 0 4 - Longitudinal project with only one arm + 0 @@ -31,7 +33,7 @@ - + @@ -82,7 +84,7 @@ - + From a10d508a6b8c9dbe72a1a48d287c166aeaf92f08 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 15:35:14 -0600 Subject: [PATCH 28/40] decimal-comma-and-dot ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../projects/decimal-comma-and-dot/project.xml | 18 ++++++++++-------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index f8479e9b..53ccd859 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -28,7 +28,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2317","92D434EE7CB6D79D5C847D20DFA43979","arm-single-delete" "https://redcap.ouhsc.edu/redcap/api/","myusername","2318","84E5DE832DDE291203295CDA09557A36","arm-multiple-delete" "https://redcap.ouhsc.edu/redcap/api/","myusername","2319","6951EF3E34EB2CCDEE7F247362EB6B4F","arm-single-longitudinal" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","decimal-comma-and-dot" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2320","6E3ED60D8C796B7AF347F219E8D3A03A","decimal-comma-and-dot" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","decimal-comma" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","decimal-dot" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","validation-types-1" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index f2f7e524..1ac9318e 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -93,7 +93,7 @@ - arm-single-delete: 2317 - arm-multiple-delete: 2318 - arm-single-longitudinal: 2319 - - decimal-comma-and-dot: 0 + - decimal-comma-and-dot: 2320 - decimal-comma: 0 - decimal-dot: 0 - validation-types-1: 0 diff --git a/inst/test-data/projects/decimal-comma-and-dot/project.xml b/inst/test-data/projects/decimal-comma-and-dot/project.xml index b87e8f4b..48ca6364 100644 --- a/inst/test-data/projects/decimal-comma-and-dot/project.xml +++ b/inst/test-data/projects/decimal-comma-and-dot/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Decimal Commas and Dots - This file contains the metadata, events, and data for REDCap project "REDCapR Decimal Commas and Dots". - REDCapR Decimal Commas and Dots + REDCapR: decimal-comma-and-dot + This file contains the metadata, events, and data for REDCap project "REDCapR: decimal-comma-and-dot". + REDCapR: decimal-comma-and-dot 1 @@ -13,13 +13,15 @@ 0 0 + 0 1 0 0 1 + 0 0 - 3 + 4 @@ -31,7 +33,7 @@ - + @@ -108,7 +110,7 @@ - + From f02c1073b1f2bec2760b102d3e0fb4ee965d1e22 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 15:38:40 -0600 Subject: [PATCH 29/40] decimal-comma ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../projects/decimal-comma/project.xml | 18 ++++++++++-------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 53ccd859..5719d519 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -29,7 +29,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2318","84E5DE832DDE291203295CDA09557A36","arm-multiple-delete" "https://redcap.ouhsc.edu/redcap/api/","myusername","2319","6951EF3E34EB2CCDEE7F247362EB6B4F","arm-single-longitudinal" "https://redcap.ouhsc.edu/redcap/api/","myusername","2320","6E3ED60D8C796B7AF347F219E8D3A03A","decimal-comma-and-dot" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","decimal-comma" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2321","0E837B14C3A3D13FDEE30E77258AA402","decimal-comma" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","decimal-dot" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","validation-types-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","blank-for-gray-status" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 1ac9318e..2d3b161c 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -94,7 +94,7 @@ - arm-multiple-delete: 2318 - arm-single-longitudinal: 2319 - decimal-comma-and-dot: 2320 - - decimal-comma: 0 + - decimal-comma: 2321 - decimal-dot: 0 - validation-types-1: 0 - blank-for-gray-status: 0 diff --git a/inst/test-data/projects/decimal-comma/project.xml b/inst/test-data/projects/decimal-comma/project.xml index d87d8ef3..ff9fbf15 100644 --- a/inst/test-data/projects/decimal-comma/project.xml +++ b/inst/test-data/projects/decimal-comma/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Decimal Comma - This file contains the metadata, events, and data for REDCap project "REDCapR Decimal Comma". - REDCapR Decimal Comma + REDCapR: decimal-comma + This file contains the metadata, events, and data for REDCap project "REDCapR: decimal-comma". + REDCapR: decimal-comma 1 @@ -13,13 +13,15 @@ 0 0 + 0 1 0 0 1 + 0 0 - 3 + 4 @@ -31,7 +33,7 @@ - + @@ -88,7 +90,7 @@ - + From 2516f93fd30ed5860102e4f71b9b19b33b5108af Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 15:40:40 -0600 Subject: [PATCH 30/40] decimal-dot ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../test-data/projects/decimal-dot/project.xml | 18 ++++++++++-------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 5719d519..7edfd0b0 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -30,7 +30,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2319","6951EF3E34EB2CCDEE7F247362EB6B4F","arm-single-longitudinal" "https://redcap.ouhsc.edu/redcap/api/","myusername","2320","6E3ED60D8C796B7AF347F219E8D3A03A","decimal-comma-and-dot" "https://redcap.ouhsc.edu/redcap/api/","myusername","2321","0E837B14C3A3D13FDEE30E77258AA402","decimal-comma" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","decimal-dot" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2322","A6152E46E873F40343EC479B92CCF86E","decimal-dot" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","validation-types-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","blank-for-gray-status" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","checkboxes-1" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 2d3b161c..c42e44d5 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -95,7 +95,7 @@ - arm-single-longitudinal: 2319 - decimal-comma-and-dot: 2320 - decimal-comma: 2321 - - decimal-dot: 0 + - decimal-dot: 2322 - validation-types-1: 0 - blank-for-gray-status: 0 - checkboxes-1: 0 diff --git a/inst/test-data/projects/decimal-dot/project.xml b/inst/test-data/projects/decimal-dot/project.xml index 66e5d018..8978bbeb 100644 --- a/inst/test-data/projects/decimal-dot/project.xml +++ b/inst/test-data/projects/decimal-dot/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Decimal Dots - This file contains the metadata, events, and data for REDCap project "REDCapR Decimal Dots". - REDCapR Decimal Dots + REDCapR: decimal-dot + This file contains the metadata, events, and data for REDCap project "REDCapR: decimal-dot". + REDCapR: decimal-dot 1 @@ -13,13 +13,15 @@ 0 0 + 0 1 0 0 1 + 0 0 - 3 + 4 @@ -31,7 +33,7 @@ - + @@ -88,7 +90,7 @@ - + From a6fccadb4e8594bb2cbb3ea390865ebb4bbdb91d Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 15:43:14 -0600 Subject: [PATCH 31/40] validation-types-1 ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../projects/validation-types-1/project.xml | 31 ++++++++++++------- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 7edfd0b0..bd9f551e 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -31,7 +31,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2320","6E3ED60D8C796B7AF347F219E8D3A03A","decimal-comma-and-dot" "https://redcap.ouhsc.edu/redcap/api/","myusername","2321","0E837B14C3A3D13FDEE30E77258AA402","decimal-comma" "https://redcap.ouhsc.edu/redcap/api/","myusername","2322","A6152E46E873F40343EC479B92CCF86E","decimal-dot" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","validation-types-1" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2323","E6157F94C420B330E8D968B9F8D3709B","validation-types-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","blank-for-gray-status" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","checkboxes-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","vignette-repeating" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index c42e44d5..3e6e39e0 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -96,7 +96,7 @@ - decimal-comma-and-dot: 2320 - decimal-comma: 2321 - decimal-dot: 2322 - - validation-types-1: 0 + - validation-types-1: 2323 - blank-for-gray-status: 0 - checkboxes-1: 0 - vignette-repeating: 0 diff --git a/inst/test-data/projects/validation-types-1/project.xml b/inst/test-data/projects/validation-types-1/project.xml index deda3ee8..aefb19a1 100644 --- a/inst/test-data/projects/validation-types-1/project.xml +++ b/inst/test-data/projects/validation-types-1/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Validation Types - This file contains the metadata, events, and data for REDCap project "REDCapR Validation Types". - REDCapR Validation Types + REDCapR: valiation-types-1 + This file contains the metadata, events, and data for REDCap project "REDCapR: valiation-types-1". + REDCapR: valiation-types-1 1 @@ -13,15 +13,17 @@ 0 0 + 0 1 0 0 1 + 0 0 - 3 + 4 - REDCapR using Validation Types + 0 @@ -31,7 +33,7 @@ - + @@ -272,15 +274,15 @@ Complete? - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked @@ -309,11 +311,16 @@ - + + + + + + From 9e81e5275cc367b5c52db1443632d60ba7de32c1 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 16:10:19 -0600 Subject: [PATCH 32/40] blank-for-gray-status ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../projects/blank-for-gray-status/README.md | 24 ++++++++++++ .../blank-for-gray-status/project.xml | 37 ++++++++++--------- 4 files changed, 45 insertions(+), 20 deletions(-) create mode 100644 inst/test-data/projects/blank-for-gray-status/README.md diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index bd9f551e..5791b350 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -32,7 +32,7 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2321","0E837B14C3A3D13FDEE30E77258AA402","decimal-comma" "https://redcap.ouhsc.edu/redcap/api/","myusername","2322","A6152E46E873F40343EC479B92CCF86E","decimal-dot" "https://redcap.ouhsc.edu/redcap/api/","myusername","2323","E6157F94C420B330E8D968B9F8D3709B","validation-types-1" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","blank-for-gray-status" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2324","20F33314E1B49AA3F21C663D459CAE93","blank-for-gray-status" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","checkboxes-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","vignette-repeating" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","file-repo" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 3e6e39e0..e6e58be0 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -97,7 +97,7 @@ - decimal-comma: 2321 - decimal-dot: 2322 - validation-types-1: 2323 - - blank-for-gray-status: 0 + - blank-for-gray-status: 2324 - checkboxes-1: 0 - vignette-repeating: 0 - file-repo: 0 diff --git a/inst/test-data/projects/blank-for-gray-status/README.md b/inst/test-data/projects/blank-for-gray-status/README.md new file mode 100644 index 00000000..c6a9128e --- /dev/null +++ b/inst/test-data/projects/blank-for-gray-status/README.md @@ -0,0 +1,24 @@ +blank-for-gray-status +========== + +In addition to the typical steps to establish a project: + +1. Open record 4, and go to the "health" instrument, and the "comment" field. + Add an extra blank line after the first line so it becomes + + ```plain + This record doesn't have a DAG assigned + + So call up Trudy on the telephone + Send her a letter in the mail + ``` +1. Open record 5, and go to the "health" instrument, and the "comment" field. + Add an extra blank line after the first line so it becomes + + ```plain + Had a hand for trouble and a eye for cash + + He had a gold watch chain and a black mustache + ``` + +These manual steps are necessary b/c sometimes the XML import combines new lines. diff --git a/inst/test-data/projects/blank-for-gray-status/project.xml b/inst/test-data/projects/blank-for-gray-status/project.xml index 3128c0a2..ce37976c 100644 --- a/inst/test-data/projects/blank-for-gray-status/project.xml +++ b/inst/test-data/projects/blank-for-gray-status/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Target Simple with Gray Form Status --see https://github.com/OuhscBbmc/REDCapR - This file contains the metadata, events, and data for REDCap project "REDCapR Target Simple with Gray Form Status --see https://github.com/OuhscBbmc/REDCapR". - REDCapR Target Simple with Gray Form Status --see https://github.com/OuhscBbmc/REDCapR + REDCapR: blank-for-gray-status + This file contains the metadata, events, and data for REDCap project "REDCapR: blank-for-gray-status". + REDCapR: blank-for-gray-status 1 @@ -13,16 +13,17 @@ 0 0 + 0 1 0 0 1 + 0 0 - 0 + 4 - Created for -https://github.com/OuhscBbmc/REDCapR/issues/386 & https://github.com/OuhscBbmc/REDCapR/pull/389 + 0 @@ -36,11 +37,11 @@ https://github.com/OuhscBbmc/REDCapR/issues/386 & https://github.com/OuhscBb - - + + - + @@ -223,27 +224,27 @@ https://github.com/OuhscBbmc/REDCapR/issues/386 & https://github.com/OuhscBb Unverified Complete - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked - + Checked Unchecked @@ -263,7 +264,7 @@ https://github.com/OuhscBbmc/REDCapR/issues/386 & https://github.com/OuhscBb - + From 300a89133e6cd24117f7b15c32fcf47fa36b33f0 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 16:12:20 -0600 Subject: [PATCH 33/40] checkboxes-1 ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../projects/checkboxes-1/project.xml | 31 ++++++------------- 3 files changed, 11 insertions(+), 24 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 5791b350..f49a1828 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -33,6 +33,6 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2322","A6152E46E873F40343EC479B92CCF86E","decimal-dot" "https://redcap.ouhsc.edu/redcap/api/","myusername","2323","E6157F94C420B330E8D968B9F8D3709B","validation-types-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","2324","20F33314E1B49AA3F21C663D459CAE93","blank-for-gray-status" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","checkboxes-1" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2325","24A091AC6CE6A6949FA25BDF2B9F479F","checkboxes-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","vignette-repeating" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","file-repo" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index e6e58be0..f936c617 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -98,6 +98,6 @@ - decimal-dot: 2322 - validation-types-1: 2323 - blank-for-gray-status: 2324 - - checkboxes-1: 0 + - checkboxes-1: 2325 - vignette-repeating: 0 - file-repo: 0 diff --git a/inst/test-data/projects/checkboxes-1/project.xml b/inst/test-data/projects/checkboxes-1/project.xml index 064e2d6d..405bd74d 100644 --- a/inst/test-data/projects/checkboxes-1/project.xml +++ b/inst/test-data/projects/checkboxes-1/project.xml @@ -1,10 +1,10 @@ - + - REDCapR Checkboxes 1 - This file contains the metadata, events, and data for REDCap project "REDCapR Checkboxes 1". - REDCapR Checkboxes 1 + REDCapR: checkboxes-1 + This file contains the metadata, events, and data for REDCap project "REDCapR: checkboxes-1". + REDCapR: checkboxes-1 1 @@ -13,15 +13,17 @@ 0 0 + 0 1 0 0 1 + 0 0 4 - Variety of f checkboxes + 0 @@ -31,7 +33,7 @@ - + @@ -159,7 +161,7 @@ - + @@ -181,18 +183,13 @@ @@ -221,17 +218,12 @@ completion status should be 2"/> @@ -260,17 +252,12 @@ completion status should be 1"/> From 0c18954a2555a1227835c6e3c383a9c815272a09 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 16:14:47 -0600 Subject: [PATCH 34/40] vignette-repeating ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- .../projects/vignette-repeating/project.xml | 20 ++++++++++--------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index f49a1828..7bc69cbf 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -34,5 +34,5 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2323","E6157F94C420B330E8D968B9F8D3709B","validation-types-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","2324","20F33314E1B49AA3F21C663D459CAE93","blank-for-gray-status" "https://redcap.ouhsc.edu/redcap/api/","myusername","2325","24A091AC6CE6A6949FA25BDF2B9F479F","checkboxes-1" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","vignette-repeating" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2326","2B0DC445BBD06C42B07121C46D36F909","vignette-repeating" "https://redcap.ouhsc.edu/redcap/api/","myusername","0","","file-repo" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index f936c617..2d117459 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -99,5 +99,5 @@ - validation-types-1: 2323 - blank-for-gray-status: 2324 - checkboxes-1: 2325 - - vignette-repeating: 0 + - vignette-repeating: 2326 - file-repo: 0 diff --git a/inst/test-data/projects/vignette-repeating/project.xml b/inst/test-data/projects/vignette-repeating/project.xml index 839e7e74..f418438c 100644 --- a/inst/test-data/projects/vignette-repeating/project.xml +++ b/inst/test-data/projects/vignette-repeating/project.xml @@ -1,10 +1,10 @@ - - + + - REDCapR Vignette: Reading Repeating Measures - This file contains the metadata, events, and data for REDCap project "REDCapR Vignette: Reading Repeating Measures". - REDCapR Vignette: Reading Repeating Measures + REDCapR: vignette-repeating + This file contains the metadata, events, and data for REDCap project "REDCapR: vignette-repeating". + REDCapR: vignette-repeating 1 [height]; [weight]; [bmi] @@ -13,15 +13,17 @@ 0 0 + 0 1 0 0 1 + 0 0 - 3 + 4 - https://github.com/OuhscBbmc/REDCapR/blob/main/vignettes/longitudinal-and-repeating.Rmd + 0 REDCap Secure Messaging @@ -38,7 +40,7 @@ - + @@ -189,7 +191,7 @@ - + From 22d3a3aa6a4f453a1fc5e67522b0a4e7c495805d Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 16:20:49 -0600 Subject: [PATCH 35/40] file-repo ref #552 --- inst/misc/coph.credentials | 2 +- inst/misc/project-redirection.yml | 2 +- inst/test-data/projects/file-repo/README.md | 6 +++--- inst/test-data/projects/file-repo/project.xml | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/inst/misc/coph.credentials b/inst/misc/coph.credentials index 7bc69cbf..f302182a 100644 --- a/inst/misc/coph.credentials +++ b/inst/misc/coph.credentials @@ -35,4 +35,4 @@ redcap_uri,username,project_id,token,comment "https://redcap.ouhsc.edu/redcap/api/","myusername","2324","20F33314E1B49AA3F21C663D459CAE93","blank-for-gray-status" "https://redcap.ouhsc.edu/redcap/api/","myusername","2325","24A091AC6CE6A6949FA25BDF2B9F479F","checkboxes-1" "https://redcap.ouhsc.edu/redcap/api/","myusername","2326","2B0DC445BBD06C42B07121C46D36F909","vignette-repeating" -"https://redcap.ouhsc.edu/redcap/api/","myusername","0","","file-repo" +"https://redcap.ouhsc.edu/redcap/api/","myusername","2327","9AF8502CD60F2B2F81BEF91F8FE1C482","file-repo" diff --git a/inst/misc/project-redirection.yml b/inst/misc/project-redirection.yml index 2d117459..40264a6c 100644 --- a/inst/misc/project-redirection.yml +++ b/inst/misc/project-redirection.yml @@ -100,4 +100,4 @@ - blank-for-gray-status: 2324 - checkboxes-1: 2325 - vignette-repeating: 2326 - - file-repo: 0 + - file-repo: 2327 diff --git a/inst/test-data/projects/file-repo/README.md b/inst/test-data/projects/file-repo/README.md index 59147dfa..48239819 100644 --- a/inst/test-data/projects/file-repo/README.md +++ b/inst/test-data/projects/file-repo/README.md @@ -1,11 +1,11 @@ file-repo Test Project ========= -Steps to Recreate: +In addition to the typical steps to establish a project: -1. Create new project, based on project.xml 1. Reconstruct the file repository, manually - 1. Create top-level directory called "the-state" + 1. Create top-level directory called "the-state". + It should be accessible to "users in all roles" 1. Drop [levon-and-barry.jpg](../../levon-and-barry.jpg) into this directory 1. Navigate back to the root directory. 1. Drop the following file files into the root directory: diff --git a/inst/test-data/projects/file-repo/project.xml b/inst/test-data/projects/file-repo/project.xml index c20c0b0f..903f4218 100644 --- a/inst/test-data/projects/file-repo/project.xml +++ b/inst/test-data/projects/file-repo/project.xml @@ -1,5 +1,5 @@  - + REDCapR: file-repo @@ -60,7 +60,7 @@ - + @@ -116,7 +116,7 @@ - + From aaf608fc8d42608b75cbcabe3364a5d93ccc9ac8 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 16:24:25 -0600 Subject: [PATCH 36/40] Skipping tests with lots of consecutive new lines on non-dev server ref #552 --- tests/testthat/test-read-batch-longitudinal.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/testthat/test-read-batch-longitudinal.R b/tests/testthat/test-read-batch-longitudinal.R index 14aaea25..7cb15426 100644 --- a/tests/testthat/test-read-batch-longitudinal.R +++ b/tests/testthat/test-read-batch-longitudinal.R @@ -4,6 +4,10 @@ credential <- retrieve_credential_testing("longitudinal") project <- redcap_project$new(redcap_uri=credential$redcap_uri, token=credential$token) update_expectation <- FALSE +if (credential$redcap_uri != "https://redcap-dev-2.ouhsc.edu/redcap/api/") { + testthat::skip("Skipping tests with lots of consecutive new lines on non-dev server") +} + test_that("smoke", { testthat::skip_on_cran() From 795ec23115613ff273382c29fb9dd9d1e8cf62fa Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 16:26:57 -0600 Subject: [PATCH 37/40] Skipping tests with lots of consecutive new lines on non-dev server ref #552 --- tests/testthat/test-read-batch-plumbing.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/testthat/test-read-batch-plumbing.R b/tests/testthat/test-read-batch-plumbing.R index 093de14d..f1c525ca 100644 --- a/tests/testthat/test-read-batch-plumbing.R +++ b/tests/testthat/test-read-batch-plumbing.R @@ -2,6 +2,10 @@ library(testthat) update_expectation <- FALSE +if (credential$redcap_uri != "https://redcap-dev-2.ouhsc.edu/redcap/api/") { + testthat::skip("Skipping tests with lots of consecutive new lines on non-dev server") +} + test_that("simple", { testthat::skip_on_cran() From aebf4689b40e2c056f4c303738cb420011b69280 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 16:49:19 -0600 Subject: [PATCH 38/40] skip if not dev ref #552 --- tests/testthat/test-read-batch-plumbing.R | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/testthat/test-read-batch-plumbing.R b/tests/testthat/test-read-batch-plumbing.R index f1c525ca..fa961dbe 100644 --- a/tests/testthat/test-read-batch-plumbing.R +++ b/tests/testthat/test-read-batch-plumbing.R @@ -1,6 +1,7 @@ # This file test that `redcap_read()` includes the appropriate plumbing variables. library(testthat) update_expectation <- FALSE +credential <- retrieve_credential_testing() if (credential$redcap_uri != "https://redcap-dev-2.ouhsc.edu/redcap/api/") { testthat::skip("Skipping tests with lots of consecutive new lines on non-dev server") @@ -9,7 +10,6 @@ if (credential$redcap_uri != "https://redcap-dev-2.ouhsc.edu/redcap/api/") { test_that("simple", { testthat::skip_on_cran() - credential <- retrieve_credential_testing() path_expected <- "test-data/specific-redcapr/read-batch-plumbing/simple.R" desired_forms <- c("race_and_ethnicity") # Doesn't include the initial "demographics" form. expected_outcome_message <- "\\d+ records and 10 columns were read from REDCap in \\d+(\\.\\d+\\W|\\W)seconds\\." @@ -91,3 +91,5 @@ test_that("repeated", { expect_true(returned_object$filter_logic=="", "A filter was not specified.") expect_match(returned_object$outcome_messages, regexp=expected_outcome_message, perl=TRUE) }) + +rm(credential) From 3a30d7c4405eb1dc1dd86adb1fee70b494789413 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 21:43:31 -0600 Subject: [PATCH 39/40] rename "comma" to "decimal-comma" in project title ref #552 --- .../specific-redcapr/project-info-read/all-test-projects.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inst/test-data/specific-redcapr/project-info-read/all-test-projects.R b/inst/test-data/specific-redcapr/project-info-read/all-test-projects.R index 43391341..aaf7e02e 100644 --- a/inst/test-data/specific-redcapr/project-info-read/all-test-projects.R +++ b/inst/test-data/specific-redcapr/project-info-read/all-test-projects.R @@ -10,7 +10,7 @@ structure(list(project_id = c(33L, 34L, 36L, 37L, 38L, 39L, 40L, "REDCapR: super-wide-3", "REDCapR: repeating-instruments-sparse", "REDCapR: arm-single-delete", "REDCapR: arm-multiple-delete", "REDCapR: arm-single-longitudinal", "REDCapR: decimal-comma-and-dot", -"REDCapR: comma", "REDCapR: decimal-dot", "REDCapR: valiation-types-1", +"REDCapR: decimal-comma", "REDCapR: decimal-dot", "REDCapR: valiation-types-1", "REDCapR: blank-for-gray-status", "REDCapR: checkboxes-1", "REDCapR: vignette-repeating", "REDCapR: file-repo"), creation_time = structure(c(1728609678, 1728610817, 1728659834, 1728662057, 1728662448, 1728678073, 1728681914, From f32c3247c3574af5e256c45a22978de19102d2d2 Mon Sep 17 00:00:00 2001 From: Will Beasley Date: Tue, 5 Nov 2024 21:54:33 -0600 Subject: [PATCH 40/40] update link of example testing structure I think I copied this 10+ years ago? --- tests/test-all.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test-all.R b/tests/test-all.R index 1801db30..80bb73a9 100644 --- a/tests/test-all.R +++ b/tests/test-all.R @@ -1,4 +1,4 @@ -# Modeled after the R6 testing structure: https://github.com/wch/R6/blob/master/tests/testthat.R +# Modeled after the R6 testing structure: https://github.com/r-lib/R6/blob/main/tests/testthat.R library(testthat) library(REDCapR) # source("R/helpers-testing.R")