| [613] | 1 | LA7UXQA ;;DALOI/JMC - HL7 Utility - Send alert to users; Jan 12, 2004 | 
|---|
|  | 2 | ;;5.2;AUTOMATED LAB INSTRUMENTS;**27,67**;Sep 27, 1994 | 
|---|
|  | 3 | ; | 
|---|
|  | 4 | XQA(LA7CTYP,LA76248,LA762485,LA76249,LA7AMSG,LA7DATA,LA7PALRT) ; Send alert when requested. | 
|---|
|  | 5 | ; Input | 
|---|
|  | 6 | ;   LA7CTYP  - Condition for alert (1=New Results, 2=Error on message, 3=New Orders) | 
|---|
|  | 7 | ;   LA76248  - Pointer to file 62.48 | 
|---|
|  | 8 | ;   LA762485 - Optional, pointer to file 62.485 if condition=2 | 
|---|
|  | 9 | ;   LA76249  - Optional, pointer to file 62.49 if condition=2 or 3 | 
|---|
|  | 10 | ;   LA7AMSG  - Optional, alert message if missing will use default message | 
|---|
|  | 11 | ;   LA7DATA  - Optional, pass values for specific conditions | 
|---|
|  | 12 | ;   LA7PALRT - Keep previous alerts (1-yes,0-no) | 
|---|
|  | 13 | ; | 
|---|
|  | 14 | ; Called by LA7LOG, LA7UIIN, LA7VORM, LRVRPOC, LA7VIN1 | 
|---|
|  | 15 | ; | 
|---|
|  | 16 | N XQA,XQAID,XQADATA,XQAFLAG,XQAMSG,XQAOPT,XQAROU,X,Y | 
|---|
|  | 17 | S XQAMSG=$G(LA7AMSG) | 
|---|
|  | 18 | ; | 
|---|
|  | 19 | I $G(LA7CTYP)=1 D | 
|---|
|  | 20 | . S XQAID="LA7-CONFIG-"_$S($G(LA76248):LA76248,1:"UNKNOWN-"_$H) | 
|---|
|  | 21 | . I XQAMSG="" S XQAMSG="Lab Messaging - New results received for "_$P($G(^LAHM(62.48,+$G(LA76248),0),"UNKNOWN"),"^") | 
|---|
|  | 22 | ; | 
|---|
|  | 23 | I $G(LA7CTYP)=2 D | 
|---|
|  | 24 | . S XQAID="LA7-MESSAGE-"_$S($G(LA76249):LA76249,1:"UNKNOWN-"_$H) | 
|---|
|  | 25 | . I XQAMSG="" S XQAMSG="Lab Messaging error #"_$G(LA762485,"UNKNOWN")_" on message #"_$G(LA76249,"UNKNOWN") | 
|---|
|  | 26 | . I $G(LA76249) D  ; Error processing message, setup action alert. | 
|---|
|  | 27 | . . S XQAROU="DIS^LA7UXQA" ; Alert action. | 
|---|
|  | 28 | . . S XQADATA=LA76249 ; Alert data (ien of message in 62.49, date of error and error number). | 
|---|
|  | 29 | ; | 
|---|
|  | 30 | I $G(LA7CTYP)=3 D | 
|---|
|  | 31 | . S LA7DATA=$G(LA7DATA) | 
|---|
|  | 32 | . S XQAID="LA7-ORDERS-"_$S($L(LA7DATA):$P(LA7DATA,"^"),$G(LA76249):LA76249,1:"UNKNOWN-"_$H) | 
|---|
|  | 33 | . I XQAMSG="" S XQAMSG="Lab Messaging - Manifest# "_$P(LA7DATA,"^")_" received from "_$P($G(^LAHM(62.48,+$G(LA76248),0),"UNKNOWN"),"^") | 
|---|
|  | 34 | ; | 
|---|
|  | 35 | ; Determine mail group | 
|---|
|  | 36 | S X="" | 
|---|
|  | 37 | F  S X=$O(^LAHM(62.48,+$G(LA76248),20,"B",LA7CTYP,X)) Q:'X  D | 
|---|
|  | 38 | . S Y=$G(^LAHM(62.48,LA76248,20,X,0)) | 
|---|
|  | 39 | . I $L($P(Y,"^",2)) S XQA("G."_$P(Y,"^",2))="" ; Send to mail group. | 
|---|
|  | 40 | ; | 
|---|
|  | 41 | ; Fail safe mail group when no mail group defined. | 
|---|
|  | 42 | I '$D(XQA) S XQA("G.LAB MESSAGING")="" | 
|---|
|  | 43 | ; | 
|---|
|  | 44 | ; Delete previous alerts with same id | 
|---|
|  | 45 | I '$G(LA7PALRT),$G(XQAID)'="" D DEL(XQAID) | 
|---|
|  | 46 | ; | 
|---|
|  | 47 | D SETUP^XQALERT | 
|---|
|  | 48 | Q | 
|---|
|  | 49 | ; | 
|---|
|  | 50 | ; | 
|---|
|  | 51 | DEL(ID) ; Delete previous alerts if present | 
|---|
|  | 52 | ; Call with ID = alert id | 
|---|
|  | 53 | ; Clear previous alert with same pkg id. | 
|---|
|  | 54 | N XQAID,XQAMSG,XQAROU,XQADATA,XQA | 
|---|
|  | 55 | S XQAKLL=0 | 
|---|
|  | 56 | S XQAID=ID | 
|---|
|  | 57 | D DELETEA^XQALERT | 
|---|
|  | 58 | Q | 
|---|
|  | 59 | ; | 
|---|
|  | 60 | ; | 
|---|
|  | 61 | DIS ; Display alert. | 
|---|
|  | 62 | N DIR,I,J,K,LA7LIST,X,Y | 
|---|
|  | 63 | K ^TMP("DDB",$J),^TMP($J) | 
|---|
|  | 64 | I 'XQADATA W !,$C(7),"Missing message number, unable to proceed.",! Q | 
|---|
|  | 65 | I '$D(^LAHM(62.49,XQADATA)) W !,$C(7),"Message number# ",XQADATA," has been deleted, unable to proceed.",! Q | 
|---|
|  | 66 | S DIR(0)="YO",DIR("A")="Display message associated with this alert",DIR("B")="YES" | 
|---|
|  | 67 | D ^DIR K DIR | 
|---|
|  | 68 | I Y S LA7LIST(+XQADATA)="" D DEV^LA7UTILA | 
|---|
|  | 69 | Q | 
|---|
|  | 70 | ; | 
|---|
|  | 71 | ; | 
|---|
|  | 72 | DISIC ; Display Integrity Checker alert. | 
|---|
|  | 73 | N DIR,I,J,K,LA7IC,X,Y | 
|---|
|  | 74 | I XQADATA="" D  Q | 
|---|
|  | 75 | . W !,$C(7),"Missing error report to display, unable to proceed.",! | 
|---|
|  | 76 | ; | 
|---|
|  | 77 | I '$D(^XTMP(XQADATA)) D  Q | 
|---|
|  | 78 | . W !,$C(7),"Message number# ",XQADATA," has been deleted, unable to proceed.",! | 
|---|
|  | 79 | ; | 
|---|
|  | 80 | S DIR(0)="YO",DIR("A")="Display Integrity Check Report associated with this alert",DIR("B")="YES" | 
|---|
|  | 81 | D ^DIR K DIR | 
|---|
|  | 82 | I Y S LA7IC=XQADATA D DEV^LA7CHKFP | 
|---|
|  | 83 | Q | 
|---|