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

ABMM2ELG.m

Go to the documentation of this file.
  1. ABMM2ELG ;IHS/SD/SDR - Meaningful Use Report - count patients/eligibility ;
  1. ;;2.6;IHS 3P BILLING SYSTEM;**11,12**;NOV 12, 2009;Build 187
  1. ;
  1. W !!,"The date range selected will be used for: "
  1. W !,?3,"1. Was the patient's record active during that range"
  1. W !,?3,"2. Did the patient have eligibility in that range"
  1. W !,?3,"3. How many encounters they had during that time"
  1. W !!,"Detail information will be supplied for validation purposes but once validated"
  1. W !,"the summary option should be used."
  1. ;
  1. K ABMY,ABMP
  1. K ^TMP($J,"ABM-M2RPT")
  1. DT ;
  1. W !!," ============ Entry of Date Range =============",!
  1. D ^XBFMK
  1. S DIR("A")="Enter STARTING Date"
  1. S DIR(0)="DO^::EP"
  1. D ^DIR
  1. Q:$D(DIRUT)!$D(DIROUT)!$D(DTOUT)!$D(DUOUT)
  1. S ABMY("DT",1)=Y
  1. W !
  1. S DIR("A")="Enter ENDING Date"
  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. RTYPE ;summary or detail?
  1. W !
  1. K DIC,DIE,DIR,X,Y,DA
  1. S DIR(0)="S^S:SUMMARY;D:DETAIL (will include Summary)"
  1. S DIR("A")="SUMMARY OR DETAIL"
  1. S DIR("B")="SUMMARY"
  1. D ^DIR K DIR
  1. S ABMSUMDT=Y
  1. ;D GETPTS
  1. ;D GETELIG
  1. ;D GETVSTS
  1. ;
  1. SEL ;
  1. ; Select device
  1. I ABMSUMDT="D" D
  1. .W !!,"There will be two outputs, one for SUMMARY and one for DETAIL."
  1. .W !,"The first one should be a terminal or a printer."
  1. .W !,"The second forces an HFS file because it could be a large file",!
  1. S %ZIS="NQ"
  1. S %ZIS("A")="Enter DEVICE: "
  1. D ^%ZIS Q:POP
  1. U IO(0) W !!,"Searching...."
  1. I IO=IO(0) D TOTALS S DIR(0)="E" D ^DIR K DIR
  1. I IO'=IO(0) D QUE^ABMM2ELG,HOME^%ZIS S DIR(0)="E" D ^DIR K DIR Q
  1. I $D(IO("S")) S IOP=ION D ^%ZIS
  1. D ^%ZISC
  1. D HOME^%ZIS
  1. ;
  1. I ABMSUMDT="D" D
  1. .W !!,"Will now write detail to file",!!
  1. .D ^XBFMK
  1. .S DIR(0)="F"
  1. .S DIR("A")="Enter Path"
  1. .S DIR("B")=$P($G(^ABMDPARM(DUZ(2),1,4)),"^",7)
  1. .D ^DIR K DIR
  1. .Q:$D(DIRUT)!$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. .S ABMPATH=Y
  1. .S DIR(0)="F",DIR("A")="Enter File Name"
  1. .D ^DIR K DIR
  1. .Q:$D(DIRUT)!$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. .S ABMFN=Y
  1. .W !!,"Creating file..."
  1. .D OPEN^%ZISH("ABM",ABMPATH,ABMFN,"W")
  1. .Q:POP
  1. .U IO
  1. .D WRTPTS
  1. .D WRTELIG
  1. .D WRTVSTS
  1. .D CLOSE^%ZISH("ABM")
  1. .W "DONE"
  1. XIT ;
  1. K ^TMP($J,"ABM-M2RPT")
  1. K ABMP,ABMY,ABMPTINA,ABMPT,ABMMFLG
  1. Q
  1. QUE ;QUE TO TASKMAN
  1. S ZTRTN="TOTALS^ABMM2ELG"
  1. S ZTDESC="3P MEANINGFUL USE ELIGIBILITY REPORT"
  1. S ZTSAVE("ABM*")=""
  1. K ZTSK
  1. D ^%ZTLOAD
  1. W:$G(ZTSK) !,"Task # ",ZTSK," queued.",!
  1. Q
  1. GETPTS ;
  1. S ABMP("PDFN")=0
  1. F S ABMP("PDFN")=$O(^AUPNPAT(ABMP("PDFN"))) Q:'ABMP("PDFN") D
  1. .I $D(^AUPNPAT(ABMP("PDFN"),41,DUZ(2))) D
  1. ..S ABMPTINA=$P($G(^AUPNPAT(ABMP("PDFN"),41,DUZ(2),0)),U,3) ;date inactive/deleted
  1. ..I ABMPTINA'=""&((ABMPTINA<ABMY("DT",1))!(ABMPTINA>ABMY("DT",2))) Q ;patient inactive prior to or after range of report
  1. ..S ^TMP($J,"ABM-M2RPT","PTS",ABMP("PDFN"))=""
  1. ..S ^TMP($J,"ABM-M2RPT","CNT","PTS")=+$G(^TMP($J,"ABM-M2RPT","CNT","PTS"))+1 ;count patients
  1. Q
  1. ;
  1. GETELIG ;
  1. ;medicaid
  1. S ABMP("PDFN")=0
  1. F S ABMP("PDFN")=$O(^TMP($J,"ABM-M2RPT","PTS",ABMP("PDFN"))) Q:'ABMP("PDFN") D
  1. .I $D(^AUPNMCD("B",ABMP("PDFN"))) D ;patient has medicaid entry
  1. ..S ABMP("MDFN")=0
  1. ..F S ABMP("MDFN")=$O(^AUPNMCD("B",ABMP("PDFN"),ABMP("MDFN"))) Q:'ABMP("MDFN") D
  1. ...S ABMP("EFFDT")=0,ABMMFLG=0
  1. ...F S ABMP("EFFDT")=$O(^AUPNMCD(ABMP("MDFN"),11,ABMP("EFFDT"))) Q:'ABMP("EFFDT") D Q:(ABMMFLG=1)
  1. ....S ABMP("ENDDT")=$P($G(^AUPNMCD(ABMP("MDFN"),11,ABMP("EFFDT"),0)),U,2) ;end date
  1. ....;effective date after end of range or end date before start of range
  1. ....I (ABMP("EFFDT")>ABMY("DT",2))!((ABMP("ENDDT")'="")&(ABMP("ENDDT")<ABMY("DT",1))) Q
  1. ....S ABMMFLG=1 ;if it gets here patient has eligibility in our window
  1. ...I ABMMFLG=1 D ;patient has at least one entry that's what we want
  1. ....S ^TMP($J,"ABM-M2RPT","MCD",ABMP("PDFN"),ABMP("MDFN"))=""
  1. ....S ^TMP($J,"ABM-M2RPT","CNT","MCD")=+$G(^TMP($J,"ABM-M2RPT","CNT","MCD"))+1 ;count medicaid patients
  1. ;
  1. ;medicare
  1. S ABMP("PDFN")=0
  1. F S ABMP("PDFN")=$O(^TMP($J,"ABM-M2RPT","PTS",ABMP("PDFN"))) Q:'ABMP("PDFN") D
  1. .I $D(^AUPNMCR(ABMP("PDFN"))) D ;patient had medicare entry
  1. ..S ABMP("MDFN")=0,ABMMFLG=0
  1. ..F S ABMP("MDFN")=$O(^AUPNMCR(ABMP("PDFN"),11,ABMP("MDFN"))) Q:'ABMP("MDFN") D Q:(ABMMFLG=1)
  1. ...S ABMP("EFFDT")=$P($G(^AUPNMCR(ABMP("PDFN"),11,ABMP("MDFN"),0)),U) ;effective date
  1. ...S ABMP("ENDDT")=$P($G(^AUPNMCR(ABMP("PDFN"),11,ABMP("MDFN"),0)),U,2) ;end date
  1. ...;effective date after end of range or end date before start of range
  1. ...I (ABMP("EFFDT")>ABMY("DT",2))!((ABMP("ENDDT")'="")&(ABMP("ENDDT")<ABMY("DT",1))) Q
  1. ...S ABMMFLG=1 ;if it gets here patient has eligibility in our window
  1. ..I ABMMFLG=1 D ;patient has at least one entry that's what we want
  1. ...S ^TMP($J,"ABM-M2RPT","MCR",ABMP("PDFN"),ABMP("MDFN"))=""
  1. ...S ^TMP($J,"ABM-M2RPT","CNT","MCR")=+$G(^TMP($J,"ABM-M2RPT","CNT","MCR"))+1 ;count medicare patients
  1. ;
  1. ;railroad
  1. S ABMP("PDFN")=0
  1. F S ABMP("PDFN")=$O(^TMP($J,"ABM-M2RPT","PTS",ABMP("PDFN"))) Q:'ABMP("PDFN") D
  1. .I $D(^AUPNRRE(ABMP("PDFN"))) D ;patient had medicare entry
  1. ..S ABMP("MDFN")=0,ABMMFLG=0
  1. ..F S ABMP("MDFN")=$O(^AUPNRRE(ABMP("PDFN"),11,ABMP("MDFN"))) Q:'ABMP("MDFN") D Q:(ABMMFLG=1)
  1. ...S ABMP("EFFDT")=$P($G(^AUPNRRE(ABMP("PDFN"),11,ABMP("MDFN"),0)),U) ;effective date
  1. ...S ABMP("ENDDT")=$P($G(^AUPNRRE(ABMP("PDFN"),11,ABMP("MDFN"),0)),U,2) ;end date
  1. ...;effective date after end of range or end date before start of range
  1. ...I (ABMP("EFFDT")>ABMY("DT",2))!((ABMP("ENDDT")'="")&(ABMP("ENDDT")<ABMY("DT",1))) Q
  1. ...S ABMMFLG=1 ;if it gets here patient has eligibility in our window
  1. ..I ABMMFLG=1 D ;patient has at least one entry that's what we want
  1. ...S ^TMP($J,"ABM-M2RPT","RR",ABMP("PDFN"),ABMP("MDFN"))=""
  1. ...S ^TMP($J,"ABM-M2RPT","CNT","RR")=+$G(^TMP($J,"ABM-M2RPT","CNT","RR"))+1 ;count railroad patients
  1. ;
  1. ;private
  1. S ABMP("PDFN")=0
  1. F S ABMP("PDFN")=$O(^TMP($J,"ABM-M2RPT","PTS",ABMP("PDFN"))) Q:'ABMP("PDFN") D
  1. .I $D(^AUPNPRVT(ABMP("PDFN"))) D ;patient has private entry
  1. ..S ABMP("MDFN")=0,ABMMFLG=0
  1. ..F S ABMP("MDFN")=$O(^AUPNPRVT(ABMP("PDFN"),11,ABMP("MDFN"))) Q:'ABMP("MDFN") D Q:(ABMMFLG=1)
  1. ...S ABMP("EFFDT")=$P($G(^AUPNPRVT(ABMP("PDFN"),11,ABMP("MDFN"),0)),U,6) ;effective date
  1. ...S ABMP("ENDDT")=$P($G(^AUPNPRVT(ABMP("PDFN"),11,ABMP("MDFN"),0)),U,7) ;end date
  1. ...;effective date after end of range or end date before start of range
  1. ...I (ABMP("EFFDT")>ABMY("DT",2))!((ABMP("ENDDT")'="")&(ABMP("ENDDT")<ABMY("DT",1))) Q
  1. ...S ABMMFLG=1 ;if it gets here patient has eligibility in our window
  1. ..I ABMMFLG=1 D ;patient has at least one entry that's what we want
  1. ...S ^TMP($J,"ABM-M2RPT","PI",ABMP("PDFN"),ABMP("MDFN"))=""
  1. ...S ^TMP($J,"ABM-M2RPT","CNT","PI")=+$G(^TMP($J,"ABM-M2RPT","CNT","PI"))+1 ;count private patients
  1. ;
  1. ;no insurance
  1. S ABMP("PDFN")=0
  1. F S ABMP("PDFN")=$O(^TMP($J,"ABM-M2RPT","PTS",ABMP("PDFN"))) Q:'ABMP("PDFN") D
  1. .I '$D(^TMP($J,"ABM-M2RPT","PI",ABMP("PDFN")))&'$D(^TMP($J,"ABM-M2RPT","MCD",ABMP("PDFN")))&'$D(^TMP($J,"ABM-M2RPT","MCR",ABMP("PDFN")))&'$D(^TMP($J,"ABM-M2RPT","RR",ABMP("PDFN"))) D
  1. ..S ^TMP($J,"ABM-M2RPT","CNT","NO")=+$G(^TMP($J,"ABM-M2RPT","CNT","NO"))+1 ;count no insurance patients
  1. ..S ^TMP($J,"ABM-M2RPT","NO",ABMP("PDFN"))=""
  1. ;
  1. Q
  1. ;
  1. GETVSTS ;
  1. S ABMP("SDT")=ABMY("DT",1)-.5
  1. S ABMP("EDT")=ABMY("DT",2)+.999999
  1. F S ABMP("SDT")=$O(^AUPNVSIT("B",ABMP("SDT"))) Q:('ABMP("SDT")!(ABMP("SDT")>ABMP("EDT"))) D
  1. .S ABMP("VDFN")=0
  1. .F S ABMP("VDFN")=$O(^AUPNVSIT("B",ABMP("SDT"),ABMP("VDFN"))) Q:'ABMP("VDFN") D
  1. ..S ABMPT=$P($G(^AUPNVSIT(ABMP("VDFN"),0)),U,5) ;patient
  1. ..Q:ABMPT="" ;no patient on visit
  1. ..I '$D(^TMP($J,"ABM-M2RPT","PTS",ABMPT)) Q ;not one of our patients
  1. ..S ^TMP($J,"ABM-M2RPT","ENC",ABMP("VDFN"))=""
  1. ..S ^TMP($J,"ABM-M2RPT","CNT","ENC")=+$G(^TMP($J,"ABM-M2RPT","CNT","ENC"))+1 ;count encounters
  1. ..I '$D(^TMP($J,"ABM-M2RPT","UNQ",ABMPT)) D
  1. ...S ^TMP($J,"ABM-M2RPT","UNQ",ABMPT)=""
  1. ...S ^TMP($J,"ABM-M2RPT","CNT","UNQ")=+$G(^TMP($J,"ABM-M2RPT","CNT","UNQ"))+1 ;count unique patients
  1. Q
  1. ;
  1. TOTALS ;
  1. ;Practice Demographics
  1. ;# of Patient
  1. ;Encounters/Year
  1. ;# of Unique Patients/Year
  1. S ABM("HD",0)="Meaningful Use Eligibility Report"
  1. S ABM("PG")=1
  1. D GETPTS
  1. D GETELIG
  1. D GETVSTS
  1. D WHD
  1. W !!,"Practice Demographics"
  1. W !?2,$J(+$G(^TMP($J,"ABM-M2RPT","CNT","PTS")),7)_" Patients"
  1. W !?2,$J(+$G(^TMP($J,"ABM-M2RPT","CNT","ENC")),7)_" Encounters"
  1. W !?2,$J(+$G(^TMP($J,"ABM-M2RPT","CNT","UNQ")),7)_" Unique Patients"
  1. ;
  1. ;Patient Demographics
  1. ;% of Patients on Medicaid
  1. ;% of Patients on Medicare
  1. ;% of Patients on Private Insurance
  1. ;% of Patients Uninsured
  1. ;% of Patients on Managed Care
  1. I +$G(^TMP($J,"ABM-M2RPT","CNT","PTS"))=0 W !!,"(REPORT COMPLETE)" Q ;no patients found so it cause a DIVIDE error if we continue
  1. W !!,"Patient Demographics"
  1. ;medicaid
  1. W !?2,$J(+$G(^TMP($J,"ABM-M2RPT","CNT","MCD")),7)_" Patients with Medicaid ( "_$J($FN((+$G(^TMP($J,"ABM-M2RPT","CNT","MCD"))/(+$G(^TMP($J,"ABM-M2RPT","CNT","PTS")))*100),",",2),5)_"% )"
  1. ;medicare
  1. W !?2,$J(+$G(^TMP($J,"ABM-M2RPT","CNT","MCR")),7)_" Patients with Medicare ( "_$J($FN((+$G(^TMP($J,"ABM-M2RPT","CNT","MCR"))/(+$G(^TMP($J,"ABM-M2RPT","CNT","PTS")))*100),",",2),5)_"% )"
  1. ;railroad
  1. W !?2,$J(+$G(^TMP($J,"ABM-M2RPT","CNT","RR")),7)_" Patients with Railroad ( "_$J($FN((+$G(^TMP($J,"ABM-M2RPT","CNT","RR"))/(+$G(^TMP($J,"ABM-M2RPT","CNT","PTS")))*100),",",2),5)_"% )"
  1. ;private
  1. W !?2,$J(+$G(^TMP($J,"ABM-M2RPT","CNT","PI")),7)_" Patients with Private ( "_$J($FN((+$G(^TMP($J,"ABM-M2RPT","CNT","PI"))/(+$G(^TMP($J,"ABM-M2RPT","CNT","PTS")))*100),",",2),5)_"% )"
  1. ;no eligibility
  1. W !?2,$J(+$G(^TMP($J,"ABM-M2RPT","CNT","NO")),7)_" Patients Uninsured ( "_$J($FN((+$G(^TMP($J,"ABM-M2RPT","CNT","NO"))/(+$G(^TMP($J,"ABM-M2RPT","CNT","PTS")))*100),",",2),5)_"% )"
  1. ;start new code abm*2.6*11 VMBP#9 RQMT_103
  1. ;vmbp
  1. W !?2,$J(+$G(^TMP($J,"ABM-M2RPT","CNT","VMBP")),7)_" Patients with VA Med B ( "_$J($FN((+$G(^TMP($J,"ABM-M2RPT","CNT","VMBP"))/(+$G(^TMP($J,"ABM-M2RPT","CNT","PTS")))*100),",",2),5)_"% )"
  1. ;end new code VMBP#9 RQMT_103
  1. W !!,"(REPORT COMPLETE)"
  1. Q
  1. ;
  1. WRTPTS ;^TMP($J,"ABM-M2RPT","PTS",ABMP("PDFN"))
  1. W !!!,"PATIENTS PATIENTS PATIENTS PATIENTS PATIENTS"
  1. W !?3,"PDFN",?15,"NAME",?50,"HRN",?60,"DATE INACTIVE"
  1. S ABMP("PDFN")=0
  1. F S ABMP("PDFN")=$O(^TMP($J,"ABM-M2RPT","PTS",ABMP("PDFN"))) Q:'ABMP("PDFN") D
  1. .W !?3,ABMP("PDFN"),?15,$P($G(^DPT(ABMP("PDFN"),0)),U),?50,$P($G(^AUPNPAT(ABMP("PDFN"),41,DUZ(2),0)),U,2),?60,$$SDT^ABMDUTL($P($G(^AUPNPAT(ABMP("PDFN"),41,DUZ(2),0)),U,3))
  1. ;
  1. ;^TMP($J,"ABM-M2RPT","UNQ",ABMPT)
  1. W !!!,"UNIQUE PATIENTS UNIQUE PATIENTS UNIQUE PATIENTS UNIQUE PATIENTS UNIQUE PATIENTS"
  1. W !?3,"PDFN",?15,"NAME",?50,"HRN"
  1. S ABMP("PDFN")=0
  1. F S ABMP("PDFN")=$O(^TMP($J,"ABM-M2RPT","UNQ",ABMP("PDFN"))) Q:'ABMP("PDFN") D
  1. .W !?3,ABMP("PDFN"),?15,$P($G(^DPT(ABMP("PDFN"),0)),U),?50,$P($G(^AUPNPAT(ABMP("PDFN"),41,DUZ(2),0)),U,2)
  1. Q
  1. ;
  1. WRTELIG ;
  1. ;^TMP($J,"ABM-M2RPT","MCD",ABMP("PDFN"),ABMP("MDFN"))
  1. W !!!,"MEDICAID MEDICAID MEDICAID MEDICAID MEDICAID MEDICAID MEDICAID "
  1. W !?3,"PDFN",?15,"NAME",?50,"MCD#",?62,"PLAN"
  1. S ABMP("PDFN")=0
  1. F S ABMP("PDFN")=$O(^TMP($J,"ABM-M2RPT","MCD",ABMP("PDFN"))) Q:'ABMP("PDFN") D
  1. .S ABMP("MDFN")=0
  1. .F S ABMP("MDFN")=$O(^TMP($J,"ABM-M2RPT","MCD",ABMP("PDFN"),ABMP("MDFN"))) Q:'ABMP("MDFN") D
  1. ..W !?3,ABMP("PDFN"),?15,$P($G(^DPT(ABMP("PDFN"),0)),U),?50,$P($G(^AUPNMCD(ABMP("MDFN"),0)),U,3),?62,$P($G(^AUPNMCD(ABMP("MDFN"),0)),U,10)
  1. ;
  1. ;^TMP($J,"ABM-M2RPT","MCR",ABMP("PDFN"),ABMP("MDFN"))
  1. W !!!,"MEDICARE MEDICARE MEDICARE MEDICARE MEDICARE MEDICARE MEDICARE MEDICARE "
  1. W !?3,"PDFN",?15,"NAME",?50,"MCR#"
  1. S ABMP("PDFN")=0
  1. F S ABMP("PDFN")=$O(^TMP($J,"ABM-M2RPT","MCR",ABMP("PDFN"))) Q:'ABMP("PDFN") D
  1. .S ABMP("MDFN")=0
  1. .F S ABMP("MDFN")=$O(^TMP($J,"ABM-M2RPT","MCR",ABMP("PDFN"),ABMP("MDFN"))) Q:'ABMP("MDFN") D
  1. ..W !?3,ABMP("PDFN"),?15,$P($G(^DPT(ABMP("PDFN"),0)),U),?50,$P($G(^AUPNMCR(ABMP("PDFN"),0)),U,3)
  1. ;
  1. ;^TMP($J,"ABM-M2RPT","RR",ABMP("PDFN"),ABMP("MDFN"))
  1. W !!!,"RAILROAD RAILROAD RAILROAD RAILROAD RAILROAD RAILROAD RAILROAD RAILROAD "
  1. W !?3,"PDFN",?15,"NAME",?50,"RR#"
  1. S ABMP("PDFN")=0
  1. F S ABMP("PDFN")=$O(^TMP($J,"ABM-M2RPT","RR",ABMP("PDFN"))) Q:'ABMP("PDFN") D
  1. .S ABMP("MDFN")=0
  1. .F S ABMP("MDFN")=$O(^TMP($J,"ABM-M2RPT","RR",ABMP("PDFN"),ABMP("MDFN"))) Q:'ABMP("MDFN") D
  1. ..W !?3,ABMP("PDFN"),?15,$P($G(^DPT(ABMP("PDFN"),0)),U),?50,$P($G(^AUPNRRE(ABMP("PDFN"),0)),U,3)
  1. ;
  1. ;start new code abm*2.6*11 VMBP#9 RQMT_103
  1. ;^TMP($J,"ABM-M2RPT","VMBP",ABMP("PDFN"),ABMP("MDFN"))
  1. W !!!,"VMBP VMBP VMBP VMBP VMBP VMBP VMBP VMBP VMBP VMBP VMBP VMBP VMBP VMBP "
  1. W !?3,"PDFN",?15,"NAME",?50,"HRN"
  1. ;end new code VMBP#9 RQMT_103
  1. ;
  1. ;^TMP($J,"ABM-M2RPT","PI",ABMP("PDFN"),ABMP("MDFN"))
  1. W !!!,"PRIVATE PRIVATE PRIVATE PRIVATE PRIVATE PRIVATE PRIVATE PRIVATE PRIVATE "
  1. W !?3,"PDFN",?15,"NAME",?50,"INS",?62,"MEM#"
  1. S ABMP("PDFN")=0
  1. F S ABMP("PDFN")=$O(^TMP($J,"ABM-M2RPT","PI",ABMP("PDFN"))) Q:'ABMP("PDFN") D
  1. .S ABMP("MDFN")=0
  1. .F S ABMP("MDFN")=$O(^TMP($J,"ABM-M2RPT","PI",ABMP("PDFN"),ABMP("MDFN"))) Q:'ABMP("MDFN") D
  1. ..W !?3,ABMP("PDFN"),?15,$P($G(^DPT(ABMP("PDFN"),0)),U),?50,$P($G(^AUPNPRVT(ABMP("PDFN"),11,ABMP("MDFN"),0)),U),?62,$P($G(^AUPNPRVT(ABMP("PDFN"),11,ABMP("MDFN"),2)),U)
  1. ;
  1. ;^TMP($J,"ABM-M2RPT","NO",ABMP("PDFN"))
  1. W !!!,"NOT INSURED NOT INSURED NOT INSURED NOT INSURED NOT INSURED NOT INSURED "
  1. W !?3,"PDFN",?15,"NAME"
  1. S ABMP("PDFN")=0
  1. F S ABMP("PDFN")=$O(^TMP($J,"ABM-M2RPT","NO",ABMP("PDFN"))) Q:'ABMP("PDFN") D
  1. .W !?3,ABMP("PDFN"),?15,$P($G(^DPT(ABMP("PDFN"),0)),U)
  1. Q
  1. ;
  1. WRTVSTS ;^TMP($J,"ABM-M2RPT","ENC",ABMP("VDFN"))
  1. W !!!,"VISITS VISITS VISITS VISITS VISITS VISITS VISITS VISITS VISITS "
  1. W !?3,"VDFN",?13,"VISIT",?30,"PDFN",?40,"PATIENT"
  1. S ABMP("VDFN")=0
  1. F S ABMP("VDFN")=$O(^TMP($J,"ABM-M2RPT","ENC",ABMP("VDFN"))) Q:'ABMP("VDFN") D
  1. .W !?3,ABMP("VDFN"),?13,$P($G(^AUPNVSIT(ABMP("VDFN"),0)),U),?30,$P($G(^AUPNVSIT(ABMP("VDFN"),0)),U,5),?40,$P($G(^DPT($P($G(^AUPNVSIT(ABMP("VDFN"),0)),U,5),0)),U)
  1. Q
  1. WHD ;EP for writing Report Header
  1. W $$EN^ABMVDF("IOF"),!
  1. K ABM("LINE") S $P(ABM("LINE"),"=",$S($D(ABM(132)):132,1:80))="" W ABM("LINE"),!
  1. D NOW^%DTC ;abm*2.6*1 NO HEAT
  1. W ABM("HD",0),?$S($D(ABM(132)):103,1:48) S Y=% X ^DD("DD") W Y," Page ",ABM("PG")
  1. S ABM("HD",1)="For date range: "_$$SDT^ABMDUTL(ABMY("DT",1))_" to "_$$SDT^ABMDUTL(ABMY("DT",2))
  1. W:$G(ABM("HD",1))]"" !,ABM("HD",1)
  1. W:$G(ABM("HD",2))]"" !,ABM("HD",2)
  1. W !,"Billing Location: ",$P($G(^AUTTLOC(DUZ(2),0)),U,2)
  1. W !,ABM("LINE") K ABM("LINE")
  1. Q