formbuilder-lhcforms 6.5.1 → 6.5.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  This project follows [Semantic Versioning](http://semver.org/).
4
4
 
5
+ ## [6.5.2] 2021-10-05
6
+ ### Fixed
7
+ - Fixed a bug that fails to load forms after loading a form with ValueSet
8
+ having no terminology server.
9
+
5
10
  ## [6.5.1] 2021-09-30
6
11
  ### Fixed
7
12
  - Changed broken CTSS url.
package/bower.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "formbuilder-lhcforms",
3
- "version": "6.5.1",
3
+ "version": "6.5.2",
4
4
  "main": [
5
5
  "client/app/app.js",
6
6
  "client/app/config.js",
@@ -51,7 +51,8 @@
51
51
  "ngSmoothScroll": "~2.0.0",
52
52
  "traverse": "0.6.7",
53
53
  "angular-spinner": "~0.8.0",
54
- "fhir.js": "git://github.com/akanduru/fhir.js#ng-fhir"
54
+ "fhir.js": "git://github.com/akanduru/fhir.js#ng-fhir",
55
+ "fhirclient": "git://github.com/smart-on-fhir/client-js"
55
56
  },
56
57
  "overrides": {
57
58
  "jquery-ui": {
@@ -197,23 +197,40 @@ angular.module('formBuilder')
197
197
  * @param jsonInput
198
198
  */
199
199
  function setPreviewData(jsonInput) {
200
- $scope.previewSource['lforms'] = toJsonFilter(jsonInput, ['_', '$']);
201
- var previewSrcObj = JSON.parse($scope.previewSource['lforms']);
200
+ $scope.previewSourceErrors = {};
201
+ $scope.previewSource.lforms = toJsonFilter(jsonInput, ['_', '$']);
202
+ const previewSrcObj = JSON.parse($scope.previewSource.lforms);
203
+ LForms.Util.setFHIRContext(FHIR.client({serverUrl: $scope.getFhirServer().endpoint}));
202
204
  $scope.formatList.slice(0, ($scope.formatList.length - 1)).forEach(function (ele) {
203
- var fhirData = LForms.FHIR[ele.format].SDC.convertLFormsToQuestionnaire(previewSrcObj);
204
- $scope.previewSource[ele.format] = toJsonFilter(fhirData, ['_', '$']);
205
+ $scope.previewSource[ele.format] = null;
206
+ $scope.previewSourceErrors[ele.format] = null;
207
+ try {
208
+ const fhirData = LForms.FHIR[ele.format].SDC.convertLFormsToQuestionnaire(previewSrcObj);
209
+ $scope.previewSource[ele.format] = toJsonFilter(fhirData, ['_', '$']);
210
+ } catch (e) {
211
+ $scope.previewSourceErrors[ele.format] = [e.message];
212
+ }
205
213
  });
206
214
  if(previewSrcObj.items.length > 0) {
207
- $scope.previewLfData = new LForms.LFormsData(previewSrcObj);
208
- if(previewSrcObj.id) {
209
- $scope.previewLfData.id = previewSrcObj.id;
210
- }
215
+ try {
216
+ $scope.previewLfData = new LForms.LFormsData(previewSrcObj);
217
+ if(previewSrcObj.id) {
218
+ $scope.previewLfData.id = previewSrcObj.id;
219
+ }
211
220
 
212
- //Customize preview in formbuilder.
213
- $scope.previewLfData.templateOptions = $scope.previewLfData.templateOptions || {};
214
- $scope.previewLfData.templateOptions.showFormHeader = false;
215
- $scope.previewLfData.templateOptions.hideFormControls = true;
216
- $scope.previewLfData.templateOptions.viewMode = 'md';
221
+ //Customize preview in formbuilder.
222
+ $scope.previewLfData.templateOptions = $scope.previewLfData.templateOptions || {};
223
+ $scope.previewLfData.templateOptions.showFormHeader = false;
224
+ $scope.previewLfData.templateOptions.hideFormControls = true;
225
+ $scope.previewLfData.templateOptions.viewMode = 'md';
226
+ $scope.previewErrors = null;
227
+ }
228
+ catch(e) {
229
+ var err = 'Failed to create preview widget!';
230
+ $scope.previewErrors = [err];
231
+ $scope.previewErrors.push(e.message);
232
+ $scope.previewLfData = null;
233
+ }
217
234
  }
218
235
  else {
219
236
  $scope.previewLfData = null;
@@ -272,7 +289,7 @@ angular.module('formBuilder')
272
289
  // Use hidden anchor to do file download.
273
290
  var downloadLink = document.getElementById('exportAnchor');
274
291
  var urlFactory = (window.URL || window.webkitURL);
275
- if(objectUrl != null) {
292
+ if(objectUrl !== null) {
276
293
  // First release any resources on existing object url
277
294
  urlFactory.revokeObjectURL(objectUrl);
278
295
  }
@@ -610,7 +627,7 @@ angular.module('formBuilder')
610
627
  $scope.isHeaderItem = function (lfData) {
611
628
  var ret = false;
612
629
  if(formBuilderService.isNodeFbLfItem(lfData)) {
613
- var indexInfo = dataConstants.INITIAL_FIELD_INDICES['__itemType'];
630
+ var indexInfo = dataConstants.INITIAL_FIELD_INDICES.__itemType;
614
631
  ret = formBuilderService.getFormBuilderField(lfData[indexInfo.category].items, '__itemType').value.code === 'group';
615
632
  }
616
633
  return ret;
@@ -95,7 +95,10 @@
95
95
  </div>
96
96
  </md-tab-label>
97
97
  <md-tab-body>
98
- <lforms lf-data="previewLfData"></lforms>
98
+ <div ng-if="previewErrors" class="error-message">
99
+ <div ng-repeat="e in previewErrors" class="message-box">{{e}}</div>
100
+ </div>
101
+ <lforms ng-if="previewLfData" lf-data="previewLfData"></lforms>
99
102
  </md-tab-body>
100
103
  </md-tab>
101
104
  <md-tab>
@@ -112,7 +115,10 @@
112
115
  </md-radio-button>
113
116
  </md-radio-group>
114
117
  </div>
115
- <pre class="formbuilder-pre">{{previewSource[selectedFormat.format]}}</pre>
118
+ <div ng-if="previewSourceErrors[selectedFormat.format]" class="error-message">
119
+ <div ng-repeat="e in previewSourceErrors[selectedFormat.format]" class="message-box">{{e}}</div>
120
+ </div>
121
+ <pre ng-if="previewSource[selectedFormat.format]" class="formbuilder-pre">{{previewSource[selectedFormat.format]}}</pre>
116
122
  </md-tab-body>
117
123
  </md-tab>
118
124
  </md-tabs>
@@ -418,4 +418,8 @@ md-menu-bar {
418
418
  color: red;
419
419
  font-weight: bold;
420
420
  }
421
+
422
+ .message-box {
423
+ padding: 10px;
424
+ }
421
425
  /* End of styles for the footer */
@@ -55,6 +55,7 @@
55
55
  <!-- endbower -->
56
56
  <script src="bower_components/lforms/app/scripts/fhir/STU3/lformsFHIR.js"></script>
57
57
  <script src="bower_components/lforms/app/scripts/fhir/R4/lformsFHIR.js"></script>
58
+ <script src="bower_components/fhirclient/dist/build/fhir-client.min.js"></script>
58
59
  <script src="app/lforms-updater.js"></script>
59
60
  <!-- endbuild -->
60
61
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "formbuilder-lhcforms",
3
- "version": "6.5.1",
3
+ "version": "6.5.2",
4
4
  "description": "Build LHC-Forms and FHIR Questionnaires",
5
5
  "main": "server/index.js",
6
6
  "homepage": "https://github.com/lhncbc/formbuilder-lhcforms",