- LRSCTF1 ;DALOI/JDB - SCT POPULATION/ERT ALERT ;01/16/13 10:02
- ;;5.2;LAB SERVICE;**350,427**;Sep 27, 1994;Build 33
- ;
- ; Reference to LABXCPT^HDISVAP1 supported by DBIA #5026
- Q
- ;
- ;
- NOTIFY(LRTXT,LRFILE,LRFIEN,LRSCT,EXCDATA,LRDUPCHK) ;
- ;LABXCPT^HDISVAP1/5026
- ; Private helper method
- ; Handles ERT/Local notification for "Load Exception" errors.
- ; If an SCT load exception occurs and not in ^XTMP alert ERT.
- ; Inputs
- ; LRTXT: Code text
- ; LRFILE: Target file #
- ; LRFIEN: Target file # IEN
- ; LRSCT: SCT Code <opt>
- ; EXCDATA:<byref>
- ; LRDUPCHK: Check for duplicate alert <opt>
- ; Outputs
- ; String indicating success or error.
- ; On success returns the new ^XTMP IEN
- ; On failure returns "0^num^msg"
- ; ie "0^1^Term is null"
- ; Returns transaction # in EXCDATA("TNUM")
- ;
- N DATA,LRIN,NOW,STR,STR2,NOTIFY,SITE
- N TNUM,TMPNM,TEXT,I,II,X,Y,LRHDI,LRHDIERR
- S LRTXT=$G(LRTXT)
- I $TR(LRTXT," ","")="" Q "0^1^Term is null"
- S LRFILE=$G(LRFILE),LRFIEN=$G(LRFIEN),LRSCT=$G(LRSCT),LRDUPCHK=$G(LRDUPCHK,1)
- S NOTIFY=1 ;status of this process
- S TMPNM="LRSCTF-STS"
- S NOW=$$NOW^XLFDT()
- S TEXT=$$TRIM^XLFSTR(LRTXT),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,LRIN("SCT")=LRSCT,LRIN("PREV","SCT")=$$GET1^DIQ(LRFILE,LRFIEN_",",20)
- S X=$$OK2LOG^LRERT(.LRTXT,.LRIN,TMPNM)
- I $G(LRDUPCHK),'X,$P(X,"^",2)'=2 Q "0^2^Notification already sent."
- K DATA,LRHDI,TEXT,STR
- ;
- S TNUM=$$TNUM^LRERT(LRFILE,LRFIEN,NOW,1)
- S EXCDATA("TNUM")=TNUM
- S LRHDI(1,1)=TNUM_"^"_NOW
- S X=$$BLDERTX^LRERT(LRFILE,LRFIEN,"|",.DATA,2,"S")
- S I=0
- F S I=$O(DATA(I)) Q:'I S LRHDI(1,1,"SA",I)=DATA(I)
- ; see patch HDI*1.0*7 for array details
- F I=7:1:11 I $G(EXCDATA("SA",I))'="" S LRHDI(1,1,"SA",I)=EXCDATA("SA",I)
- ;
- S LRHDI(1,1,"RD",5)=1
- F I=1:1:6 I $G(EXCDATA("RD",I))'="" S LRHDI(1,1,"RD",I)=EXCDATA("RD",I)
- ;
- S LRHDI(1,1,"TXT")=$G(EXCDATA("TXT"))
- ;
- D LABXCPT^HDISVAP1("LRHDI")
- ; check LRHDI("ERROR")
- 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("STSEXC")=1 ;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,TMPNM)
- I X S EXCDATA("IEN")=X
- I 'X D ;
- . S Y=$P(X,"^",2)
- . S Y=Y+10 ;new error code group
- . S NOTIFY="0^"_Y_"^$$LOGIT failed: "_$P(X,"^",3)
- I $G(LRHDIERR("ERROR"))'="" S NOTIFY="0^5^LABXCPT failed: "_LRHDIERR("ERROR")
- Q NOTIFY
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRSCTF1 2797 printed Feb 18, 2025@23:46:09 Page 2
- LRSCTF1 ;DALOI/JDB - SCT POPULATION/ERT ALERT ;01/16/13 10:02
- +1 ;;5.2;LAB SERVICE;**350,427**;Sep 27, 1994;Build 33
- +2 ;
- +3 ; Reference to LABXCPT^HDISVAP1 supported by DBIA #5026
- +4 QUIT
- +5 ;
- +6 ;
- NOTIFY(LRTXT,LRFILE,LRFIEN,LRSCT,EXCDATA,LRDUPCHK) ;
- +1 ;LABXCPT^HDISVAP1/5026
- +2 ; Private helper method
- +3 ; Handles ERT/Local notification for "Load Exception" errors.
- +4 ; If an SCT load exception occurs and not in ^XTMP alert ERT.
- +5 ; Inputs
- +6 ; LRTXT: Code text
- +7 ; LRFILE: Target file #
- +8 ; LRFIEN: Target file # IEN
- +9 ; LRSCT: SCT Code <opt>
- +10 ; EXCDATA:<byref>
- +11 ; LRDUPCHK: Check for duplicate alert <opt>
- +12 ; Outputs
- +13 ; String indicating success or error.
- +14 ; On success returns the new ^XTMP IEN
- +15 ; On failure returns "0^num^msg"
- +16 ; ie "0^1^Term is null"
- +17 ; Returns transaction # in EXCDATA("TNUM")
- +18 ;
- +19 NEW DATA,LRIN,NOW,STR,STR2,NOTIFY,SITE
- +20 NEW TNUM,TMPNM,TEXT,I,II,X,Y,LRHDI,LRHDIERR
- +21 SET LRTXT=$GET(LRTXT)
- +22 IF $TRANSLATE(LRTXT," ","")=""
- QUIT "0^1^Term is null"
- +23 SET LRFILE=$GET(LRFILE)
- SET LRFIEN=$GET(LRFIEN)
- SET LRSCT=$GET(LRSCT)
- SET LRDUPCHK=$GET(LRDUPCHK,1)
- +24 ;status of this process
- SET NOTIFY=1
- +25 SET TMPNM="LRSCTF-STS"
- +26 SET NOW=$$NOW^XLFDT()
- +27 SET TEXT=$$TRIM^XLFSTR(LRTXT)
- SET TEXT=$$UP^XLFSTR(TEXT)
- +28 ;some terms can be long and wont fit in a node
- SET STR=$EXTRACT(TEXT,1,200)
- +29 ; check if this term has been sent already.
- +30 KILL LRIN
- +31 SET LRIN("FILE")=LRFILE
- SET LRIN("SCT")=LRSCT
- SET LRIN("PREV","SCT")=$$GET1^DIQ(LRFILE,LRFIEN_",",20)
- +32 SET X=$$OK2LOG^LRERT(.LRTXT,.LRIN,TMPNM)
- +33 IF $GET(LRDUPCHK)
- IF 'X
- IF $PIECE(X,"^",2)'=2
- QUIT "0^2^Notification already sent."
- +34 KILL DATA,LRHDI,TEXT,STR
- +35 ;
- +36 SET TNUM=$$TNUM^LRERT(LRFILE,LRFIEN,NOW,1)
- +37 SET EXCDATA("TNUM")=TNUM
- +38 SET LRHDI(1,1)=TNUM_"^"_NOW
- +39 SET X=$$BLDERTX^LRERT(LRFILE,LRFIEN,"|",.DATA,2,"S")
- +40 SET I=0
- +41 FOR
- SET I=$ORDER(DATA(I))
- if 'I
- QUIT
- SET LRHDI(1,1,"SA",I)=DATA(I)
- +42 ; see patch HDI*1.0*7 for array details
- +43 FOR I=7:1:11
- IF $GET(EXCDATA("SA",I))'=""
- SET LRHDI(1,1,"SA",I)=EXCDATA("SA",I)
- +44 ;
- +45 SET LRHDI(1,1,"RD",5)=1
- +46 FOR I=1:1:6
- IF $GET(EXCDATA("RD",I))'=""
- SET LRHDI(1,1,"RD",I)=EXCDATA("RD",I)
- +47 ;
- +48 SET LRHDI(1,1,"TXT")=$GET(EXCDATA("TXT"))
- +49 ;
- +50 DO LABXCPT^HDISVAP1("LRHDI")
- +51 ; check LRHDI("ERROR")
- +52 KILL LRHDIERR
- +53 MERGE LRHDIERR("ERROR")=LRHDI("ERROR")
- +54 KILL LRHDI
- +55 ;
- +56 ; Update ^XTMP
- +57 KILL LRIN
- +58 ;trans #
- SET LRIN("TNUM")=TNUM
- +59 ;trans date/time
- SET LRIN("TDT")=NOW
- +60 ; targ file
- SET LRIN("FILE")=LRFILE
- +61 ;targ file IEN
- SET LRIN("FIEN")=LRFIEN
- +62 ;SCT code
- SET LRIN("SCT")=LRSCT
- +63 ;STS exception type
- SET LRIN("STSEXC")=1
- +64 ;STS error flag (0 or 1)
- SET LRIN("HDIERR")=$SELECT($DATA(LRHDIERR):1,1:0)
- +65 SET LRIN("PREV","SCT")=""
- +66 SET LRIN("PREV","TEXT")=""
- +67 SET X=$$LOGIT^LRERT(.LRTXT,.LRIN,TMPNM)
- +68 IF X
- SET EXCDATA("IEN")=X
- +69 ;
- IF 'X
- Begin DoDot:1
- +70 SET Y=$PIECE(X,"^",2)
- +71 ;new error code group
- SET Y=Y+10
- +72 SET NOTIFY="0^"_Y_"^$$LOGIT failed: "_$PIECE(X,"^",3)
- End DoDot:1
- +73 IF $GET(LRHDIERR("ERROR"))'=""
- SET NOTIFY="0^5^LABXCPT failed: "_LRHDIERR("ERROR")
- +74 QUIT NOTIFY