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

ACHSDSF.m

Go to the documentation of this file.
  1. ACHSDSF ; IHS/ITSC/PMF - DOC STATUS REPORT BY FY (1/2) - FORMAT & DEVICE ; [ 10/16/2001 8:16 AM ]
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;;JUN 11, 2001
  1. ;
  1. S ACHSIO=IO
  1. FYSEL ; Select fiscal year for report.
  1. S ACHSFY=$$FYSEL^ACHS
  1. G:$D(DUOUT)!$D(DTOUT) K
  1. S %=$$FY^ACHSVAR($E(ACHSFY,3,4)),ACHSBDT=$P(%,U),ACHSEDT=$P(%,U,2)
  1. I ACHSEDT>DT S ACHSEDT=DT
  1. TYPE ; Select type of report.
  1. W !!,"Which type of report?",!!," 1. OPEN DOCUMENTS only",!," 2. CLOSED DOCUMENTS only",!," 3. COMBINED list",!!," ENTER OPTION (1-3) 3//"
  1. D READ^ACHSFU
  1. I Y="" S Y=3
  1. G K:$D(DTOUT),Q:Y?1"?".E,FYSEL:$D(DUOUT)
  1. I "123"[Y,Y>0,Y<4 S ACHSRPT=Y G DEV
  1. W !!,*7," Enter only a 1, 2, or 3"
  1. G TYPE
  1. ;
  1. Q ;
  1. W !!,"Choice 1 - only open documents will be listed.",!,"Choice 2 - only documents which have been paid or cancelled will be listed.",!,"Choice 3 - open and closed documents will be listed together."
  1. G TYPE
  1. ;
  1. DEV ;
  1. S %=$$PB^ACHS
  1. I %=U!$D(DTOUT)!$D(DUOUT) D K Q
  1. I %="B" D VIEWR^XBLM("PRINT^ACHSDSF"),EN^XBVK("VALM"),K Q
  1. S %ZIS="OPQ"
  1. D ^%ZIS
  1. I POP D HOME^%ZIS G K
  1. G:'$D(IO("Q")) PRINT
  1. K IO("Q")
  1. I $D(IO("S"))!($E(IOST)'="P") W *7,!,"Please queue to system printers." D ^%ZISC G DEV
  1. S ZTRTN="PRINT^ACHSDSF",ZTDESC="CHS Document Status, Type "_ACHSRPT_", "_$$FMTE^XLFDT(ACHSBDT)_" to "_$$FMTE^XLFDT(ACHSEDT),ZTIO=ION_";"_IOST_";"_IOM_";"_IOSL
  1. F %="ACHSBDT","ACHSEDT","ACHSFY","ACHSRPT" S ZTSAVE(%)=""
  1. D ^%ZTLOAD
  1. G:'$D(ZTSK) DEV
  1. K ;
  1. D EN^XBVK("ACHS"),^ACHSVAR
  1. K ZTIO,ZTSK
  1. D ^%ZISC
  1. Q
  1. ;
  1. PRINT ;EP - From TaskMan.
  1. D FC^ACHSUF
  1. I $D(ACHSERR),ACHSERR=1 K ZTSK G KILL
  1. S (ACHSTOTP,ACHSCNX,ACHSOPEN,ACHSTOTP("$"),ACHSCNX("$"),ACHSOPEN("$"))=0
  1. S ACHST1=$$C^XBFUNC($S(ACHSRPT=1:"OPEN DOCUMENTS",ACHSRPT=2:"CLOSED DOCUMENTS",1:"OPEN AND CLOSED DOCUMENTS"),80),ACHST2=$$C^XBFUNC("For the period "_$$FMTE^XLFDT(ACHSBDT)_" through "_$$FMTE^XLFDT(ACHSEDT),80)
  1. D BRPT^ACHSFU,HDR
  1. S X3=0,ACHSDNU=1_($E(ACHSFY,4))_"00000"
  1. A ; Main loop. Check end date.
  1. S ACHSDNU=$O(^ACHSF(DUZ(2),"D","B",ACHSDNU))
  1. G END:ACHSDNU="",END:$E(ACHSDNU,2)'=$E(ACHSFY,4)
  1. S ACHSDIEN=""
  1. B ; Get IEN.
  1. S ACHSDIEN=$O(^ACHSF(DUZ(2),"D","B",ACHSDNU,ACHSDIEN))
  1. G A:ACHSDIEN=""
  1. C ;
  1. G A:'$D(^ACHSF(DUZ(2),"D",ACHSDIEN,0)) S ACHSSTS=$S($P(^(0),U,12)=3:"P",$P(^(0),U,12)=4:"C",1:"OPEN")
  1. I ACHSRPT=1,"PC"[ACHSSTS G B
  1. I ACHSRPT=2,"PC"'[ACHSSTS G B
  1. S ACHSDOC1=$P(^ACHSF(DUZ(2),"D",ACHSDIEN,0),U),ACHSVPTR=$P(^(0),U,8),ACHSDOC2=$P(^(0),U,14),ACHS("$")=$P(^(0),U,9),ACHSTOS=$P(^(0),U,4),ACHSBLNK=+$P(^(0),U,3),ACHSDDT=$P(^(0),U,2),ACHS("$PCAN")=0
  1. G B:ACHSVPTR']"",B:'$D(^AUTTVNDR(ACHSVPTR,0)) S ACHSVNDR=$P(^(0),U) S ACHSEIN="" S:$D(^(11)) ACHSEIN=$P(^(11),U)_" "_$P(^(11),U,2)
  1. S ACHSDOC=ACHSDOC2_"-"_ACHSFC_"-"_ACHSDOC1
  1. K ACHSNAME
  1. S DFN=$P(^ACHSF(DUZ(2),"D",ACHSDIEN,0),U,22)
  1. I +DFN>0,$D(^DPT(DFN,0)) S ACHSNAME=$P(^(0),U)
  1. I '$D(ACHSNAME),ACHSBLNK S ACHSNAME=$S(ACHSBLNK=1:"* BLANKET",1:"* SPECIAL TRANS")
  1. G B:'$D(ACHSNAME)
  1. S:$D(^ACHSF(DUZ(2),"D",ACHSDIEN,"PA")) ACHS("$")=+^("PA")
  1. S:$D(^ACHSF(DUZ(2),"D",ACHSDIEN,"ZA")) ACHS("$")=+^("ZA")
  1. ; I ACHSSTS="C" S ACHS("$")=0
  1. F ACHS=0:0 S ACHS=$O(^ACHSF(DUZ(2),"D",ACHSDIEN,"T",ACHS)) Q:+ACHS=0 D
  1. . S ACHSDOS=$P(^ACHSF(DUZ(2),"D",ACHSDIEN,"T",ACHS,0),U,10)
  1. . I $P(^ACHSF(DUZ(2),"D",ACHSDIEN,"T",ACHS,0),U,2)="C",$P(^(0),U,5)="F" S ACHS("$")=$P(^(0),U,4)
  1. . I $P(^ACHSF(DUZ(2),"D",ACHSDIEN,"T",ACHS,0),U,2)="C",$P(^(0),U,5)="P" S ACHS("$PCAN")=ACHS("$PCAN")+$P(^(0),U,4)
  1. .Q
  1. W $E(ACHSNAME,1,24),?25,$E(ACHSVNDR,1,26),?52,$E(ACHSDDT,4,7),$E(ACHSDDT,2,3)
  1. W:ACHSDOS]"" "/",$E(ACHSDOS,4,7)
  1. W ?64
  1. G P1:"PC"'[ACHSSTS
  1. W $S(ACHSSTS="P":"PAID",1:"CANCEL")
  1. S X=ACHS("$")
  1. D COMMA^%DTC
  1. W ?80-$L(X),X
  1. G P2
  1. ;
  1. P1 ; Open doc amt.
  1. I +ACHS("$")'=0 S X=ACHS("$") D COMMA^%DTC W ?80-$L(X),X
  1. P2 ;
  1. W !,ACHSDOC,?25,ACHSEIN,?52,$S(ACHSTOS=1:"HOSPITAL",ACHSTOS=2:"DENTAL",ACHSTOS=3:"OUTPATIENT",1:"")
  1. I ACHS("$PCAN") W ?64,"P-CAN" S X=$FN(ACHS("$PCAN"),",",2) W ?79-$L(X),X
  1. I ACHSSTS="P" S ACHSTOTP=ACHSTOTP+1,ACHSTOTP("$")=ACHSTOTP("$")+ACHS("$") G P3
  1. I ACHSSTS="C" S ACHSCNX=ACHSCNX+1,ACHSCNX("$")=ACHSCNX("$")+ACHS("$") G P3
  1. S ACHSOPEN=ACHSOPEN+1,ACHSOPEN("$")=ACHSOPEN("$")+ACHS("$")
  1. I ACHS("$PCAN") S ACHSCNX("$")=ACHSCNX("$")+ACHS("$PCAN")
  1. P3 ; End of transaction.
  1. W !!
  1. I $Y>ACHSBM D RTRN^ACHS G KILL:$D(DUOUT)!$D(DTOUT) D HDR
  1. G B
  1. ;
  1. END ; Print totals.
  1. W !,$$REPEAT^XLFSTR("-",80),!
  1. S X2="2$",X3=14
  1. I ACHSTOTP S X=ACHSTOTP("$") D COMMA^%DTC W "TOTAL PAID DOCUMENTS:",$J(ACHSTOTP,11),?40,"TOTAL DOLLARS PAID: ",X,!
  1. I ACHSCNX S X=ACHSCNX("$") D COMMA^%DTC W "TOTAL CANCELLED DOCUMENTS:",$J(ACHSCNX,6),?40,"TOTAL DOLLARS CANCELLED: ",X,!
  1. I ACHSOPEN S X=ACHSOPEN("$") D COMMA^%DTC W "TOTAL OPEN DOCUMENTS:",$J(ACHSOPEN,11),?40,"TOTAL DOLLARS OPEN: ",X
  1. I ACHSCNX W !,"NOTE: Partial Cancels are not included in count, but ARE included in $."
  1. D RTRN^ACHS
  1. W @IOF
  1. KILL ; Do ERPT, kill vars, quit.
  1. D ERPT^ACHS
  1. K ACHSDDT,ACHSDNU,ACHSDOC,ACHSDOC1,ACHSDOC2,ACHSBLNK,ACHSCNX,ACHSDOS,ACHSTYPE,ACHSVNDR,ACHSEIN,ACHSOPEN,ACHSNAME,ACHSSTS,ACHSTOS,ACHSTOTP,ACHSVPTR,ACHSDIEN,DFN,X2,X3,ACHSFY
  1. Q
  1. ;
  1. HDR ; Doc status rpt header.
  1. S ACHSPG=ACHSPG+1
  1. W @IOF,!,ACHSUSR,?71,"Page",$J(ACHSPG,3),!,$$C^XBFUNC("*** CONTRACT HEALTH MANAGEMENT SYSTEM ***",80),!,ACHSLOC,!,$$C^XBFUNC("DOCUMENT STATUS REPORT, FY "_ACHSFY,80)
  1. I $D(ZTQUEUED),$G(ZTSK) W ?77-$L(ZTSK),"(",ZTSK,")"
  1. W !,ACHSTIME,!,ACHST1,!,ACHST2,!!,"Patient Name",?25,"Provider of Service",?52,"Issue /DOS",!,"Document number",?25,"EIN Number",?52,"Type",?64,"Status",?73,"Amount",!,$$REPEAT^XLFSTR("=",80),!
  1. Q
  1. ;