Skip to end of metadata
Go to start of metadata

The current ballot does not have documentation on what to return when specific circumstances happen that would preclude returning a proper response. Furthermore it is very important that Immunization Decision Support systems inspect all input data to ensure that it is read properly otherwise the decision support may indicate the wrong action. If the incoming data cannot be read properly than a negative Operation Outcome should be returned.

Brian Lee from STC has proposed a set of possible Operation Outcomes and created software code to demonstrate this. The project is available here on github.

The table below is the summary of his proposed conditions. These need to reviewed by the group and additional concepts added as needed. The last three columns are the values that should be sent in Operation Outcome

HTTP ErrorConditionExplanationseverity 
Issue Severity
code 
Issue Type
details 
Operation Outcome
404 (Resource not found)
This message is returned when the requested resource doesn't exist.


405 (Method not allowed)
This message is returned when an HTTP operation isn't allowed for a resource.


422 (Client error, data validation fault)Assessment Date is before DOBIllogical Date error: Assessment date must be after date of birtherror

Vaccination Date is before DOBIllogical Date error: Vaccination Date must be on or after date of birtherror

Medical Observation Date is before DOBIllogical Date error: Medical Observation Date must be on or after date of birth


Observation Code is not recognizedUnrecognized observation code


Antigen Series is not recognizedUnrecognized antigen series


Patient DOB is missingMissing Date error: patientDob is requirederrorrequired
Vaccination Date is missingMissing Date error: vaccineDate is requirederror

Date is not validDOB value[20001335], invalid dateerrorstructureMSG_BAD_FORMAT
vaccineCode is not recognizedVaccination code is not recognizederror or warning

vaccineCode is not supportedVaccination code is a concept that is not supported or accounted in the forecastwarning
















500 (Non-Transient Exception, not going to get better, don't retry)
This message is returned when a non-transient exception is encountered. An example could be when a configuration file isn't found.


503 (Transient Exception, might get better later)
This message is returned when a transient Exception is encountered. Like when all the connections in a connection pool are being used. Connections might be available later as connections are released to the pool.


Questions:

  • How is the Operation Outcome is returned? Can it be returned in the case of warnings? How would this look?
  • Can more than Operation Outcome be returned?
  • Should we require systems requesting to always display errors and warnings?
  • Should we require that there be human readable details about the error? Or just recommend this? The text of the error can be placed in details.text. Additional information can also be placed in diagnostics.
  • No labels