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

APCDPTAB.m

Go to the documentation of this file.
  1. APCDPTAB ; IHS/CMI/LAB - Provider table print
  1. ;;2.0;IHS PCC SUITE;**2**;MAY 14, 2009
  1. ;
  1. ;
  1. ;
  1. EP ;EP - called from option interactive
  1. D EOJ
  1. W:$D(IOF) @IOF
  1. S APCDTEXT="INTROT" F APCDJ=1:1 S APCDX=$T(@APCDTEXT+APCDJ) Q:$P(APCDX,";;",2)="END" S APCDT=$P(APCDX,";;",2) W !,APCDT
  1. PROVKEY ;
  1. K APCDTRIM S APCDTRIT=""
  1. S DIR(0)="S^A:All Users;P:Providers Only (defined by having the PROVIDER key)",DIR("A")="List which set of entries",DIR("B")="P" K DA D ^DIR K DIR
  1. I $D(DIRUT) G EOJ
  1. S APCDPKEY=Y
  1. ACTIVE ;
  1. K APCDSTAT
  1. S DIR(0)="S^A:Active Providers;I:Inactive Providers;B:Both Active and Inactive Providers",DIR("A")="List which set of providers",DIR("B")="A" K DA D ^DIR K DIR
  1. I $D(DIRUT) G PROVKEY
  1. S APCDSTAT=Y,APCDSTAN=Y(0)
  1. AFFL ;
  1. K APCDAFFM S APCDAFFT=""
  1. S DIR(0)="S^O:One or a Set of Affiliations;A:Any/All Affiliations",DIR("A")="Include Providers with which Affiliation",DIR("B")="A" K DA D ^DIR K DIR
  1. I $D(DIRUT) G ACTIVE
  1. S APCDAFFT=Y
  1. I APCDAFFT="A" W !!,"Providers of all affiliations will be included in the report.",! G DISC
  1. S X="AFFILIATION",DIC="^AMQQ(5,",DIC(0)="FM",DIC("S")="I $P(^(0),U,14)" D ^DIC K DIC,DA I Y=-1 W "OOPS - QMAN NOT CURRENT - QUITTING" S APCDERR=1 D EOJ Q Q
  1. D PEP^AMQQGTX0(+Y,"APCDAFFM(")
  1. I '$D(APCDAFFM) G AFFL
  1. I $D(APCDAFFM("*")) K APCDAFFM G AFFL
  1. DISC ;
  1. K APCDDISM S APCDDIST=""
  1. S DIR(0)="S^O:One or a Set of Disciplines/Provider Classes;A:Any/All Disciplines/Provider Classes",DIR("A")="Include Providers with which Provider Class",DIR("B")="A" K DA D ^DIR K DIR
  1. I $D(DIRUT) G ACTIVE
  1. S APCDDIST=Y
  1. I APCDDIST="A" W !!,"Providers of all Disciplines will be included in the report.",! G DIVC
  1. S X="DISCIPLINE",DIC="^AMQQ(5,",DIC(0)="FM",DIC("S")="I $P(^(0),U,14)" D ^DIC K DIC,DA I Y=-1 W "OOPS - QMAN NOT CURRENT - QUITTING" S APCDERR=1 D EOJ Q Q
  1. D PEP^AMQQGTX0(+Y,"APCDDISM(")
  1. I '$D(APCDDISM) G DISC
  1. I $D(APCDDISM("*")) K APCDDISM G DISC
  1. DIVC ;
  1. W !!,"You can select just providers who have access to a particular"
  1. W !,"division. Since there is no designation in file 200 to specify"
  1. W !,"which facility a provider works knowing which Division they have"
  1. W !,"access to may help determine where they work."
  1. W !
  1. K APCDDIVM S APCDDIVT=""
  1. S DIR(0)="S^O:One or a Set of Divisions/Locations;A:Any/All Divisions/Locations",DIR("A")="Include Providers with access to which division",DIR("B")="A" K DA D ^DIR K DIR
  1. I $D(DIRUT) G ACTIVE
  1. S APCDDIVT=Y
  1. I APCDDIVT="A" W !!,"All will be included in the report.",! G SORTR
  1. S X="LOCATION OF ENCOUNTER",DIC="^AMQQ(5,",DIC(0)="FM",DIC("S")="I $P(^(0),U,14)" D ^DIC K DIC,DA I Y=-1 W "OOPS - QMAN NOT CURRENT - QUITTING" S APCDERR=1 D EOJ Q Q
  1. D PEP^AMQQGTX0(+Y,"APCDDIVM(")
  1. I '$D(APCDDIVM) G DIVC
  1. I $D(APCDDIVM("*")) K APCDDIVM G DIVC
  1. SORTR ;
  1. S APCDSORT=""
  1. S DIR(0)="S^N:Provider Name;A:Affiliation;D:Discipline/Class;S:Active/Inactive Status",DIR("A")="Sort the list by",DIR("B")="N"
  1. KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) G DIVC
  1. S APCDSORT=Y
  1. ZIS ;
  1. S XBRP="PRINT^APCDPTAB",XBRC="PROC^APCDPTAB",XBRX="EOJ^APCDPTAB",XBNS="APCD"
  1. D ^XBDBQUE
  1. Q
  1. EOJ ;
  1. D ^XBFMK
  1. K DIC,DIR
  1. D EN^XBVK("APCD")
  1. Q
  1. ;
  1. PROC ;
  1. S APCDJ=$J,APCDH=$H
  1. K ^XTMP("APCDPTAB",APCDJ,APCDH)
  1. S ^XTMP("APCDPTAB",0)=$$FMADD^XLFDT(DT,14)_"^"_DT_"^"_"PCC PROVIDER REPORT"
  1. S APCDIEN=0 F S APCDIEN=$O(^VA(200,APCDIEN)) Q:APCDIEN'=+APCDIEN D
  1. .I APCDPKEY="P",'$D(^XUSEC("PROVIDER",APCDIEN)) Q ;no provider key
  1. .I APCDSTAT="I",$P($G(^VA(200,APCDIEN,"PS")),U,4)="" Q
  1. .I APCDSTAT="A",$P($G(^VA(200,APCDIEN,"PS")),U,4)]"" Q
  1. .I $D(APCDAFFM) S X=$P($G(^VA(200,APCDIEN,9999999)),U,1) Q:X="" I X]"",'$D(APCDAFFM(X)) Q ;not correct AFF
  1. .I $D(APCDDISM) S X=$P($G(^VA(200,APCDIEN,"PS")),U,5) Q:X="" I X,'$D(APCDDISM(X)) Q ;not correct DIS
  1. .I $D(APCDDIVM) D I 'G Q
  1. ..S G=0,X=0 F S X=$O(^VA(200,APCDIEN,2,"B",X)) Q:X'=+X!(G) I $D(APCDDIVM(X)) S G=1
  1. .S X=$$SORT(APCDIEN,APCDSORT)
  1. .I X="" S X="---"
  1. .S ^XTMP("APCDPTAB",APCDJ,APCDH,"PTS",X,APCDIEN)=""
  1. .Q
  1. Q
  1. DONE ;
  1. I $E(IOST)="C",IO=IO(0) S DIR(0)="EO",DIR("A")="End of report. PRESS ENTER" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. K APCDTS,APCDS,APCDM,APCDET
  1. K ^XTMP("APCDPTAB",APCDJ,APCDH),APCDJ,APCDH
  1. Q
  1. ;
  1. ;
  1. PRINT ;EP - called from xbdbque
  1. S APCDQ=0,APCDPG=0
  1. D HEADER
  1. S APCDSV="" F S APCDSV=$O(^XTMP("APCDPTAB",APCDJ,APCDH,"PTS",APCDSV)) Q:APCDSV=""!(APCDQ) D
  1. .I APCDSORT'="N" D
  1. ..I APCDSV="ZZZZZZZ" W !!,"UNKNOWN",! Q
  1. ..W !!,APCDSV,!
  1. .S APCDIEN=0 F S APCDIEN=$O(^XTMP("APCDPTAB",APCDJ,APCDH,"PTS",APCDSV,APCDIEN)) Q:APCDIEN'=+APCDIEN D
  1. ..I $Y>(IOSL-3) D HEADER Q:APCDQ
  1. ..W !,$E($P(^VA(200,APCDIEN,0),U),1,25),?27,$E($$VAL^XBDIQ1(200,APCDIEN,9999999.01),1,8)
  1. ..W ?36,$E($$VAL^XBDIQ1(200,APCDIEN,53.5),1,17)
  1. ..W ?54,$$VAL^XBDIQ1(200,APCDIEN,9999999.039)
  1. ..S APCDX=0 S APCDX=$O(^VA(200,APCDIEN,2,APCDX)) I APCDX,$P($G(^AUTTLOC(APCDX,0)),U,7)]"" W ?61,$P($G(^AUTTLOC(APCDX,0)),U,7)
  1. ..W ?72,$$DATE($$VALI^XBDIQ1(200,APCDIEN,53.4))
  1. ..F S APCDX=$O(^VA(200,APCDIEN,2,APCDX)) Q:APCDX'=+APCDX I APCDX,$P($G(^AUTTLOC(APCDX,0)),U,7)]"" W !?61,$P($G(^AUTTLOC(APCDX,0)),U,7)
  1. D DONE
  1. Q
  1. G:'APCDPG HEADER1
  1. K DIR I $E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR K DIR I Y=0!(Y="^")!($D(DTOUT)) S APCDQ=1 Q
  1. HEADER1 ;
  1. W:$D(IOF) @IOF S APCDPG=APCDPG+1
  1. W !?3,$P(^VA(200,DUZ,0),U,2),?35,$$FMTE^XLFDT(DT),?70,"Page ",APCDPG,!
  1. W $$CTR($P(^DIC(4,DUZ(2),0),U),80),!
  1. W !,$$CTR("PROVIDER LISTING",80)
  1. S X="Status: "_APCDSTAN W !,$$CTR(X,80)
  1. S X="Affiliations: "
  1. I APCDAFFT="A" S X=X_"All Affiliations"
  1. I APCDAFFT="S" D
  1. .S Y="" F S Y=$O(APCDAFFM(Y)) Q:Y'=+Y S X=X_" "_Y
  1. W !,$$CTR(X,80)
  1. I APCDDIST="A" S X=X_"All Disciplines/Provider Classes"
  1. I APCDDIST="S" D
  1. .S Y="" F S Y=$O(APCDDISM(Y)) Q:Y'=+Y S X=X_" "_$P($G(^DIC(7,Y,9999999)),U)
  1. W !,$$CTR(X,80)
  1. W !!,"NAME",?27,"AFFL",?36,"PROV CLASS",?54,"ADC",?72,"INACTIVE"
  1. W !,$TR($J("",80)," ","-")
  1. Q
  1. D(D) ;
  1. Q $E(D,4,5)_"/"_$E(D,6,7)_"/"_(1700+$E(D,1,3))
  1. C(X,X2,X3) ;
  1. D COMMA^%DTC
  1. Q X
  1. CTR(X,Y) ;EP - Center X in a field Y wide.
  1. Q $J("",$S($D(Y):Y,1:IOM)-$L(X)\2)_X
  1. ;----------
  1. ;----------
  1. USR() ;EP - Return name of current user from ^VA(200.
  1. Q $S($G(DUZ):$S($D(^VA(200,DUZ,0)):$P(^(0),U),1:"UNKNOWN"),1:"DUZ UNDEFINED OR 0")
  1. ;----------
  1. LOC() ;EP - Return location name from file 4 based on DUZ(2).
  1. Q $S($G(DUZ(2)):$S($D(^DIC(4,DUZ(2),0)):$P(^(0),U),1:"UNKNOWN"),1:"DUZ(2) UNDEFINED OR 0")
  1. ;----------
  1. SORT(P,S) ;
  1. NEW R
  1. S R=""
  1. D @(S_"SORT")
  1. I R="" S R="ZZZZZZZ"
  1. Q R
  1. ;
  1. ASORT ;
  1. S R=$$VAL^XBDIQ1(200,P,9999999.01)
  1. Q
  1. NSORT ;
  1. S R=$$VAL^XBDIQ1(200,P,.01)
  1. Q
  1. DSORT ;
  1. S R=$$VAL^XBDIQ1(200,P,53.5)
  1. Q
  1. SSORT ;
  1. S R=$$VALI^XBDIQ1(200,P,53.4)
  1. I R="" S R="ACTIVE" Q
  1. S R="INACTIVE"
  1. Q
  1. DATE(D) ;
  1. I D="" Q ""
  1. Q $E(D,4,5)_"/"_$E(D,6,7)_"/"_$E((1700+$E(D,1,3)),3,4)
  1. INTROT ;
  1. ;; PROVIDER LISTING
  1. ;;
  1. ;;This option will produce a report of all entries in File 200.
  1. ;;You will be able to select which entries to print based on any of the
  1. ;;following criteria:
  1. ;; Providers Only or all entries (providers are defined as those holding
  1. ;; the PROVIDER key, general users will not hold this key)
  1. ;; Active/Inactive Status
  1. ;; Provider Affiliation
  1. ;; Provider Discipline (Class)
  1. ;; Division the person has access to (this is an attempt to determine which
  1. ;; facility the provider works at, there currently no field to designate
  1. ;; where the provider works.)
  1. ;;The report can be sorted by name, affiliation, discipline, active/inactive
  1. ;;status or division.
  1. ;;END