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

PSUAR7.m

Go to the documentation of this file.
  1. PSUAR7 ;BIR/DAM - PBM AR/WS AMIS SUMMARY MESSAGE;15 APR 2004
  1. ;;4.0;PHARMACY BENEFITS MANAGEMENT;;MARCH, 2005
  1. ;
  1. ;Reference to file #40.8 supported by DBIA 2438
  1. ;
  1. EN ;Entry point to create AMIS summary report
  1. ;Called from ^PSUAR6
  1. ;
  1. D DOSES
  1. Q:'$D(^XTMP(PSUARSUB,"DIV_CAT")) ;QUIT IF NO DATA
  1. D UNITS
  1. D FLDS
  1. D BLD
  1. F PSULN=PSULN:1:(PSULN+3) S AMISAR(PSULN)="" ;Blank lines
  1. D MAIL
  1. ;
  1. Q
  1. ;
  1. ;
  1. DOSES ;Construct DOSES lines for the MailMan message
  1. ;
  1. S Y=PSUSDT\1 X ^DD("DD") S PSUDTS=Y ; start date
  1. S Y=PSUEDT\1 X ^DD("DD") S PSUDTE=Y ; end date
  1. ;
  1. K AMISAR ;Array to hold message lines
  1. ;
  1. S AMISAR(1)="Automatic Replenishment/Ward Stock AMIS Summary"
  1. ;
  1. S AMISAR(2)=PSUDTS_" through "_PSUDTE_" for "_PSUDIVNM
  1. ;
  1. S AMISAR(3)="" ;Blank line
  1. ;
  1. I '$D(^XTMP(PSUARSUB,"DIV_CAT")) D G MAIL ;NO DATA REPORT
  1. .S AMISAR(3)=" "
  1. .S AMISAR(4)="No data to report"
  1. .S AMISAR(5)=" "
  1. ;
  1. S AMISAR(4)="AR/WS DOSES:"
  1. ;
  1. S AMISAR(5)=" DOSES DOSES NET DOSES TOTAL AVE COST"
  1. S AMISAR(6)="DIVISION DISPENSED RETURNED DISPENSED COST PER DOSE"
  1. ;
  1. S $P(AMISAR(7),"-",78)="" ;Separator bar
  1. ;
  1. S PSULN=8
  1. ;
  1. S PSUDIV=0
  1. F S PSUDIV=$O(PSUAR("DSP",PSUDIV)) Q:PSUDIV="" D
  1. .S PSULINE=""
  1. .S X=PSUDIV,DIC=40.8,DIC(0)="X",D="C" D IX^DIC
  1. .S X=+Y S PSUDIVNM=$$VAL^PSUTL(40.8,X,.01)
  1. .S $E(PSULINE,1,17)=$G(PSUDIVNM)
  1. .I PSUDIVNM="" S $E(PSULINE,1,17)=$G(PSUDIV)
  1. .S $E(PSULINE,19,29)=$J($P(PSUAR("DSP",PSUDIV),U,1),11)
  1. .S $E(PSULINE,30,39)=$J($P(PSUAR("DSP",PSUDIV),U,2),10)
  1. .S $E(PSULINE,40,50)=$J($P(PSUAR("DSP",PSUDIV),U,3),11)
  1. .S $E(PSULINE,53,54)="$"
  1. .S $E(PSULINE,55,65)=$J($P(PSUAR("DSP",PSUDIV),U,4),11)
  1. .S $E(PSULINE,70,71)="$"
  1. .S $E(PSULINE,72,78)=$J($P(PSUAR("DSP",PSUDIV),U,5),7)
  1. .S AMISAR(PSULN)=PSULINE S PSULN=PSULN+1
  1. ;
  1. S $P(AMISAR(PSULN),"-",78)="" ;Separator bar
  1. S PSULN=PSULN+1
  1. ;
  1. S PSULINE=""
  1. S $E(PSULINE,1,17)="Total"
  1. S $E(PSULINE,19,29)=$J($P(TOTAL("DSP"),U,1),11)
  1. S $E(PSULINE,30,39)=$J($P(TOTAL("DSP"),U,2),10)
  1. S $E(PSULINE,40,50)=$J($P(TOTAL("DSP"),U,3),11)
  1. S $E(PSULINE,53,54)="$"
  1. S $E(PSULINE,55,65)=$J($P(TOTAL("DSP"),U,4),11)
  1. S $E(PSULINE,70,71)="$"
  1. S $E(PSULINE,72,78)=$J($P(TOTAL("DSP"),U,5),7)
  1. S AMISAR(PSULN)=PSULINE S PSULN=PSULN+1
  1. ;
  1. Q
  1. ;
  1. UNITS ;Construct DOSES lines for the MailMan message
  1. ;
  1. F PSULN=PSULN:1:(PSULN+1) S AMISAR(PSULN)=""
  1. S PSULN=PSULN+1
  1. ;
  1. S AMISAR(PSULN)="AR/WS UNITS:"
  1. S PSULN=PSULN+1
  1. ;
  1. S AMISAR(PSULN)=" UNITS UNITS NET UNITS TOTAL AVE COST"
  1. S PSULN=PSULN+1
  1. ;
  1. S AMISAR(PSULN)="DIVISION DISPENSED RETURNED DISPENSED COST PER UNIT"
  1. S PSULN=PSULN+1
  1. ;
  1. S $P(AMISAR(PSULN),"-",78)="" ;Separator bar
  1. ;
  1. S PSULN=PSULN+1
  1. ;
  1. S PSUDIV=0
  1. F S PSUDIV=$O(PSUAR("UNIT",PSUDIV)) Q:PSUDIV="" D
  1. .S PSULINE=""
  1. .S X=PSUDIV,DIC=40.8,DIC(0)="X",D="C" D IX^DIC
  1. .S X=+Y S PSUDIVNM=$$VAL^PSUTL(40.8,X,.01)
  1. .S $E(PSULINE,1,17)=$G(PSUDIVNM)
  1. .I PSUDIVNM="" S $E(PSULINE,1,17)=$G(PSUDIV)
  1. .S $E(PSULINE,19,29)=$J($P(PSUAR("UNIT",PSUDIV),U,1),11)
  1. .S $E(PSULINE,30,39)=$J($P(PSUAR("UNIT",PSUDIV),U,2),10)
  1. .S $E(PSULINE,40,50)=$J($P(PSUAR("UNIT",PSUDIV),U,3),11)
  1. .S $E(PSULINE,53,54)="$"
  1. .S $E(PSULINE,55,65)=$J($P(PSUAR("UNIT",PSUDIV),U,4),11)
  1. .S $E(PSULINE,70,71)="$"
  1. .S $E(PSULINE,72,78)=$J($P(PSUAR("UNIT",PSUDIV),U,5),7)
  1. .S AMISAR(PSULN)=PSULINE S PSULN=PSULN+1
  1. ;
  1. S $P(AMISAR(PSULN),"-",78)="" ;Separator bar
  1. S PSULN=PSULN+1
  1. ;
  1. S PSULINE=""
  1. S $E(PSULINE,1,17)="Total"
  1. S $E(PSULINE,19,29)=$J($P(TOTAL("UNIT"),U,1),11)
  1. S $E(PSULINE,30,39)=$J($P(TOTAL("UNIT"),U,2),10)
  1. S $E(PSULINE,40,50)=$J($P(TOTAL("UNIT"),U,3),11)
  1. S $E(PSULINE,53,54)="$"
  1. S $E(PSULINE,55,65)=$J($P(TOTAL("UNIT"),U,4),11)
  1. S $E(PSULINE,70,71)="$"
  1. S $E(PSULINE,72,78)=$J($P(TOTAL("UNIT"),U,5),7)
  1. S AMISAR(PSULN)=PSULINE S PSULN=PSULN+1
  1. ;
  1. Q
  1. ;
  1. FLDS ;Compose lines for FLUIDS/SETS portion of message
  1. ;
  1. F PSULN=PSULN:1:(PSULN+1) S AMISAR(PSULN)=""
  1. S PSULN=PSULN+1
  1. ;
  1. S AMISAR(PSULN)="FLUIDS/SETS:"
  1. S PSULN=PSULN+1
  1. ;
  1. S AMISAR(PSULN)=" NET"
  1. S PSULN=PSULN+1
  1. ;
  1. S AMISAR(PSULN)=" FLUIDS/SETS FLUIDS/SETS FLUIDS/SETS TOTAL AVE COST"
  1. S PSULN=PSULN+1
  1. ;
  1. S AMISAR(PSULN)="DIVISION DISPENSED RETURNED DISPENSED COST PER"
  1. S PSULN=PSULN+1
  1. ;
  1. S AMISAR(PSULN)=" FLUIDS/SETS"
  1. S PSULN=PSULN+1
  1. ;
  1. S $P(AMISAR(PSULN),"-",78)="" ;Separator bar
  1. ;
  1. S PSULN=PSULN+1
  1. ;
  1. S PSUDIV=0
  1. F S PSUDIV=$O(PSUAR("FLD",PSUDIV)) Q:PSUDIV="" D
  1. .S PSULINE=""
  1. .S X=PSUDIV,DIC=40.8,DIC(0)="X",D="C" D IX^DIC
  1. .S X=+Y S PSUDIVNM=$$VAL^PSUTL(40.8,X,.01)
  1. .S $E(PSULINE,1,17)=$G(PSUDIVNM)
  1. .I PSUDIVNM="" S $E(PSULINE,1,17)=$G(PSUDIV)
  1. .S $E(PSULINE,19,29)=$J($P(PSUAR("FLD",PSUDIV),U,1),11)
  1. .S $E(PSULINE,30,39)=$J($P(PSUAR("FLD",PSUDIV),U,2),10)
  1. .S $E(PSULINE,40,50)=$J($P(PSUAR("FLD",PSUDIV),U,3),11)
  1. .S $E(PSULINE,53,54)="$"
  1. .S $E(PSULINE,55,65)=$J($P(PSUAR("FLD",PSUDIV),U,4),11)
  1. .S $E(PSULINE,70,71)="$"
  1. .S $E(PSULINE,72,78)=$J($P(PSUAR("FLD",PSUDIV),U,5),7)
  1. .S AMISAR(PSULN)=PSULINE S PSULN=PSULN+1
  1. ;
  1. S $P(AMISAR(PSULN),"-",78)="" ;Separator bar
  1. S PSULN=PSULN+1
  1. ;
  1. S PSULINE=""
  1. S $E(PSULINE,1,17)="Total"
  1. S $E(PSULINE,19,29)=$J($P(TOTAL("FLD"),U,1),11)
  1. S $E(PSULINE,30,39)=$J($P(TOTAL("FLD"),U,2),10)
  1. S $E(PSULINE,40,50)=$J($P(TOTAL("FLD"),U,3),11)
  1. S $E(PSULINE,53,54)="$"
  1. S $E(PSULINE,55,65)=$J($P(TOTAL("FLD"),U,4),11)
  1. S $E(PSULINE,70,71)="$"
  1. S $E(PSULINE,72,78)=$J($P(TOTAL("FLD"),U,5),7)
  1. S AMISAR(PSULN)=PSULINE S PSULN=PSULN+1
  1. ;
  1. Q
  1. ;
  1. BLD ;Compose lines for BLOOD PRODUCTS portion of message
  1. ;
  1. F PSULN=PSULN:1:(PSULN+1) S AMISAR(PSULN)=""
  1. S PSULN=PSULN+1
  1. ;
  1. S AMISAR(PSULN)="BLOOD PRODUCTS"
  1. S PSULN=PSULN+1
  1. ;
  1. S AMISAR(PSULN)=" NET"
  1. S PSULN=PSULN+1
  1. ;
  1. S AMISAR(PSULN)=" BLOOD PROD BLOOD PROD BLOOD PROD TOTAL AVE COST"
  1. S PSULN=PSULN+1
  1. ;
  1. S AMISAR(PSULN)="DIVISION DISPENSED RETURNED DISPENSED COST PER"
  1. S PSULN=PSULN+1
  1. ;
  1. S AMISAR(PSULN)=" BLOOD PROD"
  1. S PSULN=PSULN+1
  1. ;
  1. S $P(AMISAR(PSULN),"-",78)="" ;Separator bar
  1. ;
  1. S PSULN=PSULN+1
  1. ;
  1. S PSUDIV=0
  1. F S PSUDIV=$O(PSUAR("BLD",PSUDIV)) Q:PSUDIV="" D
  1. .S PSULINE=""
  1. .S X=PSUDIV,DIC=40.8,DIC(0)="X",D="C" D IX^DIC
  1. .S X=+Y S PSUDIVNM=$$VAL^PSUTL(40.8,X,.01)
  1. .S $E(PSULINE,1,17)=$G(PSUDIVNM)
  1. .I PSUDIVNM="" S $E(PSULINE,1,17)=$G(PSUDIV)
  1. .S $E(PSULINE,19,29)=$J($P(PSUAR("BLD",PSUDIV),U,1),11)
  1. .S $E(PSULINE,30,39)=$J($P(PSUAR("BLD",PSUDIV),U,2),10)
  1. .S $E(PSULINE,40,50)=$J($P(PSUAR("BLD",PSUDIV),U,3),11)
  1. .S $E(PSULINE,53,54)="$"
  1. .S $E(PSULINE,55,65)=$J($P(PSUAR("BLD",PSUDIV),U,4),11)
  1. .S $E(PSULINE,70,71)="$"
  1. .S $E(PSULINE,72,78)=$J($P(PSUAR("BLD",PSUDIV),U,5),7)
  1. .S AMISAR(PSULN)=PSULINE S PSULN=PSULN+1
  1. ;
  1. S $P(AMISAR(PSULN),"-",78)="" ;Separator bar
  1. S PSULN=PSULN+1
  1. ;
  1. S PSULINE=""
  1. S $E(PSULINE,1,17)="Total"
  1. S $E(PSULINE,19,29)=$J($P(TOTAL("BLD"),U,1),11)
  1. S $E(PSULINE,30,39)=$J($P(TOTAL("BLD"),U,2),10)
  1. S $E(PSULINE,40,50)=$J($P(TOTAL("BLD"),U,3),11)
  1. S $E(PSULINE,53,54)="$"
  1. S $E(PSULINE,55,65)=$J($P(TOTAL("BLD"),U,4),11)
  1. S $E(PSULINE,70,71)="$"
  1. S $E(PSULINE,72,78)=$J($P(TOTAL("BLD"),U,5),7)
  1. S AMISAR(PSULN)=PSULINE S PSULN=PSULN+1
  1. ;
  1. Q
  1. ;
  1. ;
  1. ;
  1. MAIL ;Mail CS AMIS summary report
  1. ;
  1. ;Do not send report if option selection includes 1,2,3,4,6
  1. I $D(^XTMP("PSU_"_PSUJOB,"CBAMIS")) D Q
  1. .M ^XTMP("PSU_"_PSUJOB,"ARCOMBO")=AMISAR
  1. .S ^XTMP("PSU_"_PSUJOB,"ARCOMBO",1)=""
  1. .S ^XTMP("PSU_"_PSUJOB,"ARCOMBO",2)=""
  1. ;
  1. M XMY=PSUXMYS2
  1. ;
  1. S X=PSUSNDR,DIC=40.8,DIC(0)="X",D="C" D IX^DIC
  1. S X=+Y S PSUDIVNM=$$VAL^PSUTL(40.8,X,.01)
  1. ;
  1. S XMSUB="V. 4.0 PBMAR "_PSUMON_" "_PSUSNDR_" "_PSUDIVNM
  1. S XMTEXT="AMISAR("
  1. M ^XTMP("PSU_"_PSUJOB,"ARAMIS")=AMISAR
  1. S XMCHAN=1
  1. D ^XMD
  1. ;
  1. Q