Skip to content

Commit 7c3208b

Browse files
committed
Added Concept Set criteria attributes to editor and viewer.
Performed additional cleanup of unused dependencies or formatting.
1 parent 353ef5b commit 7c3208b

File tree

85 files changed

+2236
-388
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+2236
-388
lines changed

js/components/cohortbuilder/CriteriaGroup.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ define(function (require, exports, module) {
2525

2626
if (data.DemographicCriteriaList && data.DemographicCriteriaList.length > 0) {
2727
data.DemographicCriteriaList.forEach(function (d) {
28-
self.DemographicCriteriaList.push(new DemographicCriteria(d));
28+
self.DemographicCriteriaList.push(new DemographicCriteria(d, conceptSets));
2929
});
3030
}
3131

js/components/cohortbuilder/CriteriaTypes/ConditionEra.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
define(['knockout', './Criteria', '../InputTypes/Range', 'conceptpicker/InputTypes/Concept'], function (ko, Criteria, Range, Concept) {
1+
define(['knockout', './Criteria', '../InputTypes/Range', 'conceptpicker/InputTypes/Concept', '../InputTypes/ConceptSetSelection'], function (ko, Criteria, Range, Concept, ConceptSetSelection) {
22

33
function ConditionEra(data, conceptSets) {
44
var self = this;
@@ -20,7 +20,6 @@ define(['knockout', './Criteria', '../InputTypes/Range', 'conceptpicker/InputTyp
2020

2121
// Verbatim fields
2222
self.CodesetId = ko.observable(data.CodesetId);
23-
self.GenderCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.GenderCS, conceptSets));
2423

2524
self.EraStartDate = ko.observable(data.EraStartDate && new Range(data.EraStartDate));
2625
self.EraEndDate = ko.observable(data.EraEndDate && new Range(data.EraEndDate));
@@ -36,6 +35,8 @@ define(['knockout', './Criteria', '../InputTypes/Range', 'conceptpicker/InputTyp
3635
self.Gender = ko.observable(data.Gender && ko.observableArray(data.Gender.map(function (d) {
3736
return new Concept(d);
3837
})));
38+
self.GenderCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.GenderCS, conceptSets));
39+
3940
}
4041

4142
ConditionEra.prototype = new Criteria();

js/components/cohortbuilder/CriteriaTypes/ConditionOccurrence.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputTypes/Concept', '../InputTypes/Text'], function (ko, Criteria, Range, Concept, Text) {
1+
define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputTypes/Concept', '../InputTypes/Text', '../InputTypes/ConceptSetSelection'
2+
], function (ko, Criteria, Range, Concept, Text,ConceptSetSelection) {
23

34
function ConditionOccurrence(data, conceptSets) {
45
var self = this;
@@ -29,11 +30,14 @@ define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputType
2930
return new Concept(d);
3031
})));
3132
self.ConditionTypeExclude = ko.observable(data.ConditionTypeExclude || null);
33+
self.ConditionTypeCS = ko.observable(data.ConditionTypeCS && new ConceptSetSelection(data.ConditionTypeCS, conceptSets));
34+
3235
self.StopReason = ko.observable(data.StopReason && new Text(data.StopReason));
3336
self.ConditionSourceConcept = ko.observable(data.ConditionSourceConcept != null ? ko.observable(data.ConditionSourceConcept) : null);
3437
self.ConditionStatus = ko.observable(data.ConditionStatus && ko.observableArray(data.ConditionStatus.map(function (d) {
3538
return new Concept(d);
3639
})));
40+
self.ConditionStatusCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.ConditionStatusCS, conceptSets));
3741

3842
// Derived Fields
3943
self.First = ko.observable(data.First || null);
@@ -43,14 +47,17 @@ define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputType
4347
self.Gender = ko.observable(data.Gender && ko.observableArray(data.Gender.map(function (d) {
4448
return new Concept(d);
4549
})));
50+
self.GenderCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.GenderCS, conceptSets));
4651

4752
self.ProviderSpecialty = ko.observable(data.ProviderSpecialty && ko.observableArray(data.ProviderSpecialty.map(function (d) {
4853
return new Concept(d);
4954
})));
55+
self.ProviderSpecialtyCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.ProviderSpecialtyCS, conceptSets));
5056

5157
self.VisitType = ko.observable(data.VisitType && ko.observableArray(data.VisitType.map(function (d) {
5258
return new Concept(d);
5359
})));
60+
self.VisitTypeCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.VisitTypeCS, conceptSets));
5461

5562
}
5663

js/components/cohortbuilder/CriteriaTypes/Death.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputTypes/Concept', '../InputTypes/Text'], function (ko, Criteria, Range, Concept, Text) {
1+
define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputTypes/Concept', '../InputTypes/ConceptSetSelection'],
2+
function (ko, Criteria, Range, Concept, ConceptSetSelection) {
23

34
function Death(data, conceptSets) {
45
var self = this;
@@ -28,6 +29,8 @@ define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputType
2829
return new Concept(d);
2930
})));
3031
self.DeathTypeExclude = ko.observable(data.DeathTypeExclude || null);
32+
self.DeathTypeCS = ko.observable(data.DeathTypeCS && new ConceptSetSelection(data.DeathTypeCS, conceptSets));
33+
3134
self.DeathSourceConcept = ko.observable(data.DeathSourceConcept != null ? ko.observable(data.DeathSourceConcept) : null);
3235
// Derived Fields
3336
self.Age = ko.observable(data.Age && new Range(data.Age));
@@ -36,11 +39,8 @@ define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputType
3639
self.Gender = ko.observable(data.Gender && ko.observableArray(data.Gender.map(function (d) {
3740
return new Concept(d);
3841
})));
42+
self.GenderCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.GenderCS, conceptSets));
3943

40-
/* Do we still need prior enroll days inside the individual criteria?
41-
self.PriorEnrollDays = ko.observable((typeof data.PriorEnrollDays == "number") ? data.PriorEnrollDays : null);
42-
self.AfterEnrollDays = ko.observable((typeof data.AfterEnrollDays == "number") ? data.AfterEnrollDays : null);
43-
*/
4444
}
4545

4646
Death.prototype = new Criteria();

js/components/cohortbuilder/CriteriaTypes/DemographicCriteria.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
define(['knockout', '../InputTypes/Range', 'conceptpicker/InputTypes/Concept'], function (ko, Range, Concept) {
1+
define(['knockout', '../InputTypes/Range', 'conceptpicker/InputTypes/Concept', '../InputTypes/ConceptSetSelection'], function (ko, Range, Concept, ConceptSetSelection) {
22

33
function DemographicCriteria(data, conceptSets) {
44
var self = this;
@@ -9,14 +9,17 @@ define(['knockout', '../InputTypes/Range', 'conceptpicker/InputTypes/Concept'],
99
self.Gender = ko.observable(data.Gender && ko.observableArray(data.Gender.map(function (d) {
1010
return new Concept(d);
1111
})));
12+
self.GenderCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.GenderCS, conceptSets));
1213

1314
self.Race = ko.observable(data.Race && ko.observableArray(data.Race.map(function (d) {
1415
return new Concept(d);
1516
})));
17+
self.RaceCS = ko.observable(data.RaceCS && new ConceptSetSelection(data.RaceCS, conceptSets));
1618

1719
self.Ethnicity = ko.observable(data.Ethnicity && ko.observableArray(data.Ethnicity.map(function (d) {
1820
return new Concept(d);
1921
})));
22+
self.EthnicityCS = ko.observable(data.EthnicityCS && new ConceptSetSelection(data.EthnicityCS, conceptSets));
2023

2124

2225
self.OccurrenceStartDate = ko.observable(data.OccurrenceStartDate && new Range(data.OccurrenceStartDate));

js/components/cohortbuilder/CriteriaTypes/DeviceExposure.js

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputTypes/Concept', '../InputTypes/Text'], function (ko, Criteria, Range, Concept, Text) {
1+
define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputTypes/Concept', '../InputTypes/Text', '../InputTypes/ConceptSetSelection'], function (ko, Criteria, Range, Concept, Text, ConceptSetSelection) {
22

33
function DeviceOccurence(data, conceptSets) {
44
var self = this;
@@ -29,6 +29,8 @@ define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputType
2929
return new Concept(d);
3030
})));
3131
self.DeviceTypeExclude = ko.observable(data.DeviceTypeExclude || null);
32+
self.DeviceTypeCS = ko.observable(data.DeviceTypeCS && new ConceptSetSelection(data.DeviceTypeCS, conceptSets));
33+
3234
self.UniqueDeviceId = ko.observable(data.UniqueDeviceId && new Text(data.StopReason));
3335
self.Quantity = ko.observable(data.Quantity && new Range(data.Quantity));
3436
self.DeviceSourceConcept = ko.observable(data.DeviceSourceConcept != null ? ko.observable(data.DeviceSourceConcept) : null);
@@ -41,18 +43,17 @@ define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputType
4143
self.Gender = ko.observable(data.Gender && ko.observableArray(data.Gender.map(function (d) {
4244
return new Concept(d);
4345
})));
46+
self.GenderCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.GenderCS, conceptSets));
4447

45-
/* Do we still need prior enroll days inside the individual criteria?
46-
self.PriorEnrollDays = ko.observable((typeof data.PriorEnrollDays == "number") ? data.PriorEnrollDays : null);
47-
self.AfterEnrollDays = ko.observable((typeof data.AfterEnrollDays == "number") ? data.AfterEnrollDays : null);
48-
*/
49-
5048
self.ProviderSpecialty = ko.observable(data.ProviderSpecialty && ko.observableArray(data.ProviderSpecialty.map(function (d) {
5149
return new Concept(d);
5250
})));
51+
self.ProviderSpecialtyCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.GenderCS, conceptSets));
52+
5353
self.VisitType = ko.observable(data.VisitType && ko.observableArray(data.VisitType.map(function (d) {
5454
return new Concept(d);
5555
})));
56+
self.VisitTypeCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.VisitTypeCS, conceptSets));
5657

5758
}
5859

js/components/cohortbuilder/CriteriaTypes/DoseEra.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputTypes/Concept'], function (ko, Criteria, Range, Concept) {
1+
define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputTypes/Concept', '../InputTypes/ConceptSetSelection'], function (ko, Criteria, Range, Concept, ConceptSetSelection) {
22

33
function DoseEra(data, conceptSets) {
44
var self = this;
@@ -26,6 +26,8 @@ define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputType
2626
self.Unit = ko.observable(data.Unit && ko.observableArray(data.Unit.map(function (d) {
2727
return new Concept(d);
2828
})));
29+
self.UnitCS = ko.observable(data.UnitCS && new ConceptSetSelection(data.UnitCS, conceptSets));
30+
2931
self.DoseValue = ko.observable(data.DoseValue && new Range(data.DoseValue));
3032
self.EraLength = ko.observable(data.EraLength && new Range(data.EraLength));
3133

@@ -38,6 +40,8 @@ define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputType
3840
self.Gender = ko.observable(data.Gender && ko.observableArray(data.Gender.map(function (d) {
3941
return new Concept(d);
4042
})));
43+
self.GenderCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.GenderCS, conceptSets));
44+
4145
}
4246

4347
DoseEra.prototype = new Criteria();

js/components/cohortbuilder/CriteriaTypes/DrugEra.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputTypes/Concept'], function (ko, Criteria, Range, Concept) {
1+
define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputTypes/Concept', '../InputTypes/ConceptSetSelection'], function (ko, Criteria, Range, Concept, ConceptSetSelection) {
22

33
function DrugEra(data, conceptSets) {
44
var self = this;
@@ -36,6 +36,7 @@ define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputType
3636
self.Gender = ko.observable(data.Gender && ko.observableArray(data.Gender.map(function (d) {
3737
return new Concept(d);
3838
})));
39+
self.GenderCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.GenderCS, conceptSets));
3940
}
4041

4142
DrugEra.prototype = new Criteria();

js/components/cohortbuilder/CriteriaTypes/DrugExposure.js

+9-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputTypes/Concept', '../InputTypes/Text'], function (ko, Criteria, Range, Concept, Text) {
1+
define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputTypes/Concept', '../InputTypes/Text','../InputTypes/ConceptSetSelection'
2+
], function (ko, Criteria, Range, Concept, Text, ConceptSetSelection) {
23

34
function DrugExposure(data, conceptSets) {
45
var self = this;
@@ -29,17 +30,20 @@ define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputType
2930
return new Concept(d);
3031
})));
3132
self.DrugTypeExclude = ko.observable(data.DrugTypeExclude || null);
33+
self.DrugTypeCS = ko.observable(data.DrugTypeCS && new ConceptSetSelection(data.DrugTypeCS, conceptSets));
3234
self.StopReason = ko.observable(data.StopReason && new Text(data.StopReason));
3335
self.Refills = ko.observable(data.Refills && new Range(data.Refills));
3436
self.Quantity = ko.observable(data.Quantity && new Range(data.Quantity));
3537
self.DaysSupply = ko.observable(data.DaysSupply && new Range(data.DaysSupply));
3638
self.RouteConcept = ko.observable(data.RouteConcept && ko.observableArray(data.RouteConcept.map(function (d) {
3739
return new Concept(d);
3840
})));
41+
self.RouteConceptCS = ko.observable(data.RouteConceptCS && new ConceptSetSelection(data.RouteConceptCS, conceptSets));
3942
self.EffectiveDrugDose = ko.observable(data.EffectiveDrugDose && new Range(data.EffectiveDrugDose));
4043
self.DoseUnit = ko.observable(data.DoseUnit && ko.observableArray(data.DoseUnit.map(function (d) {
4144
return new Concept(d);
4245
})));
46+
self.DoseUnitCS = ko.observable(data.DoseUnitCS && new ConceptSetSelection(data.DoseUnitCS, conceptSets));
4347
self.LotNumber = ko.observable(data.LotNumber && new Text(data.LotNumber));
4448
self.DrugSourceConcept = ko.observable(data.DrugSourceConcept != null ? ko.observable(data.DrugSourceConcept) : null);
4549

@@ -51,18 +55,17 @@ define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputType
5155
self.Gender = ko.observable(data.Gender && ko.observableArray(data.Gender.map(function (d) {
5256
return new Concept(d);
5357
})));
58+
self.GenderCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.GenderCS, conceptSets));
5459

55-
/* Do we still need prior enroll days inside the individual criteria?
56-
self.PriorEnrollDays = ko.observable((typeof data.PriorEnrollDays == "number") ? data.PriorEnrollDays : null);
57-
self.AfterEnrollDays = ko.observable((typeof data.AfterEnrollDays == "number") ? data.AfterEnrollDays : null);
58-
*/
59-
6060
self.ProviderSpecialty = ko.observable(data.ProviderSpecialty && ko.observableArray(data.ProviderSpecialty.map(function (d) {
6161
return new Concept(d);
6262
})));
63+
self.ProviderSpecialtyCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.ProviderSpecialtyCS, conceptSets));
64+
6365
self.VisitType = ko.observable(data.VisitType && ko.observableArray(data.VisitType.map(function (d) {
6466
return new Concept(d);
6567
})));
68+
self.VisitTypeCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.VisitTypeCS, conceptSets));
6669

6770
}
6871

js/components/cohortbuilder/CriteriaTypes/Measurement.js

+10-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputTypes/Concept', '../InputTypes/Text'], function (ko, Criteria, Range, Concept, Text) {
1+
define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputTypes/Concept', '../InputTypes/ConceptSetSelection'
2+
], function (ko, Criteria, Range, Concept, ConceptSetSelection) {
23

34
function Measurement(data, conceptSets) {
45
var self = this;
@@ -28,16 +29,20 @@ define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputType
2829
return new Concept(d);
2930
})));
3031
self.MeasurementTypeExclude = ko.observable(data.MeasurementTypeExclude || null);
32+
self.MeasurementTypeCS = ko.observable(data.MeasurementTypeCS && new ConceptSetSelection(data.MeasurementTypeCS, conceptSets));
3133
self.Operator = ko.observable(data.Operator && ko.observableArray(data.Operator.map(function (d) {
3234
return new Concept(d);
3335
})));
36+
self.OperatorCS = ko.observable(data.OperatorCS && new ConceptSetSelection(data.OperatorCS, conceptSets));
3437
self.ValueAsNumber = ko.observable(data.ValueAsNumber && new Range(data.ValueAsNumber));
3538
self.ValueAsConcept = ko.observable(data.ValueAsConcept && ko.observableArray(data.ValueAsConcept.map(function (d) {
3639
return new Concept(d);
3740
})));
41+
self.ValueAsConceptCS = ko.observable(data.ValueAsConceptCS && new ConceptSetSelection(data.ValueAsConceptCS, conceptSets));
3842
self.Unit = ko.observable(data.Unit && ko.observableArray(data.Unit.map(function (d) {
3943
return new Concept(d);
4044
})));
45+
self.UnitCS = ko.observable(data.UnitCS && new ConceptSetSelection(data.UnitCS, conceptSets));
4146
self.RangeLow = ko.observable(data.RangeLow && new Range(data.RangeLow));
4247
self.RangeHigh = ko.observable(data.RangeHigh && new Range(data.RangeHigh));
4348
self.MeasurementSourceConcept = ko.observable(data.MeasurementSourceConcept != null ? ko.observable(data.MeasurementSourceConcept) : null);
@@ -52,18 +57,17 @@ define(['knockout', './Criteria', '../InputTypes/Range','conceptpicker/InputType
5257
self.Gender = ko.observable(data.Gender && ko.observableArray(data.Gender.map(function (d) {
5358
return new Concept(d);
5459
})));
60+
self.GenderCS = ko.observable(data.GenderCS && new ConceptSetSelection(data.GenderCS, conceptSets));
5561

56-
/* Do we still need prior enroll days inside the individual criteria?
57-
self.PriorEnrollDays = ko.observable((typeof data.PriorEnrollDays == "number") ? data.PriorEnrollDays : null);
58-
self.AfterEnrollDays = ko.observable((typeof data.AfterEnrollDays == "number") ? data.AfterEnrollDays : null);
59-
*/
60-
6162
self.ProviderSpecialty = ko.observable(data.ProviderSpecialty && ko.observableArray(data.ProviderSpecialty.map(function (d) {
6263
return new Concept(d);
6364
})));
65+
self.ProviderSpecialtyCS = ko.observable(data.ProviderSpecialtyCS && new ConceptSetSelection(data.ProviderSpecialtyCS, conceptSets));
66+
6467
self.VisitType = ko.observable(data.VisitType && ko.observableArray(data.VisitType.map(function (d) {
6568
return new Concept(d);
6669
})));
70+
self.VisitTypeCS = ko.observable(data.VisitTypeCS && new ConceptSetSelection(data.VisitTypeCS, conceptSets));
6771

6872
}
6973

0 commit comments

Comments
 (0)