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

APCLREDU.m

Go to the documentation of this file.
  1. APCLREDU ; IHS/CMI/LAB - education delimted file for use in excel ;
  1. ;;2.0;IHS PCC SUITE;**2**;MAY 14, 2009
  1. ;
  1. ;
  1. START ;
  1. INFORM ;
  1. W:$D(IOF) @IOF
  1. W !,$$CTR($$LOC)
  1. W !,$$CTR($$USR)
  1. W !!,"This report will create a delimited output file of all visits on which patient",!,"education was done. This report is to be used by uploading the data file",!,"into EXCEL or some other software package.",!!
  1. D EXIT
  1. DATES K APCLED,APCLBD
  1. K DIR W ! S DIR(0)="DO^::EXP",DIR("A")="Enter Beginning Visit Date"
  1. D ^DIR G:Y<1 EXIT S APCLBD=Y
  1. K DIR S DIR(0)="DO^:DT:EXP",DIR("A")="Enter Ending Visit Date"
  1. D ^DIR G:Y<1 EXIT S APCLED=Y
  1. ;
  1. I APCLED<APCLBD D G DATES
  1. . W !!,$C(7),"Sorry, Ending Date MUST not be earlier than Beginning Date."
  1. S APCLSD=$$FMADD^XLFDT(APCLBD,-1)_".9999"
  1. ;
  1. CLINIC ;
  1. W !!
  1. S APCLCL="" S APCLCLIN=""
  1. S DIR(0)="Y",DIR("A")="Include ALL outpatient clinics",DIR("B")="Y" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. G:$D(DIRUT) DATES
  1. I Y=1 G HL
  1. ;
  1. CLINIC1 ;Get Multiple Clinics in Search
  1. K APCLCLNT
  1. S X="CLINIC",DIC="^AMQQ(5,",DIC(0)="FM",DIC("S")="I $P(^(0),U,14)" D ^DIC K DIC,DA I Y=-1 W "OPPS - QMAN NOT CURRENT - QUITTING" G EXIT
  1. D PEP^AMQQGTX0(+Y,"APCLCLNT(")
  1. I '$D(APCLCLNT) G CLINIC
  1. I $D(APCLCLNT("*")) K APCLCLNT
  1. G CLINIC:Y<1
  1. ;
  1. HL ;
  1. K APCLHL
  1. S DIR(0)="Y",DIR("A")="Include all HOSPITAL LOCATIONS",DIR("B")="Y" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) G CLINIC
  1. I Y=1 G TOPIC
  1. S APCLQ="" K APCLHL F D Q:APCLQ
  1. .K DIR S DIR(0)="9000010,.22",DIR("A")="Which Hospital Location" KILL DA D ^DIR KILL DIR
  1. .I $D(DIRUT) S APCLQ=1 Q
  1. .S APCLHL(+Y)=""
  1. ;
  1. TOPIC ;
  1. K APCLEDT,APCLEDTL
  1. S APCLEDT=""
  1. S DIR(0)="SO^A:Any Education Topic recorded;V:Visits with or w/o an Education Topic;S:Selected Education Topics",DIR("A")="Includes visits with",DIR("B")="A" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) G HL
  1. I Y="A" S APCLEDT="A" G ZIS
  1. I Y="V" S APCLEDT="V" G ZIS
  1. I Y="S" S APCLEDT="S"
  1. TOPIC1 ;
  1. K APCLEDTL
  1. S X="PATIENT ED TOPIC",DIC="^AMQQ(5,",DIC(0)="FM",DIC("S")="I $P(^(0),U,14)" D ^DIC K DIC,DA I Y=-1 W "OPPS - QMAN NOT CURRENT - QUITTING" G EXIT
  1. D PEP^AMQQGTX0(+Y,"APCLEDTL(")
  1. I '$D(APCLEDTL) G TOPIC
  1. I $D(APCLEDTL("*")) K APCLEDTL
  1. G TOPIC:Y<1
  1. ;
  1. ZIS ;call to XBDBQUE
  1. DEMO ;
  1. D DEMOCHK^APCLUTL(.APCLDEMO)
  1. I APCLDEMO=-1 G TOPIC
  1. S XBRP="PRINT^APCLREDU",XBRC="",XBRX="EXIT^APCLREDU",XBNS="APCL"
  1. D ^XBDBQUE
  1. D EXIT
  1. Q
  1. EXIT ;clean up and exit
  1. D EN^XBVK("APCL")
  1. D ^XBFMK
  1. D KILL^AUPNPAT
  1. Q
  1. PRINT ;EP - called from xbdbque
  1. D HEADER
  1. S APCLVTOT=0,APCLPTOT=0,APCLPEDU=0
  1. K ^TMP($J)
  1. F S APCLSD=$O(^AUPNVSIT("B",APCLSD)) Q:APCLSD'=+APCLSD!($P(APCLSD,".")>APCLED) D
  1. .S APCLV=0 F S APCLV=$O(^AUPNVSIT("B",APCLSD,APCLV)) Q:APCLV'=+APCLV D
  1. ..Q:'$D(^AUPNVSIT(APCLV,0))
  1. ..Q:$P(^AUPNVSIT(APCLV,0),U,11)
  1. ..S DFN=$P(^AUPNVSIT(APCLV,0),U,5)
  1. ..Q:DFN=""
  1. ..Q:$$DEMO^APCLUTL(DFN,$G(APCLDEMO))
  1. ..I $D(APCLCLNT) S X=$P(^AUPNVSIT(APCLV,0),U,8) Q:X="" Q:'$D(APCLCLNT(X))
  1. ..I $D(APCLHL) S X=$P(^AUPNVSIT(APCLV,0),U,22) Q:X="" Q:'$D(APCLHL(X))
  1. ..I APCLEDT="A",'$O(^AUPNVPED("AD",APCLV,0)) Q ;want any education topic and this visit has none
  1. ..I APCLEDT="S" D Q:'APCLG
  1. ...S APCLG=""
  1. ...S X=$O(^AUPNVPED("AD",APCLV,X)) Q:X'=+X S T=$P(^AUPNVPED(X,0),U) I $D(APCLEDTL(T)) S APCLG=1
  1. ...Q
  1. ..S APCLVTOT=APCLVTOT+1
  1. ..I '$D(^TMP($J,"PAT","USED",DFN)) S APCLPTOT=APCLPTOT+1,^TMP($J,"PAT","USED",DFN)=""
  1. ..I APCLEDT="V",'$O(^AUPNVPED("AD",APCLV,0)) S APCLX="" D SET Q
  1. ..I '$D(^TMP($J,"PAT","EDUC",DFN)) S APCLPEDU=APCLPEDU+1,^TMP($J,"PAT","EDUC",DFN)=""
  1. ..S APCLX=0 F S APCLX=$O(^AUPNVPED("AD",APCLV,APCLX)) Q:APCLX'=+APCLX D
  1. ...I APCLEDT="A" D SET Q
  1. ...I APCLEDT="S" S T=$P(^AUPNVPED(APCLX,0),U) I $D(APCLEDTL(T)) D SET Q
  1. ...I APCLEDT="V" D SET Q
  1. W !,"Total # of visits meeting criteria"_U_APCLVTOT
  1. W !,"Total # of patients for these visits"_U_APCLPTOT
  1. W !,"Total # of these patients w/education"_U_APCLPEDU
  1. Q
  1. SET ;
  1. S D=$P($P(^AUPNVSIT(APCLV,0),U),".")
  1. S APCLR=APCLV_U_$P(^DPT(DFN,0),U)_U_$$HRN^AUPNPAT(DFN,DUZ(2))_U_$$FMTE^XLFDT($$DOB^AUPNPAT(DFN))_U_$$AGE^AUPNPAT(DFN,D)_U_$$FMTE^XLFDT(D)_U_$$CLINIC^APCLV(APCLV,"C")_U_$$VAL^XBDIQ1(9000010,APCLV,.22)
  1. I APCLX]"" S APCLR=APCLR_U_$$VAL^XBDIQ1(9999999.09,$P(^AUPNVPED(APCLX,0),U),1)_U_$$VAL^XBDIQ1(9000010.16,APCLX,.05)_U_$$PROVCLSC^XBFUNC1($P(^AUPNVPED(APCLX,0),U,5))_U_$$VAL^XBDIQ1(9000010.16,APCLX,.01)
  1. I APCLX]"" S APCLR=APCLR_U_$$VAL^XBDIQ1(9000010.16,APCLX,.06)_U_$$VAL^XBDIQ1(9000010.16,APCLX,.07)_U_$$VAL^XBDIQ1(9000010.16,APCLX,.08)
  1. I APCLX]"" F APCLF=.13,.14,.09,.11,1101 S APCLR=APCLR_U_$$VAL^XBDIQ1(9000010.16,APCLX,APCLF)
  1. S APCLR=APCLR_U_$$VAL^XBDIQ1(9000001,DFN,.14)
  1. W !,APCLR
  1. Q
  1. W "DATE RANGE: "_$$FMTE^XLFDT(APCLBD)_"-"_$$FMTE^XLFDT(APCLED)
  1. I '$D(APCLCLNT) W !,"ALL CLINICS"
  1. I $O(APCLCLNT(0)) S X=0 F S X=$O(APCLCLNT(X)) Q:X'=+X W !,$P(^DIC(40.7,X,0),U,2)_" ;"
  1. I '$D(APCLHL) W !,"ALL HOSPITAL LOCATIONS"
  1. I $O(APCLHL(0)) S X=0 F S X=$O(APCLHL(X)) Q:X'=+X W !,$P(^SC(X,0),U,2)_" ;"
  1. ;I '$D(APCLDISC) W !,"ALL DISCIPLINES"
  1. ;I $O(APCLDISC(0)) S X=0 F S X=$O(APCLDISC(X)) Q:X'=+X W !,$P($G(^DIC(7,X,9999999)),U,1)_" ;"
  1. W !,"VISIT IEN^PATIENT NAME^CHART NUMBER^DATE OF BIRTH^AGE^VISIT DATE^CLINIC TYPE^HOSPITAL LOCATION^EDUCATION TOPIC^EDUCATION PROVIDER^EDUCATION PROVIDER CLASS CODE"
  1. W "^TOPIC FULL NAME^LEVEL OF UNDERSTANDING^IND/GRP^MINUTES^GOAL STATUS^OBJECTIVES MET^CPT CODE^COMMENT^DESIGNATED PRIMARY CARE PROVIDER"
  1. Q
  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. EOP ;EP - End of page.
  1. Q:$E(IOST)'="C"
  1. Q:$D(ZTQUEUED)!'(IOT="TRM")!$D(IO("S"))
  1. NEW DIR
  1. K DIRUT,DFOUT,DLOUT,DTOUT,DUOUT
  1. S DIR(0)="E" D ^DIR
  1. Q
  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. ;----------