fhirsmith 0.17.0 → 0.18.0

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 (121) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/README.md +80 -13
  3. package/config-template.json +106 -1
  4. package/ips/ai-client.js +263 -0
  5. package/ips/composer.js +805 -0
  6. package/ips/editor-schema.js +289 -0
  7. package/ips/editor.js +290 -0
  8. package/ips/fhirpath-ips.js +397 -0
  9. package/ips/ips-codeable-concepts.md +1742 -0
  10. package/ips/ips-template.html +125 -0
  11. package/ips/ips-valuesets.js +159 -0
  12. package/ips/ips.js +1736 -0
  13. package/ips/membership.js +179 -0
  14. package/ips/pipeline.js +1012 -0
  15. package/ips/presenter.js +974 -0
  16. package/ips/profile-editor.js +578 -0
  17. package/ips/profiles.js +506 -0
  18. package/ips/readme.md +460 -0
  19. package/ips/render.js +1482 -0
  20. package/ips/search-params.js +83 -0
  21. package/ips/search.js +667 -0
  22. package/ips/share.js +178 -0
  23. package/ips/store.js +650 -0
  24. package/ips/terminology.js +395 -0
  25. package/ips/tx-client.js +202 -0
  26. package/ips/valuesets/CodeSystem-absent-unknown-uv-ips.json +206 -0
  27. package/ips/valuesets/ValueSet-absent-or-unknown-immunizations-uv-ips.json +59 -0
  28. package/ips/valuesets/ValueSet-ips-allergy-code.json +59 -0
  29. package/ips/valuesets/ValueSet-ips-allergy-manifestation.json +356 -0
  30. package/ips/valuesets/ValueSet-ips-allergy-substance.json +37 -0
  31. package/ips/valuesets/ValueSet-ips-body-site.json +26 -0
  32. package/ips/valuesets/ValueSet-ips-clinical-finding-or-none.json +35 -0
  33. package/ips/valuesets/ValueSet-ips-clinical-finding.json +26 -0
  34. package/ips/valuesets/ValueSet-ips-condition-code.json +72 -0
  35. package/ips/valuesets/ValueSet-ips-condition-severity.json +30 -0
  36. package/ips/valuesets/ValueSet-ips-condition-stage.json +26 -0
  37. package/ips/valuesets/ValueSet-ips-exposure-route.json +26 -0
  38. package/ips/valuesets/ValueSet-ips-imaging-procedure.json +25 -0
  39. package/ips/valuesets/ValueSet-ips-immunization-status-reason.json +43 -0
  40. package/ips/valuesets/ValueSet-ips-international-codes.json +25 -0
  41. package/ips/valuesets/ValueSet-ips-medication-ingredient.json +26 -0
  42. package/ips/valuesets/ValueSet-ips-medication-status-reason.json +37 -0
  43. package/ips/valuesets/ValueSet-ips-medication.json +50 -0
  44. package/ips/valuesets/ValueSet-ips-observation-code.json +18 -0
  45. package/ips/valuesets/ValueSet-ips-observation-interpretation.json +18 -0
  46. package/ips/valuesets/ValueSet-ips-procedure-followup.json +51 -0
  47. package/ips/valuesets/ValueSet-ips-procedure-outcome.json +30 -0
  48. package/ips/valuesets/ValueSet-ips-procedure-reason.json +37 -0
  49. package/ips/valuesets/ValueSet-ips-procedure.json +116 -0
  50. package/ips/valuesets/ValueSet-ips-route.json +46 -0
  51. package/ips/valuesets/ValueSet-ips-target-disease.json +171 -0
  52. package/ips/valuesets/ValueSet-ips-vaccine.json +31 -0
  53. package/ips/valuesets/elements.json +44 -0
  54. package/library/daily-report.js +422 -0
  55. package/library/fhir-search-values.js +138 -0
  56. package/library/html-server.js +32 -23
  57. package/library/mailer.js +77 -0
  58. package/library/narrative-check.js +21 -2
  59. package/library/npm-audit.js +25 -0
  60. package/library/package-manager.js +4 -2
  61. package/library/sqlite-session-store.js +29 -1
  62. package/package.json +7 -2
  63. package/packages/packages.js +34 -3
  64. package/publisher/publisher.js +29 -0
  65. package/registry/auth-store.js +366 -0
  66. package/registry/auth.js +872 -0
  67. package/registry/crawler.js +41 -1
  68. package/registry/documentation/api.md +162 -0
  69. package/registry/documentation/configuration.md +93 -0
  70. package/registry/documentation/documents.md +74 -0
  71. package/registry/documentation/internals.md +151 -0
  72. package/registry/documentation/readme.md +100 -0
  73. package/registry/documentation/security.md +199 -0
  74. package/registry/documents.js +309 -0
  75. package/registry/openapi.yaml +30 -0
  76. package/registry/registry-template.html +1 -1
  77. package/registry/registry.js +230 -44
  78. package/registry/uptime.js +154 -0
  79. package/server.js +105 -44
  80. package/shl/shl.js +64 -9
  81. package/stats-db.js +93 -0
  82. package/stats.js +158 -1
  83. package/testing/search.js +2 -108
  84. package/testing/store.js +5 -0
  85. package/testing/testing.js +20 -0
  86. package/token/token-template.html +5 -4
  87. package/token/token.js +17 -10
  88. package/translations/Messages.properties +9 -0
  89. package/tx/README.md +52 -0
  90. package/tx/cs/cs-api.js +90 -14
  91. package/tx/cs/cs-cs.js +56 -1
  92. package/tx/cs/cs-icd11.js +366 -112
  93. package/tx/cs/cs-icf.js +418 -0
  94. package/tx/cs/cs-loinc.js +47 -25
  95. package/tx/cs/cs-omop.js +10 -3
  96. package/tx/cs/cs-snomed.js +918 -55
  97. package/tx/cs/cs-ucum.js +6 -0
  98. package/tx/cs/icd11-expressions.js +191 -78
  99. package/tx/importers/export-icd11-codesystem.js +58 -12
  100. package/tx/importers/icd11-schema.md +9 -5
  101. package/tx/library.js +98 -4
  102. package/tx/openapi-operations.js +4 -0
  103. package/tx/params.js +8 -1
  104. package/tx/provider.js +16 -4
  105. package/tx/sct/documentation.md +251 -0
  106. package/tx/sct/ecl.js +758 -46
  107. package/tx/sct/expressions.js +113 -52
  108. package/tx/syndication/syndication-feed.js +218 -0
  109. package/tx/syndication/syndication-store.js +415 -0
  110. package/tx/tx-html.js +15 -1
  111. package/tx/tx.fhir.org.yml +2 -3
  112. package/tx/tx.js +144 -2
  113. package/tx/vs/vs-vsac.js +25 -6
  114. package/tx/workers/expand.js +33 -6
  115. package/tx/workers/lookup.js +61 -6
  116. package/tx/workers/subsumes.js +1 -1
  117. package/tx/workers/translate.js +166 -15
  118. package/tx/workers/validate.js +128 -6
  119. package/utilities/make-sct-test-extension.js +264 -0
  120. package/xig/xig.js +32 -0
  121. package/registry/readme.md +0 -124
@@ -0,0 +1,116 @@
1
+ {
2
+ "resourceType": "ValueSet",
3
+ "id": "ips-procedure",
4
+ "url": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-procedure",
5
+ "name": "IpsProcedure",
6
+ "title": "Procedures (IPS international exchange)",
7
+ "status": "active",
8
+ "experimental": false,
9
+ "publisher": "Health Intersections",
10
+ "description": "SNOMED CT International descendants of 71388002 |Procedure|, other than 14734007 |Administrative procedure|, 59524001 |Blood bank procedure|, 389067005 |Community health procedure|, 442006003 |Determination of information related to transfusion|, 225288009 |Environmental care procedure|, 308335008 |Patient encounter procedure|, 710135002 |Promotion of health| and 389084004 |Staff related procedure|.",
11
+ "compose": {
12
+ "include": [
13
+ {
14
+ "system": "http://snomed.info/sct",
15
+ "version": "http://snomed.info/sct/900000000000207008",
16
+ "filter": [
17
+ {
18
+ "property": "concept",
19
+ "op": "descendent-of",
20
+ "value": "71388002"
21
+ }
22
+ ]
23
+ }
24
+ ],
25
+ "exclude": [
26
+ {
27
+ "system": "http://snomed.info/sct",
28
+ "version": "http://snomed.info/sct/900000000000207008",
29
+ "filter": [
30
+ {
31
+ "property": "concept",
32
+ "op": "is-a",
33
+ "value": "14734007"
34
+ }
35
+ ]
36
+ },
37
+ {
38
+ "system": "http://snomed.info/sct",
39
+ "version": "http://snomed.info/sct/900000000000207008",
40
+ "filter": [
41
+ {
42
+ "property": "concept",
43
+ "op": "is-a",
44
+ "value": "59524001"
45
+ }
46
+ ]
47
+ },
48
+ {
49
+ "system": "http://snomed.info/sct",
50
+ "version": "http://snomed.info/sct/900000000000207008",
51
+ "filter": [
52
+ {
53
+ "property": "concept",
54
+ "op": "is-a",
55
+ "value": "389067005"
56
+ }
57
+ ]
58
+ },
59
+ {
60
+ "system": "http://snomed.info/sct",
61
+ "version": "http://snomed.info/sct/900000000000207008",
62
+ "filter": [
63
+ {
64
+ "property": "concept",
65
+ "op": "is-a",
66
+ "value": "442006003"
67
+ }
68
+ ]
69
+ },
70
+ {
71
+ "system": "http://snomed.info/sct",
72
+ "version": "http://snomed.info/sct/900000000000207008",
73
+ "filter": [
74
+ {
75
+ "property": "concept",
76
+ "op": "is-a",
77
+ "value": "225288009"
78
+ }
79
+ ]
80
+ },
81
+ {
82
+ "system": "http://snomed.info/sct",
83
+ "version": "http://snomed.info/sct/900000000000207008",
84
+ "filter": [
85
+ {
86
+ "property": "concept",
87
+ "op": "is-a",
88
+ "value": "308335008"
89
+ }
90
+ ]
91
+ },
92
+ {
93
+ "system": "http://snomed.info/sct",
94
+ "version": "http://snomed.info/sct/900000000000207008",
95
+ "filter": [
96
+ {
97
+ "property": "concept",
98
+ "op": "is-a",
99
+ "value": "710135002"
100
+ }
101
+ ]
102
+ },
103
+ {
104
+ "system": "http://snomed.info/sct",
105
+ "version": "http://snomed.info/sct/900000000000207008",
106
+ "filter": [
107
+ {
108
+ "property": "concept",
109
+ "op": "is-a",
110
+ "value": "389084004"
111
+ }
112
+ ]
113
+ }
114
+ ]
115
+ }
116
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "resourceType": "ValueSet",
3
+ "id": "ips-route",
4
+ "url": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-route",
5
+ "name": "IpsRoute",
6
+ "title": "Routes of administration (IPS international exchange)",
7
+ "status": "active",
8
+ "experimental": false,
9
+ "publisher": "Health Intersections",
10
+ "description": "SNOMED CT International descendants of 284009009 |Route of administration value|, and the current EDQM Standard Terms routes of administration for human (and veterinary) use (status C, class ROA, domain H+V).",
11
+ "compose": {
12
+ "include": [
13
+ {
14
+ "system": "http://snomed.info/sct",
15
+ "version": "http://snomed.info/sct/900000000000207008",
16
+ "filter": [
17
+ {
18
+ "property": "concept",
19
+ "op": "is-a",
20
+ "value": "284009009"
21
+ }
22
+ ]
23
+ },
24
+ {
25
+ "system": "http://standardterms.edqm.eu",
26
+ "filter": [
27
+ {
28
+ "property": "status",
29
+ "op": "=",
30
+ "value": "C"
31
+ },
32
+ {
33
+ "property": "class",
34
+ "op": "=",
35
+ "value": "ROA"
36
+ },
37
+ {
38
+ "property": "domain",
39
+ "op": "=",
40
+ "value": "H+V"
41
+ }
42
+ ]
43
+ }
44
+ ]
45
+ }
46
+ }
@@ -0,0 +1,171 @@
1
+ {
2
+ "resourceType": "ValueSet",
3
+ "id": "ips-target-disease",
4
+ "url": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-target-disease",
5
+ "name": "IpsTargetDisease",
6
+ "title": "Vaccine target diseases (IPS international exchange)",
7
+ "status": "active",
8
+ "experimental": false,
9
+ "publisher": "Health Intersections",
10
+ "description": "SNOMED CT: the diseases vaccines target.",
11
+ "compose": {
12
+ "include": [
13
+ {
14
+ "system": "http://snomed.info/sct",
15
+ "version": "http://snomed.info/sct/900000000000207008",
16
+ "concept": [
17
+ {
18
+ "code": "4834000"
19
+ },
20
+ {
21
+ "code": "6142004"
22
+ },
23
+ {
24
+ "code": "16541001"
25
+ },
26
+ {
27
+ "code": "14189004"
28
+ },
29
+ {
30
+ "code": "14168008"
31
+ },
32
+ {
33
+ "code": "18624000"
34
+ },
35
+ {
36
+ "code": "23502006"
37
+ },
38
+ {
39
+ "code": "23511006"
40
+ },
41
+ {
42
+ "code": "24662006"
43
+ },
44
+ {
45
+ "code": "25225006"
46
+ },
47
+ {
48
+ "code": "27836007"
49
+ },
50
+ {
51
+ "code": "32398004"
52
+ },
53
+ {
54
+ "code": "36653000"
55
+ },
56
+ {
57
+ "code": "36989005"
58
+ },
59
+ {
60
+ "code": "37246009"
61
+ },
62
+ {
63
+ "code": "38907003"
64
+ },
65
+ {
66
+ "code": "40468003"
67
+ },
68
+ {
69
+ "code": "50711007"
70
+ },
71
+ {
72
+ "code": "52947006"
73
+ },
74
+ {
75
+ "code": "56717001"
76
+ },
77
+ {
78
+ "code": "58750007"
79
+ },
80
+ {
81
+ "code": "63650001"
82
+ },
83
+ {
84
+ "code": "66071002"
85
+ },
86
+ {
87
+ "code": "67924001"
88
+ },
89
+ {
90
+ "code": "70036007"
91
+ },
92
+ {
93
+ "code": "75702008"
94
+ },
95
+ {
96
+ "code": "76902006"
97
+ },
98
+ {
99
+ "code": "85904008"
100
+ },
101
+ {
102
+ "code": "111852003"
103
+ },
104
+ {
105
+ "code": "186150001"
106
+ },
107
+ {
108
+ "code": "186772009"
109
+ },
110
+ {
111
+ "code": "186788009"
112
+ },
113
+ {
114
+ "code": "240532009"
115
+ },
116
+ {
117
+ "code": "240613006"
118
+ },
119
+ {
120
+ "code": "372244006"
121
+ },
122
+ {
123
+ "code": "397430003"
124
+ },
125
+ {
126
+ "code": "398102009"
127
+ },
128
+ {
129
+ "code": "398565003"
130
+ },
131
+ {
132
+ "code": "409498004"
133
+ },
134
+ {
135
+ "code": "417093003"
136
+ },
137
+ {
138
+ "code": "442438000"
139
+ },
140
+ {
141
+ "code": "442696006"
142
+ },
143
+ {
144
+ "code": "450715004"
145
+ },
146
+ {
147
+ "code": "707448003"
148
+ },
149
+ {
150
+ "code": "709410003"
151
+ },
152
+ {
153
+ "code": "712986001"
154
+ },
155
+ {
156
+ "code": "713083002"
157
+ },
158
+ {
159
+ "code": "772810003"
160
+ },
161
+ {
162
+ "code": "772828001"
163
+ },
164
+ {
165
+ "code": "840539006"
166
+ }
167
+ ]
168
+ }
169
+ ]
170
+ }
171
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "resourceType": "ValueSet",
3
+ "id": "ips-vaccine",
4
+ "url": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-vaccine",
5
+ "name": "IpsVaccine",
6
+ "title": "Vaccines (IPS international exchange)",
7
+ "status": "active",
8
+ "experimental": false,
9
+ "publisher": "Health Intersections",
10
+ "description": "SNOMED CT International descendants of 787859002 |Vaccine product|, and the IPS codes for absent or unknown immunizations.",
11
+ "compose": {
12
+ "include": [
13
+ {
14
+ "system": "http://snomed.info/sct",
15
+ "version": "http://snomed.info/sct/900000000000207008",
16
+ "filter": [
17
+ {
18
+ "property": "concept",
19
+ "op": "descendent-of",
20
+ "value": "787859002"
21
+ }
22
+ ]
23
+ },
24
+ {
25
+ "valueSet": [
26
+ "http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-immunizations-uv-ips"
27
+ ]
28
+ }
29
+ ]
30
+ }
31
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "description": "Which value set (ValueSet-*.json in this folder) a CodeableConcept element is checked against for international exchange; elements not listed are checked only against the fallback (ips-international-codes, and the HL7 terminologies)",
3
+ "fallback": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-international-codes",
4
+ "elements": {
5
+ "MedicationStatement.statusReason": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-medication-status-reason",
6
+ "MedicationRequest.statusReason": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-medication-status-reason",
7
+ "MedicationStatement.medicationCodeableConcept": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-medication",
8
+ "MedicationRequest.medicationCodeableConcept": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-medication",
9
+ "Medication.code": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-medication",
10
+ "MedicationStatement.reasonCode": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-clinical-finding-or-none",
11
+ "MedicationRequest.reasonCode": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-clinical-finding-or-none",
12
+ "Procedure.complication": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-clinical-finding-or-none",
13
+ "MedicationStatement.dosage.route": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-route",
14
+ "MedicationRequest.dosageInstruction.route": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-route",
15
+ "Immunization.route": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-route",
16
+ "AllergyIntolerance.code": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-allergy-code",
17
+ "AllergyIntolerance.reaction.substance": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-allergy-substance",
18
+ "AllergyIntolerance.reaction.manifestation": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-allergy-manifestation",
19
+ "AllergyIntolerance.reaction.exposureRoute": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-exposure-route",
20
+ "Condition.severity": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-condition-severity",
21
+ "Condition.stage.summary": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-condition-stage",
22
+ "Condition.code": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-condition-code",
23
+ "Condition.bodySite": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-body-site",
24
+ "Procedure.bodySite": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-body-site",
25
+ "DeviceUseStatement.bodySite": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-body-site",
26
+ "Immunization.site": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-body-site",
27
+ "Observation.bodySite": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-body-site",
28
+ "Condition.evidence.code": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-clinical-finding",
29
+ "DiagnosticReport.conclusionCode": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-clinical-finding",
30
+ "Procedure.code": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-procedure",
31
+ "Procedure.reasonCode": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-procedure-reason",
32
+ "ImagingStudy.reasonCode": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-procedure-reason",
33
+ "Procedure.outcome": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-procedure-outcome",
34
+ "Procedure.followUp": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-procedure-followup",
35
+ "Immunization.statusReason": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-immunization-status-reason",
36
+ "Immunization.vaccineCode": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-vaccine",
37
+ "Immunization.protocolApplied.targetDisease": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-target-disease",
38
+ "Observation.code": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-observation-code",
39
+ "DiagnosticReport.code": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-observation-code",
40
+ "Observation.interpretation": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-observation-interpretation",
41
+ "ImagingStudy.procedureCode": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-imaging-procedure",
42
+ "Medication.ingredient.itemCodeableConcept": "http://healthintersections.com.au/fhirsmith/ValueSet/ips-medication-ingredient"
43
+ }
44
+ }