Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: LRSCTF1

LRSCTF1.m

Go to the documentation of this file.
  1. LRSCTF1 ;DALOI/JDB - SCT POPULATION/ERT ALERT ;01/16/13 10:02
  1. ;;5.2;LAB SERVICE;**350,427**;Sep 27, 1994;Build 33
  1. ;
  1. ; Reference to LABXCPT^HDISVAP1 supported by DBIA #5026
  1. Q
  1. ;
  1. ;
  1. NOTIFY(LRTXT,LRFILE,LRFIEN,LRSCT,EXCDATA,LRDUPCHK) ;
  1. ;LABXCPT^HDISVAP1/5026
  1. ; Private helper method
  1. ; Handles ERT/Local notification for "Load Exception" errors.
  1. ; If an SCT load exception occurs and not in ^XTMP alert ERT.
  1. ; Inputs
  1. ; LRTXT: Code text
  1. ; LRFILE: Target file #
  1. ; LRFIEN: Target file # IEN
  1. ; LRSCT: SCT Code <opt>
  1. ; EXCDATA:<byref>
  1. ; LRDUPCHK: Check for duplicate alert <opt>
  1. ; Outputs
  1. ; String indicating success or error.
  1. ; On success returns the new ^XTMP IEN
  1. ; On failure returns "0^num^msg"
  1. ; ie "0^1^Term is null"
  1. ; Returns transaction # in EXCDATA("TNUM")
  1. ;
  1. N DATA,LRIN,NOW,STR,STR2,NOTIFY,SITE
  1. N TNUM,TMPNM,TEXT,I,II,X,Y,LRHDI,LRHDIERR
  1. S LRTXT=$G(LRTXT)
  1. I $TR(LRTXT," ","")="" Q "0^1^Term is null"
  1. S LRFILE=$G(LRFILE),LRFIEN=$G(LRFIEN),LRSCT=$G(LRSCT),LRDUPCHK=$G(LRDUPCHK,1)
  1. S NOTIFY=1 ;status of this process
  1. S TMPNM="LRSCTF-STS"
  1. S NOW=$$NOW^XLFDT()
  1. S TEXT=$$TRIM^XLFSTR(LRTXT),TEXT=$$UP^XLFSTR(TEXT)
  1. S STR=$E(TEXT,1,200) ;some terms can be long and wont fit in a node
  1. ; check if this term has been sent already.
  1. K LRIN
  1. S LRIN("FILE")=LRFILE,LRIN("SCT")=LRSCT,LRIN("PREV","SCT")=$$GET1^DIQ(LRFILE,LRFIEN_",",20)
  1. S X=$$OK2LOG^LRERT(.LRTXT,.LRIN,TMPNM)
  1. I $G(LRDUPCHK),'X,$P(X,"^",2)'=2 Q "0^2^Notification already sent."
  1. K DATA,LRHDI,TEXT,STR
  1. ;
  1. S TNUM=$$TNUM^LRERT(LRFILE,LRFIEN,NOW,1)
  1. S EXCDATA("TNUM")=TNUM
  1. S LRHDI(1,1)=TNUM_"^"_NOW
  1. S X=$$BLDERTX^LRERT(LRFILE,LRFIEN,"|",.DATA,2,"S")
  1. S I=0
  1. F S I=$O(DATA(I)) Q:'I S LRHDI(1,1,"SA",I)=DATA(I)
  1. ; see patch HDI*1.0*7 for array details
  1. F I=7:1:11 I $G(EXCDATA("SA",I))'="" S LRHDI(1,1,"SA",I)=EXCDATA("SA",I)
  1. ;
  1. S LRHDI(1,1,"RD",5)=1
  1. F I=1:1:6 I $G(EXCDATA("RD",I))'="" S LRHDI(1,1,"RD",I)=EXCDATA("RD",I)
  1. ;
  1. S LRHDI(1,1,"TXT")=$G(EXCDATA("TXT"))
  1. ;
  1. D LABXCPT^HDISVAP1("LRHDI")
  1. ; check LRHDI("ERROR")
  1. K LRHDIERR
  1. M LRHDIERR("ERROR")=LRHDI("ERROR")
  1. K LRHDI
  1. ;
  1. ; Update ^XTMP
  1. K LRIN
  1. S LRIN("TNUM")=TNUM ;trans #
  1. S LRIN("TDT")=NOW ;trans date/time
  1. S LRIN("FILE")=LRFILE ; targ file
  1. S LRIN("FIEN")=LRFIEN ;targ file IEN
  1. S LRIN("SCT")=LRSCT ;SCT code
  1. S LRIN("STSEXC")=1 ;STS exception type
  1. S LRIN("HDIERR")=$S($D(LRHDIERR):1,1:0) ;STS error flag (0 or 1)
  1. S LRIN("PREV","SCT")=""
  1. S LRIN("PREV","TEXT")=""
  1. S X=$$LOGIT^LRERT(.LRTXT,.LRIN,TMPNM)
  1. I X S EXCDATA("IEN")=X
  1. I 'X D ;
  1. . S Y=$P(X,"^",2)
  1. . S Y=Y+10 ;new error code group
  1. . S NOTIFY="0^"_Y_"^$$LOGIT failed: "_$P(X,"^",3)
  1. I $G(LRHDIERR("ERROR"))'="" S NOTIFY="0^5^LABXCPT failed: "_LRHDIERR("ERROR")
  1. Q NOTIFY