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

APCM2ASL.m

Go to the documentation of this file.
  1. APCM2ASL ; IHS/CMI/LAB - IHS MU ;
  1. ;;1.0;MU PERFORMANCE REPORTS;**7**;MAR 26, 2012;Build 15
  1. ;; ;
  1. RT ;EP
  1. ;for each measure list, choose report type
  1. W !!,"Select List Type.",!,"NOTE: If you select All Patients, your list may be",!,"hundreds of pages and take hours to print.",!
  1. S DIR(0)="S^R:Random Patient List;A:All Patients",DIR("A")="Choose report type for the Lists",DIR("B")="R" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) S APCMQUIT="" K APCMLIST Q
  1. S APCMLIST=Y
  1. Q
  1. EP ;EP - CALLED FROM OPTION
  1. D EN
  1. Q
  1. EOJ1 ;EP
  1. K APCMGLST,APCMTIND,APCMHIGH,APCMANS,APCMC,APCMGANS,APCMGC,APCMGI,APCMI,APCMX
  1. Q
  1. ;; ;
  1. EN ;EP -- main entry point for GPRA LIST DISPLAY
  1. D EN^VALM("APCM 25 S2 LIST SELECTION")
  1. D CLEAR^VALM1
  1. D FULL^VALM1
  1. W:$D(IOF) @IOF
  1. D EOJ1
  1. Q
  1. ;
  1. HDR ; -- header code
  1. S VALMHDR(1)="IHS Modified Stage 2 MU Performance Measure Lists of Patients"
  1. S VALMHDR(2)="* indicates the list has been selected"
  1. Q
  1. ;
  1. INIT ; -- init variables and list array
  1. K APCMGLST,APCMNOLI S APCMHIGH=""
  1. S APCMXREF=$S(APCMRPTT=1:"EOORDER",1:"AH")
  1. S (Y,C,I)=0 F S Y=$O(^APCM25OB(APCMXREF,Y)) Q:Y'=+Y Q:Y="" S X=0 F S X=$O(^APCM25OB(APCMXREF,Y,X)) Q:X'=+X D
  1. .Q:'$D(APCMIND(X))
  1. .I $P(^APCM25OB(X,0),U,7)="" S C=C+1 D Q
  1. ..S APCMGLST(C,0)=C_")",$E(APCMGLST(C,0),5)=$P(^APCM25OB(X,0),U,5),APCMGLST("IDX",C,C)=X I $D(APCMLIST(X)) S APCMGLST(C,0)="*"_APCMGLST(C,0)
  1. .I $P(^APCM25OB(X,0),U,7)=1 Q ;S C=C+1 D
  1. .;.S APCMGLST(C,0)="NO patient list available for measure: "_$P(^APCM25OB(X,0),U,5),APCMGLST("IDX",C,C)=X,APCMNOLI(X)="" I $D(APCMLIST(X)) S APCMGLST(C,0)="*"_APCMGLST(C,0)
  1. S (VALMCNT,APCMHIGH)=C
  1. Q
  1. ;
  1. HELP ; -- help code
  1. S X="?" D DISP^XQORM1 W !!
  1. Q
  1. ;
  1. EXIT ; -- exit code
  1. Q
  1. ;
  1. EXPND ; -- expand code
  1. Q
  1. ;
  1. BACK ;go back to listman
  1. D TERM^VALM0
  1. S VALMBCK="R"
  1. D INIT
  1. D HDR
  1. K DIR
  1. K X,Y,Z,I
  1. Q
  1. ;
  1. ADD ;EP - add an item to the selected list - called from a protocol
  1. W ! S DIR(0)="LO^1:"_APCMHIGH,DIR("A")="Which item(s)" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I Y="" W !,"No items selected." G ADDX
  1. I $D(DIRUT) W !,"No items selected." G ADDX
  1. D FULL^VALM1 W:$D(IOF) @IOF
  1. S APCMGANS=Y,APCMGC="" F APCMGI=1:1 S APCMGC=$P(APCMGANS,",",APCMGI) Q:APCMGC="" S APCMI=APCMGLST("IDX",APCMGC,APCMGC) I $D(APCMIND(APCMI)),'$D(APCMNOLI(APCMI)) S APCMLIST(APCMI)=""
  1. ADDX ;
  1. D BACK
  1. Q
  1. ADDALL ;
  1. F X=1:1:APCMHIGH S I=$G(APCMGLST("IDX",X,X)) I $D(APCMIND(I)),'$D(APCMNOLI(I)) S APCMLIST(I)=""
  1. D BACK
  1. Q
  1. ;
  1. REM ;
  1. W ! S DIR(0)="LO^1:"_APCMHIGH,DIR("A")="Which item(s)" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I Y="" W !,"No items selected." G ADDX
  1. I $D(DIRUT) W !,"No items selected." G ADDX
  1. D FULL^VALM1 W:$D(IOF) @IOF
  1. S APCMGANS=Y,APCMGC="" F APCMGI=1:1 S APCMGC=$P(APCMGANS,",",APCMGI) Q:APCMGC="" S I=APCMGLST("IDX",APCMGC,APCMGC) K APCMLIST(I)
  1. REMX ;
  1. D BACK
  1. Q
  1. ;
  1. PT ;EP
  1. S (APCMROT,APCMDELT,APCMDELF)=""
  1. W !!,"Please choose an output type. For an explanation of the delimited",!,"file please see the user manual.",!
  1. S DIR(0)="S^P:Print Report on Printer or Screen;D:Create Delimited output file (for use in Excel);B:Both a Printed Report and Delimited File",DIR("A")="Select an Output Option",DIR("B")="P" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) Q
  1. S APCMROT=Y
  1. Q:APCMROT="P"
  1. S APCMDELF="",APCMDELT=""
  1. W !!,"You have selected to create a delimited output file. You can have this",!,"output file created as a text file in the pub directory, ",!,"OR you can have the delimited output display on your screen so that"
  1. W !,"you can do a file capture. Keep in mind that if you choose to",!,"do a screen capture you CANNOT Queue your report to run in the background!!",!!
  1. S DIR(0)="S^S:SCREEN - delimited output will display on screen for capture;F:FILE - delimited output will be written to a file in pub",DIR("A")="Select output type",DIR("B")="S" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) G PT
  1. S APCMDELT=Y
  1. Q:APCMDELT="S"
  1. S DIR(0)="F^1:40",DIR("A")="Enter a filename for the delimited output (no more than 40 characters)" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) G PT
  1. S APCMDELF=Y
  1. W !!,"When the report is finished your delimited output will be found in the",!,$P($G(^AUTTSITE(1,1)),U,2)," directory. The filename will be ",APCMDELF,".txt",!
  1. Q
  1. REPORT ;EP
  1. S APCMRPT=""
  1. W !!
  1. ;CREATE REPORT ENTRY IN FILEMAN FILE
  1. L +^APCMM25C:30 I '$T W !!,"Unable to lock global, try later." G REPORTX
  1. K DIC S X=APCMBD,DIC(0)="L",DIC="^APCMM25C(",DLAYGO=9001304.03,DIADD=1,DIC("DR")=".02////"_APCMED_";.05////"_DUZ(2)_";.06////"_$S(APCMRPT=1:"E",1:"H")_";.07////"_$$NOW^XLFDT()
  1. D ^DIC K DIC,DA,DR,DIADD,DLAYGO I Y=-1 W !!,"UNABLE TO CREATE REPORT FILE ENTRY - NOTIFY SITE MANAGER!" S APCMQUIT=1 G REPORTX
  1. S APCMRPT=+Y
  1. ;set 11 multiple with variable pointers to each provider/hospital
  1. I APCMRPTT=1 D S ^APCMM25C(APCMRPT,11,0)="^9001304.0311AV^"_C_"^"_C
  1. .S X=0,C=0 F S X=$O(APCMPRV(X)) Q:X'=+X S C=C+1 D
  1. ..S ^APCMM25C(APCMRPT,11,C,0)=X_";VA(200,"
  1. ..S ^APCMM25C(APCMRPT,11,"B",X_";VA(200,",C)=""
  1. I APCMRPTT=2 D S ^APCMM25C(APCMRPT,11,0)="^9001304.0311AV^"_C_"^"_C
  1. .S X=0,C=1,X=APCMFAC D
  1. ..S ^APCMM25C(APCMRPT,11,C,0)=X_";AUTTLOC("
  1. ..S ^APCMM25C(APCMRPT,11,"B",X_";AUTTLOC(",C)=""
  1. REPORTX ;
  1. D ^XBFMK
  1. K DIC,DIADD,DLAYGO,DR,DA,DD,X,Y,DINUM
  1. L -^APCMM25C
  1. Q