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

ACHSDFE.m

Go to the documentation of this file.
  1. ACHSDFE ; IHS/ITSC/PMF - DEFERRED SERVICES EXPENDITURE REPORT ;7/27/10 16:12
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;**18,23**;JUN 11, 2001;Build 43
  1. ;ACHS*3.1*18 4/1/2010;IHS/OIT/ABK;Change every occurrance of Deferred to Unmet Need
  1. ;
  1. BDT ; --- Input date range
  1. ;{ABK,. 5/20/10}S ACHSBDT=$$DATE^ACHS("B","DEFERRED SERVICES EXPENDITURE")
  1. S ACHSBDT=$$DATE^ACHS("B","UNMET NEEDS EXPENDITURE")
  1. I ACHSBDT<1 D END Q
  1. ;{ABK, 5/20/10}S ACHSEDT=$$DATE^ACHS("E","DEFERRED SERVICES EXPENDITURE")
  1. S ACHSEDT=$$DATE^ACHS("E","UNMET NEEDS EXPENDITURE")
  1. G:ACHSEDT<1 BDT
  1. I $$EBB^ACHS(ACHSBDT,ACHSEDT) G BDT
  1. DEV ; --- Select device
  1. W !!
  1. S %ZIS="QOP"
  1. D ^%ZIS
  1. I POP D HOME^%ZIS D END Q
  1. I '$D(IO("Q")) G START
  1. ;{ABK, 5/20/10}S ZTDESC="DEFERRED SERVICES EXPENDITURE REPORT",ZTRTN="START^ACHSDFE",ZTIO="",ACHSQIO=ION_";"_IOST_";"_IOM_";"_IOSL
  1. S ZTDESC="UNMET NEEDS EXPENDITURE REPORT",ZTRTN="START^ACHSDFE",ZTIO="",ACHSQIO=ION_";"_IOST_";"_IOM_";"_IOSL
  1. F %="ACHSBDT","ACHSEDT","ACHSQIO" S ZTSAVE(%)=""
  1. D ^%ZTLOAD
  1. G DEV:'$D(ZTSK)
  1. D END
  1. Q
  1. ;
  1. START ;EP - From TaskMan
  1. N ACHSPAN,ACHSYS
  1. D BRPT^ACHS
  1. ;{ABK, 5/20/10}S ACHSYS=$$C^ACHS("CHS DENIAL/DEFERRED SERVICES",80)
  1. S ACHSYS=$$C^ACHS("CHS UNMET NEEDS",80)
  1. S ACHSPAN=$$C^ACHS("BETWEEN "_$$FMTE^XLFDT(ACHSBDT)_" AND "_$$FMTE^XLFDT(ACHSEDT),80)
  1. ;{ABK, 5/20/10}S ACHSRPT=$$C^ACHS("DEFERRED SERVICES EXPENDITURE REPORT",80)
  1. S ACHSRPT=$$C^ACHS("UNMET NEEDS EXPENDITURE REPORT",80)
  1. D HDR
  1. ;
  1. DATE ; --- Loop thru dates
  1. S ACHSBDT=$O(^ACHSDEF(DUZ(2),"D","AISSUE",ACHSBDT))
  1. I ACHSBDT'=+ACHSBDT D END Q
  1. I ACHSBDT>ACHSEDT D END Q
  1. ;
  1. ;
  1. S ACHSA=0
  1. DOC ; --- Loop thru documents
  1. S ACHSA=$O(^ACHSDEF(DUZ(2),"D","AISSUE",ACHSBDT,ACHSA))
  1. ;
  1. G DATE:ACHSA'=+ACHSA
  1. G DOC:$$DF^ACHS(0,14)="Y" ;'DEFERRED SERVICE CANCELLED'?
  1. G DOC:$E($$DF^ACHS(0,1))="#" ;'CHS DEFERRED SERVICE NUMBER' PHANTOM
  1. G DOC:'$$DF^ACHS(500,7) ;'DATE SERVICE PROVIDED'
  1. ;
  1. ;
  1. S ACHSCT=$$DF^ACHS(100,1) ;'DEFERRED SERVICE CATEGORY' PTR
  1. S ACHSCAT=$E($P($G(^ACHSDFC(ACHSCT,0)),U),1,20) ;'CATEGORY';ACHS*3.1*23 ADDED $E
  1. S ACHSSCT=$$DF^ACHS(100,4) ;'DEFERRED SERVICE SUBCATEGORY'
  1. S ACHSSCT=$P($G(^ACHSDFC(ACHSCT,1,ACHSSCT,0)),U) ;'SUBCATEGORY'
  1. S ACHSSCT=$E(ACHSSCT,1,20) ;
  1. ;
  1. ;TPF HERE IS A MAJOR PROBLEM, HE LOOKS AT THE LAST ENTRY ONLY
  1. ;LOOK AT 'DEFERRED SERVICE DIAG'
  1. ;I $D(^ACHSDEF(DUZ(2),"D",ACHSA,200)) D
  1. ;.S DIAGPTR=$P($G(^ACHSDEF(DUZ(2),"D",ACHSA,200,0)),U,3) ;LAST ENTRY
  1. ;.I DIAGPTR="" S ACHSDIAG="UNDEFINED" Q
  1. ;.S ACHSDIAG=$P($G(^ACHSDEF(DUZ(2),"D",ACHSA,200,DIAGPTR,0)),U)
  1. ;.S ACHSDIAG=$P($G(^ICD9(ACHSDIAG,0)),U)
  1. ;
  1. ;REPLACE ABOVE WITH CALL TO DIAG
  1. ;
  1. ;LOOK AT 'DEFERRED SERVICE PROC'
  1. ;I $D(^ACHSDEF(DUZ(2),"D",ACHSA,300)) D
  1. ;.S DIAGPTR=$P($G(^ACHSDEF(DUZ(2),"D",ACHSA,300,0)),U,3)) ;LAST ENTRY
  1. ;.I DIAGPTR="" S ACHSDIAG="UNDEFINED" Q
  1. ;.S ACHSDIAG=$P($G(^ACHSDEF(DUZ(2),"D",ACHSA,300,DIAGPTR,0)),U)
  1. ;.S ACHSDIAG=$P($G(^ICPT(ACHSDIAG,0)),U)
  1. ;
  1. ;
  1. ;
  1. ;
  1. ;'PURCHASE ORDER NUMBER'
  1. S ACHSPON=$$DF^ACHS(500,8)
  1. S ACHSPO1=$P(ACHSPON,"-",1)
  1. S ACHSPO1=$E(ACHSPO1,$L(ACHSPO1))
  1. S ACHSPO2=$P(ACHSPON,"-",3)
  1. S ACHSPOT=1_ACHSPO1_ACHSPO2
  1. ;
  1. S ACHSPO=$O(^ACHSF(DUZ(2),"D","B",ACHSPOT,0)),ACHSPAY=""
  1. ;
  1. ;IS THERE A 'PAY ADJUSTMENT'
  1. I ACHSPO,$D(^ACHSF(DUZ(2),"D",ACHSPO,"PA")) D
  1. .S ACHSPAY=$P($G(^ACHSF(DUZ(2),"D",ACHSPO,"PA")),U)
  1. E I ACHSPO S ACHSPAY=$P($G(^ACHSF(DUZ(2),"D",ACHSPO,0)),U,9),ACHSPAY=$J(ACHSPAY,8,2)_"OBL"
  1. ;
  1. I $Y>ACHSBM D HDR Q:$G(ACHSQUIT)
  1. ;ACHS*3.1*23 MOD NXT 5 LINES TO PRINT
  1. ;W !,$$DF^ACHS(0,1),?14,$$FMTE^XLFDT($$DF^ACHS(0,2)),?28,ACHSCAT,?31,ACHSSCT,?52,$$FMTE^XLFDT(ACHSBDT),?58,$J($FN(ACHSPAY,",",2),8)
  1. S X=$$DF^ACHS(0,2) S ACHSDDT="",ACHSDDT=$E($P(X,U,2),4,5)_"/"_$E($P(X,U,2),6,7)_"/"_$E($P(X,U,2),2,3)
  1. S X=ACHSBDT S ACHSBDT=$E($P(X,U,2),4,5)_"/"_$E($P(X,U,2),6,7)_"/"_$E($P(X,U,2),2,3)
  1. W !,$$DF^ACHS(0,1),?13,ACHSDDT,?22,ACHSCAT,?53,ACHSBDT,?61,$J($FN(ACHSPAY,",",2),8)
  1. W !,?22,ACHSSCT
  1. D DIAG,PROC
  1. G DOC
  1. ;
  1. DIAG ;GET PRINT ALL DIAGS
  1. S DIAG=0
  1. F X=1:1 S DIAG=$O(^ACHSDEF(DUZ(2),"D",ACHSA,200,DIAG)) Q:'DIAG D
  1. .;ACHS*3.1*23 CHG NXT SECTION WAS PRINTING POINTER
  1. .;S DIAGPTR=$P($G(^ACHSDEF(DUZ(2),"D",ACHSA,200,DIAG,0),"UNDEFINED"),U)
  1. .;I X'=1 W !?74,DIAGPTR
  1. .;E W ?74,DIAGPTR
  1. .S DIAGPTR=$P($G(^ACHSDEF(DUZ(2),"D",ACHSA,200,DIAG,0)),U)
  1. .Q:'+DIAGPTR
  1. .W:X'=1 !
  1. .;ACHS*3.1*23
  1. .;W ?70,$P($$ICDDX^ICDCODE($P($G(^ACHSDEF(DUZ(2),"D",ACHSA,200,DIAG,0)),U),0),U,2)
  1. .W ?70,$P($$ICDDX^ICDEX($P($G(^ACHSDEF(DUZ(2),"D",ACHSA,200,DIAG,0)),U),,,"I"),U,2)
  1. I X>1 W "/"
  1. E W ?70,"/"
  1. Q
  1. ;GET AND PRINT ALL PROCEDURES
  1. PROC ;
  1. S PROC=0
  1. F X=1:1 S PROC=$O(^ACHSDEF(DUZ(2),"D",ACHSA,300,PROC)) Q:'PROC D
  1. .;ACHS*3.1*23 CHANGED NEXT SECTION WAS PRINTING POINTER
  1. .;S PROCPTR=$P($G(^ACHSDEF(DUZ(2),"D",ACHSA,300,PROC,0),"UNDEFINED"),U)
  1. .;W !?74,PROCPTR
  1. .S PROCPTR=$P($G(^ACHSDEF(DUZ(2),"D",ACHSA,300,PROC,0)),U)
  1. .Q:'+PROCPTR
  1. .W !?70,$P($$CPT^ICPTCOD(PROCPTR),U,2)
  1. Q
  1. ;
  1. END ; --- End, Kill, Quit
  1. D RTRN^ACHS,ERPT^ACHS
  1. K ACHSFNM,ACHSCAT,ACHSCT,ACHSSCT,ACHSDIAG,ACHSBDT,ACHSPO,ACHSPO1,ACHSPO2,ACHSPOT,ACHSPAY,ACHSEDT,ACHSTIME,ACHS
  1. Q
  1. ;
  1. HDR ; --- Paginate, write header
  1. D RTRN^ACHS
  1. ;ACHS*3.1*23 MODS TO HEADER
  1. ;W @IOF,!!,ACHSYS,!,ACHSRPT,!,ACHSPAN,!,ACHSTIME,!,$$REPEAT^XLFSTR("=",79),!!!,"DEF SVC #",?14,"DEF SVC DATE",?27,"CAT SUB CATEGORY",?52,"DT OF SVC",?58,"AMT",?74,"DIAG/"
  1. W !?74,"PROC"
  1. W @IOF,!!,ACHSYS,!,ACHSRPT,!,ACHSPAN,!,ACHSTIME,!,$$REPEAT^XLFSTR("=",79)
  1. W !!!,"DEF SVC #",?13,"DEF SVC",?22,"CATEGORY/",?52,"DATE OF SVC",?64,"AMT",?70,"DIAG/"
  1. W !?14,"DATE",?22,"SUB CATEGORY",?70,"PROC"
  1. ;
  1. W !,$$REPEAT^XLFSTR("-",79),!!
  1. Q
  1. ;