| 1 | GMTSPCD ; SLC/DLT,KER - Queue HS Batch Print Clinic by Date ; 08/27/2002 [1/26/05 11:22am]
 | 
|---|
| 2 |  ;;2.7;Health Summary;**28,56,70**;Oct 20, 1995;Build 5
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; External References
 | 
|---|
| 5 |  ;   DBIA  10026  ^DIR
 | 
|---|
| 6 |  ;   DBIA  10063  ^%ZTLOAD
 | 
|---|
| 7 |  ;   DBIA  10040  ^SC("B")
 | 
|---|
| 8 |  ;   DBIA  10040  ^SC(  file #44
 | 
|---|
| 9 |  ;   DBIA  10006  ^DIC  (file #44 and 3.5)
 | 
|---|
| 10 |  ;   DBIA  10000  NOW^%DTC
 | 
|---|
| 11 |  ;                        
 | 
|---|
| 12 | MAIN ; Controls branching
 | 
|---|
| 13 |  W !!,"This option will queue Health Summaries for a specified Visit Date"
 | 
|---|
| 14 |  W !,"for all Outpatient Clinics with Appointments on that Visit Date.",!!
 | 
|---|
| 15 |  N GMTSCDT
 | 
|---|
| 16 |  S GMTSCDT=$$SELDATE Q:GMTSCDT'>0
 | 
|---|
| 17 |  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)))
 | 
|---|
| 18 |  S ZTDTH=Y,ZTIO="",ZTSAVE("GMTSCDT")=""
 | 
|---|
| 19 |  S ZTRTN="CLINICQ^GMTSPCD",ZTDESC="Create Task HS Jobs for Clinics by Visit Date"
 | 
|---|
| 20 |  D ^%ZTLOAD
 | 
|---|
| 21 |  Q
 | 
|---|
| 22 | CLINICQ ; Loop thru clinics for appointments
 | 
|---|
| 23 |  ;   Date stored in GMTSCDT 
 | 
|---|
| 24 |  N GMTSARR,GMTSCNT,GMTSLOC,GMTSCL,GMTSTYP,GMTSJ
 | 
|---|
| 25 |  ;GET ALL APPOINTMENTS ON DATE GMTSCDT
 | 
|---|
| 26 |  S GMTSARR(1)=GMTSCDT_";"_GMTSCDT,GMTSARR("FLDS")="1;2",GMTSCNT=$$SDAPI^SDAMA301(.GMTSARR)
 | 
|---|
| 27 |  ;IF ERROR IN SDAPI CALL, SEND MESSAGE AND QUIT
 | 
|---|
| 28 |  I GMTSCNT<0 D MAIL^GMTSMAIL("SCHEDULING DATABASE ERROR "_GMTSCNT,"HS Batch Print Clinic by Date") K ^TMP($J,"SDAMA301") Q
 | 
|---|
| 29 |  ;LOOP THROUGH RETURN ARRAY AND SORT BY CLINIC NAME REMOVING ANY CLINIC THAT IS NOT OF TYPE "C"
 | 
|---|
| 30 |  I GMTSCNT>0 D
 | 
|---|
| 31 |  .N GMTSI S GMTSI=0 F  S GMTSI=$O(^TMP($J,"SDAMA301",GMTSI)) Q:'GMTSI  D
 | 
|---|
| 32 |  ..Q:$P($G(^SC(GMTSI,0)),U,3)'="C"
 | 
|---|
| 33 |  ..N NAME,DFN,TIME,TEMP,TYPE
 | 
|---|
| 34 |  ..S DFN=$O(^TMP($J,"SDAMA301",GMTSI,0))
 | 
|---|
| 35 |  ..S TIME=$O(^TMP($J,"SDAMA301",GMTSI,DFN,0))
 | 
|---|
| 36 |  ..S TEMP=$P(^TMP($J,"SDAMA301",GMTSI,DFN,TIME),U,2)
 | 
|---|
| 37 |  ..S NAME=$P(TEMP,";",2)
 | 
|---|
| 38 |  ..S TYPE=0,TYPE=$O(^GMT(142,"D",GMTSI,TYPE))
 | 
|---|
| 39 |  ..I +TYPE>0 S ^TMP($J,"GMTSCL",NAME,GMTSI,TYPE)=""
 | 
|---|
| 40 |  ;LOOP THROUGH CLINICS ALPHABETICALLY AND CALL QUEUE WITH GMTSTYP AND GMTSCL SET
 | 
|---|
| 41 |  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
 | 
|---|
| 42 |  K ^TMP($J,"GMTSCL"),^TMP($J,"SDAMA301")
 | 
|---|
| 43 |  Q
 | 
|---|
| 44 | QUEUE ; Queues HS batch print for particular HS Type and Location.
 | 
|---|
| 45 |  N DIC,GMPSAP,GMTSCLI,GMTSLOC,GMTSSC,GMTSIO,GMTSDYS,GMV,QUEQIT,X,Y
 | 
|---|
| 46 |  S QUEQIT=0
 | 
|---|
| 47 |  S GMTSCLI=$O(^GMT(142,GMTSTYP,20,"B",GMTSCL,0))
 | 
|---|
| 48 |  S GMTSLOC=$G(^GMT(142,GMTSTYP,20,GMTSCLI,0))
 | 
|---|
| 49 |  S X=+GMTSLOC,DIC=44,DIC(0)="NXZ" D ^DIC
 | 
|---|
| 50 |  I $S(+Y'>0:1,"WCOR"'[$P($G(Y(0)),U,3):1,1:0) Q
 | 
|---|
| 51 |  S GMTSSC(1)=Y_U_$P(Y(0),U,3),$P(GMTSSC(1),U,4)=GMTSCDT
 | 
|---|
| 52 |  S GMPSAP=$S($P(GMTSLOC,U,3)="Y":1,1:0)
 | 
|---|
| 53 |  S ZTIO=$$GETIO($P(GMTSLOC,U,2)) Q:'$L(ZTIO)
 | 
|---|
| 54 |  S ZTDTH=$H,ZTRTN="MAIN^GMTSPL",ZTDESC="Clinic Health Summaries by Visit Date"
 | 
|---|
| 55 |  F GMV="GMTSTYP","GMPSAP" S ZTSAVE(GMV)=""
 | 
|---|
| 56 |  S ZTSAVE("GMTSSC(")=""
 | 
|---|
| 57 |  D ^%ZTLOAD
 | 
|---|
| 58 |  Q
 | 
|---|
| 59 | GETIO(X) ; Get device for queueing
 | 
|---|
| 60 |  N %,%Y,C,DIC,Y
 | 
|---|
| 61 |  S DIC=3.5,DIC(0)="NXZ" D ^DIC S Y=$S(+Y'>0:"",1:$P(Y(0),U))
 | 
|---|
| 62 |  Q Y
 | 
|---|
| 63 | SELDATE() ; Allows entry of Visit/Surgery date or date range
 | 
|---|
| 64 |  ; for Print-by-Clinic
 | 
|---|
| 65 |  N %,%H,%I,DIR,DEFDT,X,Y
 | 
|---|
| 66 |  D NOW^%DTC S (X,DT)=$P(%,".") D REGDT4^GMTSU S DEFDT=X
 | 
|---|
| 67 |  S DIR(0)="D^::EX",DIR("B")=DEFDT
 | 
|---|
| 68 |  S DIR("A")="Please enter the Visit date"
 | 
|---|
| 69 |  D ^DIR
 | 
|---|
| 70 |  I Y="^^" S DIROUT=1
 | 
|---|
| 71 |  Q Y
 | 
|---|