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

ECXWRD.m

Go to the documentation of this file.
  1. ECXWRD ;BIR/CML,ALB/JAP Print Active Wards for Fiscal Year ;11/8/17 14:59
  1. ;;3.0;DSS EXTRACTS;**2,8,127,149,166,169,181,184**;Dec 22, 1997;Build 124
  1. ;
  1. ; Reference to ^DG(40.8) in ICR #417
  1. ; Reference to ^DIC(42) in ICR #1848
  1. ;
  1. EN ;entry point from option
  1. N DATE,YR,MON,FY,POP,ZTSK,ECXPORT,CNT ;149
  1. D NOW^%DTC S DATE=$$FMTE^XLFDT(%,"5D"),YR=+$P(DATE,"/",3),MON=+$P(DATE,"/",1),FY=$S(MON<10:YR,1:YR+1)
  1. W !!,"This option prints a list of all wards that were active at any time" ;184 Removed MAS/HAS
  1. W !,"during FY",FY,". The list is sorted by Medical Center Division and displays"
  1. W !,"the pointer to the Hospital Location file (#44) and DSS Department data"
  1. W !,"if available."
  1. S ECXPORT=$$EXPORT^ECXUTL1 Q:ECXPORT=-1 ;149
  1. I ECXPORT D Q ;149 Section added
  1. .K ^TMP($J)
  1. .S ^TMP($J,"ECXPORT",0)="Expected Divisions with Active Ward/s: " ;181 - Add header to export format
  1. .S ^TMP($J,"ECXPORT",1)="DIVISION NUMBER^DIVISION^WARD^DSS DEPT^POINTER TO FILE 44^WARD SERVICE^WARD SPECIALTY",CNT=2 ;181 -Add DIVISION Number
  1. .D START
  1. .D EXPDISP^ECXUTL1
  1. .K ^TMP($J),^TMP("ECXWRD",$J)
  1. W !!,"This report requires a print width of 132 characters.",!!
  1. S ECXPGM="START^ECXWRD",ECXDESC="DSS-Print Active Wards for Fiscal Year",ECXSAVE("FY")=""
  1. W ! D DEVICE^ECXUTLA(ECXPGM,ECXDESC,.ECXSAVE)
  1. I ECXSAVE("POP")=1 D Q
  1. .W !,"No device selected... try again later.!!"
  1. I ECXSAVE("ZTSK")=0 U IO D START^ECXWRD
  1. I IO'=IO(0) D ^%ZISC
  1. D HOME^%ZIS
  1. K ECXSAVE,ECXPGM,ECXDESC
  1. K ECXDIVN,ECFYB,ECFYE,ECXWD,ECXWDN,ECXDEPT,ECXDESC,FY,^TMP("ECXWRD",$J)
  1. Q
  1. START ;
  1. N QFLG,%,%H,%I,JJ,SS,HDT,DATA,ECXFY,EC,DR,DIQ,DA,DIC,ECX,PG,LN,Y ;149 adding vars to new line
  1. N ECXDIV,ECXINST,ECXSTA,ECXDIVNO,ECXHDR,ECXFACN,ECXOFAC ;181
  1. K ^TMP("ECXWRD",$J)
  1. S ECXFY=FY-1700
  1. S ECFYB=ECXFY-1_"1000",ECFYE=ECXFY_"1001"
  1. ;gather data
  1. S ECXWD=0,ECXHDR="" ;181 - Added ECXHDR
  1. S ECXWD=0
  1. F S ECXWD=$O(^DIC(42,ECXWD)) Q:'ECXWD I $D(^DIC(42,ECXWD,0)) D
  1. .S EC=^DIC(42,ECXWD,0) D CHK Q:X=1
  1. .S DR=".01;.03;.015;.017;44",DIQ(0)="IE",DIQ="ECX",DA=ECXWD,DIC="^DIC(42," K ECX D EN^DIQ1
  1. .S ECXWDN=$G(ECX(42,ECXWD,.01,"E"))
  1. .;181 - Begins
  1. .S ECXDIVNO=$G(ECX(42,ECXWD,.015,"I")) ;181 - Get DIV ien
  1. .S ECXDIVN=$G(ECX(42,ECXWD,.015,"E")) S:ECXDIVN="" ECXDIVN="UNKNOWN"
  1. .S ECXFACN=""
  1. .I ECXDIVNO'="" D
  1. ..S DIC="^DG(40.8,",DR="1",DIQ(0)="I",DIQ="ECXDIV",DA=ECXDIVNO K ECXDIV D EN^DIQ1
  1. ..S ECXFACN=ECXDIV(40.8,ECXDIVNO,1,"I")
  1. .S ECXDIVN=ECXDIVN_" - "_ECXFACN ;Facility Number of the Medical Center Division
  1. .;181 - Ends
  1. .S ^TMP("ECXWRD",$J,ECXDIVN,ECXWDN)=$G(ECX(42,ECXWD,44,"I"))_U_$G(ECX(42,ECXWD,.03,"E"))_U_$G(ECX(42,ECXWD,.017,"E"))_U
  1. .I ECXFACN'="" S ECXHDR(ECXFACN)="" ;181
  1. .I $D(^ECX(727.4,ECXWD)) D
  1. ..S ECXDEPT=$P(^ECX(727.4,ECXWD,0),U,2) Q:ECXDEPT=""
  1. ..D REVERSE^ECXDSSD(ECXDEPT,.ECXDESC)
  1. ..S ^TMP("ECXWRD",$J,ECXDIVN,ECXWDN)=^TMP("ECXWRD",$J,ECXDIVN,ECXWDN)_ECXDEPT_U_ECXDESC
  1. D GETOFAC(.ECXHDR,.ECXOFAC) ; 181 - Get other Facility Number contains 9A,"B" or "P"
  1. S (ECXHDR,ECXSTA,ECXFACN)="" ;181
  1. F S ECXFACN=$O(ECXHDR(ECXFACN)) Q:ECXFACN="" S ECXHDR=ECXHDR_ECXFACN_"," ;181
  1. S ECXHDR=ECXHDR_ECXOFAC ;181
  1. ;print the report
  1. S (PG,QFLG)=0,$P(LN,"-",130)="" D NOW^%DTC S Y=$E(%,1,12) X ^DD("DD") S HDT=Y
  1. I '$G(ECXPORT) D HDR ;149
  1. I '$G(ECXPORT) I '$D(^TMP("ECXWRD",$J)) W !!,"NO DATA FOUND FOR THIS REPORT" Q ;149
  1. I $G(ECXPORT) S ^TMP($J,"ECXPORT",0)=^TMP($J,"ECXPORT",0)_ECXHDR ;181
  1. S ECXDIVN=""
  1. F S ECXDIVN=$O(^TMP("ECXWRD",$J,ECXDIVN)) Q:ECXDIVN="" Q:QFLG D
  1. .I '$G(ECXPORT) D:$Y+4>IOSL HDR Q:QFLG ;149
  1. .W:'$G(ECXPORT) !!,"DIVISION: ",ECXDIVN S ECXWDN="" D ;149
  1. ..F S ECXWDN=$O(^TMP("ECXWRD",$J,ECXDIVN,ECXWDN)) Q:ECXWDN="" Q:QFLG D
  1. ...S DATA=^TMP("ECXWRD",$J,ECXDIVN,ECXWDN),ECXDEPT=$P(DATA,U,4)
  1. ...I $G(ECXPORT) S ^TMP($J,"ECXPORT",CNT)=$P(ECXDIVN," - ",2)_U_$P(ECXDIVN," - ")_U_ECXWDN_U_ECXDEPT_U_$P(DATA,U,1,3),CNT=CNT+1 Q ;149,181 - Add Station Number as the first column
  1. ...D:$Y+4>IOSL HDR Q:QFLG W !?5,$E(ECXWDN,1,20),?30,ECXDEPT,?45,$P(DATA,U,1),?60,$E($P(DATA,U,2),1,18),?80,$P(DATA,U,3)
  1. ...Q:ECXDEPT=""
  1. ...I '$G(ECXPORT) D:$Y+4>IOSL HDR Q:QFLG ;149
  1. ...;W !?30,"[Svc: "_$E($P(DATA,U,5),1,20)_" "_"Prod. Unit: "_$E($P(DATA,U,6),1,40)_" "_"Div: "_$P(DATA,U,7)_"]",!
  1. I '$G(ECXPORT) I $E(IOST)="C"&('QFLG) S DIR(0)="E" D D ^DIR K DIR ;149
  1. .S SS=22-$Y F JJ=1:1:SS W !
  1. I '$G(ECXPORT) W:$E(IOST)'="C" @IOF D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@" ;149
  1. K ECXDIVN,ECFYB,ECFYE,ECXWD,ECXWDN,ECXDEPT,ECXDESC,FY,^TMP("ECXWRD",$J)
  1. Q
  1. ;
  1. CHK ;has this ward been active?
  1. ; output
  1. ; X = 1 if inactive (out-of-service), 0 otherwise
  1. ;
  1. N ECX,ECY
  1. N DR,DIQ,DIC,ECXWARD ;181
  1. S X=1 Q:'$D(ECXWD) S ECY=ECFYB
  1. S DR=400,DA=ECXWD,DIQ="ECXWARD",DIC="^DIC(42," K ECXWARD D EN^DIQ1 ;181
  1. I $G(ECXWARD(42,ECXWD,400))="" S X=1 Q ;181
  1. I '$O(^DIC(42,ECXWD,"OOS",0)) S X=0 Q
  1. S ECX=+$O(^DIC(42,ECXWD,"OOS","AINV",9999998.9-ECY)),ECX=$S($D(^DIC(42,ECXWD,"OOS",+$O(^(+ECX,0)),0)):^(0),1:"")
  1. I '$P(ECX,U,6) S X=0 Q
  1. I $P(ECX,U,6),'$P(ECX,U,4) S X=1 Q
  1. I $P(ECX,U,6),$P(ECX,U,4)<ECFYE S X=0 Q
  1. S X=1
  1. Q
  1. ;
  1. HDR ;header and page control
  1. I $E(IOST)="C" S SS=22-$Y F JJ=1:1:SS W !
  1. I $E(IOST)="C",PG>0 S DIR(0)="E" W ! D ^DIR K DIR I 'Y S QFLG=1 Q
  1. S PG=PG+1 W:$Y!($E(IOST)="C") @IOF W !,"Active Wards for FY",FY,!,"Printed on ",HDT,! ;181 - Update the header
  1. W !,"Expected Divisions with Active Ward/s: ",ECXHDR,! ;181
  1. W !?30,"DSS",?45,"Pointer",?60,"Ward",?80,"Ward"
  1. W !?5,"WARD",?30,"Department",?45,"to File #44",?60,"Service",?80,"Specialty"
  1. W !,LN
  1. Q
  1. ;
  1. GETSTAT(DIVNUM,STATNO,FACNUM) ; 181 - Added the following sections
  1. ;Get Station number from the Institution file #4
  1. ;Get Facility Number from Medical Division file #40.8
  1. N DIQ,DR,DA,DIC,INST,ECX
  1. S DIC="^DG(40.8,",DR="1;.07",DIQ(0)="I",DIQ="ECX",DA=DIVNUM K ECX D EN^DIQ1
  1. S FACNUM=ECX(40.8,DIVNUM,1,"I")
  1. K DIQ
  1. S DIC=4,DR="99",DIQ(0)="I",DIQ="ECX",DA=ECX(40.8,DIVNUM,.07,"I") K ECX D EN^DIQ1
  1. S STATNO=$G(ECX(4,DA,99,"I"))
  1. Q
  1. GETOFAC(HDR,OFAC) ;181
  1. ;Get Facility Number which contains "9A","B" or "P" from Medical Division file #40.8
  1. N DIC,DIVNUM,ECX,FACNUM
  1. N DIC,ECXDIV,ECXFAC,ECX,TMPFAC
  1. S ECXDIV=0,OFAC=""
  1. F S ECXDIV=$O(^DG(40.8,ECXDIV)) Q:'ECXDIV D
  1. .S DIC="^DG(40.8,",DR="1;.07",DIQ(0)="I",DIQ="ECX",DA=ECXDIV K ECX D EN^DIQ1
  1. .S ECXFAC=$G(ECX(40.8,ECXDIV,1,"I"))
  1. .S TMPFAC=$S($E(ECXFAC,4,5)="9A":ECXFAC,($E(ECXFAC,4)="B"):ECXFAC,($E(ECXFAC,4)="P"):ECXFAC,1:"")
  1. .I TMPFAC="" Q
  1. .S ECXINST=$G(ECX(40.8,ECXDIV,.07,"I"))
  1. .I ECXINST="" Q
  1. .K DIQ
  1. .S DIC=4,DR="101",DIQ(0)="I",DIQ="ECX",DA=ECXINST K ECX D EN^DIQ1
  1. .I $G(ECX(4,ECXINST,101,"I")) Q ;Medical Division points to Inactive Institution
  1. .I '$D(HDR(ECXFAC)) S OFAC=OFAC_TMPFAC_","
  1. S OFAC=$E(OFAC,1,$L(OFAC)-1)
  1. Q