@@ -8,6 +8,7 @@ import ca.uhn.fhir.rest.api.Constants
88import ca.uhn.fhir.rest.api.EncodingEnum
99import ca.uhn.fhir.rest.api.server.RequestDetails
1010import ca.uhn.fhir.rest.server.exceptions.BaseServerResponseException
11+ import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException
1112import ca.uhn.fhir.rest.server.servlet.ServletRequestDetails
1213import com.amazonaws.services.sqs.AmazonSQS
1314import com.amazonaws.services.sqs.model.SendMessageRequest
@@ -59,25 +60,33 @@ class AWSAuditEventLoggingInterceptor(
5960 contentType = contentType.trim { it <= ' ' }
6061 val encoding = EncodingEnum .forContentType(contentType)
6162 if (encoding != null ) {
62- val requestContents = theRequestDetails.loadRequestContents()
63- fhirResource = String (requestContents, Constants . CHARSET_UTF8 )
64- if ( ! fhirResource.isEmpty()) {
65- try {
66- var baseResource : IBaseResource ? = null
63+ try {
64+
65+ val requestContents = theRequestDetails.loadRequestContents()
66+ fhirResource = String (requestContents, Constants . CHARSET_UTF8 )
67+ if ( ! fhirResource.isEmpty()) {
6768 try {
68- baseResource = ctx.newJsonParser().parseResource(fhirResource)
69- } catch (ex : Exception ) {
70- baseResource = ctx.newXmlParser().parseResource(fhirResource)
71- }
72- if (baseResource is QuestionnaireResponse ) {
73- patientId = baseResource.subject.reference
69+ var baseResource: IBaseResource ? = null
70+ try {
71+ baseResource = ctx.newJsonParser().parseResource(fhirResource)
72+ } catch (ex: Exception ) {
73+ baseResource = ctx.newXmlParser().parseResource(fhirResource)
74+ }
75+ if (baseResource is QuestionnaireResponse ) {
76+ patientId = baseResource.subject.reference
77+ }
78+ } catch (ex: Exception ) {
79+ val auditEvent =
80+ createAudit(theRequestDetails.servletRequest, fhirResourceName, patientId, fhirResource)
81+ addAWSOutComeException(auditEvent, ex)
82+ // throw UnprocessableEntityException(ex.message)
7483 }
75- } catch (ex: Exception ) {
76- val auditEvent =
77- createAudit(theRequestDetails.servletRequest, fhirResourceName, patientId, fhirResource)
78- addAWSOutComeException(auditEvent, ex)
79- // throw UnprocessableEntityException(ex.message)
8084 }
85+ } catch (io: InvalidRequestException ) {
86+ System .out .println (" Issue Processing - " + theRequestDetails.requestPath)
87+ }
88+ catch (io: IOException ) {
89+ System .out .println (" Issue Processing - " + theRequestDetails.requestPath)
8190 }
8291 }
8392 }
0 commit comments