diff --git a/api/FHIRApiService/services/base.service.js b/api/FHIRApiService/services/base.service.js index b155beb1..120bdcd5 100644 --- a/api/FHIRApiService/services/base.service.js +++ b/api/FHIRApiService/services/base.service.js @@ -46,9 +46,6 @@ class BaseFhirApiService { getResourceChangeFailureOperationOutcomeMsg(err) { logger.error(err); - if (_.get(err, "resourceType", "") === "OperationOutcome") - return err; - let operationOutcomeMessage; if (_.get(err, "message.code") === 11000) { operationOutcomeMessage = { @@ -100,7 +97,7 @@ class BaseFhirApiService { if (this._pretty) xmlItem = xmlFormatter(xmlItem); return this.response.status(code).send(xmlItem); } - + return this.response.status(code).send(item); } diff --git a/api/FHIRApiService/services/bundle-operations.service.js b/api/FHIRApiService/services/bundle-operations.service.js index 94e81110..18ebfb4b 100644 --- a/api/FHIRApiService/services/bundle-operations.service.js +++ b/api/FHIRApiService/services/bundle-operations.service.js @@ -287,15 +287,11 @@ class TransactionUpdateHandler extends BaseTransactionHandler { let validation = await BaseFhirApiService.validateRequestResource(this.resource); if (!validation.status) throw new FhirValidationError(validation.result); - let { code, doc } = await UpdateService.insertOrUpdateResource(this.resourceType, this.resource, getIdInFullUrl(this.fullUrl), this.transaction); - this.replaceIdInEntry(doc); + let { code, result } = await UpdateService.insertOrUpdateResource(this.resourceType, this.resource, getIdInFullUrl(this.fullUrl), this.transaction); + this.replaceIdInEntry(result); - if (_.get(doc, "resourceType") === "OperationOutcome" && code === 422) { - await this.transaction.abortTransaction(); - throw new FhirValidationError(doc.result); - } let reqBaseUrl = `${this.bundleOpService.request.protocol}://${this.bundleOpService.request.get('host')}/`; - let fullAbsoluteUrl = urlJoin(`/${process.env.FHIRSERVER_APIPATH}/${this.resourceType}/${getIdInFullUrl(this.fullUrl)}/_history/${doc.meta.versionId}`, reqBaseUrl); + let fullAbsoluteUrl = urlJoin(`/${process.env.FHIRSERVER_APIPATH}/${this.resourceType}/${getIdInFullUrl(this.fullUrl)}/_history/${result.meta.versionId}`, reqBaseUrl); this.bundleOpService.bundleResponse.push({ response: { status: code.toString(), @@ -304,7 +300,7 @@ class TransactionUpdateHandler extends BaseTransactionHandler { } }); - return { code, result: doc }; + return { code, result }; } } diff --git a/api/FHIRApiService/services/update.service.js b/api/FHIRApiService/services/update.service.js index 170636cd..dd4403b1 100644 --- a/api/FHIRApiService/services/update.service.js +++ b/api/FHIRApiService/services/update.service.js @@ -30,10 +30,11 @@ class UpdateService extends BaseFhirApiService { return await UpdateService.insertOrUpdateResource(this.resourceType, resourceClone, this.resourceId); } catch (e) { + logger.error(`[Error: ${JSON.stringify(e)}] [Resource Type: ${this.resourceType}]`); return { status: false, code: 500, - doc: e + result: e }; } } @@ -82,7 +83,7 @@ class UpdateService extends BaseFhirApiService { return { status: true, code: 200, - doc: newDoc.value.getFHIRField() + result: newDoc.value.getFHIRField() }; } @@ -94,7 +95,7 @@ class UpdateService extends BaseFhirApiService { return { status: true, code: 201, - doc: doc.getFHIRField() + result: doc.getFHIRField() }; }