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

ECXTSR.m

Go to the documentation of this file.
  1. ECXTSR ;MBS/BAH - Pharmacy DSS Extract Treating Specialty Report ;4/5/24 11:53
  1. ;;3.0;DSS EXTRACTS;**190**;Dec 22, 1997;Build 36
  1. ;
  1. EN ;entry point from option
  1. N STOP,REPORT,DIVISION,SDATE,EDATE,X,TMP,ECXPORT,CNT,TXTYPE,ECXPAT,ECRUN,DATE,Y
  1. S STOP=0
  1. ; get today's date
  1. D NOW^%DTC S DATE=X,Y=$E(%,1,12) D DD^%DT S ECRUN=Y K %DT
  1. ;Select date range
  1. D DATES Q:STOP
  1. S ECXPORT=$$EXPORT^ECXUTL1 Q:ECXPORT=-1 I $G(ECXPORT) D Q
  1. .K ^TMP($J,"ECXPORT")
  1. .S ^TMP($J,"ECXPORT",0)="PTF CODE^NAME^STATUS^EFFECTIVE DATE^STATUS CHANGED",CNT=0
  1. .D GETDATA
  1. .D DETAIL
  1. .D EXPDISP^ECXUTL1
  1. .K ^TMP($J,"ECXPORT"),^TMP($J,"ECXTSR")
  1. ;Queue Report
  1. N ZTDESC,ZTIO,ZTSAVE
  1. F X="SDATE","EDATE","ECRUN","STOP" S ZTSAVE(X)=""
  1. S ZTIO=""
  1. S ZTDESC="DSS Extract Treating Specialty Report"
  1. W !!,"This report requires 132 column format."
  1. D EN^XUTMDEVQ("EN1^ECXTSR",ZTDESC,.ZTSAVE)
  1. Q
  1. ;
  1. EN1 ;Init variables
  1. N PAGE,LN
  1. S PAGE=0
  1. D HEADER I STOP D EXIT Q
  1. D GETDATA I STOP D EXIT Q
  1. I '$O(^TMP($J,"ECXTSR",0)) D Q
  1. .W !
  1. .W !,"************************************************************"
  1. .W !,"* NOTHING TO REPORT FOR TREATING SPECIALTY REPORT *"
  1. .W !,"************************************************************"
  1. .D WAIT
  1. .D EXIT
  1. D DETAIL I STOP D EXIT Q
  1. EXIT Q
  1. ;
  1. DATES ;Prompt for start date
  1. N DIR,DIRUT,X,Y
  1. S DIR(0)="D^:NOW:EX"
  1. S DIR("A")="Enter Report Start Date"
  1. S DIR("B")=$$FMTE^XLFDT($$NOW^XLFDT,"1D")
  1. D ^DIR
  1. I $D(DIRUT) S STOP=1 Q
  1. S SDATE=Y
  1. ;Prompt for end date
  1. K DIR,DIRUT,X,Y
  1. S DIR(0)="D^:NOW:EX"
  1. S DIR("A")="Enter Report End Date"
  1. S DIR("B")=$$FMTE^XLFDT($$NOW^XLFDT,"1D")
  1. D ^DIR
  1. I $D(DIRUT) S STOP=1 Q
  1. S EDATE=Y
  1. Q
  1. ;
  1. S PAGE=$G(PAGE)+1,$P(LN,"=",91)=""
  1. W @IOF
  1. W !,"Treating Specialty Report",?80,$$RJ^XLFSTR("PAGE: "_PAGE,10)
  1. W !,"Start Date: "_$$FMTE^XLFDT(SDATE),?49,"Report Run Date/Time: "_ECRUN
  1. W !,"End Date: "_$$FMTE^XLFDT(EDATE),!
  1. W !,"Note: '*' beside the status indicates status was changed during report period."
  1. W !,"PTF Code Name Status Effective Date"
  1. W !,LN
  1. Q
  1. ;
  1. GETDATA ;Get data from Specialty File
  1. N ACTIVE,DATE,EFDT,EFDTI,ECXTSRD,ENDATE,ERROR,IEN,NAME,PTFC,STATCH,STATUS
  1. S DATE=SDATE-.1,ENDATE=EDATE+.999
  1. K ^TMP($J,"ECXTSR")
  1. S IEN=0 F S IEN=$O(^DIC(42.4,IEN)) Q:'IEN D
  1. .K ^TMP($J,"ECXTSRD")
  1. .S STATUS="DOES NOT EXIST",STATCH=0 ; Default to Specialty not existing at the time
  1. .D GETS^DIQ(42.4,IEN_",","*","EI",$NA(^TMP($J,"ECXTSRD")))
  1. .S ECXTSRD=$NA(^TMP($J,"ECXTSRD",42.4,IEN_","))
  1. .S NAME=$G(@ECXTSRD@(.01,"E")),PTFC=$G(@ECXTSRD@(7,"E"))
  1. .S EFDT=$O(^DIC(42.4,IEN,"E","B",ENDATE),-1)
  1. .I EFDT]"" D
  1. ..S EFDTI=$O(^DIC(42.4,IEN,"E","B",EFDT,0))
  1. ..S ACTIVE=$$GET1^DIQ(42.41,EFDTI_","_IEN_",",.02,"I"),STATUS=$S(+ACTIVE:"ACTIVE",1:"INACTIVE")
  1. ..S STATCH=$$STATCH(IEN,EFDT,SDATE,EDATE)
  1. .S:EFDT="" EFDT="N/A"
  1. .S ^TMP($J,"ECXTSR",IEN)=PTFC_U_NAME_U_STATUS_$S(STATCH:"*",1:"")_U_$$FMTE^XLFDT(EFDT,"2Z")
  1. Q
  1. ;
  1. STATCH(IEN,EFDT,SDATE,EDATE) ;Check if status changed during report period
  1. Q EFDT'<SDATE&(EFDT'>EDATE)
  1. ;
  1. DETAIL ;Print report
  1. N I
  1. S I=0 F S I=$O(^TMP($J,"ECXTSR",I)) Q:'+I D Q:STOP
  1. .S X=$G(^TMP($J,"ECXTSR",I))
  1. .I $G(ECXPORT) D Q
  1. ..I $P(X,U,3)["*" S $P(X,U,3)=$P($P(X,U,3),"*"),$P(X,U,5)="*"
  1. ..S CNT=$G(CNT)+1,^TMP($J,"ECXPORT",CNT)=X
  1. .W !,$P(X,U),?17,$P(X,U,2),?49,$P(X,U,3),?66,$P(X,U,4)
  1. .I $Y>(IOSL-5) D WAIT Q:STOP D HEADER
  1. Q
  1. ;
  1. WAIT ;End of page logic
  1. ;Input ; None
  1. ;Output ; STOP - Flag indicating if printing should continue
  1. ; 1 = Stop 0 = Continue
  1. ;
  1. S STOP=0
  1. ;CRT - Prompt for continue
  1. I $E(IOST,1,2)="C-" D Q
  1. .F Q:$Y>(IOSL-3) W !
  1. .N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
  1. .S DIR(0)="E"
  1. .D ^DIR
  1. .S STOP=$S(Y'=1:1,1:0)
  1. ;Background task - check taskman
  1. S STOP=$$S^%ZTLOAD()
  1. I STOP D
  1. .W !,"*********************************************"
  1. .W !,"* PRINTING OF REPORT STOPPED AS REQUESTED *"
  1. .W !,"*********************************************"
  1. Q