LRSCTX1 ;DALOI/JDB - LRSCTX CONTINUED ;04/16/12  10:07
 ;;5.2;LAB SERVICE;**350**;Sep 27, 1994;Build 230
 ;
 ; Reference to LABXCPT^HDISVAP1 supported by DBIA #5026
 ;
 Q
 ;
 ;
FILE(LRFILE,LRIN,LRERROR,HLINFO) ;
 ; Private helper method
 ; Set the new term into the target file
 ; Inputs
 ;   LRFILE: Target File # (61, 61.2, 62)
 ;     LRIN:<byref><opt> Array holding field values.
 ;         :  .01=New entry's .01 field value
 ;         :   20=SCT Code
 ;         :   21=SCT Status code
 ;         :   22=SCT Hierarchy text
 ;  LRERROR:<byref>  See Outputs
 ;   HLINFO:<byref> HL7 info array (from EN^LRSCTX)
 ; Outputs
 ;   The IEN of the entry to use
 ;   LRERROR: Error message for the process.
 ;
 ; $$TRIMS, $$UPs, Removes SCT hierarchy, converts ^ to ~
 N DIERR,LRLCK,LRNIEN,LRFDAIEN,LRMSG,X,Y,LRFMERTS
 N LRFDA,LRFDAIEN,LRMSG,LRIEN,DIERR
 S LRFILE=$G(LRFILE)
 S LRNIEN=0
 K LRERROR
 S LRERROR=""
 S LRLCK=""
 I LRFILE=61 S LRLCK="^LAB(61,0)"
 I LRFILE=61.2 S LRLCK="^LAB(61.2,0)"
 I LRFILE=62 S LRLCK="^LAB(62,0)"
 I LRLCK="" D  Q 0  ;
 . S LRERROR="1^Unknown file # "_LRFILE
 ;
 I $TR($G(LRIN(.01))," ","")="" D  Q 0  ;
 . S LRERROR="1^Term is null"
 ;
 I 'LRERROR D  ;
 . S X=$$GETLOCK^LRUTIL(LRLCK,30)
 . I 'X D  Q  ;
 . . S LRERROR="1^Could not lock file # "_LRFILE
 . ;
 . ; Only set the .01 field first to ensure record creation
 . K LRFDA,LRFDAIEN,LRMSG,LRIEN,DIERR
 . S LRIEN="+1,"
 . S X=$G(LRIN(.01))
 . S X=$$DELHIER^LRSCT(X) ;remove SCT hierarchy if present
 . S X=$$TRIM^XLFSTR(X)
 . S X=$$UP^XLFSTR(X)
 . S X=$TR(X,"^","~")
 . ; LRFMERTS provides info to FileMan during db updates.
 . ; STS team tracks changes for ref lab, local mods, and db loads.
 . ; Must know what triggered FM so correct STS notice is sent.
 . ; LRFMERTS referenced in FM xrefs for creation/change events
 . ; If '$G(LRFMERTS) then must be user/local change
 . S LRFMERTS=1
 . S LRFMERTS("STS","STAT")="NEW" ;new term
 . S LRFMERTS("STS","PROC")="REFLAB" ;from reference lab
 . S LRFDA(1,LRFILE,LRIEN,.01)=X
 . D UPDATE^DIE("","LRFDA(1)","LRFDAIEN","LRMSG")
 . S LRNIEN=$G(LRFDAIEN(1))
 . I $D(LRMSG)!'LRNIEN D  Q  ;
 . . S LRERROR="1^Failed to add new entry to file #"_LRFILE
 . ;
 . Q:'LRNIEN
 . K LRFDA,LRFDAIEN,LRMSG,LRIEN,DIERR
 . S LRIEN=LRNIEN_","
 . S LRFDA(1,LRFILE,LRIEN,21)=$G(LRIN(21)) ;status
 . I $G(LRIN(20))'="" D  ;
 . . S LRFDA(1,LRFILE,LRIEN,20)=$G(LRIN(20))
 . . S LRFDA(1,LRFILE,LRIEN,22)=$G(LRIN(22))
 . D FILE^DIE("E","LRFDA(1)","LRMSG")
 ;
 ; Release lock
 I LRLCK'="" L -@LRLCK
 ;
 ; Notify STS and locals that term has been added.
 I 'LRERROR,LRNIEN D
 . S X=$$NOTIFY(LRIN(.01),LRFILE,LRNIEN,$G(LRIN(20)),.HLINFO)
 ;
 Q LRNIEN
 ;
 ;
NOTIFY(LRTXT,LRFILE,LRFIEN,LRSCT,HLINFO) ;
 ;LABXCPT^HDISVAP1/5026
 ; Private helper method
 ; Handles STS/Local notification for "Reference lab" new terms.
 ; If a new term has been added and not in ^XTMP:
 ;  1) alert STS  2) Add entry to ^XTMP  3) Email LAB MAPPING group
 ; Inputs
 ;   LRTXT:
 ;  HLINFO:<byref>
 ; Outputs
 ;  String indicating success or error: Status^Error code^text
 ;     Status: 1=success  0=error
 ;  ie  "0^1^Term is null"  "0^4^"STS & MailMan error"
 ;
 N DATA,SFNM,LR4,LRIN,NOW,SFAC,STR,STR2,NOTIFY,SITE
 N TNUM,TMPNM,TEXT,TYPE,VAF,I,II,X,Y,LRHDI,LRHDIERR
 S LRTXT=$G(LRTXT)
 I $TR(LRTXT," ","")="" Q "0^1^Term is null"
 S LRFILE=$G(LRFILE)
 S LRFIEN=$G(LRFIEN)
 S LRSCT=$G(LRSCT)
 S LR6247=$G(LR6247)
 S NOTIFY=1 ;status of this process
 S TMPNM="LRSCTX-STS"
 S NOW=$$NOW^XLFDT()
 S TEXT=$$TRIM^XLFSTR(LRTXT)
 S TEXT=$$UP^XLFSTR(TEXT)
 S STR=$E(TEXT,1,200) ;some terms can be long and wont fit in a node
 ; check if this term has been sent already.
 K LRIN
 S LRIN("FILE")=LRFILE
 S LRIN("SCT")=LRSCT
 S LRIN("PREV","SCT")=""
 S X=$$OK2LOG^LRERT(.LRTXT,.LRIN)
 I 'X Q "0^2^Notification already sent."
 K TEXT,STR
 S TYPE=0
 S SFNM="" ; Institution Name
 S LR4=$G(HLINFO("R4"))
 S SFAC=$G(HLINFO("MSH",4)) ; sending facility
 I LR4 D
 . S SFNM=$$NAME^XUAF4(LR4) ; sending facility's name
 . S VAF=$$NVAF^LA7VHLU2(LR4) ; 0=VA 1=DOD, 2=Indian Health 3=Other
 . S TYPE=$S(VAF=0:2,VAF=1:1,VAF=2:4,VAF=3:5,1:6)
 ;
 S TNUM=$$TNUM^LRERT(LRFILE,LRFIEN,NOW,2)
 K LRHDI
 S LRHDI(2,1)=TNUM_"^"_NOW
 S LRHDI(2,1,"TXT")="Term added to file #"_LRFILE_" (entry #"_LRFIEN_")"
 S LRHDI(2,1,"EC")=$G(HLINFO("FSEC"))
 K DATA
 S X=$$BLDERTX^LRERT(LRFILE,LRFIEN,"|",.DATA,2,"S")
 ;
 S I=0
 F  S I=$O(DATA(I)) Q:'I  S LRHDI(2,1,"SA",I)=DATA(I)
 ;
 S LRHDI(2,1,"RL",1)=TYPE
 S LRHDI(2,1,"RL",2)=SFAC
 S LRHDI(2,1,"RL",3)=SFNM
 S LRHDI(2,1,"OBX",3)=$G(HLINFO("OBX",3))
 S LRHDI(2,1,"OBX",5)=$G(HLINFO("OBX",5))
 ;
 D LABXCPT^HDISVAP1("LRHDI")
 ; check LRHDI("ERROR") and add error to local email
 K LRHDIERR
 M LRHDIERR("ERROR")=LRHDI("ERROR")
 K LRHDI
 ;
 ; Update ^XTMP
 K LRIN
 S LRIN("TNUM")=TNUM ;trans #
 S LRIN("TDT")=NOW ;trans date/time
 S LRIN("FILE")=LRFILE ; targ file
 S LRIN("FIEN")=LRFIEN ;targ file IEN
 S LRIN("SCT")=LRSCT ;SCT code
 S LRIN("R6247")=LR6247 ;#62.49 IEN
 S LRIN("STSEXC")=2 ;STS exception type
 S LRIN("HDIERR")=$S($D(LRHDIERR):1,1:0) ;STS error flag (0 or 1)
 S LRIN("PREV","SCT")=""
 S LRIN("PREV","TEXT")=""
 S X=$$LOGIT^LRERT(.LRTXT,.LRIN)
 K LRIN
 ;
 ; Notify local staff of event (G.LAB MAPPING)
 N LRFILENAME,LRMTXT,XMDUZ,XMSUB,XMTEXT,XMY,XMZ,XMMG
 S LRFILENAME=$$GET1^DID(LRFILE,"","","NAME")
 ;
 S XMSUB="Term added to file "_LRFILENAME_" (#"_LRFILE_":"_LRFIEN_")"
 I $L(XMSUB)>65 S XMSUB=$E(XMSUB,1,65)
 ;
 S LRMTXT(1,0)="New term added to file "_LRFILENAME_" #"_LRFILE_" (entry #"_LRFIEN_")"
 S LRMTXT(2,0)=" "
 S LRMTXT(3,0)="New Term: "_LRTXT
 S LRMTXT(4,0)=" "
 S LRMTXT(5,0)="Tracking information below:"
 S LRMTXT(6,0)="Transaction date: "_$$FMTE^XLFDT(NOW)
 S LRMTXT(7,0)="Transaction number: "_TNUM
 S LRMTXT(8,0)="Sending facility: "_SFAC_"  "_SFNM
 S LRMTXT(9,0)="HL7 message ID: "_$G(HLINFO("MSH",11))
 S LRMTXT(10,0)="SNOMED CT code: "_$S(LRSCT'="":LRSCT,1:"n/a")
 S LRMTXT(11,0)=" "
 S LRMTXT(12,0)="HL7 separators: "_$G(HLINFO("FSEC"))
 S LRMTXT(13,0)="OBX-3: "_$G(HLINFO("OBX",3))
 S LRMTXT(14,0)="OBX-5: "_$G(HLINFO("OBX",5))
 ;
 I $D(LRHDIERR) D
 . N NODE
 . S LRMTXT(15,0)=" "
 . S LRMTXT(16,0)="An error occurred when notifying STS:"
 . S NODE="LRHDIERR(0)"
 . S I=$O(LRMTXT("A"),-1)
 . F  S NODE=$Q(@NODE) Q:NODE=""  S I=I+1,LRMTXT(I,0)="    "_NODE
 ;
 ;
 S X=$$UP^XLFSTR($$NAME^XUSER(DUZ,"F"))
 ; If not a Lab app proxy name, use LRLAB,HL as sender
 ; Extra space in "LRLAB, HL" is a workaround for MailMan's "may not be a real user" error when App Proxy user in XMDUZ
 I X=""!(X'?1"LRLAB,"1.E) S XMDUZ="LRLAB, HL"
 ;
 I $$GOTLOCAL^XMXAPIG("LAB MAPPING") S XMY("G.LAB MAPPING")=""
 E  S XMY("G.LMI")=""
 ;
 S XMTEXT="LRMTXT("
 D ^XMD
 I $D(XMMG)!'$G(XMZ) D  ;
 . I $D(LRHDIERR) S NOTIFY="0^3^STS & Mailman error" Q
 . S NOTIFY="0^4^MailMan error"
 ;
 ; Update and store this transaction info in the target file.
 N TDT
 S TDT=NOW
 D SCTUPD^LRERT1
 ;
 Q NOTIFY
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRSCTX1   7106     printed  Sep 23, 2025@19:55:59                                                                                                                                                                                                     Page 2
LRSCTX1   ;DALOI/JDB - LRSCTX CONTINUED ;04/16/12  10:07
 +1       ;;5.2;LAB SERVICE;**350**;Sep 27, 1994;Build 230
 +2       ;
 +3       ; Reference to LABXCPT^HDISVAP1 supported by DBIA #5026
 +4       ;
 +5        QUIT 
 +6       ;
 +7       ;
FILE(LRFILE,LRIN,LRERROR,HLINFO) ;
 +1       ; Private helper method
 +2       ; Set the new term into the target file
 +3       ; Inputs
 +4       ;   LRFILE: Target File # (61, 61.2, 62)
 +5       ;     LRIN:<byref><opt> Array holding field values.
 +6       ;         :  .01=New entry's .01 field value
 +7       ;         :   20=SCT Code
 +8       ;         :   21=SCT Status code
 +9       ;         :   22=SCT Hierarchy text
 +10      ;  LRERROR:<byref>  See Outputs
 +11      ;   HLINFO:<byref> HL7 info array (from EN^LRSCTX)
 +12      ; Outputs
 +13      ;   The IEN of the entry to use
 +14      ;   LRERROR: Error message for the process.
 +15      ;
 +16      ; $$TRIMS, $$UPs, Removes SCT hierarchy, converts ^ to ~
 +17       NEW DIERR,LRLCK,LRNIEN,LRFDAIEN,LRMSG,X,Y,LRFMERTS
 +18       NEW LRFDA,LRFDAIEN,LRMSG,LRIEN,DIERR
 +19       SET LRFILE=$GET(LRFILE)
 +20       SET LRNIEN=0
 +21       KILL LRERROR
 +22       SET LRERROR=""
 +23       SET LRLCK=""
 +24       IF LRFILE=61
               SET LRLCK="^LAB(61,0)"
 +25       IF LRFILE=61.2
               SET LRLCK="^LAB(61.2,0)"
 +26       IF LRFILE=62
               SET LRLCK="^LAB(62,0)"
 +27      ;
           IF LRLCK=""
               Begin DoDot:1
 +28               SET LRERROR="1^Unknown file # "_LRFILE
               End DoDot:1
               QUIT 0
 +29      ;
 +30      ;
           IF $TRANSLATE($GET(LRIN(.01))," ","")=""
               Begin DoDot:1
 +31               SET LRERROR="1^Term is null"
               End DoDot:1
               QUIT 0
 +32      ;
 +33      ;
           IF 'LRERROR
               Begin DoDot:1
 +34               SET X=$$GETLOCK^LRUTIL(LRLCK,30)
 +35      ;
                   IF 'X
                       Begin DoDot:2
 +36                       SET LRERROR="1^Could not lock file # "_LRFILE
                       End DoDot:2
                       QUIT 
 +37      ;
 +38      ; Only set the .01 field first to ensure record creation
 +39               KILL LRFDA,LRFDAIEN,LRMSG,LRIEN,DIERR
 +40               SET LRIEN="+1,"
 +41               SET X=$GET(LRIN(.01))
 +42      ;remove SCT hierarchy if present
                   SET X=$$DELHIER^LRSCT(X)
 +43               SET X=$$TRIM^XLFSTR(X)
 +44               SET X=$$UP^XLFSTR(X)
 +45               SET X=$TRANSLATE(X,"^","~")
 +46      ; LRFMERTS provides info to FileMan during db updates.
 +47      ; STS team tracks changes for ref lab, local mods, and db loads.
 +48      ; Must know what triggered FM so correct STS notice is sent.
 +49      ; LRFMERTS referenced in FM xrefs for creation/change events
 +50      ; If '$G(LRFMERTS) then must be user/local change
 +51               SET LRFMERTS=1
 +52      ;new term
                   SET LRFMERTS("STS","STAT")="NEW"
 +53      ;from reference lab
                   SET LRFMERTS("STS","PROC")="REFLAB"
 +54               SET LRFDA(1,LRFILE,LRIEN,.01)=X
 +55               DO UPDATE^DIE("","LRFDA(1)","LRFDAIEN","LRMSG")
 +56               SET LRNIEN=$GET(LRFDAIEN(1))
 +57      ;
                   IF $DATA(LRMSG)!'LRNIEN
                       Begin DoDot:2
 +58                       SET LRERROR="1^Failed to add new entry to file #"_LRFILE
                       End DoDot:2
                       QUIT 
 +59      ;
 +60               if 'LRNIEN
                       QUIT 
 +61               KILL LRFDA,LRFDAIEN,LRMSG,LRIEN,DIERR
 +62               SET LRIEN=LRNIEN_","
 +63      ;status
                   SET LRFDA(1,LRFILE,LRIEN,21)=$GET(LRIN(21))
 +64      ;
                   IF $GET(LRIN(20))'=""
                       Begin DoDot:2
 +65                       SET LRFDA(1,LRFILE,LRIEN,20)=$GET(LRIN(20))
 +66                       SET LRFDA(1,LRFILE,LRIEN,22)=$GET(LRIN(22))
                       End DoDot:2
 +67               DO FILE^DIE("E","LRFDA(1)","LRMSG")
               End DoDot:1
 +68      ;
 +69      ; Release lock
 +70       IF LRLCK'=""
               LOCK -@LRLCK
 +71      ;
 +72      ; Notify STS and locals that term has been added.
 +73       IF 'LRERROR
               IF LRNIEN
                   Begin DoDot:1
 +74                   SET X=$$NOTIFY(LRIN(.01),LRFILE,LRNIEN,$GET(LRIN(20)),.HLINFO)
                   End DoDot:1
 +75      ;
 +76       QUIT LRNIEN
 +77      ;
 +78      ;
NOTIFY(LRTXT,LRFILE,LRFIEN,LRSCT,HLINFO) ;
 +1       ;LABXCPT^HDISVAP1/5026
 +2       ; Private helper method
 +3       ; Handles STS/Local notification for "Reference lab" new terms.
 +4       ; If a new term has been added and not in ^XTMP:
 +5       ;  1) alert STS  2) Add entry to ^XTMP  3) Email LAB MAPPING group
 +6       ; Inputs
 +7       ;   LRTXT:
 +8       ;  HLINFO:<byref>
 +9       ; Outputs
 +10      ;  String indicating success or error: Status^Error code^text
 +11      ;     Status: 1=success  0=error
 +12      ;  ie  "0^1^Term is null"  "0^4^"STS & MailMan error"
 +13      ;
 +14       NEW DATA,SFNM,LR4,LRIN,NOW,SFAC,STR,STR2,NOTIFY,SITE
 +15       NEW TNUM,TMPNM,TEXT,TYPE,VAF,I,II,X,Y,LRHDI,LRHDIERR
 +16       SET LRTXT=$GET(LRTXT)
 +17       IF $TRANSLATE(LRTXT," ","")=""
               QUIT "0^1^Term is null"
 +18       SET LRFILE=$GET(LRFILE)
 +19       SET LRFIEN=$GET(LRFIEN)
 +20       SET LRSCT=$GET(LRSCT)
 +21       SET LR6247=$GET(LR6247)
 +22      ;status of this process
           SET NOTIFY=1
 +23       SET TMPNM="LRSCTX-STS"
 +24       SET NOW=$$NOW^XLFDT()
 +25       SET TEXT=$$TRIM^XLFSTR(LRTXT)
 +26       SET TEXT=$$UP^XLFSTR(TEXT)
 +27      ;some terms can be long and wont fit in a node
           SET STR=$EXTRACT(TEXT,1,200)
 +28      ; check if this term has been sent already.
 +29       KILL LRIN
 +30       SET LRIN("FILE")=LRFILE
 +31       SET LRIN("SCT")=LRSCT
 +32       SET LRIN("PREV","SCT")=""
 +33       SET X=$$OK2LOG^LRERT(.LRTXT,.LRIN)
 +34       IF 'X
               QUIT "0^2^Notification already sent."
 +35       KILL TEXT,STR
 +36       SET TYPE=0
 +37      ; Institution Name
           SET SFNM=""
 +38       SET LR4=$GET(HLINFO("R4"))
 +39      ; sending facility
           SET SFAC=$GET(HLINFO("MSH",4))
 +40       IF LR4
               Begin DoDot:1
 +41      ; sending facility's name
                   SET SFNM=$$NAME^XUAF4(LR4)
 +42      ; 0=VA 1=DOD, 2=Indian Health 3=Other
                   SET VAF=$$NVAF^LA7VHLU2(LR4)
 +43               SET TYPE=$SELECT(VAF=0:2,VAF=1:1,VAF=2:4,VAF=3:5,1:6)
               End DoDot:1
 +44      ;
 +45       SET TNUM=$$TNUM^LRERT(LRFILE,LRFIEN,NOW,2)
 +46       KILL LRHDI
 +47       SET LRHDI(2,1)=TNUM_"^"_NOW
 +48       SET LRHDI(2,1,"TXT")="Term added to file #"_LRFILE_" (entry #"_LRFIEN_")"
 +49       SET LRHDI(2,1,"EC")=$GET(HLINFO("FSEC"))
 +50       KILL DATA
 +51       SET X=$$BLDERTX^LRERT(LRFILE,LRFIEN,"|",.DATA,2,"S")
 +52      ;
 +53       SET I=0
 +54       FOR 
               SET I=$ORDER(DATA(I))
               if 'I
                   QUIT 
               SET LRHDI(2,1,"SA",I)=DATA(I)
 +55      ;
 +56       SET LRHDI(2,1,"RL",1)=TYPE
 +57       SET LRHDI(2,1,"RL",2)=SFAC
 +58       SET LRHDI(2,1,"RL",3)=SFNM
 +59       SET LRHDI(2,1,"OBX",3)=$GET(HLINFO("OBX",3))
 +60       SET LRHDI(2,1,"OBX",5)=$GET(HLINFO("OBX",5))
 +61      ;
 +62       DO LABXCPT^HDISVAP1("LRHDI")
 +63      ; check LRHDI("ERROR") and add error to local email
 +64       KILL LRHDIERR
 +65       MERGE LRHDIERR("ERROR")=LRHDI("ERROR")
 +66       KILL LRHDI
 +67      ;
 +68      ; Update ^XTMP
 +69       KILL LRIN
 +70      ;trans #
           SET LRIN("TNUM")=TNUM
 +71      ;trans date/time
           SET LRIN("TDT")=NOW
 +72      ; targ file
           SET LRIN("FILE")=LRFILE
 +73      ;targ file IEN
           SET LRIN("FIEN")=LRFIEN
 +74      ;SCT code
           SET LRIN("SCT")=LRSCT
 +75      ;#62.49 IEN
           SET LRIN("R6247")=LR6247
 +76      ;STS exception type
           SET LRIN("STSEXC")=2
 +77      ;STS error flag (0 or 1)
           SET LRIN("HDIERR")=$SELECT($DATA(LRHDIERR):1,1:0)
 +78       SET LRIN("PREV","SCT")=""
 +79       SET LRIN("PREV","TEXT")=""
 +80       SET X=$$LOGIT^LRERT(.LRTXT,.LRIN)
 +81       KILL LRIN
 +82      ;
 +83      ; Notify local staff of event (G.LAB MAPPING)
 +84       NEW LRFILENAME,LRMTXT,XMDUZ,XMSUB,XMTEXT,XMY,XMZ,XMMG
 +85       SET LRFILENAME=$$GET1^DID(LRFILE,"","","NAME")
 +86      ;
 +87       SET XMSUB="Term added to file "_LRFILENAME_" (#"_LRFILE_":"_LRFIEN_")"
 +88       IF $LENGTH(XMSUB)>65
               SET XMSUB=$EXTRACT(XMSUB,1,65)
 +89      ;
 +90       SET LRMTXT(1,0)="New term added to file "_LRFILENAME_" #"_LRFILE_" (entry #"_LRFIEN_")"
 +91       SET LRMTXT(2,0)=" "
 +92       SET LRMTXT(3,0)="New Term: "_LRTXT
 +93       SET LRMTXT(4,0)=" "
 +94       SET LRMTXT(5,0)="Tracking information below:"
 +95       SET LRMTXT(6,0)="Transaction date: "_$$FMTE^XLFDT(NOW)
 +96       SET LRMTXT(7,0)="Transaction number: "_TNUM
 +97       SET LRMTXT(8,0)="Sending facility: "_SFAC_"  "_SFNM
 +98       SET LRMTXT(9,0)="HL7 message ID: "_$GET(HLINFO("MSH",11))
 +99       SET LRMTXT(10,0)="SNOMED CT code: "_$SELECT(LRSCT'="":LRSCT,1:"n/a")
 +100      SET LRMTXT(11,0)=" "
 +101      SET LRMTXT(12,0)="HL7 separators: "_$GET(HLINFO("FSEC"))
 +102      SET LRMTXT(13,0)="OBX-3: "_$GET(HLINFO("OBX",3))
 +103      SET LRMTXT(14,0)="OBX-5: "_$GET(HLINFO("OBX",5))
 +104     ;
 +105      IF $DATA(LRHDIERR)
               Begin DoDot:1
 +106              NEW NODE
 +107              SET LRMTXT(15,0)=" "
 +108              SET LRMTXT(16,0)="An error occurred when notifying STS:"
 +109              SET NODE="LRHDIERR(0)"
 +110              SET I=$ORDER(LRMTXT("A"),-1)
 +111              FOR 
                       SET NODE=$QUERY(@NODE)
                       if NODE=""
                           QUIT 
                       SET I=I+1
                       SET LRMTXT(I,0)="    "_NODE
               End DoDot:1
 +112     ;
 +113     ;
 +114      SET X=$$UP^XLFSTR($$NAME^XUSER(DUZ,"F"))
 +115     ; If not a Lab app proxy name, use LRLAB,HL as sender
 +116     ; Extra space in "LRLAB, HL" is a workaround for MailMan's "may not be a real user" error when App Proxy user in XMDUZ
 +117      IF X=""!(X'?1"LRLAB,"1.E)
               SET XMDUZ="LRLAB, HL"
 +118     ;
 +119      IF $$GOTLOCAL^XMXAPIG("LAB MAPPING")
               SET XMY("G.LAB MAPPING")=""
 +120     IF '$TEST
               SET XMY("G.LMI")=""
 +121     ;
 +122      SET XMTEXT="LRMTXT("
 +123      DO ^XMD
 +124     ;
           IF $DATA(XMMG)!'$GET(XMZ)
               Begin DoDot:1
 +125              IF $DATA(LRHDIERR)
                       SET NOTIFY="0^3^STS & Mailman error"
                       QUIT 
 +126              SET NOTIFY="0^4^MailMan error"
               End DoDot:1
 +127     ;
 +128     ; Update and store this transaction info in the target file.
 +129      NEW TDT
 +130      SET TDT=NOW
 +131      DO SCTUPD^LRERT1
 +132     ;
 +133      QUIT NOTIFY