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

PSONVAP3.m

Go to the documentation of this file.
  1. PSONVAP3 ;HPS/DSK - Non-VA Provider Updates ;June 26, 2018 11:20
  1. ;;7.0;OUTPATIENT PHARMACY;**481**;DEC 1997;Build 31
  1. ;
  1. ;continuation of routine PSONVAP2
  1. ;
  1. ;EXTERNAL REFERENCES
  1. ; ^XUSEC - IA #10076 (Supported)
  1. ; $$SENDMSG^XMXAPI - IA #2729 (Supported)
  1. ; $$SETUP1^XQALERT - IA #10081 (Supported)
  1. ;
  1. Q
  1. ;
  1. MAIL ;Send mail messages to holders of PSDMGR key
  1. ;variable for alerts must be XQA
  1. N TYPE,PSOMESNUM,PSOUSER,PSOMY,PSOALMSG,XQA
  1. S PSOUSER=0
  1. F S PSOUSER=$O(^XUSEC("PSDMGR",PSOUSER)) Q:PSOUSER="" S PSOMY(PSOUSER)=""
  1. ;
  1. S PSOMESNUM=$$MSEND("SUCCESS")
  1. I PSOMESNUM D
  1. . S PSOALMSG="MailMan message #"_PSOMESNUM_" lists providers successfully loaded"
  1. . D ALERT(PSOALMSG)
  1. S PSOMESNUM=$$MSEND("PROBLEM")
  1. I PSOMESNUM D
  1. . S PSOALMSG="MailMan message #"_PSOMESNUM_" lists providers with filing issues"
  1. . D ALERT(PSOALMSG)
  1. S PSOMESNUM=$$MSEND("PRENPI")
  1. I PSOMESNUM D
  1. . S PSOALMSG="MailMan message #"_PSOMESNUM_" lists provider NPI's already on file"
  1. . D ALERT(PSOALMSG)
  1. S PSOMESNUM=$$MSEND("DUPNPI")
  1. I PSOMESNUM D
  1. . S PSOALMSG="MailMan message #"_PSOMESNUM_" lists provider NPI's in spreadsheet multiple times"
  1. . D ALERT(PSOALMSG)
  1. S PSOMESNUM=$$MSEND("DUPNAME")
  1. I PSOMESNUM D
  1. . S PSOALMSG="MailMan message #"_PSOMESNUM_" lists providers for which name is already on file"
  1. . D ALERT(PSOALMSG)
  1. Q
  1. ;
  1. MSEND(TYPE) ;Send local e-mail
  1. ;
  1. N DIFROM,PSOA,PSOB,PSOTEXT,PSODUZ,PSOSUB,PSOTEXT,PSOMZ,PSOMIN,PSOSTR,PSOHIT,PSOSTR2
  1. N PSOPAD,PSOMAIL
  1. S PSOPAD=" "
  1. S PSOMAIL="PSO_MAIL "_TYPE_" "_PSOJOB
  1. ;
  1. ;Keeping MailMessages in ^XTMP for 60 days in case needed later
  1. S ^XTMP(PSOMAIL,0)=$$FMADD^XLFDT(DT,60)_"^"_DT_"^Non-VA Provider Update Mail Message - "_TYPE
  1. ;
  1. S PSOHIT=0
  1. ; Returns: Message number
  1. I TYPE="SUCCESS" D
  1. . S PSOSUB="VACAA: Filing Success"
  1. . S PSOHIT=1
  1. . S ^XTMP(PSOMAIL,1)="This message lists new Non-VA Providers successfully uploaded into the VistA"
  1. . S ^XTMP(PSOMAIL,2)="NEW PERSON file (#200) for VACAA."
  1. . S ^XTMP(PSOMAIL,3)=" "
  1. . I $O(^XTMP(PSOJOB,PSODT,"SUCCESS",PSOTM,0))="" D Q
  1. . . S ^XTMP(PSOMAIL,4)=" "
  1. . . S ^XTMP(PSOMAIL,5)="**** NO NEW PROVIDERS SUCCESSFULLY UPLOADED ****"
  1. . . S ^XTMP(PSOMAIL,6)="**** SEE SEPARATE MESSAGES CONCERNING FILING PROBLEMS ****"
  1. . . S ^XTMP(PSOMAIL,7)="**** AND INFORMATION ON PROVIDERS WHICH ARE ALREADY ON FILE ****"
  1. . . S ^XTMP(PSOMAIL,8)=" "
  1. . S ^XTMP(PSOMAIL,4)="IEN Provider"
  1. . S ^XTMP(PSOMAIL,5)="------------ -----------------------------------"
  1. . S PSOB=6
  1. . S PSOA=0 F S PSOA=$O(^XTMP(PSOJOB,PSODT,"SUCCESS",PSOTM,PSOA)) Q:PSOA="" D
  1. . . S ^XTMP(PSOMAIL,PSOB)=$G(^XTMP(PSOJOB,PSODT,"SUCCESS",PSOTM,PSOA))
  1. . . S PSOB=PSOB+1
  1. I TYPE="PROBLEM",$O(^XTMP(PSOJOB,PSODT,"PROBLEM",PSOTM,0)) D
  1. . S PSOHIT=1
  1. . S PSOSUB="VACAA: Filing Problem(s)"
  1. . S ^XTMP(PSOMAIL,1)="This message lists Non-VA Provider(s) that failed to load into the VistA"
  1. . S ^XTMP(PSOMAIL,2)="NEW PERSON file (#200) for VACAA (described below)."
  1. . S ^XTMP(PSOMAIL,3)=" "
  1. . S ^XTMP(PSOMAIL,4)="A provider might be listed in both the SUCCESS and PROBLEM messages"
  1. . S ^XTMP(PSOMAIL,5)="if not all fields in the NEW PERSON (#200) file were able to be populated."
  1. . S ^XTMP(PSOMAIL,6)=" "
  1. . S ^XTMP(PSOMAIL,7)="Error Message Provider"
  1. . S ^XTMP(PSOMAIL,8)="------------- ---------------------"
  1. . S PSOB=9
  1. . S PSOA=0 F S PSOA=$O(^XTMP(PSOJOB,PSODT,"PROBLEM",PSOTM,PSOA)) Q:PSOA="" D
  1. . . S ^XTMP(PSOMAIL,PSOB)=$G(^XTMP(PSOJOB,PSODT,"PROBLEM",PSOTM,PSOA))
  1. . . S PSOB=PSOB+1
  1. I TYPE="PRENPI",$O(^XTMP(PSOJOB,PSODT,"PRENPI",PSOTM,0)) D
  1. . S PSOHIT=1
  1. . S PSOSUB="VACAA: NPI(s) Already On File"
  1. . S ^XTMP(PSOMAIL,1)="This message lists Non-VA Provider(s) that failed to load into the VistA"
  1. . S ^XTMP(PSOMAIL,2)="NEW PERSON file (#200) because the NPI was already on file."
  1. . S ^XTMP(PSOMAIL,3)=" "
  1. . S ^XTMP(PSOMAIL,4)="NPI Provider"
  1. . S ^XTMP(PSOMAIL,5)="---------- --------------------"
  1. . S PSOB=6
  1. . S PSOA=0 F S PSOA=$O(^XTMP(PSOJOB,PSODT,"PRENPI",PSOTM,PSOA)) Q:PSOA="" D
  1. . . S PSOSTR=$G(^XTMP(PSOJOB,PSODT,"PRENPI",PSOTM,PSOA))
  1. . . S ^XTMP(PSOMAIL,PSOB)=$P(PSOSTR,",",12)_" "_$P(PSOSTR,",",1,2)
  1. . . S PSOB=PSOB+1
  1. I TYPE="DUPNPI",$O(^XTMP(PSOJOB,PSODT,"DUPNPI",PSOTM,0)) D
  1. . S PSOHIT=1
  1. . S PSOSUB="VACAA: NPI(s) Listed Multiple Times in Spreadsheet"
  1. . S ^XTMP(PSOMAIL,1)="This message lists Non-VA Provider data that failed to load into the VistA"
  1. . S ^XTMP(PSOMAIL,2)="NEW PERSON file (#200) because the NPI was listed in the spreadsheet multiple"
  1. . S ^XTMP(PSOMAIL,3)="times - possibly under multiple addresses."
  1. . S ^XTMP(PSOMAIL,4)=" "
  1. . S ^XTMP(PSOMAIL,5)="NPI Provider Street Address"
  1. . S ^XTMP(PSOMAIL,6)="---------- -------------------- -------------------"
  1. . S PSOB=7
  1. . S PSOA=0 F S PSOA=$O(^XTMP(PSOJOB,PSODT,"DUPNPI",PSOTM,PSOA)) Q:PSOA="" D
  1. . . S PSOSTR=$G(^XTMP(PSOJOB,PSODT,"DUPNPI",PSOTM,PSOA)),PSOSTR2=$E($P(PSOSTR,",",1,2),1,20)
  1. . . S ^XTMP(PSOMAIL,PSOB)=$P(PSOSTR,",",12)_" "_PSOSTR2
  1. . . S ^XTMP(PSOMAIL,PSOB)=^XTMP(PSOMAIL,PSOB)_$S($L(PSOSTR2)<20:$E(PSOPAD,1,20-$L(PSOSTR2)),1:"")_" "_$P(PSOSTR,",",6)
  1. . . S PSOB=PSOB+1
  1. I TYPE="DUPNAME",$O(^XTMP(PSOJOB,PSODT,"DUPNAME",PSOTM,0)) D
  1. . S PSOHIT=1
  1. . S PSOSUB="VACAA: Name(s) already on file in the New Person (#200) file"
  1. . S ^XTMP(PSOMAIL,1)="This message lists Non-VA Provider data that failed to load into the VistA"
  1. . S ^XTMP(PSOMAIL,2)="NEW PERSON file (#200) because the name is already on file"
  1. . S ^XTMP(PSOMAIL,3)=" "
  1. . S ^XTMP(PSOMAIL,4)="NPI Provider Street Address"
  1. . S ^XTMP(PSOMAIL,5)="---------- -------------------- -------------------"
  1. . S PSOB=6
  1. . S PSOA=0 F S PSOA=$O(^XTMP(PSOJOB,PSODT,"DUPNAME",PSOTM,PSOA)) Q:PSOA="" D
  1. . . S PSOSTR=$G(^XTMP(PSOJOB,PSODT,"DUPNAME",PSOTM,PSOA)),PSOSTR2=$E($P(PSOSTR,",",1,2),1,20)
  1. . . S ^XTMP(PSOMAIL,PSOB)=$P(PSOSTR,",",12)_" "_PSOSTR2
  1. . . S ^XTMP(PSOMAIL,PSOB)=^XTMP(PSOMAIL,PSOB)_$S($L(PSOSTR2)<20:$E(PSOPAD,1,20-$L(PSOSTR2)),1:"")_" "_$P(PSOSTR,",",6)
  1. . . S PSOB=PSOB+1
  1. I 'PSOHIT Q 0
  1. S PSODUZ=PSOSAVDUZ
  1. S PSOTEXT="^XTMP(""PSO_MAIL ""_TYPE_"" ""_PSOJOB)"
  1. S PSOMIN("FROM")="Non-VA Provider Updates"
  1. D SENDMSG^XMXAPI(PSODUZ,PSOSUB,PSOTEXT,.PSOMY,.PSOMIN,.PSOMZ,"")
  1. Q $G(PSOMZ)
  1. ;
  1. ALERT(XQAMSG) ;send alerts
  1. ;variables must be prefixed with "X"
  1. N XQAID,XALERT
  1. S XQAID="Non-VA Provider Updates"
  1. M XQA=PSOMY
  1. S XALERT=$$SETUP1^XQALERT
  1. Q
  1. ;