cqm-models 0.8.1 → 0.8.2
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/app/assets/javascripts/Patient.js +5 -0
- data/app/models/qdm/basetypes/data_element.rb +7 -0
- data/app/models/qdm/encounter_performed.rb +1 -1
- data/cqm-models.gemspec +1 -1
- data/dist/index.js +5 -0
- data/lib/generate_models.rb +3 -0
- data/package.json +1 -1
- data/templates/patient_template.js.erb +5 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1db6adc6a07fd19b2bbf444b8f4f8fc36c5c7e53
|
4
|
+
data.tar.gz: 6ea8d2a9a7d1034fec223e96786ddff12e3f0b1e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74b863976c88fd23d4e382f1e59ecf10381d0411a2145ca5bc48d140ade7e4190f562e431ae806b6b492d2a050c09e7f593ce19ab1f1c263a7538b65e753b979
|
7
|
+
data.tar.gz: 47cdb5c41f3e81735b0b8f7a6f3c2ba375444cd8be22d157a32d49a20b1a5f32a767f081b6eb893c405151ae551863fa7b489adf0aff9139f89f747c48edbe4d
|
@@ -81,6 +81,9 @@ PatientSchema.methods.getDataElements = function getDataElements(params) {
|
|
81
81
|
|
82
82
|
// Returns an array of dataElements that exist on the patient, queried by
|
83
83
|
// QDM profile
|
84
|
+
// @param {string} profile - the data criteria requested by the execution engine
|
85
|
+
// @param {boolean} isNegated - whether dataElements should be returned based on their negation status
|
86
|
+
// @returns {DataElement[]}
|
84
87
|
PatientSchema.methods.getByProfile = function getByProfile(profile, isNegated = null) {
|
85
88
|
// If isNegated == true, only return data elements with a negationRationale that is not null.
|
86
89
|
// If isNegated == false, only return data elements with a null negationRationale.
|
@@ -89,11 +92,13 @@ PatientSchema.methods.getByProfile = function getByProfile(profile, isNegated =
|
|
89
92
|
return results.map((result) => {
|
90
93
|
const getCodeFunction = Object.getPrototypeOf(result).getCode;
|
91
94
|
const codeFunction = Object.getPrototypeOf(result).code;
|
95
|
+
const idField = result.id;
|
92
96
|
const removedMongooseItems = AllDataElements[profile](result).toObject();
|
93
97
|
// toObject() will remove all mongoose functions but also removed the getCode and code functions
|
94
98
|
// the execution engine requires the code and getCode functions so we have to add them back
|
95
99
|
removedMongooseItems.getCode = getCodeFunction;
|
96
100
|
removedMongooseItems.code = codeFunction;
|
101
|
+
removedMongooseItems.id = idField;
|
97
102
|
return removedMongooseItems;
|
98
103
|
});
|
99
104
|
};
|
@@ -61,6 +61,13 @@ module QDM
|
|
61
61
|
if (send(field).is_a? Interval) || (send(field).is_a? DataElement)
|
62
62
|
send(field + '=', send(field).shift_dates(seconds))
|
63
63
|
end
|
64
|
+
|
65
|
+
# Special case for facility locations
|
66
|
+
next unless field == 'facilityLocations'
|
67
|
+
send(field).each do |facility_location|
|
68
|
+
facility_location['locationPeriod'][:low] = (facility_location['locationPeriod'][:low].to_time + seconds).to_datetime
|
69
|
+
facility_location['locationPeriod'][:high] = (facility_location['locationPeriod'][:high].to_time + seconds).to_datetime
|
70
|
+
end
|
64
71
|
end
|
65
72
|
end
|
66
73
|
|
@@ -7,7 +7,7 @@ module QDM
|
|
7
7
|
field :admissionSource, type: QDM::Code
|
8
8
|
field :relevantPeriod, type: QDM::Interval
|
9
9
|
field :dischargeDisposition, type: QDM::Code
|
10
|
-
field :facilityLocations, type: Array
|
10
|
+
field :facilityLocations, type: Array, default: []
|
11
11
|
field :diagnoses, type: Array
|
12
12
|
field :principalDiagnosis, type: QDM::Code
|
13
13
|
field :negationRationale, type: QDM::Code
|
data/cqm-models.gemspec
CHANGED
@@ -4,7 +4,7 @@ $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.8.
|
7
|
+
spec.version = '0.8.2'
|
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.'
|
data/dist/index.js
CHANGED
@@ -1552,6 +1552,9 @@ PatientSchema.methods.getDataElements = function getDataElements(params) {
|
|
1552
1552
|
|
1553
1553
|
// Returns an array of dataElements that exist on the patient, queried by
|
1554
1554
|
// QDM profile
|
1555
|
+
// @param {string} profile - the data criteria requested by the execution engine
|
1556
|
+
// @param {boolean} isNegated - whether dataElements should be returned based on their negation status
|
1557
|
+
// @returns {DataElement[]}
|
1555
1558
|
PatientSchema.methods.getByProfile = function getByProfile(profile, isNegated = null) {
|
1556
1559
|
// If isNegated == true, only return data elements with a negationRationale that is not null.
|
1557
1560
|
// If isNegated == false, only return data elements with a null negationRationale.
|
@@ -1560,11 +1563,13 @@ PatientSchema.methods.getByProfile = function getByProfile(profile, isNegated =
|
|
1560
1563
|
return results.map((result) => {
|
1561
1564
|
const getCodeFunction = Object.getPrototypeOf(result).getCode;
|
1562
1565
|
const codeFunction = Object.getPrototypeOf(result).code;
|
1566
|
+
const idField = result.id;
|
1563
1567
|
const removedMongooseItems = AllDataElements[profile](result).toObject();
|
1564
1568
|
// toObject() will remove all mongoose functions but also removed the getCode and code functions
|
1565
1569
|
// the execution engine requires the code and getCode functions so we have to add them back
|
1566
1570
|
removedMongooseItems.getCode = getCodeFunction;
|
1567
1571
|
removedMongooseItems.code = codeFunction;
|
1572
|
+
removedMongooseItems.id = idField;
|
1568
1573
|
return removedMongooseItems;
|
1569
1574
|
});
|
1570
1575
|
};
|
data/lib/generate_models.rb
CHANGED
@@ -208,6 +208,9 @@ Dir.glob(ruby_models_path + '*.rb').each do |file_name|
|
|
208
208
|
# Add QDM version
|
209
209
|
contents.gsub!(/field :qdmVersion, type: String/, "field :qdmVersion, type: String, default: '#{qdm_version}'")
|
210
210
|
|
211
|
+
# Add default to [] for facilityLocations
|
212
|
+
contents.gsub!(/field :facilityLocations, type: Array/, 'field :facilityLocations, type: Array, default: []')
|
213
|
+
|
211
214
|
# Add HQMF oid (if it exists in the given HQMF oid mapping file)
|
212
215
|
dc_name = File.basename(file_name, '.*')
|
213
216
|
if oids[dc_name].present? && oids[dc_name]['hqmf_oid'].present?
|
data/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "cqm-models",
|
3
|
-
"version": "0.8.
|
3
|
+
"version": "0.8.2",
|
4
4
|
"description": "This library contains auto generated Mongo (Mongoose.js) models that correspond to the QDM (Quality Data Model) specification.",
|
5
5
|
"main": "app/assets/javascripts/index.js",
|
6
6
|
"browser": {
|
@@ -80,6 +80,9 @@ PatientSchema.methods.getDataElements = function getDataElements(params) {
|
|
80
80
|
|
81
81
|
// Returns an array of dataElements that exist on the patient, queried by
|
82
82
|
// QDM profile
|
83
|
+
// @param {string} profile - the data criteria requested by the execution engine
|
84
|
+
// @param {boolean} isNegated - whether dataElements should be returned based on their negation status
|
85
|
+
// @returns {DataElement[]}
|
83
86
|
PatientSchema.methods.getByProfile = function getByProfile(profile, isNegated = null) {
|
84
87
|
// If isNegated == true, only return data elements with a negationRationale that is not null.
|
85
88
|
// If isNegated == false, only return data elements with a null negationRationale.
|
@@ -88,11 +91,13 @@ PatientSchema.methods.getByProfile = function getByProfile(profile, isNegated =
|
|
88
91
|
return results.map((result) => {
|
89
92
|
const getCodeFunction = Object.getPrototypeOf(result).getCode;
|
90
93
|
const codeFunction = Object.getPrototypeOf(result).code;
|
94
|
+
const idField = result.id;
|
91
95
|
const removedMongooseItems = AllDataElements[profile](result).toObject();
|
92
96
|
// toObject() will remove all mongoose functions but also removed the getCode and code functions
|
93
97
|
// the execution engine requires the code and getCode functions so we have to add them back
|
94
98
|
removedMongooseItems.getCode = getCodeFunction;
|
95
99
|
removedMongooseItems.code = codeFunction;
|
100
|
+
removedMongooseItems.id = idField;
|
96
101
|
return removedMongooseItems;
|
97
102
|
});
|
98
103
|
};
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cqm-models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- aholmes@mitre.org
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2018-07-
|
13
|
+
date: 2018-07-25 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -316,7 +316,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
316
316
|
version: '0'
|
317
317
|
requirements: []
|
318
318
|
rubyforge_project:
|
319
|
-
rubygems_version: 2.6.
|
319
|
+
rubygems_version: 2.6.14
|
320
320
|
signing_key:
|
321
321
|
specification_version: 4
|
322
322
|
summary: Mongo models that correspond to the QDM specification.
|