| [613] | 1 | SDOQMP0 ;ALB/SCK - Appointment Monitoring / Performance Measure Rpt. ; [07/23/96]
 | 
|---|
 | 2 |  ;;5.3;SCHEDULING;**47**;AUG 13, 1993
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 |  Q
 | 
|---|
 | 5 | SELECT() ;  Selection method for clinic selection.
 | 
|---|
 | 6 |  ;  Returns:
 | 
|---|
 | 7 |  ;     Y = S, D, or C for Stop Code, Division, or Clinic.
 | 
|---|
 | 8 |  ;     Y = Null for up-arrow or timeout
 | 
|---|
 | 9 |  ;
 | 
|---|
 | 10 |  N Y
 | 
|---|
 | 11 |  S DIR(0)="SM^D:Division;S:Stop Code;C:Clinic"
 | 
|---|
 | 12 |  S DIR("A")="Select clinics by: "
 | 
|---|
 | 13 |  S DIR("?")="Select by either: Stop Code, Division, or Clinic"
 | 
|---|
 | 14 |  S DIR("?",1)="The method by which clinics are selected for this report."
 | 
|---|
 | 15 |  S DIR("B")="S"
 | 
|---|
 | 16 |  D ^DIR K DIR
 | 
|---|
 | 17 |  S:$D(DIRUT) Y=""
 | 
|---|
 | 18 | SELQ Q $G(Y)
 | 
|---|
 | 19 |  ;
 | 
|---|
 | 20 | CLINIC() ;  One-Many-All clinic selection        
 | 
|---|
 | 21 |  ;  Output
 | 
|---|
 | 22 |  ;    CLINIC(IEN)=""
 | 
|---|
 | 23 |  ;
 | 
|---|
 | 24 |  W !!,"Clinic Selection"
 | 
|---|
 | 25 |  S DIC="^SC(",VAUTSTR="Clinic",VAUTVB="CLINIC",VAUTNI=2,DIC("S")="I $P(^(0),U,3)[""C"""
 | 
|---|
 | 26 |  D FIRST^VAUTOMA
 | 
|---|
 | 27 |  I Y<0 K CLINIC
 | 
|---|
 | 28 |  Q $D(CLINIC)>0
 | 
|---|
 | 29 |  ;
 | 
|---|
 | 30 | STOP() ; -- get stop code data        
 | 
|---|
 | 31 |  ; output: VAUTC := stop codes selected (VAUTC=1 for all)        
 | 
|---|
 | 32 |  ; return: was selection made [ 1|yes   0|no]        
 | 
|---|
 | 33 |  ;
 | 
|---|
 | 34 |  W !!,"Stop Code Selection"
 | 
|---|
 | 35 |  S DIC="^DIC(40.7,",VAUTSTR="Stop Code",VAUTVB="VAUTC",VAUTNI=2
 | 
|---|
 | 36 |  D FIRST^VAUTOMA
 | 
|---|
 | 37 |  I Y<0 K VAUTC
 | 
|---|
 | 38 | STOPQ Q $D(VAUTC)>0
 | 
|---|
 | 39 |  ;
 | 
|---|
 | 40 | DIV() ; -- get division data
 | 
|---|
 | 41 |  ;  input: none
 | 
|---|
 | 42 |  ; output: VAUTD := divs selected (VAUTD=1 for all)
 | 
|---|
 | 43 |  ; return: was selection made [ 1|yes   0|no]
 | 
|---|
 | 44 |  ;
 | 
|---|
 | 45 |  W:$P($G(^DG(43,1,"GL")),U,2) !!,"Division Selection"
 | 
|---|
 | 46 |  D ASK2^SDDIV
 | 
|---|
 | 47 |  I Y<0 K VAUTD
 | 
|---|
 | 48 |  Q $D(VAUTD)>0
 | 
|---|
 | 49 |  ;
 | 
|---|
 | 50 | STOPCDE(PMIEN) ;  Get associated stop code number for clinic
 | 
|---|
 | 51 |  ;    Input
 | 
|---|
 | 52 |  ;       PMIEN  -  Ien of clinic in the Hospital location file
 | 
|---|
 | 53 |  ;
 | 
|---|
 | 54 |  ;    Output
 | 
|---|
 | 55 |  ;       Either Stop code number, or 0 if no stop code is found
 | 
|---|
 | 56 |  ;
 | 
|---|
 | 57 |  N PMSC
 | 
|---|
 | 58 |  S PMSC=+$P($G(^DIC(40.7,$P($G(^SC(PMIEN,0)),U,7),0)),U,2)
 | 
|---|
 | 59 |  Q $S(+PMSC>0:PMSC,1:0)
 | 
|---|
 | 60 |  ;
 | 
|---|
 | 61 | CLNOK(PMSC) ; Checks associated stop code for clinic.
 | 
|---|
 | 62 |  ;   Input
 | 
|---|
 | 63 |  ;      PMSC  -  Associated stop code for current clinic
 | 
|---|
 | 64 |  ;
 | 
|---|
 | 65 |  ;   Output
 | 
|---|
 | 66 |  ;     PMOK  -  Returns 1 if stop code is on the list
 | 
|---|
 | 67 |  ;              Returns 0 if it's not on the list.
 | 
|---|
 | 68 |  ;
 | 
|---|
 | 69 |  N PMOK,CNT,PMSTCD
 | 
|---|
 | 70 |  S PMOK=0
 | 
|---|
 | 71 |  F CNT=1:1 S PMSTCD=$P($T(STOPS+CNT^SDOQMPL),";;",2) Q:PMSTCD="$$END"  D  Q:PMOK
 | 
|---|
 | 72 |  . Q:'$D(^DIC(40.7,PMSC,0))
 | 
|---|
 | 73 |  . I $P($G(^DIC(40.7,PMSC,0)),U,2)=PMSTCD S PMOK=1
 | 
|---|
 | 74 |  Q PMOK
 | 
|---|
 | 75 |  ;
 | 
|---|
 | 76 | DIVISION(PMIEN) ; Returns the name of the division the clinic as assigned to.
 | 
|---|
 | 77 |  ;   Input:
 | 
|---|
 | 78 |  ;      Ien of clinic in the Hospital location file.
 | 
|---|
 | 79 |  ;
 | 
|---|
 | 80 |  ;   Output:
 | 
|---|
 | 81 |  ;      Division name in external format.
 | 
|---|
 | 82 |  ;
 | 
|---|
 | 83 |  N PMDIEN,PDIV
 | 
|---|
 | 84 |  S PMDIV=""
 | 
|---|
 | 85 |  S PMDIEN=+$P($G(^SC(PMIEN,0)),U,15)
 | 
|---|
 | 86 |  G:PMDIEN'>0 DIVQ
 | 
|---|
 | 87 |  S PMDIV=$P($G(^DG(40.8,PMDIEN,0)),U)
 | 
|---|
 | 88 | DIVQ Q PMDIV
 | 
|---|
 | 89 |  ;
 | 
|---|
 | 90 | LOOPSC ;  Loops through all clinics in the Hospital location file, and selects clinics that are 
 | 
|---|
 | 91 |  ;  associated with one of the selected stop codes, adding them to the "SDAMMS" TMP global.
 | 
|---|
 | 92 |  ;     If VAUTC=1, then select clinics for all Stop codes.
 | 
|---|
 | 93 |  ;     If VAUTC=0, then select only those clinics for the Stop codes in the 
 | 
|---|
 | 94 |  ;     VAUTC(StopCode Ien) local array.
 | 
|---|
 | 95 |  ; 
 | 
|---|
 | 96 |  N PMSC,AMMSD0
 | 
|---|
 | 97 |  S AMMSD0=0
 | 
|---|
 | 98 |  ;
 | 
|---|
 | 99 |  ; ***  Select all
 | 
|---|
 | 100 |  I VAUTC=1 D
 | 
|---|
 | 101 |  . F  S AMMSD0=$O(^SC("AC","C",AMMSD0)) Q:'AMMSD0  D
 | 
|---|
 | 102 |  .. Q:'$P($G(^SC(AMMSD0,0)),"^",7)
 | 
|---|
 | 103 |  .. Q:$G(^TMP("SDAMMS",$J,"Q"))=1
 | 
|---|
 | 104 |  .. F X1=1:1:3 D AMMSCNT^SDOQMP1 Q:AMMSLAST=0
 | 
|---|
 | 105 |  ;
 | 
|---|
 | 106 |  ; *** Select only clinics with a selected associated stop code 
 | 
|---|
 | 107 |  I VAUTC=0&($D(VAUTC)) D
 | 
|---|
 | 108 |  . F  S AMMSD0=$O(^SC("AC","C",AMMSD0)) Q:'AMMSD0  D
 | 
|---|
 | 109 |  .. Q:'$P($G(^SC(AMMSD0,0)),"^",7)
 | 
|---|
 | 110 |  .. S PMSC=$P($G(^SC(AMMSD0,0)),"^",7)
 | 
|---|
 | 111 |  .. Q:'$D(VAUTC(PMSC))
 | 
|---|
 | 112 |  .. Q:$G(^TMP("SDAMMS",$J,"Q"))=1
 | 
|---|
 | 113 |  .. F X1=1:1:3 D AMMSCNT^SDOQMP1 Q:AMMSLAST=0
 | 
|---|
 | 114 |  Q
 | 
|---|
 | 115 |  ;
 | 
|---|
 | 116 | LOOPD ;  Loops through all clinics in the Hospital location file, and select clinics that are
 | 
|---|
 | 117 |  ; in one of the selected divisions, adding them to the "SDAMMS" TMP global.
 | 
|---|
 | 118 |  ;   If VAUTD=1, then select clinics for all Divisions.
 | 
|---|
 | 119 |  ;   If VAUTD=0, then select only those clinics for the Divisions in the
 | 
|---|
 | 120 |  ;   VAUTC(StopCode Ien) local array.
 | 
|---|
 | 121 |  ;
 | 
|---|
 | 122 |  N PMDIV,AMMSD0
 | 
|---|
 | 123 |  ;
 | 
|---|
 | 124 |  S AMMSD0=0
 | 
|---|
 | 125 |  ;   Select all
 | 
|---|
 | 126 |  I VAUTD=1 D
 | 
|---|
 | 127 |  . F  S AMMSD0=$O(^SC("AC","C",AMMSD0)) Q:'AMMSD0  D
 | 
|---|
 | 128 |  .. Q:'$P($G(^SC(AMMSD0,0)),"^",7)
 | 
|---|
 | 129 |  .. Q:$G(^TMP("SDAMMS",$J,"Q"))=1
 | 
|---|
 | 130 |  .. F X1=1:1:3 D AMMSCNT^SDOQMP1 Q:AMMSLAST=0
 | 
|---|
 | 131 |  ;
 | 
|---|
 | 132 |  I VAUTD=0&($D(VAUTD)) D
 | 
|---|
 | 133 |  . F  S AMMSD0=$O(^SC("AC","C",AMMSD0)) Q:'AMMSD0  D
 | 
|---|
 | 134 |  .. Q:'$P($G(^SC(AMMSD0,0)),"^",7)
 | 
|---|
 | 135 |  .. S PMDIV=$P($G(^SC(AMMSD0,0)),"^",15)
 | 
|---|
 | 136 |  .. Q:PMDIV']""
 | 
|---|
 | 137 |  .. Q:'$D(VAUTD(PMDIV))
 | 
|---|
 | 138 |  .. Q:$G(^TMP("SDAMMS",$J,"Q"))=1
 | 
|---|
 | 139 |  .. F X1=1:1:3 D AMMSCNT^SDOQMP1 Q:AMMSLAST=0
 | 
|---|
 | 140 |  Q
 | 
|---|
 | 141 |  ;
 | 
|---|
 | 142 | CHKTASK() ;  Checks if the expiration date has been reached.  If it has, delete the option
 | 
|---|
 | 143 |  ;  scheduling run time field to turn off the reschedule option
 | 
|---|
 | 144 |  ;
 | 
|---|
 | 145 |  N OIEN,OSIEN,PMTEXT,EXPDT,SDOPT,SDWHN,SDFRQ,SDOK
 | 
|---|
 | 146 |  ;
 | 
|---|
 | 147 |  S SDOK=0
 | 
|---|
 | 148 |  S EXPDT=$P($T(EXPIRE+1^SDOQMPL),";;",2)
 | 
|---|
 | 149 |  D NOW^%DTC
 | 
|---|
 | 150 |  G:$P(%,".")<EXPDT CHKQ
 | 
|---|
 | 151 |  S OIEN="",OIEN=$O(^DIC(19,"B","SDOQM PM NIGHTLY JOB",OIEN))
 | 
|---|
 | 152 |  Q:OIEN']""
 | 
|---|
 | 153 |  S OSIEN="",OSIEN=$O(^DIC(19.2,"B",OIEN,OSIEN))
 | 
|---|
 | 154 |  Q:OSIEN']""
 | 
|---|
 | 155 |  ;
 | 
|---|
 | 156 |  S SDWHN="@",SDFRQ="@",SDOPT="SDOQM PM NIGHTLY JOB"
 | 
|---|
 | 157 |  D RESCH^XUTMOPT(SDOPT,SDWHN,"",SDFRQ,"",.SCERR)
 | 
|---|
 | 158 |  ;
 | 
|---|
 | 159 |  S PMTEXT(1)="The Access Performance Measure data collection job"
 | 
|---|
 | 160 |  S PMTEXT(2)="has expired, and the background server has been unscheduled"
 | 
|---|
 | 161 |  S PMTEXT(3)=""
 | 
|---|
 | 162 |  S PMTEXT(4)="The entry in the SCHEDULING OPTION file should be removed"
 | 
|---|
 | 163 |  S PMTEXT(5)="by your IRM staff"
 | 
|---|
 | 164 |  S XMSUB="PM EXTRACT EXPIRATION",XMN=0
 | 
|---|
 | 165 |  S XMTEXT="PMTEXT("
 | 
|---|
 | 166 |  S XMDUZ=.5,XMY("G.SD PM NOTIFICATION")=""
 | 
|---|
 | 167 |  D ^XMD
 | 
|---|
 | 168 |  S SDOK=1
 | 
|---|
 | 169 | CHKQ Q SDOK
 | 
|---|
 | 170 |  ;
 | 
|---|
 | 171 | LOOPS ;  Use appropriate loop for building the clinic global.
 | 
|---|
 | 172 |  ;
 | 
|---|
 | 173 |  I $D(CLINIC) D LOOPC^SDOQMP Q
 | 
|---|
 | 174 |  I $D(VAUTC) D LOOPSC Q
 | 
|---|
 | 175 |  I $D(VAUTD) D LOOPD Q
 | 
|---|
 | 176 |  Q
 | 
|---|