GMTSPCD ; SLC/DLT,KER - Queue HS Batch Print Clinic by Date ; 08/27/2002 [1/26/05 11:22am] ;;2.7;Health Summary;**28,56,70**;Oct 20, 1995;Build 5 ; ; External References ; DBIA 10026 ^DIR ; DBIA 10063 ^%ZTLOAD ; DBIA 10040 ^SC("B") ; DBIA 10040 ^SC( file #44 ; DBIA 10006 ^DIC (file #44 and 3.5) ; DBIA 10000 NOW^%DTC ; MAIN ; Controls branching W !!,"This option will queue Health Summaries for a specified Visit Date" W !,"for all Outpatient Clinics with Appointments on that Visit Date.",!! N GMTSCDT S GMTSCDT=$$SELDATE Q:GMTSCDT'>0 W ! N DIR S DIR(0)="D^::%DT",DIR("A")="Date and Time to Queue this Job to run",DIR("B")="NOW" D ^DIR Q:($D(DTOUT)!($D(DUOUT))!($D(DIROUT))) S ZTDTH=Y,ZTIO="",ZTSAVE("GMTSCDT")="" S ZTRTN="CLINICQ^GMTSPCD",ZTDESC="Create Task HS Jobs for Clinics by Visit Date" D ^%ZTLOAD Q CLINICQ ; Loop thru clinics for appointments ; Date stored in GMTSCDT N GMTSARR,GMTSCNT,GMTSLOC,GMTSCL,GMTSTYP,GMTSJ ;GET ALL APPOINTMENTS ON DATE GMTSCDT S GMTSARR(1)=GMTSCDT_";"_GMTSCDT,GMTSARR("FLDS")="1;2",GMTSCNT=$$SDAPI^SDAMA301(.GMTSARR) ;IF ERROR IN SDAPI CALL, SEND MESSAGE AND QUIT I GMTSCNT<0 D MAIL^GMTSMAIL("SCHEDULING DATABASE ERROR "_GMTSCNT,"HS Batch Print Clinic by Date") K ^TMP($J,"SDAMA301") Q ;LOOP THROUGH RETURN ARRAY AND SORT BY CLINIC NAME REMOVING ANY CLINIC THAT IS NOT OF TYPE "C" I GMTSCNT>0 D .N GMTSI S GMTSI=0 F S GMTSI=$O(^TMP($J,"SDAMA301",GMTSI)) Q:'GMTSI D ..Q:$P($G(^SC(GMTSI,0)),U,3)'="C" ..N NAME,DFN,TIME,TEMP,TYPE ..S DFN=$O(^TMP($J,"SDAMA301",GMTSI,0)) ..S TIME=$O(^TMP($J,"SDAMA301",GMTSI,DFN,0)) ..S TEMP=$P(^TMP($J,"SDAMA301",GMTSI,DFN,TIME),U,2) ..S NAME=$P(TEMP,";",2) ..S TYPE=0,TYPE=$O(^GMT(142,"D",GMTSI,TYPE)) ..I +TYPE>0 S ^TMP($J,"GMTSCL",NAME,GMTSI,TYPE)="" ;LOOP THROUGH CLINICS ALPHABETICALLY AND CALL QUEUE WITH GMTSTYP AND GMTSCL SET S GMTSJ="" F S GMTSJ=$O(^TMP($J,"GMTSCL",GMTSJ)) Q:'$L(GMTSJ) S GMTSCL=$O(^TMP($J,"GMTSCL",GMTSJ,0)) Q:'GMTSCL S GMTSTYP=$O(^TMP($J,"GMTSCL",GMTSJ,GMTSCL,0)) D QUEUE K ^TMP($J,"GMTSCL"),^TMP($J,"SDAMA301") Q QUEUE ; Queues HS batch print for particular HS Type and Location. N DIC,GMPSAP,GMTSCLI,GMTSLOC,GMTSSC,GMTSIO,GMTSDYS,GMV,QUEQIT,X,Y S QUEQIT=0 S GMTSCLI=$O(^GMT(142,GMTSTYP,20,"B",GMTSCL,0)) S GMTSLOC=$G(^GMT(142,GMTSTYP,20,GMTSCLI,0)) S X=+GMTSLOC,DIC=44,DIC(0)="NXZ" D ^DIC I $S(+Y'>0:1,"WCOR"'[$P($G(Y(0)),U,3):1,1:0) Q S GMTSSC(1)=Y_U_$P(Y(0),U,3),$P(GMTSSC(1),U,4)=GMTSCDT S GMPSAP=$S($P(GMTSLOC,U,3)="Y":1,1:0) S ZTIO=$$GETIO($P(GMTSLOC,U,2)) Q:'$L(ZTIO) S ZTDTH=$H,ZTRTN="MAIN^GMTSPL",ZTDESC="Clinic Health Summaries by Visit Date" F GMV="GMTSTYP","GMPSAP" S ZTSAVE(GMV)="" S ZTSAVE("GMTSSC(")="" D ^%ZTLOAD Q GETIO(X) ; Get device for queueing N %,%Y,C,DIC,Y S DIC=3.5,DIC(0)="NXZ" D ^DIC S Y=$S(+Y'>0:"",1:$P(Y(0),U)) Q Y SELDATE() ; Allows entry of Visit/Surgery date or date range ; for Print-by-Clinic N %,%H,%I,DIR,DEFDT,X,Y D NOW^%DTC S (X,DT)=$P(%,".") D REGDT4^GMTSU S DEFDT=X S DIR(0)="D^::EX",DIR("B")=DEFDT S DIR("A")="Please enter the Visit date" D ^DIR I Y="^^" S DIROUT=1 Q Y