cqm-models 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|