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

ABMAUDRP.m

Go to the documentation of this file.
  1. ABMAUDRP ; IHS/SD/SDR - TM Audit report - 8/19/2005 1:28:34 PM
  1. ;;2.6;IHS 3P BILLING SYSTEM;;NOV 12, 2009
  1. ;
  1. ;This is to do a report based on fields being audited.
  1. ;They are listed below under FILES tag. To add new fields
  1. ;to report just list them under FILES and turn the audit on
  1. ;using FM.
  1. ;
  1. K ABM,ABMY
  1. S ABM("RTYP")=1
  1. S ABM("RTYP","NM")="AUDIT LISTING"
  1. ;
  1. SEL D LOOP Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. S ABM("HD",0)="LISTING of Audited fields "
  1. S ABM("LVL")=0
  1. S ABMQ("RC")="COMPUTE^ABMAUDRP",ABMQ("RX")="POUT^ABMDRUTL",ABMQ("NS")="ABM"
  1. S ABMQ("RP")="OUTPUT^ABMAUDRP"
  1. D ^ABMDRDBQ
  1. Q
  1. ;
  1. FILES ;
  1. ;;9002274.5;.26;3P Parameters-Printable Name of Payment Site
  1. ;;9002274.5;.23;3P Parameters-Facility to Receive Payment
  1. ;;9002274.09;2,.05;3P Insurer-Form Locator Override Data Value
  1. ;;9999999.06;.14;Location-Mailing address street
  1. ;;9999999.06;.15;Location-Mailing address city
  1. ;;9999999.06;.16;Location-Mailing address state
  1. ;;9999999.06;.17;Location-Mailing address zip
  1. ;;END
  1. LOOP ;
  1. ; Display current exclusion parameters
  1. S ABMY("X")="W $$SDT^ABMDUTL(X)"
  1. G XIT:$D(DUOUT)!$D(DTOUT)!$D(DIROUT)
  1. W !!?3,"EXCLUSION PARAMETERS Currently in Effect for RESTRICTING the EXPORT to:",!?3,"======================================================================="
  1. I $D(ABMY("LOC")) W !?3,"- Visit Location.....: ",$P(^DIC(4,ABMY("LOC"),0),"^",1)
  1. I $D(ABMY("DT")) W !?3,"- Edit Date Range....:"
  1. I S X=ABMY("DT",1) X ABMY("X") W " to: " S X=ABMY("DT",2) X ABMY("X")
  1. PARM ;
  1. ; Choose additional exclusion parameters
  1. K DIR
  1. S DIR(0)="SO^1:LOCATION;2:DATE RANGE"
  1. S DIR("A")="Select ONE or MORE of the above EXCLUSION PARAMETERS"
  1. S DIR("?")="The report can be restricted to one or more of the listed parameters. A parameter can be removed by reselecting it and making a null entry."
  1. D ^DIR
  1. K DIR
  1. G XIT:$D(DIRUT)!$D(DIROUT)
  1. I Y=1!(Y=2) D @($S(Y=1:"LOC",1:"DT")_"^ABMAUDRP") G LOOP
  1. Q
  1. ;
  1. COMPUTE ;
  1. S ABM("SUBR")="ABM-AUDR"
  1. K ^TMP($J,"ABM-AUDR")
  1. F ABMCNT=1:1 S ABMSEL=$P($T(FILES+ABMCNT),";;",2) Q:ABMSEL="END" D
  1. .S ABMFILE=$P(ABMSEL,";")
  1. .S ABMFIELD=$P(ABMSEL,";",2)
  1. .I $G(ABMY("DT",1))'="" S ABMSDT=($G(ABMY("DT",1))-1),ABMEDT=$G(ABMY("DT",2))+1
  1. .E S ABMSDT=0,ABMEDT=9999999
  1. .F S ABMSDT=$O(^DIA(ABMFILE,"C",ABMSDT)) Q:+ABMSDT=0!(ABMSDT>ABMEDT) D
  1. ..S ABMAIEN=0
  1. ..F S ABMAIEN=$O(^DIA(ABMFILE,"C",ABMSDT,ABMAIEN)) Q:+ABMAIEN=0 D
  1. ...Q:$P($G(^DIA(ABMFILE,ABMAIEN,0)),U,3)'=ABMFIELD ;quit if not Printable Name of Payment Site
  1. ...S ABMUSER=$P($G(^DIA(ABMFILE,ABMAIEN,0)),U,4)
  1. ...S ABMOLD=$P($G(^DIA(ABMFILE,ABMAIEN,2)),U)
  1. ...S ABMNEW=$P($G(^DIA(ABMFILE,ABMAIEN,3)),U)
  1. ...S ^TMP($J,"ABM-AUDR",ABMFILE,ABMFIELD,ABMSDT,ABMUSER)=ABMOLD_"^"_ABMNEW
  1. Q
  1. OUTPUT ;
  1. D HDB
  1. S (ABMADT,ABMUSER,ABMFILE,ABMFIELD,ABMOLD,ABMNEW)=0
  1. F S ABMFILE=$O(^TMP($J,"ABM-AUDR",ABMFILE)) Q:+ABMFILE=0 D Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. .S ABMFIELD=0,ABMSFLD=0
  1. .F S ABMFIELD=$O(^TMP($J,"ABM-AUDR",ABMFILE,ABMFIELD)) Q:+ABMFIELD=0 D Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. ..S ABMSDT=0
  1. ..I ABMFIELD'=ABMSFLD D
  1. ...W !!?5,$P($G(^DIC(ABMFILE,0)),U)_" Fld: "_$P($G(^DD(ABMFILE,+ABMFIELD,0)),U)
  1. ..S ABMSFLD=ABMFIELD
  1. ..F S ABMSDT=$O(^TMP($J,"ABM-AUDR",ABMFILE,ABMFIELD,ABMSDT)) Q:+ABMSDT=0 D Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. ...S ABMUSER=0
  1. ...F S ABMUSER=$O(^TMP($J,"ABM-AUDR",ABMFILE,ABMFIELD,ABMSDT,ABMUSER)) Q:+ABMUSER=0 D Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. ....I $Y>(IOSL-5) D HD Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT) W " (cont)"
  1. ....W !,$$CDT^ABMDUTL(ABMSDT) ;date/time
  1. ....W ?17,$E($P($G(^VA(200,ABMUSER,0)),U),1,17) ;user
  1. ....W ?35,$E($P($G(^TMP($J,"ABM-AUDR",ABMFILE,ABMFIELD,ABMSDT,ABMUSER)),U),1,22) ;old value
  1. ....W ?58,$E($P($G(^TMP($J,"ABM-AUDR",ABMFILE,ABMFIELD,ABMSDT,ABMUSER)),U,2),1,22) ;new value
  1. K ^TMP($J,"ABM-AUDR")
  1. Q
  1. LOC ;EP
  1. W ! K DIC,ABMY("LOC")
  1. S DIC="^BAR(90052.05,DUZ(2),"
  1. S DIC(0)="AEMQ"
  1. S DIC("A")="Select LOCATION: "
  1. D ^DIC K DIC
  1. Q:+Y<1
  1. S ABMY("LOC")=+Y
  1. Q
  1. DT ;EP
  1. K DIR,ABMY("DT")
  1. Q:$D(DIRUT)
  1. S ABMY("DT")="E"
  1. S Y="EDIT DATE"
  1. W !!," ============ Entry of ",Y," Range =============",!
  1. S DIR("A")="Enter STARTING "_Y_" for the Report"
  1. S DIR(0)="DO^::EP"
  1. D ^DIR
  1. G DT:$D(DIRUT)
  1. S ABMY("DT",1)=Y
  1. W !
  1. S DIR("A")="Enter ENDING DATE for the Report"
  1. D ^DIR
  1. K DIR
  1. G DT:$D(DIRUT)
  1. S ABMY("DT",2)=Y
  1. I ABMY("DT",1)>ABMY("DT",2) W !!,*7,"INPUT ERROR: Start Date is Greater than than the End Date, TRY AGAIN!",!! G DT
  1. Q
  1. XIT ;
  1. K ABMY("I"),ABMY("X"),DIR
  1. Q
  1. HDR ;
  1. I $D(ABMY("LOC")) S ABM("TXT")=$P(^DIC(4,ABMY("LOC"),0),U),ABM("CONJ")="at " D CHK
  1. Q:$G(ABMY("DT",1))="" ;no dates
  1. S ABM("CONJ")="with "
  1. S ABM("TXT")="Edit Date" D CHK
  1. S ABM("CONJ")="from ",ABM("TXT")=$$SDT^ABMDUTL(ABMY("DT",1)) D CHK
  1. S ABM("CONJ")="to ",ABM("TXT")=$$SDT^ABMDUTL(ABMY("DT",2)) D CHK
  1. Q
  1. WHD ;EP for writing Report Header
  1. W $$EN^ABMVDF("IOF"),!
  1. I $D(ABM("PRIVACY")) W ?($S($D(ABM(132)):34,1:8)),"WARNING: Confidential Patient Information, Privacy Act Applies",!
  1. K ABM("LINE") S $P(ABM("LINE"),"=",$S($D(ABM(132)):132,1:80))="" W ABM("LINE"),!
  1. W ABM("HD",0),?$S($D(ABM(132)):108,1:57) S Y=DT X ^DD("DD") W Y," Page ",ABM("PG")
  1. W:$G(ABM("HD",1))]"" !,ABM("HD",1)
  1. W:$G(ABM("HD",2))]"" !,ABM("HD",2)
  1. W !,ABM("LINE") K ABM("LINE")
  1. Q
  1. CHK I ($L(ABM("HD",ABM("LVL")))+1+$L(ABM("CONJ"))+$L(ABM("TXT")))<($S($D(ABM(132)):104,1:52)+$S(ABM("LVL")>0:28,1:0)) S ABM("HD",ABM("LVL"))=ABM("HD",ABM("LVL"))_" "_ABM("CONJ")_ABM("TXT")
  1. E S ABM("LVL")=ABM("LVL")+1,ABM("HD",ABM("LVL"))=ABM("CONJ")_ABM("TXT")
  1. Q
  1. HD D PAZ^ABMDRUTL Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. HDB S ABM("PG")=+$G(ABM("PG"))+1 D WHD
  1. W !,"Date/Time",?17,"User",?35,"Old Value",?58,"New Value"
  1. S $P(ABM("LINE"),"-",80)="" W !,ABM("LINE") K ABM("LINE")
  1. Q