cqm-models 2.0.1 → 3.0.4

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.
Files changed (179) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc.json +1 -1
  3. data/.github/workflows/gitleaks_github_actions.yml +28 -0
  4. data/.travis.yml +2 -2
  5. data/README.md +12 -9
  6. data/app/assets/javascripts/AdverseEvent.js +9 -3
  7. data/app/assets/javascripts/AllDataElements.js +18 -6
  8. data/app/assets/javascripts/AllergyIntolerance.js +8 -2
  9. data/app/assets/javascripts/AssessmentOrder.js +8 -2
  10. data/app/assets/javascripts/AssessmentPerformed.js +11 -3
  11. data/app/assets/javascripts/AssessmentRecommended.js +8 -2
  12. data/app/assets/javascripts/CareGoal.js +10 -3
  13. data/app/assets/javascripts/CommunicationPerformed.js +12 -6
  14. data/app/assets/javascripts/DeviceApplied.js +9 -2
  15. data/app/assets/javascripts/DeviceOrder.js +8 -2
  16. data/app/assets/javascripts/DeviceRecommended.js +8 -2
  17. data/app/assets/javascripts/Diagnosis.js +8 -2
  18. data/app/assets/javascripts/DiagnosticStudyOrder.js +8 -2
  19. data/app/assets/javascripts/DiagnosticStudyPerformed.js +9 -2
  20. data/app/assets/javascripts/DiagnosticStudyRecommended.js +8 -2
  21. data/app/assets/javascripts/EncounterOrder.js +9 -2
  22. data/app/assets/javascripts/EncounterPerformed.js +11 -5
  23. data/app/assets/javascripts/EncounterRecommended.js +8 -2
  24. data/app/assets/javascripts/FamilyHistory.js +8 -2
  25. data/app/assets/javascripts/ImmunizationAdministered.js +9 -2
  26. data/app/assets/javascripts/ImmunizationOrder.js +8 -2
  27. data/app/assets/javascripts/InterventionOrder.js +8 -2
  28. data/app/assets/javascripts/InterventionPerformed.js +9 -2
  29. data/app/assets/javascripts/InterventionRecommended.js +8 -2
  30. data/app/assets/javascripts/LaboratoryTestOrder.js +8 -2
  31. data/app/assets/javascripts/LaboratoryTestPerformed.js +9 -2
  32. data/app/assets/javascripts/LaboratoryTestRecommended.js +8 -2
  33. data/app/assets/javascripts/MedicationActive.js +9 -2
  34. data/app/assets/javascripts/MedicationAdministered.js +9 -2
  35. data/app/assets/javascripts/MedicationDischarge.js +9 -2
  36. data/app/assets/javascripts/MedicationDispensed.js +10 -4
  37. data/app/assets/javascripts/MedicationOrder.js +9 -4
  38. data/app/assets/javascripts/Participation.js +8 -2
  39. data/app/assets/javascripts/PatientCareExperience.js +8 -2
  40. data/app/assets/javascripts/PatientCharacteristic.js +7 -2
  41. data/app/assets/javascripts/PatientCharacteristicBirthdate.js +7 -2
  42. data/app/assets/javascripts/PatientCharacteristicClinicalTrialParticipant.js +7 -2
  43. data/app/assets/javascripts/PatientCharacteristicEthnicity.js +7 -2
  44. data/app/assets/javascripts/PatientCharacteristicExpired.js +7 -2
  45. data/app/assets/javascripts/PatientCharacteristicPayer.js +7 -2
  46. data/app/assets/javascripts/PatientCharacteristicRace.js +7 -2
  47. data/app/assets/javascripts/PatientCharacteristicSex.js +7 -2
  48. data/app/assets/javascripts/PhysicalExamOrder.js +8 -2
  49. data/app/assets/javascripts/PhysicalExamPerformed.js +9 -2
  50. data/app/assets/javascripts/PhysicalExamRecommended.js +8 -2
  51. data/app/assets/javascripts/ProcedureOrder.js +10 -3
  52. data/app/assets/javascripts/ProcedurePerformed.js +11 -3
  53. data/app/assets/javascripts/ProcedureRecommended.js +9 -3
  54. data/app/assets/javascripts/ProviderCareExperience.js +8 -2
  55. data/app/assets/javascripts/QDMPatient.js +25 -9
  56. data/app/assets/javascripts/RelatedPerson.js +42 -0
  57. data/app/assets/javascripts/SubstanceAdministered.js +9 -2
  58. data/app/assets/javascripts/SubstanceOrder.js +9 -2
  59. data/app/assets/javascripts/SubstanceRecommended.js +8 -2
  60. data/app/assets/javascripts/Symptom.js +8 -2
  61. data/app/assets/javascripts/attributes/CarePartner.js +33 -0
  62. data/app/assets/javascripts/attributes/Component.js +22 -1
  63. data/app/assets/javascripts/attributes/DiagnosisComponent.js +34 -0
  64. data/app/assets/javascripts/attributes/Entity.js +58 -0
  65. data/app/assets/javascripts/attributes/FacilityLocation.js +4 -1
  66. data/app/assets/javascripts/attributes/Identifier.js +23 -0
  67. data/app/assets/javascripts/attributes/Organization.js +33 -0
  68. data/app/assets/javascripts/attributes/PatientEntity.js +32 -0
  69. data/app/assets/javascripts/attributes/Practitioner.js +35 -0
  70. data/app/assets/javascripts/attributes/ResultComponent.js +31 -0
  71. data/app/assets/javascripts/basetypes/Any.js +24 -14
  72. data/app/assets/javascripts/basetypes/AnyEntity.js +44 -0
  73. data/app/assets/javascripts/basetypes/Code.js +8 -11
  74. data/app/assets/javascripts/basetypes/DataElement.js +17 -6
  75. data/app/assets/javascripts/basetypes/Interval.js +2 -2
  76. data/app/assets/javascripts/basetypes/QDMDate.js +36 -0
  77. data/app/assets/javascripts/basetypes/Quantity.js +1 -1
  78. data/app/assets/javascripts/basetypes/Ratio.js +1 -1
  79. data/app/assets/javascripts/cqm/Provider.js +0 -2
  80. data/app/models/cqm/individual_result.rb +2 -6
  81. data/app/models/cqm/provider.rb +4 -4
  82. data/app/models/hqmfOid_to_datatype_map.json +5 -1
  83. data/app/models/model_finder.rb +1 -0
  84. data/app/models/models.rb +12 -5
  85. data/app/models/qdm/adverse_event.rb +3 -2
  86. data/app/models/qdm/allergy_intolerance.rb +2 -1
  87. data/app/models/qdm/assessment_order.rb +2 -1
  88. data/app/models/qdm/assessment_performed.rb +5 -2
  89. data/app/models/qdm/assessment_recommended.rb +2 -1
  90. data/app/models/qdm/attributes/attribute.rb +1 -0
  91. data/app/models/qdm/attributes/care_partner.rb +10 -0
  92. data/app/models/qdm/attributes/component.rb +1 -1
  93. data/app/models/qdm/attributes/diagnosis_component.rb +10 -0
  94. data/app/models/qdm/attributes/entity.rb +15 -0
  95. data/app/models/qdm/attributes/facility_location.rb +1 -1
  96. data/app/models/qdm/{id.rb → attributes/identifier.rb} +3 -4
  97. data/app/models/qdm/attributes/organization.rb +10 -0
  98. data/app/models/qdm/attributes/patient_entity.rb +9 -0
  99. data/app/models/qdm/attributes/practitioner.rb +12 -0
  100. data/app/models/qdm/{result_component.rb → attributes/result_component.rb} +1 -3
  101. data/app/models/qdm/basetypes/code.rb +9 -10
  102. data/app/models/qdm/basetypes/data_element.rb +25 -18
  103. data/app/models/qdm/basetypes/date.rb +39 -0
  104. data/app/models/qdm/basetypes/interval.rb +8 -11
  105. data/app/models/qdm/basetypes/quantity.rb +1 -0
  106. data/app/models/qdm/basetypes/ratio.rb +1 -0
  107. data/app/models/qdm/care_goal.rb +4 -2
  108. data/app/models/qdm/communication_performed.rb +6 -5
  109. data/app/models/qdm/device_applied.rb +3 -1
  110. data/app/models/qdm/device_order.rb +2 -1
  111. data/app/models/qdm/device_recommended.rb +2 -1
  112. data/app/models/qdm/diagnosis.rb +2 -1
  113. data/app/models/qdm/diagnostic_study_order.rb +2 -1
  114. data/app/models/qdm/diagnostic_study_performed.rb +3 -1
  115. data/app/models/qdm/diagnostic_study_recommended.rb +2 -1
  116. data/app/models/qdm/encounter_order.rb +3 -1
  117. data/app/models/qdm/encounter_performed.rb +3 -2
  118. data/app/models/qdm/encounter_recommended.rb +2 -1
  119. data/app/models/qdm/family_history.rb +2 -1
  120. data/app/models/qdm/immunization_administered.rb +3 -1
  121. data/app/models/qdm/immunization_order.rb +2 -1
  122. data/app/models/qdm/intervention_order.rb +2 -1
  123. data/app/models/qdm/intervention_performed.rb +3 -1
  124. data/app/models/qdm/intervention_recommended.rb +2 -1
  125. data/app/models/qdm/laboratory_test_order.rb +2 -1
  126. data/app/models/qdm/laboratory_test_performed.rb +3 -1
  127. data/app/models/qdm/laboratory_test_recommended.rb +2 -1
  128. data/app/models/qdm/medication_active.rb +3 -1
  129. data/app/models/qdm/medication_administered.rb +3 -1
  130. data/app/models/qdm/medication_discharge.rb +3 -1
  131. data/app/models/qdm/medication_dispensed.rb +4 -3
  132. data/app/models/qdm/medication_order.rb +3 -3
  133. data/app/models/qdm/participation.rb +2 -1
  134. data/app/models/qdm/patient.rb +1 -1
  135. data/app/models/qdm/patient_care_experience.rb +2 -1
  136. data/app/models/qdm/patient_characteristic.rb +1 -1
  137. data/app/models/qdm/patient_characteristic_birthdate.rb +1 -1
  138. data/app/models/qdm/patient_characteristic_clinical_trial_participant.rb +1 -1
  139. data/app/models/qdm/patient_characteristic_ethnicity.rb +1 -1
  140. data/app/models/qdm/patient_characteristic_expired.rb +1 -1
  141. data/app/models/qdm/patient_characteristic_payer.rb +1 -1
  142. data/app/models/qdm/patient_characteristic_race.rb +1 -1
  143. data/app/models/qdm/patient_characteristic_sex.rb +1 -1
  144. data/app/models/qdm/physical_exam_order.rb +2 -1
  145. data/app/models/qdm/physical_exam_performed.rb +3 -1
  146. data/app/models/qdm/physical_exam_recommended.rb +2 -1
  147. data/app/models/qdm/procedure_order.rb +4 -2
  148. data/app/models/qdm/procedure_performed.rb +5 -2
  149. data/app/models/qdm/procedure_recommended.rb +3 -2
  150. data/app/models/qdm/provider_care_experience.rb +2 -1
  151. data/app/models/qdm/related_person.rb +13 -0
  152. data/app/models/qdm/substance_administered.rb +3 -1
  153. data/app/models/qdm/substance_order.rb +3 -1
  154. data/app/models/qdm/substance_recommended.rb +2 -1
  155. data/app/models/qdm/symptom.rb +2 -1
  156. data/bin/validate_generator.sh +1 -1
  157. data/cqm-models.gemspec +5 -5
  158. data/data/oids_qdm_5.5.json +337 -0
  159. data/dist/browser.js +8819 -4882
  160. data/dist/index.js +8818 -4881
  161. data/lib/generate_entities.rb +56 -0
  162. data/lib/generate_models.rb +77 -39
  163. data/lib/generate_patients.rb +20 -14
  164. data/lib/generate_types.rb +54 -14
  165. data/lib/generator_helpers.rb +14 -0
  166. data/modelinfo/qdm-modelinfo-5.5.xml +982 -0
  167. data/package.json +4 -4
  168. data/templates/entity_extension.rb.erb +6 -0
  169. data/templates/identifier_extension.rb.erb +58 -0
  170. data/templates/{id_template.js.erb → identifier_template.js.erb} +6 -5
  171. data/templates/models_template.rb.erb +19 -4
  172. data/templates/mongoose_template.js.erb +86 -12
  173. data/templates/patient_template.js.erb +0 -4
  174. data/yarn.lock +396 -320
  175. metadata +40 -19
  176. data/app/assets/javascripts/Id.js +0 -21
  177. data/app/assets/javascripts/ProviderCharacteristic.js +0 -36
  178. data/app/assets/javascripts/ResultComponent.js +0 -33
  179. data/app/models/qdm/provider_characteristic.rb +0 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d8f8b0ebf5e06cf55017a4696e16f43eac93a46f5545c103af2d4d8b4eb40c5c
4
- data.tar.gz: 5a44545814700bcbabda02c45040685802d22bc95f51c85fbb0f7dc6ee638b18
3
+ metadata.gz: 8208f3cf4b7526de218cacd347ed0d1cefe129047257e41b0636cbbed9c1547e
4
+ data.tar.gz: daef8cba832f1f300e96663815a581376e63c3724a405edc83f56fb493da5785
5
5
  SHA512:
6
- metadata.gz: 9c01a59e973a72bf780c6adef07440f969460f22c2ace76525df0ab965fcde8b5961e2bfb6eb21d0a1b6c5bc98f1303ac71a15b1da2de424c2f5e0031dc7a94d
7
- data.tar.gz: e31e6a8445d2eac187ca96569745fcca5563a0ff1fb6c14cb346629f11af93d2e3aba455aaa7efbf2219691d4ff92ae26cc24caecc7f78fae02009d16d03a5db
6
+ metadata.gz: 8422a52fe5fb65c349c54ae619a6c44075b732b4b0febc3c912258f54aa353cf67d30dfdf39b55cf0e188c7934132dae86dbedff2157eeacdf368556aaa6592a
7
+ data.tar.gz: 3b01fe32540586d4b905ba8099e284fe194610a659292f64988d5fa785c4d8247d42f5fdd22c5604a7164416fb1b3d420881a447a870114b8383bda08731ca4a
@@ -2,7 +2,7 @@
2
2
  "extends": "airbnb-base",
3
3
  "rules": {
4
4
  "max-len": ["error", {"code": 200, "ignoreComments": true}],
5
- "no-unused-vars": ["error", { "varsIgnorePattern": "IdSchema|DataElementSchema|ComponentSchema|FacilityLocationSchema|Code|Quantity|Interval|Integer|Array|Float|Time|Number|Date|Mixed|Any" }],
5
+ "no-unused-vars": ["error", { "varsIgnorePattern": "EntitySchema|Identifier|IdentifierSchema|DataElementSchema|ComponentSchema|FacilityLocationSchema|Code|Quantity|Interval|Integer|Array|Float|Time|Number|Date|Mixed|Any" }],
6
6
  "camelcase": "off",
7
7
  "comma-dangle": ["error", {
8
8
  "arrays": "always-multiline",
@@ -0,0 +1,28 @@
1
+ name: Github Secrets Scanner
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+
8
+ runs-on: ubuntu-latest
9
+ env:
10
+ REPO: https://github.com/projecttacoma/cqm-models
11
+ REMOTE_EXCLUDES_URL: https://raw.githubusercontent.com/casey-erdmann/bmat-gitleaks-automation/master/cqm-models/gitleaks.toml
12
+ GITLEAKS_VERSION: v3.0.3
13
+ steps:
14
+ - name: Execute Gitleaks
15
+ run: |
16
+ wget ${REMOTE_EXCLUDES_URL} -O gitleaks.toml
17
+ wget https://github.com/zricethezav/gitleaks/releases/download/${GITLEAKS_VERSION}/gitleaks-linux-amd64 -O gitleaks
18
+ chmod +x gitleaks
19
+ echo ${GITHUB_SHA}
20
+ echo "gitleaks --repo=${REPO} -v --pretty --redact --commit=${GITHUB_SHA} --config=gitleaks.toml"
21
+ ./gitleaks --repo=${REPO} -v --pretty --redact --commit=${GITHUB_SHA} --config=gitleaks.toml
22
+ - name: Slack notification
23
+ if: failure()
24
+ env:
25
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
26
+ uses: Ilshidur/action-slack@master
27
+ with:
28
+ args: 'Potential Secrets found in: https://github.com/{{ GITHUB_REPOSITORY }}/commit/{{ GITHUB_SHA }}. Link to build with full gitleaks output: https://github.com/{{ GITHUB_REPOSITORY }}/commit/{{ GITHUB_SHA }}/checks'
@@ -9,7 +9,7 @@ matrix:
9
9
  before_install:
10
10
  - "find /home/travis/.rvm/rubies -wholename '*default/bundler-*.gemspec' -delete"
11
11
  - rvm @global do gem uninstall bundler -a -x -I || true
12
- - gem install bundler -v "< 2.0"
12
+ - gem install bundler -v "2.1.4"
13
13
  script:
14
14
  - bundle exec rake
15
15
  - bundle exec rubocop
@@ -23,7 +23,7 @@ matrix:
23
23
  before_install:
24
24
  - "find /home/travis/.rvm/rubies -wholename '*default/bundler-*.gemspec' -delete"
25
25
  - rvm @global do gem uninstall bundler -a -x -I || true
26
- - gem install bundler -v "< 2.0"
26
+ - gem install bundler -v "2.1.4"
27
27
  script:
28
28
  - bundle exec rake
29
29
  - bundle exec rubocop
data/README.md CHANGED
@@ -17,7 +17,7 @@ See the top of the `lib/generate_models.rb` script for RubyGem requirements.
17
17
 
18
18
  To use, execute the following:
19
19
  ```
20
- ruby lib/generate_models.rb modelinfo/qdm-modelinfo-5.4.xml data/oids_qdm_5.4.json
20
+ ruby lib/generate_models.rb modelinfo/qdm-modelinfo-5.5.xml data/oids_qdm_5.5.json
21
21
  ```
22
22
 
23
23
  The first parameter is the file path to the modelinfo file you wish to generate from. The second parameter is the OID map file. You must include both.
@@ -36,17 +36,17 @@ The QDM patient generator script can be used to create CQMPatients that have a Q
36
36
 
37
37
  To generate a set of patients using the most recent model-info file, each of which has a single data element in addition to the 5 PatientCharactaristic types execute the following:
38
38
  ```
39
- QDM::PatientGeneration.generate_exhastive_data_element_patients()
39
+ QDM::PatientGeneration.generate_exhaustive_data_element_patients()
40
40
  ```
41
41
 
42
42
  To generate a single patient that has every data element from a specific model-info file execute the following:
43
43
  ```
44
- QDM::PatientGeneration.generate_exhastive_data_element_patients(false, 'qdm-modelinfo-5.3.xml')
44
+ QDM::PatientGeneration.generate_exhaustive_data_element_patients(false, 'qdm-modelinfo-5.3.xml')
45
45
  ```
46
46
 
47
47
  ## Running the tests
48
48
 
49
- ### To run frontend Jasmine tests
49
+ ### To run frontend Jasmine tests
50
50
 
51
51
  ```
52
52
  yarn test
@@ -61,15 +61,18 @@ bundle exec rake
61
61
 
62
62
  ## Versioning
63
63
 
64
- Starting with version **1.1.1.0** released on 5/22/2019, cqm-models versioning has the format **W.X.Y.Z**, where:
64
+ Starting with version **2.0.0** released on 6/20/2019, cqm-models versioning has the format **X.Y.Z**, where:
65
65
 
66
- * **W** maps to a version of QDM. See the table below to see the existing mapping to QDM versions.
66
+ * **X** maps to a version of QDM. See the table below to see the existing mapping to QDM versions.
67
67
 
68
- | W | QDM version |
68
+ | X | QDM version |
69
69
  | --- | --- |
70
- | 1 | 5.4 |
70
+ | 2 | 5.4 |
71
+ | 3 | 5.5 |
71
72
 
72
- * **X.Y.Z** uses [SemVer](http://semver.org/) for versioning. **X.Y.Z** starts at 0.0.0 when **W** is incremented.
73
+ * **Y** indicates major changes (incompatible API changes)
74
+
75
+ * **Z** indicates minor changes (added functionality in a backwards-compatible manner) and patch changes (backwards-compatible bug fixes)
73
76
 
74
77
  For the versions available, see [tags on this repository](https://github.com/projecttacoma/cqm-models/tags).
75
78
 
@@ -1,14 +1,17 @@
1
1
  const mongoose = require('mongoose/browser');
2
2
 
3
- const { IdSchema } = require('./Id');
3
+ const { IdentifierSchema } = require('./attributes/Identifier');
4
4
  const { DataElementSchema } = require('./basetypes/DataElement');
5
5
  const Code = require('./basetypes/Code');
6
6
  const Interval = require('./basetypes/Interval');
7
7
  const Quantity = require('./basetypes/Quantity');
8
8
  const DateTime = require('./basetypes/DateTime');
9
+ const QDMDate = require('./basetypes/QDMDate');
9
10
  const Any = require('./basetypes/Any');
11
+ const AnyEntity = require('./basetypes/AnyEntity');
10
12
  const { ComponentSchema } = require('./attributes/Component');
11
13
  const { FacilityLocationSchema } = require('./attributes/FacilityLocation');
14
+ const { EntitySchema } = require('./attributes/Entity');
12
15
 
13
16
 
14
17
  const [Number, String] = [
@@ -18,14 +21,15 @@ const [Number, String] = [
18
21
 
19
22
  const AdverseEventSchema = DataElementSchema({
20
23
  authorDatetime: DateTime,
21
- relevantPeriod: Interval,
24
+ relevantDatetime: DateTime,
22
25
  severity: Code,
23
26
  facilityLocation: FacilityLocationSchema,
24
27
  type: Code,
28
+ recorder: AnyEntity,
25
29
  qdmTitle: { type: String, default: 'Adverse Event' },
26
30
  hqmfOid: { type: String, default: '2.16.840.1.113883.10.20.28.4.120' },
27
31
  qdmCategory: { type: String, default: 'adverse_event' },
28
- qdmVersion: { type: String, default: '5.4' },
32
+ qdmVersion: { type: String, default: '5.5' },
29
33
  _type: { type: String, default: 'QDM::AdverseEvent' },
30
34
 
31
35
  });
@@ -37,4 +41,6 @@ class AdverseEvent extends mongoose.Document {
37
41
  this._type = 'QDM::AdverseEvent';
38
42
  }
39
43
  }
44
+
40
45
  module.exports.AdverseEvent = AdverseEvent;
46
+
@@ -1,5 +1,17 @@
1
- module.exports.Id = require('./Id.js').Id;
2
- module.exports.IdSchema = require('./Id.js').IdSchema;
1
+ module.exports.Identifier = require('./attributes/Identifier.js').Identifier;
2
+ module.exports.IdentifierSchema = require('./attributes/Identifier.js').IdentifierSchema;
3
+ module.exports.Entity = require('./attributes/Entity.js').Entity;
4
+ module.exports.EntitySchema = require('./attributes/Entity.js').EntitySchema;
5
+ module.exports.PatientEntity = require('./attributes/PatientEntity.js').PatientEntity;
6
+ module.exports.PatientEntitySchema = require('./attributes/PatientEntity.js').PatientEntitySchema;
7
+ module.exports.CarePartner = require('./attributes/CarePartner.js').CarePartner;
8
+ module.exports.CarePartnerSchema = require('./attributes/CarePartner.js').CarePartnerSchema;
9
+ module.exports.RelatedPerson = require('./RelatedPerson.js').RelatedPerson;
10
+ module.exports.RelatedPersonSchema = require('./RelatedPerson.js').RelatedPersonSchema;
11
+ module.exports.Practitioner = require('./attributes/Practitioner.js').Practitioner;
12
+ module.exports.PractitionerSchema = require('./attributes/Practitioner.js').PractitionerSchema;
13
+ module.exports.Organization = require('./attributes/Organization.js').Organization;
14
+ module.exports.OrganizationSchema = require('./attributes/Organization.js').OrganizationSchema;
3
15
  module.exports.PhysicalExamOrder = require('./PhysicalExamOrder.js').PhysicalExamOrder;
4
16
  module.exports.PhysicalExamOrderSchema = require('./PhysicalExamOrder.js').PhysicalExamOrderSchema;
5
17
  module.exports.Participation = require('./Participation.js').Participation;
@@ -42,8 +54,10 @@ module.exports.FamilyHistory = require('./FamilyHistory.js').FamilyHistory;
42
54
  module.exports.FamilyHistorySchema = require('./FamilyHistory.js').FamilyHistorySchema;
43
55
  module.exports.Component = require('./attributes/Component.js').Component;
44
56
  module.exports.ComponentSchema = require('./attributes/Component.js').ComponentSchema;
45
- module.exports.ResultComponent = require('./ResultComponent.js').ResultComponent;
46
- module.exports.ResultComponentSchema = require('./ResultComponent.js').ResultComponentSchema;
57
+ module.exports.DiagnosisComponent = require('./attributes/DiagnosisComponent.js').DiagnosisComponent;
58
+ module.exports.DiagnosisComponentSchema = require('./attributes/DiagnosisComponent.js').DiagnosisComponentSchema;
59
+ module.exports.ResultComponent = require('./attributes/ResultComponent.js').ResultComponent;
60
+ module.exports.ResultComponentSchema = require('./attributes/ResultComponent.js').ResultComponentSchema;
47
61
  module.exports.FacilityLocation = require('./attributes/FacilityLocation.js').FacilityLocation;
48
62
  module.exports.FacilityLocationSchema = require('./attributes/FacilityLocation.js').FacilityLocationSchema;
49
63
  module.exports.MedicationActive = require('./MedicationActive.js').MedicationActive;
@@ -74,8 +88,6 @@ module.exports.ProcedurePerformed = require('./ProcedurePerformed.js').Procedure
74
88
  module.exports.ProcedurePerformedSchema = require('./ProcedurePerformed.js').ProcedurePerformedSchema;
75
89
  module.exports.AllergyIntolerance = require('./AllergyIntolerance.js').AllergyIntolerance;
76
90
  module.exports.AllergyIntoleranceSchema = require('./AllergyIntolerance.js').AllergyIntoleranceSchema;
77
- module.exports.ProviderCharacteristic = require('./ProviderCharacteristic.js').ProviderCharacteristic;
78
- module.exports.ProviderCharacteristicSchema = require('./ProviderCharacteristic.js').ProviderCharacteristicSchema;
79
91
  module.exports.PhysicalExamRecommended = require('./PhysicalExamRecommended.js').PhysicalExamRecommended;
80
92
  module.exports.PhysicalExamRecommendedSchema = require('./PhysicalExamRecommended.js').PhysicalExamRecommendedSchema;
81
93
  module.exports.PatientCharacteristicBirthdate = require('./PatientCharacteristicBirthdate.js').PatientCharacteristicBirthdate;
@@ -1,14 +1,17 @@
1
1
  const mongoose = require('mongoose/browser');
2
2
 
3
- const { IdSchema } = require('./Id');
3
+ const { IdentifierSchema } = require('./attributes/Identifier');
4
4
  const { DataElementSchema } = require('./basetypes/DataElement');
5
5
  const Code = require('./basetypes/Code');
6
6
  const Interval = require('./basetypes/Interval');
7
7
  const Quantity = require('./basetypes/Quantity');
8
8
  const DateTime = require('./basetypes/DateTime');
9
+ const QDMDate = require('./basetypes/QDMDate');
9
10
  const Any = require('./basetypes/Any');
11
+ const AnyEntity = require('./basetypes/AnyEntity');
10
12
  const { ComponentSchema } = require('./attributes/Component');
11
13
  const { FacilityLocationSchema } = require('./attributes/FacilityLocation');
14
+ const { EntitySchema } = require('./attributes/Entity');
12
15
 
13
16
 
14
17
  const [Number, String] = [
@@ -21,11 +24,12 @@ const AllergyIntoleranceSchema = DataElementSchema({
21
24
  prevalencePeriod: Interval,
22
25
  type: Code,
23
26
  severity: Code,
27
+ recorder: AnyEntity,
24
28
  qdmTitle: { type: String, default: 'Allergy/Intolerance' },
25
29
  hqmfOid: { type: String, default: '2.16.840.1.113883.10.20.28.4.119' },
26
30
  qdmCategory: { type: String, default: 'allergy' },
27
31
  qdmStatus: { type: String, default: 'intolerance' },
28
- qdmVersion: { type: String, default: '5.4' },
32
+ qdmVersion: { type: String, default: '5.5' },
29
33
  _type: { type: String, default: 'QDM::AllergyIntolerance' },
30
34
 
31
35
  });
@@ -37,4 +41,6 @@ class AllergyIntolerance extends mongoose.Document {
37
41
  this._type = 'QDM::AllergyIntolerance';
38
42
  }
39
43
  }
44
+
40
45
  module.exports.AllergyIntolerance = AllergyIntolerance;
46
+
@@ -1,14 +1,17 @@
1
1
  const mongoose = require('mongoose/browser');
2
2
 
3
- const { IdSchema } = require('./Id');
3
+ const { IdentifierSchema } = require('./attributes/Identifier');
4
4
  const { DataElementSchema } = require('./basetypes/DataElement');
5
5
  const Code = require('./basetypes/Code');
6
6
  const Interval = require('./basetypes/Interval');
7
7
  const Quantity = require('./basetypes/Quantity');
8
8
  const DateTime = require('./basetypes/DateTime');
9
+ const QDMDate = require('./basetypes/QDMDate');
9
10
  const Any = require('./basetypes/Any');
11
+ const AnyEntity = require('./basetypes/AnyEntity');
10
12
  const { ComponentSchema } = require('./attributes/Component');
11
13
  const { FacilityLocationSchema } = require('./attributes/FacilityLocation');
14
+ const { EntitySchema } = require('./attributes/Entity');
12
15
 
13
16
 
14
17
  const [Number, String] = [
@@ -20,11 +23,12 @@ const AssessmentOrderSchema = DataElementSchema({
20
23
  authorDatetime: DateTime,
21
24
  negationRationale: Code,
22
25
  reason: Code,
26
+ requester: AnyEntity,
23
27
  qdmTitle: { type: String, default: 'Assessment, Order' },
24
28
  hqmfOid: { type: String, default: '2.16.840.1.113883.10.20.28.4.131' },
25
29
  qdmCategory: { type: String, default: 'assessment' },
26
30
  qdmStatus: { type: String, default: 'order' },
27
- qdmVersion: { type: String, default: '5.4' },
31
+ qdmVersion: { type: String, default: '5.5' },
28
32
  _type: { type: String, default: 'QDM::AssessmentOrder' },
29
33
 
30
34
  });
@@ -36,4 +40,6 @@ class AssessmentOrder extends mongoose.Document {
36
40
  this._type = 'QDM::AssessmentOrder';
37
41
  }
38
42
  }
43
+
39
44
  module.exports.AssessmentOrder = AssessmentOrder;
45
+
@@ -1,14 +1,17 @@
1
1
  const mongoose = require('mongoose/browser');
2
2
 
3
- const { IdSchema } = require('./Id');
3
+ const { IdentifierSchema } = require('./attributes/Identifier');
4
4
  const { DataElementSchema } = require('./basetypes/DataElement');
5
5
  const Code = require('./basetypes/Code');
6
6
  const Interval = require('./basetypes/Interval');
7
7
  const Quantity = require('./basetypes/Quantity');
8
8
  const DateTime = require('./basetypes/DateTime');
9
+ const QDMDate = require('./basetypes/QDMDate');
9
10
  const Any = require('./basetypes/Any');
11
+ const AnyEntity = require('./basetypes/AnyEntity');
10
12
  const { ComponentSchema } = require('./attributes/Component');
11
13
  const { FacilityLocationSchema } = require('./attributes/FacilityLocation');
14
+ const { EntitySchema } = require('./attributes/Entity');
12
15
 
13
16
 
14
17
  const [Number, String] = [
@@ -18,17 +21,20 @@ const [Number, String] = [
18
21
 
19
22
  const AssessmentPerformedSchema = DataElementSchema({
20
23
  authorDatetime: DateTime,
24
+ relevantDatetime: DateTime,
25
+ relevantPeriod: Interval,
21
26
  negationRationale: Code,
22
27
  reason: Code,
23
28
  method: Code,
24
29
  result: Any,
25
30
  components: [ComponentSchema],
26
- relatedTo: [IdSchema],
31
+ relatedTo: [String],
32
+ performer: AnyEntity,
27
33
  qdmTitle: { type: String, default: 'Assessment, Performed' },
28
34
  hqmfOid: { type: String, default: '2.16.840.1.113883.10.20.28.4.117' },
29
35
  qdmCategory: { type: String, default: 'assessment' },
30
36
  qdmStatus: { type: String, default: 'performed' },
31
- qdmVersion: { type: String, default: '5.4' },
37
+ qdmVersion: { type: String, default: '5.5' },
32
38
  _type: { type: String, default: 'QDM::AssessmentPerformed' },
33
39
 
34
40
  });
@@ -40,4 +46,6 @@ class AssessmentPerformed extends mongoose.Document {
40
46
  this._type = 'QDM::AssessmentPerformed';
41
47
  }
42
48
  }
49
+
43
50
  module.exports.AssessmentPerformed = AssessmentPerformed;
51
+
@@ -1,14 +1,17 @@
1
1
  const mongoose = require('mongoose/browser');
2
2
 
3
- const { IdSchema } = require('./Id');
3
+ const { IdentifierSchema } = require('./attributes/Identifier');
4
4
  const { DataElementSchema } = require('./basetypes/DataElement');
5
5
  const Code = require('./basetypes/Code');
6
6
  const Interval = require('./basetypes/Interval');
7
7
  const Quantity = require('./basetypes/Quantity');
8
8
  const DateTime = require('./basetypes/DateTime');
9
+ const QDMDate = require('./basetypes/QDMDate');
9
10
  const Any = require('./basetypes/Any');
11
+ const AnyEntity = require('./basetypes/AnyEntity');
10
12
  const { ComponentSchema } = require('./attributes/Component');
11
13
  const { FacilityLocationSchema } = require('./attributes/FacilityLocation');
14
+ const { EntitySchema } = require('./attributes/Entity');
12
15
 
13
16
 
14
17
  const [Number, String] = [
@@ -20,11 +23,12 @@ const AssessmentRecommendedSchema = DataElementSchema({
20
23
  authorDatetime: DateTime,
21
24
  negationRationale: Code,
22
25
  reason: Code,
26
+ requester: AnyEntity,
23
27
  qdmTitle: { type: String, default: 'Assessment, Recommended' },
24
28
  hqmfOid: { type: String, default: '2.16.840.1.113883.10.20.28.4.118' },
25
29
  qdmCategory: { type: String, default: 'assessment' },
26
30
  qdmStatus: { type: String, default: 'recommended' },
27
- qdmVersion: { type: String, default: '5.4' },
31
+ qdmVersion: { type: String, default: '5.5' },
28
32
  _type: { type: String, default: 'QDM::AssessmentRecommended' },
29
33
 
30
34
  });
@@ -36,4 +40,6 @@ class AssessmentRecommended extends mongoose.Document {
36
40
  this._type = 'QDM::AssessmentRecommended';
37
41
  }
38
42
  }
43
+
39
44
  module.exports.AssessmentRecommended = AssessmentRecommended;
45
+
@@ -1,14 +1,17 @@
1
1
  const mongoose = require('mongoose/browser');
2
2
 
3
- const { IdSchema } = require('./Id');
3
+ const { IdentifierSchema } = require('./attributes/Identifier');
4
4
  const { DataElementSchema } = require('./basetypes/DataElement');
5
5
  const Code = require('./basetypes/Code');
6
6
  const Interval = require('./basetypes/Interval');
7
7
  const Quantity = require('./basetypes/Quantity');
8
8
  const DateTime = require('./basetypes/DateTime');
9
+ const QDMDate = require('./basetypes/QDMDate');
9
10
  const Any = require('./basetypes/Any');
11
+ const AnyEntity = require('./basetypes/AnyEntity');
10
12
  const { ComponentSchema } = require('./attributes/Component');
11
13
  const { FacilityLocationSchema } = require('./attributes/FacilityLocation');
14
+ const { EntitySchema } = require('./attributes/Entity');
12
15
 
13
16
 
14
17
  const [Number, String] = [
@@ -17,13 +20,15 @@ const [Number, String] = [
17
20
  ];
18
21
 
19
22
  const CareGoalSchema = DataElementSchema({
23
+ statusDate: QDMDate,
20
24
  relevantPeriod: Interval,
21
- relatedTo: [IdSchema],
25
+ relatedTo: [String],
22
26
  targetOutcome: Any,
27
+ performer: AnyEntity,
23
28
  qdmTitle: { type: String, default: 'Care Goal' },
24
29
  hqmfOid: { type: String, default: '2.16.840.1.113883.10.20.28.4.7' },
25
30
  qdmCategory: { type: String, default: 'care_goal' },
26
- qdmVersion: { type: String, default: '5.4' },
31
+ qdmVersion: { type: String, default: '5.5' },
27
32
  _type: { type: String, default: 'QDM::CareGoal' },
28
33
 
29
34
  });
@@ -35,4 +40,6 @@ class CareGoal extends mongoose.Document {
35
40
  this._type = 'QDM::CareGoal';
36
41
  }
37
42
  }
43
+
38
44
  module.exports.CareGoal = CareGoal;
45
+
@@ -1,14 +1,17 @@
1
1
  const mongoose = require('mongoose/browser');
2
2
 
3
- const { IdSchema } = require('./Id');
3
+ const { IdentifierSchema } = require('./attributes/Identifier');
4
4
  const { DataElementSchema } = require('./basetypes/DataElement');
5
5
  const Code = require('./basetypes/Code');
6
6
  const Interval = require('./basetypes/Interval');
7
7
  const Quantity = require('./basetypes/Quantity');
8
8
  const DateTime = require('./basetypes/DateTime');
9
+ const QDMDate = require('./basetypes/QDMDate');
9
10
  const Any = require('./basetypes/Any');
11
+ const AnyEntity = require('./basetypes/AnyEntity');
10
12
  const { ComponentSchema } = require('./attributes/Component');
11
13
  const { FacilityLocationSchema } = require('./attributes/FacilityLocation');
14
+ const { EntitySchema } = require('./attributes/Entity');
12
15
 
13
16
 
14
17
  const [Number, String] = [
@@ -20,16 +23,17 @@ const CommunicationPerformedSchema = DataElementSchema({
20
23
  authorDatetime: DateTime,
21
24
  category: Code,
22
25
  medium: Code,
23
- sender: Code,
24
- recipient: Code,
25
- relatedTo: [IdSchema],
26
- relevantPeriod: Interval,
26
+ sender: AnyEntity,
27
+ recipient: AnyEntity,
28
+ relatedTo: [String],
29
+ sentDatetime: DateTime,
30
+ receivedDatetime: DateTime,
27
31
  negationRationale: Code,
28
32
  qdmTitle: { type: String, default: 'Communication, Performed' },
29
33
  hqmfOid: { type: String, default: '2.16.840.1.113883.10.20.28.4.132' },
30
34
  qdmCategory: { type: String, default: 'communication' },
31
35
  qdmStatus: { type: String, default: 'performed' },
32
- qdmVersion: { type: String, default: '5.4' },
36
+ qdmVersion: { type: String, default: '5.5' },
33
37
  _type: { type: String, default: 'QDM::CommunicationPerformed' },
34
38
 
35
39
  });
@@ -41,4 +45,6 @@ class CommunicationPerformed extends mongoose.Document {
41
45
  this._type = 'QDM::CommunicationPerformed';
42
46
  }
43
47
  }
48
+
44
49
  module.exports.CommunicationPerformed = CommunicationPerformed;
50
+