Skip to content

Commit bc7413b

Browse files
committed
Merge branch 'release/3.3.11'
2 parents 411414d + 9c7948b commit bc7413b

10 files changed

+246
-13
lines changed

CHANGELOG.md

+10
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@ All notable changes to the Form Render Skip Logic module will be documented in t
33
This project adheres to [Semantic Versioning](http://semver.org/).
44

55

6+
## [3.3.11] - 2020-03-20
7+
### Changed
8+
- Adjust instance appending to only occur on repeating events (Kyle Chesney)
9+
- Update minimum RC version to 8.7.2 to ensure all core lib functions exist (Kyle Chesney)
10+
- Resize large images in the README that displayed poorly in REDCap (Philip Chase)
11+
12+
### Added
13+
- Add repeating instance test projects for issues 41 and 67 (Philip Chase)
14+
15+
616
## [3.3.10] - 2019-10-14
717
### Changed
818
- Document the limited repeating event support in FRSL (Philip Chase)

ExternalModule.php

+8-1
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,14 @@ protected function loadFRSL($location, $record = null, $event_id = null, $instru
415415

416416
if (isset($next_instrument)) {
417417
// Path to the next available form in the current event.
418-
$next_step_path = APP_PATH_WEBROOT . 'DataEntry/index.php?pid=' . $Proj->project_id . '&id=' . $record . '&event_id=' . $event_id . '&page=' . $next_instrument . '&instance=' . $instance;
418+
$next_step_path = APP_PATH_WEBROOT . 'DataEntry/index.php?pid=' . $Proj->project_id . '&id=' . $record . '&event_id=' . $event_id . '&page=' . $next_instrument;
419+
420+
// If this is a repeating event, maintain the instance
421+
if ($Proj->hasRepeatingFormsEvents() && $instance) {
422+
if ($Proj->RepeatingFormsEvents[$event_id] == "WHOLE") {
423+
$next_step_path .= '&instance=' . $instance;
424+
}
425+
}
419426
}
420427

421428
// Access denied to the current page.

LICENSE.txt LICENSE

File renamed without changes.

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ This REDCap module hides and shows instruments based on the values of REDCap for
88

99
The original use case of this tool was to facilitate a data entry workflow specific to acute brain injury diagnoses, but the tool is generalized to support the hiding (and showing) of any number of forms based on a field value. Multiple control fields can be defined to control the display of non-overlapping sets of forms. Here is an example based loosely on a multi-site trial:
1010

11-
![venn diagram of test project forms](img/venn_diagram_of_forms_controls_and_conditions.png)
11+
![venn diagram of test project forms](img/venn_diagram_of_forms_controls_and_conditions.jpeg)
1212

1313
See the original functional specification at [https://docs.google.com/document/d/1Ej7vCNpKOrC6X9KVpkZkHeY0v2VqQXrjuMIBQtbj1bw/edit#](https://docs.google.com/document/d/1Ej7vCNpKOrC6X9KVpkZkHeY0v2VqQXrjuMIBQtbj1bw/edit) for functional details.
1414

config.json

+1-11
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,6 @@
2121
"email": "tls@ufl.edu",
2222
"institution": "University of Florida - CTSI"
2323
},
24-
{
25-
"name": "Marly Cormar",
26-
"email": "marlycormar@ufl.edu",
27-
"institution": "University of Florida - CTSI"
28-
},
29-
{
30-
"name": "Tiago Bember",
31-
"email": "tbembersimeao@ufl.edu",
32-
"institution": "University of Florida - CTSI"
33-
},
3424
{
3525
"name": "Kyle Chesney",
3626
"email": "kyle.chesney@ufl.edu",
@@ -149,6 +139,6 @@
149139
}
150140
],
151141
"compatibility": {
152-
"redcap-version-min": "8.4.3"
142+
"redcap-version-min": "8.7.2"
153143
}
154144
}
Loading
Binary file not shown.
-1.32 MB
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<ODM xmlns="http://www.cdisc.org/ns/odm/v1.3" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:redcap="https://projectredcap.org" xsi:schemaLocation="http://www.cdisc.org/ns/odm/v1.3 schema/odm/ODM1-3-1.xsd" ODMVersion="1.3.1" FileOID="000-00-0000" FileType="Snapshot" Description="FRSL test 2 with all repeat" AsOfDateTime="2020-03-20T16:19:43" CreationDateTime="2020-03-20T16:19:43" SourceSystem="REDCap" SourceSystemVersion="9.7.0">
3+
<Study OID="Project.FRSLTest2WithAllRepeat">
4+
<GlobalVariables>
5+
<StudyName>FRSL test 2 with all repeat</StudyName>
6+
<StudyDescription>This file contains the metadata, events, and data for REDCap project "FRSL test 2 with all repeat".</StudyDescription>
7+
<ProtocolName>FRSL test 2 with all repeat</ProtocolName>
8+
<redcap:RecordAutonumberingEnabled>1</redcap:RecordAutonumberingEnabled>
9+
<redcap:CustomRecordLabel></redcap:CustomRecordLabel>
10+
<redcap:SecondaryUniqueField></redcap:SecondaryUniqueField>
11+
<redcap:SchedulingEnabled>0</redcap:SchedulingEnabled>
12+
<redcap:SurveysEnabled>0</redcap:SurveysEnabled>
13+
<redcap:SurveyInvitationEmailField></redcap:SurveyInvitationEmailField>
14+
<redcap:Purpose>0</redcap:Purpose>
15+
<redcap:PurposeOther></redcap:PurposeOther>
16+
<redcap:ProjectNotes></redcap:ProjectNotes>
17+
<redcap:MissingDataCodes></redcap:MissingDataCodes>
18+
<redcap:RepeatingInstrumentsAndEvents>
19+
<redcap:RepeatingEvent redcap:UniqueEventName="event_2_arm_1"/>
20+
</redcap:RepeatingInstrumentsAndEvents>
21+
</GlobalVariables>
22+
<MetaDataVersion OID="Metadata.FRSLTest2WithAllRepeat_2020-03-20_1619" Name="FRSL test 2 with all repeat" redcap:RecordIdField="record_id">
23+
<Protocol>
24+
<StudyEventRef StudyEventOID="Event.event_1_arm_1" OrderNumber="1" Mandatory="No"/>
25+
<StudyEventRef StudyEventOID="Event.event_2_arm_1" OrderNumber="2" Mandatory="No"/>
26+
<StudyEventRef StudyEventOID="Event.event_3_arm_1" OrderNumber="3" Mandatory="No"/>
27+
</Protocol>
28+
<StudyEventDef OID="Event.event_1_arm_1" Name="Event 1" Type="Common" Repeating="No" redcap:EventName="Event 1" redcap:CustomEventLabel="" redcap:UniqueEventName="event_1_arm_1" redcap:ArmNum="1" redcap:ArmName="Arm 1" redcap:DayOffset="1" redcap:OffsetMin="0" redcap:OffsetMax="0">
29+
<FormRef FormOID="Form.instrument_1" OrderNumber="1" Mandatory="No" redcap:FormName="instrument_1"/>
30+
<FormRef FormOID="Form.instrument_2" OrderNumber="2" Mandatory="No" redcap:FormName="instrument_2"/>
31+
</StudyEventDef>
32+
<StudyEventDef OID="Event.event_2_arm_1" Name="Event 2" Type="Common" Repeating="No" redcap:EventName="Event 2" redcap:CustomEventLabel="" redcap:UniqueEventName="event_2_arm_1" redcap:ArmNum="1" redcap:ArmName="Arm 1" redcap:DayOffset="2" redcap:OffsetMin="0" redcap:OffsetMax="0">
33+
<FormRef FormOID="Form.instrument_1" OrderNumber="1" Mandatory="No" redcap:FormName="instrument_1"/>
34+
<FormRef FormOID="Form.instrument_2" OrderNumber="2" Mandatory="No" redcap:FormName="instrument_2"/>
35+
</StudyEventDef>
36+
<StudyEventDef OID="Event.event_3_arm_1" Name="Event 3" Type="Common" Repeating="No" redcap:EventName="Event 3" redcap:CustomEventLabel="" redcap:UniqueEventName="event_3_arm_1" redcap:ArmNum="1" redcap:ArmName="Arm 1" redcap:DayOffset="3" redcap:OffsetMin="0" redcap:OffsetMax="0">
37+
<FormRef FormOID="Form.instrument_1" OrderNumber="1" Mandatory="No" redcap:FormName="instrument_1"/>
38+
<FormRef FormOID="Form.instrument_2" OrderNumber="2" Mandatory="No" redcap:FormName="instrument_2"/>
39+
</StudyEventDef>
40+
<FormDef OID="Form.instrument_0" Name="Instrument 0" Repeating="No" redcap:FormName="instrument_0">
41+
<ItemGroupRef ItemGroupOID="instrument_0.record_id" Mandatory="No"/>
42+
<ItemGroupRef ItemGroupOID="instrument_0.instrument_0_complete" Mandatory="No"/>
43+
</FormDef>
44+
<FormDef OID="Form.instrument_1" Name="Instrument 1" Repeating="No" redcap:FormName="instrument_1">
45+
<ItemGroupRef ItemGroupOID="instrument_1.age" Mandatory="No"/>
46+
<ItemGroupRef ItemGroupOID="instrument_1.instrument_1_complete" Mandatory="No"/>
47+
</FormDef>
48+
<FormDef OID="Form.instrument_2" Name="Instrument 2" Repeating="No" redcap:FormName="instrument_2">
49+
<ItemGroupRef ItemGroupOID="instrument_2.notes" Mandatory="No"/>
50+
<ItemGroupRef ItemGroupOID="instrument_2.instrument_2_complete" Mandatory="No"/>
51+
</FormDef>
52+
<ItemGroupDef OID="instrument_0.record_id" Name="Instrument 0" Repeating="No">
53+
<ItemRef ItemOID="record_id" Mandatory="No" redcap:Variable="record_id"/>
54+
</ItemGroupDef>
55+
<ItemGroupDef OID="instrument_0.instrument_0_complete" Name="Form Status" Repeating="No">
56+
<ItemRef ItemOID="instrument_0_complete" Mandatory="No" redcap:Variable="instrument_0_complete"/>
57+
</ItemGroupDef>
58+
<ItemGroupDef OID="instrument_1.age" Name="Instrument 1" Repeating="No">
59+
<ItemRef ItemOID="age" Mandatory="No" redcap:Variable="age"/>
60+
</ItemGroupDef>
61+
<ItemGroupDef OID="instrument_1.instrument_1_complete" Name="Form Status" Repeating="No">
62+
<ItemRef ItemOID="instrument_1_complete" Mandatory="No" redcap:Variable="instrument_1_complete"/>
63+
</ItemGroupDef>
64+
<ItemGroupDef OID="instrument_2.notes" Name="Instrument 2" Repeating="No">
65+
<ItemRef ItemOID="notes" Mandatory="No" redcap:Variable="notes"/>
66+
</ItemGroupDef>
67+
<ItemGroupDef OID="instrument_2.instrument_2_complete" Name="Form Status" Repeating="No">
68+
<ItemRef ItemOID="instrument_2_complete" Mandatory="No" redcap:Variable="instrument_2_complete"/>
69+
</ItemGroupDef>
70+
<ItemDef OID="record_id" Name="record_id" DataType="text" Length="999" redcap:Variable="record_id" redcap:FieldType="text">
71+
<Question><TranslatedText>Record ID</TranslatedText></Question>
72+
</ItemDef>
73+
<ItemDef OID="instrument_0_complete" Name="instrument_0_complete" DataType="text" Length="1" redcap:Variable="instrument_0_complete" redcap:FieldType="select" redcap:SectionHeader="Form Status">
74+
<Question><TranslatedText>Complete?</TranslatedText></Question>
75+
<CodeListRef CodeListOID="instrument_0_complete.choices"/>
76+
</ItemDef>
77+
<ItemDef OID="age" Name="age" DataType="integer" Length="999" redcap:Variable="age" redcap:FieldType="text" redcap:TextValidationType="int">
78+
<Question><TranslatedText>How old are you?</TranslatedText></Question>
79+
<RangeCheck Comparator="GE" SoftHard="Soft">
80+
<CheckValue>0</CheckValue>
81+
<ErrorMessage><TranslatedText>The value you provided is outside the suggested range. (0 - 120). This value is admissible, but you may wish to double check it.</TranslatedText></ErrorMessage>
82+
</RangeCheck>
83+
<RangeCheck Comparator="LE" SoftHard="Soft">
84+
<CheckValue>120</CheckValue>
85+
<ErrorMessage><TranslatedText>The value you provided is outside the suggested range. (0 - 120). This value is admissible, but you may wish to double check it.</TranslatedText></ErrorMessage>
86+
</RangeCheck>
87+
</ItemDef>
88+
<ItemDef OID="instrument_1_complete" Name="instrument_1_complete" DataType="text" Length="1" redcap:Variable="instrument_1_complete" redcap:FieldType="select" redcap:SectionHeader="Form Status">
89+
<Question><TranslatedText>Complete?</TranslatedText></Question>
90+
<CodeListRef CodeListOID="instrument_1_complete.choices"/>
91+
</ItemDef>
92+
<ItemDef OID="notes" Name="notes" DataType="text" Length="999" redcap:Variable="notes" redcap:FieldType="textarea">
93+
<Question><TranslatedText>Notes</TranslatedText></Question>
94+
</ItemDef>
95+
<ItemDef OID="instrument_2_complete" Name="instrument_2_complete" DataType="text" Length="1" redcap:Variable="instrument_2_complete" redcap:FieldType="select" redcap:SectionHeader="Form Status">
96+
<Question><TranslatedText>Complete?</TranslatedText></Question>
97+
<CodeListRef CodeListOID="instrument_2_complete.choices"/>
98+
</ItemDef>
99+
<CodeList OID="instrument_0_complete.choices" Name="instrument_0_complete" DataType="text" redcap:Variable="instrument_0_complete">
100+
<CodeListItem CodedValue="0"><Decode><TranslatedText>Incomplete</TranslatedText></Decode></CodeListItem>
101+
<CodeListItem CodedValue="1"><Decode><TranslatedText>Unverified</TranslatedText></Decode></CodeListItem>
102+
<CodeListItem CodedValue="2"><Decode><TranslatedText>Complete</TranslatedText></Decode></CodeListItem>
103+
</CodeList>
104+
<CodeList OID="instrument_1_complete.choices" Name="instrument_1_complete" DataType="text" redcap:Variable="instrument_1_complete">
105+
<CodeListItem CodedValue="0"><Decode><TranslatedText>Incomplete</TranslatedText></Decode></CodeListItem>
106+
<CodeListItem CodedValue="1"><Decode><TranslatedText>Unverified</TranslatedText></Decode></CodeListItem>
107+
<CodeListItem CodedValue="2"><Decode><TranslatedText>Complete</TranslatedText></Decode></CodeListItem>
108+
</CodeList>
109+
<CodeList OID="instrument_2_complete.choices" Name="instrument_2_complete" DataType="text" redcap:Variable="instrument_2_complete">
110+
<CodeListItem CodedValue="0"><Decode><TranslatedText>Incomplete</TranslatedText></Decode></CodeListItem>
111+
<CodeListItem CodedValue="1"><Decode><TranslatedText>Unverified</TranslatedText></Decode></CodeListItem>
112+
<CodeListItem CodedValue="2"><Decode><TranslatedText>Complete</TranslatedText></Decode></CodeListItem>
113+
</CodeList>
114+
</MetaDataVersion>
115+
</Study>
116+
</ODM>

0 commit comments

Comments
 (0)