cqm-models 0.7.2 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.eslintrc.json +1 -1
- data/.travis.yml +1 -0
- data/app/assets/javascripts/AdverseEvent.js +1 -0
- data/app/assets/javascripts/AllergyIntolerance.js +1 -0
- data/app/assets/javascripts/AssessmentPerformed.js +2 -1
- data/app/assets/javascripts/AssessmentRecommended.js +1 -0
- data/app/assets/javascripts/CareGoal.js +2 -1
- data/app/assets/javascripts/CommunicationFromPatientToProvider.js +1 -0
- data/app/assets/javascripts/CommunicationFromProviderToPatient.js +1 -0
- data/app/assets/javascripts/CommunicationFromProviderToProvider.js +1 -0
- data/app/assets/javascripts/Component.js +2 -1
- data/app/assets/javascripts/DeviceApplied.js +1 -0
- data/app/assets/javascripts/DeviceOrder.js +1 -0
- data/app/assets/javascripts/DeviceRecommended.js +1 -0
- data/app/assets/javascripts/Diagnosis.js +1 -0
- data/app/assets/javascripts/DiagnosticStudyOrder.js +1 -0
- data/app/assets/javascripts/DiagnosticStudyPerformed.js +2 -1
- data/app/assets/javascripts/DiagnosticStudyRecommended.js +1 -0
- data/app/assets/javascripts/EncounterOrder.js +1 -0
- data/app/assets/javascripts/EncounterPerformed.js +1 -0
- data/app/assets/javascripts/EncounterRecommended.js +1 -0
- data/app/assets/javascripts/FacilityLocation.js +1 -0
- data/app/assets/javascripts/FamilyHistory.js +1 -0
- data/app/assets/javascripts/Id.js +1 -0
- data/app/assets/javascripts/ImmunizationAdministered.js +1 -0
- data/app/assets/javascripts/ImmunizationOrder.js +1 -0
- data/app/assets/javascripts/InterventionOrder.js +1 -0
- data/app/assets/javascripts/InterventionPerformed.js +2 -1
- data/app/assets/javascripts/InterventionRecommended.js +1 -0
- data/app/assets/javascripts/LaboratoryTestOrder.js +1 -0
- data/app/assets/javascripts/LaboratoryTestPerformed.js +2 -1
- data/app/assets/javascripts/LaboratoryTestRecommended.js +1 -0
- data/app/assets/javascripts/Measure.js +2 -0
- data/app/assets/javascripts/MedicationActive.js +1 -0
- data/app/assets/javascripts/MedicationAdministered.js +1 -0
- data/app/assets/javascripts/MedicationDischarge.js +1 -0
- data/app/assets/javascripts/MedicationDispensed.js +1 -0
- data/app/assets/javascripts/MedicationOrder.js +1 -0
- data/app/assets/javascripts/Participation.js +1 -0
- data/app/assets/javascripts/PatientCareExperience.js +1 -0
- data/app/assets/javascripts/PatientCharacteristic.js +1 -0
- data/app/assets/javascripts/PatientCharacteristicBirthdate.js +1 -0
- data/app/assets/javascripts/PatientCharacteristicClinicalTrialParticipant.js +1 -0
- data/app/assets/javascripts/PatientCharacteristicEthnicity.js +1 -0
- data/app/assets/javascripts/PatientCharacteristicExpired.js +1 -0
- data/app/assets/javascripts/PatientCharacteristicPayer.js +1 -0
- data/app/assets/javascripts/PatientCharacteristicRace.js +1 -0
- data/app/assets/javascripts/PatientCharacteristicSex.js +1 -0
- data/app/assets/javascripts/PhysicalExamOrder.js +1 -0
- data/app/assets/javascripts/PhysicalExamPerformed.js +2 -1
- data/app/assets/javascripts/PhysicalExamRecommended.js +1 -0
- data/app/assets/javascripts/ProcedureOrder.js +1 -0
- data/app/assets/javascripts/ProcedurePerformed.js +2 -1
- data/app/assets/javascripts/ProcedureRecommended.js +1 -0
- data/app/assets/javascripts/ProviderCareExperience.js +1 -0
- data/app/assets/javascripts/ProviderCharacteristic.js +1 -0
- data/app/assets/javascripts/Ratio.js +1 -0
- data/app/assets/javascripts/ResultComponent.js +1 -0
- data/app/assets/javascripts/SubstanceAdministered.js +1 -0
- data/app/assets/javascripts/SubstanceOrder.js +1 -0
- data/app/assets/javascripts/SubstanceRecommended.js +1 -0
- data/app/assets/javascripts/Symptom.js +1 -0
- data/app/assets/javascripts/basetypes/Any.js +50 -0
- data/app/models/qdm/tacoma/measure.rb +2 -0
- data/cqm-models.gemspec +2 -2
- data/dist/index.js +687 -574
- data/lib/generate_models.rb +2 -2
- data/package.json +2 -2
- data/templates/mongoose_template.js.erb +1 -0
- metadata +5 -4
@@ -4,6 +4,7 @@ const Code = require('./basetypes/Code');
|
|
4
4
|
const Interval = require('./basetypes/Interval');
|
5
5
|
const Quantity = require('./basetypes/Quantity');
|
6
6
|
const DateTime = require('./basetypes/DateTime');
|
7
|
+
const Any = require('./basetypes/Any');
|
7
8
|
|
8
9
|
const [Number, String] = [
|
9
10
|
mongoose.Schema.Types.Number,
|
@@ -4,6 +4,7 @@ const Code = require('./basetypes/Code');
|
|
4
4
|
const Interval = require('./basetypes/Interval');
|
5
5
|
const Quantity = require('./basetypes/Quantity');
|
6
6
|
const DateTime = require('./basetypes/DateTime');
|
7
|
+
const Any = require('./basetypes/Any');
|
7
8
|
|
8
9
|
const [Number, String] = [
|
9
10
|
mongoose.Schema.Types.Number,
|
@@ -4,6 +4,7 @@ const Code = require('./basetypes/Code');
|
|
4
4
|
const Interval = require('./basetypes/Interval');
|
5
5
|
const Quantity = require('./basetypes/Quantity');
|
6
6
|
const DateTime = require('./basetypes/DateTime');
|
7
|
+
const Any = require('./basetypes/Any');
|
7
8
|
|
8
9
|
const [Number, String] = [
|
9
10
|
mongoose.Schema.Types.Number,
|
@@ -0,0 +1,50 @@
|
|
1
|
+
const mongoose = require('mongoose');
|
2
|
+
const cql = require('cql-execution');
|
3
|
+
|
4
|
+
function Any(key, options) {
|
5
|
+
mongoose.SchemaType.call(this, key, options, 'Any');
|
6
|
+
}
|
7
|
+
Any.prototype = Object.create(mongoose.SchemaType.prototype);
|
8
|
+
|
9
|
+
function RecursiveCast(any) {
|
10
|
+
if (any && any.value && any.unit) {
|
11
|
+
return new cql.Quantity(any);
|
12
|
+
}
|
13
|
+
if (any && any.low) {
|
14
|
+
const casted = new cql.Interval(any.low, any.high, any.lowClosed, any.highClosed);
|
15
|
+
|
16
|
+
// Cast Low and High values to Quantities if it is a quantity
|
17
|
+
if (casted.low && casted.low.unit && casted.low.value) {
|
18
|
+
casted.low = new cql.Quantity(casted.low);
|
19
|
+
if (casted.high && casted.high.unit && casted.high.value) {
|
20
|
+
casted.high = new cql.Quantity(casted.high);
|
21
|
+
}
|
22
|
+
return casted;
|
23
|
+
}
|
24
|
+
|
25
|
+
// Cast to DateTime if it is a string representing a DateTime
|
26
|
+
if (casted.low && Date.parse(casted.low)) {
|
27
|
+
casted.low = cql.DateTime.fromDate(new Date(casted.low), 0);
|
28
|
+
}
|
29
|
+
if (casted.high && Date.parse(casted.high)) {
|
30
|
+
casted.high = cql.DateTime.fromDate(new Date(casted.high), 0);
|
31
|
+
}
|
32
|
+
return casted;
|
33
|
+
}
|
34
|
+
if (Array.isArray(any)) {
|
35
|
+
const casted = [];
|
36
|
+
any.forEach((val) => {
|
37
|
+
casted.push(RecursiveCast(val));
|
38
|
+
});
|
39
|
+
return casted;
|
40
|
+
}
|
41
|
+
if (Date.parse(any)) {
|
42
|
+
return cql.DateTime.fromDate(new Date(any), 0);
|
43
|
+
}
|
44
|
+
return any;
|
45
|
+
}
|
46
|
+
|
47
|
+
Any.prototype.cast = any => RecursiveCast(any);
|
48
|
+
|
49
|
+
mongoose.Schema.Types.Any = Any;
|
50
|
+
module.exports = Any;
|
@@ -63,6 +63,8 @@ module QDM
|
|
63
63
|
field :populations, type: Array
|
64
64
|
field :populations_cql_map, type: Hash
|
65
65
|
field :observations, type: Array
|
66
|
+
# TODO: Depending on how we restructure the Measure/Population object, may be deleted in the future
|
67
|
+
field :population_ids, type: Hash
|
66
68
|
|
67
69
|
field :value_set_oids, type: Array, default: []
|
68
70
|
field :value_set_oid_version_objects, type: Array, default: []
|
data/cqm-models.gemspec
CHANGED
@@ -4,11 +4,11 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'cqm-models'
|
7
|
-
spec.version = '0.7.
|
7
|
+
spec.version = '0.7.3'
|
8
8
|
spec.authors = ['aholmes@mitre.org', 'mokeefe@mitre.org', 'lades@mitre.org']
|
9
9
|
|
10
10
|
spec.summary = 'Mongo models that correspond to the QDM specification.'
|
11
|
-
spec.description = 'This library contains auto generated
|
11
|
+
spec.description = 'This library contains auto generated Mongo (Mongoid) models that correspond to the QDM (Quality Data Model) specification.'
|
12
12
|
spec.homepage = 'https://github.com/projecttacoma/cqm-models'
|
13
13
|
spec.license = 'Apache-2.0'
|
14
14
|
|