Инструменти за потребители

Инструменти за сайта


ack

Това е стара версия на документа!


Отговор (ACK)

На всяко изпратено съобщение, приемащата страна следва да отговори с ACK съобщение. Липсата на такъв отговор е индикация за неработеща приемаща страна и изпращащата следва да повтаря опита до достигане на някаква максимална стойност, например 3 пъти. С ACK се посочва резултата от операцията - ОК или грешка, като в случай на грешка е редно да се даде описание и код на грешката.

Структура на съобщението

SEQOPTRPT / #GROUPNAME
1 R 1 MSH Message Header
2 O * SFT Software Segment
3 R 1 MSA Message Acknowledgment
4 O * ERR Error

Статус на отговора

При отговор, в случай на грешка, може да има попълнено поле MSA.6 - Error Condition със стойности от таблица 0357:

Код Значение Описание
0 Message accepted Съобщението е прието
100 Segment sequence error Грешка в последователността на сегментите
101 Required field missing Липсва изискуемо поле
102 Data type error Грешка във вида на данните
103 Table value not found Посочена стойност липсва в дефинирана таблица
200 Unsupported message type Вида на съобщението не се поддържа
201 Unsupported event code Вида на събитието не се поддържа
202 Unsupported processing id Неизвестно Id на съобщение
203 Unsupported version id Версията на протокола не се поддържа
204 Unknown key identifier Неизвестен ключов идентификатор
205 Duplicate key identifier Повторение в ключов идентификатор
206 Application record locked Записът е заключен
207 Application internal error Вътрешна грешка в приложението

Кодовете са максимално описателни, като много важни са стойностите 0, 101, 204, 205, 206 и 207:

  • 0 (Message accepted): всичко е ОК, няма нужда от по-нататъшна обработка;
  • 101 (Required field missing): липсва изискуем идентификатор;
  • 101 (Required field missing): липсва задължителен код, най-вече липсващи (или невалидни) едновременно ЕГН/ЕНЧ и ИЗ.
  • 204 (Unknown key identifier): опит за актуализация или изтриване на поръчка, която не е правилно приета и не съществува в БД на ЛИС;
  • 205 (Duplicate key identifier): опит за нова поръчка с номер (на поръчващата страна), който вече е използван (вече има заявка с такъв номер);
  • 206 (Application record locked): опит за промяна или изтриване (анулиране) на поръчка, чието изпълнение е започнало (заключена е).
  • 207 (Application internal error): вътрешна грешка, преимуществено проблем при връзката с базата данни.

При варианта допълнителна поръчка или просто актуализация, трябва да се следи за този код. Ако Той е 206, поръчващата страна трябва да направи нова поръчка, с вече различен номер и да реферира баркодовете на направената вече основна поръчка. Това е ключов момент в логиката на комуникация за да сработят допълнителните поръчки когато основната поръчка е вече заключена. Така или иначе, поръчващата страна винаги трябва да прави първо опит за актуализация на основната поръчка и ако записа е заключен – да прави нова допълнителна с референция към вече изпратените проби. Технически допустимо е изпращането на допълнителна поръчка и при все още незаключена основна, макар това да е логически необосновано и да затруднява вътрелабораторния процес.

Примери

Примерен отговор за правилно приета поръчка.

MSH|^~\&|iLab|МБАЛ ЕООД|HIS|МБАЛ ЕООД|20170918100410||ACK^O21^ACK|20170918100410|P|2.5.1|
MSA|AA|bc35dd73-b91c-40dd-8962-f471d8d5fefb|OK|

Примерен отговор грешка - опит за изпращане на поръчка е Id, което вече е обработено (неправилно повторно изпращане).

MSH|^~\&|iLab|МБАЛ ЕООД|HIS|МБАЛ ЕООД|20170918150750||ACK^O21^ACK|20170918150750|P|2.5.1|
MSA|AR|f270f9bf-39ee-402f-9a69-910352098224|Order rejected. Order with same ID already exists.|||205|

ack.1505947998.txt.gz · Последна промяна: 2017/09/21 01:53 от admin