Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Detor will validate both order and result messages and alert the Public Health Laboratory of any errors or warnings.

(error) Errors occur when a message cannot be parsed or determined (“fatal”)recognized or processed. For example, an HL7 format is expected but a CSV is receiveda message that is corrupt, invalid, or the correct domain (Newborn Screening, Clinical, Environmental) cannot be determined.

(warning) Warnings occur if data that has been deemed required is missing or invalid. For example, ‘Collection Facility’ is missing from the order message.

Note this validation occurs after APHL receives, transforms and translates the message to the middle-ground format.

See APHL Detor Message Validation Rules for more details.

toc

minLevel1
maxLevel6
outlinefalse
stylenone
typelist
printabletrue

S3 Bucket

The PHL S3 Bucket or SFTP folder structure is organized to “alert” onfacilitate your monitoring of:

  1. receipt of a new order;

  2. receipt of an error/warning message related to an order;

  3. receipt of an error/warning message related to a result.

image-20240513-181920.pngImage Removedimage001.pngImage Added

The S3 bucket Bucket or SFTP folder can support multiple domains based on the existence of multiple LIMS within the laboratory. The folder structure will be organized in a standard way for each use case, the domain. The example to the left depicts a Newborn Screening (NBS) example.

Within the NBS parent folder, there will be a child folder for:

📁 Order: this folder contains all received order messages

📁 Error: this folder contains warning and error messages related to both:

📁 Order: Warning, Error and Message files related to received Orders

In the event of an Error, the associated Order Message received (but not processed) by AIMS will be provided.

📁 Result: Warning, Error and Message files related to delivered Results

In the event of an Error, the associated Result Message received (but not processed) by AIMS will be provided.

The PHL is advised to Although Detor significantly reduces the burden associated with managing test orders and results, some oversight will be necessary to identify issues (errors) and opportunities for improvement (warnings). The PHL should develop and execute a prescriptive daily process for managing errors and warnings and errors. The preferred method for doing this , will likely vary due to LIMS capabilities.

The following reconciliation processes should be incorporated, and any manual processes in place with HCOs (e.g. order cancellations) should be considered in those processes.

  • monitoring for errors and addressing them promptly (Are any orders or results failing to successfully be processed?)

  • monitoring for accuracy of number of received orders by HCO (Are you receiving samples that did not have an electronic order? Are you receiving electronic orders without an accompanying sample?)

  • monitoring for missing information (Is an HCO consistently failing to send a piece of information, requiring manual updates in your LIMS?)

  • monitoring for accuracy of sent results by HCO (Are you sending results for every received order?)

Sample Order .err message:

{
"errorName": "JavaException",
"errorMessage": "java.net.SocketTimeoutException: Read timed out",
"stackTrace": "\tat 4cbace1a-e827-455f-846a-1e189c11291f_JavaScript_Writer_2:4916 (GetTranscodings)\n\tat 4cbace1a-e827-455f-846a-1e189c11291f_JavaScript_Writer_2:4966 (PerformTranscoding)\n\tat 4cbace1a-e827-455f-846a-1e189c11291f_JavaScript_Writer_2:1548 (ChannelOperations_InOrderMapRequest)\n\tat 4cbace1a-e827-455f-846a-1e189c11291f_JavaScript_Writer_2:6022 (doScript)\n\tat 4cbace1a-e827-455f-846a-1e189c11291f_JavaScript_Writer_2:6024\n"
}

Sample Order .warn message:

{

  "validation_status" : "INVALID",

  "message" : ["$.sample.provider: object found, array expected","$.sample.placerOrderIdentifier.id.assigningAuthority: is missing but it is required","

    "$.sample.subjectHumanClinical.address: is missing but it is required","$.sample.subjectHumanClinical.externalID: array found, object expected","$.sample.subjectHumanClinical.dateOfBirth: does not match the regex pattern [0-9]{4}(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1])","$.sample.subjectHumanClinical.internalID.assigningAuthority: is missing but it is required","$.sample.subjectHumanClinical.timeOfBirth: does not match the regex pattern ((2[0-3]|[01][0-9])([0-5][0-9])([0-5][0-9])?+-([0-5][0-9])?)|((2[0-3]|[01][0-9])([0-5][0-9])([0-5][0-9])?)","$.sample.facility.address: is missing but it is required","$.sample.facility.organizationFacilityName: is missing but it is required","$.sample.sampleItem[0].collectionTime: is missing but it is required","$.sample.sampleItem[0].sampleItemID: is missing but it is required","$.sample.sampleItem[0].testOrdered[0].auxData[3].answerNumeric.lowerNumber: integer found, string expected","$.sample.sampleItem[0].testOrdered[0].auxData[4].answerNumeric.lowerNumber: integer found, string expected","$.sample.sampleItem[0].testOrdered[0].auxData[6].question.codeSystem: must be at least 1 characters long","$.sample.sampleItem[0].testOrdered[0].auxData[7].question.codeSystem: must be at least 1 characters long","$.sample.sampleItem[0].testOrdered[0].auxData[7].answerType: does not have a value in the enumeration [code, str, num, per, phn, email, addr, date, id]","$.sample.sampleItem[0].testOrdered[0].auxData[8].question.codeSystem: must be at least 1 characters long","$.sample.sampleItem[0].testOrdered[0].auxData[8].answerNumeric.lowerNumber: integer found, string expected","$.sample.sampleItem[0].testOrdered[0].auxData[16].question.codeSystem: must be at least 1 characters long","$.sample.sampleItem[0].testOrdered[0].auxData[17].answerNumeric.lowerNumber: integer found, string expected","$.sample.sampleItem[0].testOrdered[0].auxData[18].answerNumeric.lowerNumber: integer found, string expected","$.sample.sampleItem[0].testOrdered[0].auxData[19].question.codeSystem: must be at least 1 characters long","$.sample.sampleItem[0].testOrdered[0].auxData[20].question.codeSystem: must be at least 1 characters long","$.sample.sampleItem[0].testOrdered[0].auxData[22].question.codeSystem: must be at least 1 characters long","$.sample.sampleItem[0].testOrdered[0].auxData[24].question.codeSystem: must be at least 1 characters long","$.sample.sampleItem[0].testOrdered[0].auxData[28].question.codeSystem: must be at least 1 characters long","$.sample.sampleItem[0].testOrdered[0].auxData[31].question.codeSystem: must be at least 1 characters long","$.sample.sampleItem[0].testOrdered[0].auxData[31].answerType: does not have a value in the enumeration [code, str, num, per, phn, email, addr, date, id]","$.sample.sampleItem[0].testOrdered[0].dateOrdered: is missing but it is required","$.sample.sampleItem[0].testOrdered[0].orderStatus: is missing but it is required","$.sample.sampleItem[0].testOrdered[0].placerOrderNumber.assigningAuthority: is missing but it is required"]

  ]

}