| 1 | SCRPV1B ; bp/djb - PCMM Inconsistency Rpt - Print ; 9/13/99 3:23pm
 | 
|---|
| 2 |  ;;5.3;Scheduling;**177,231**;AUG 13, 1993
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | EN ;
 | 
|---|
| 5 |  NEW PAGE,QUIT
 | 
|---|
| 6 |  S QUIT=0
 | 
|---|
| 7 |  D HD
 | 
|---|
| 8 |  D POSITION Q:QUIT
 | 
|---|
| 9 |  D PATIENT
 | 
|---|
| 10 |  Q
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 | POSITION ;Print position inconsistencies.
 | 
|---|
| 13 |  NEW NUM,POS,TM,TXT
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 |  W !!,"POSITION INCONSISTENCIES"
 | 
|---|
| 16 |  W !,"------------------------",!
 | 
|---|
| 17 |  I '$D(^TMP("PCMM POSITION",$J)) W !?3,"No inconsistencies found." Q
 | 
|---|
| 18 |  I SCMODE="B" D BRIEFPOS^SCRPV1B1 Q  ;Report type = Brief
 | 
|---|
| 19 |  W !?3,"INCONSISTENCY"
 | 
|---|
| 20 |  W !?6,"TEAM",?38,"POSITION",!
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 |  ;Process the POSITION array
 | 
|---|
| 23 |  S NUM=0
 | 
|---|
| 24 |  F  S NUM=$O(^TMP("PCMM POSITION",$J,NUM)) Q:'NUM!QUIT  D  ;
 | 
|---|
| 25 |  . S TXT=$T(TXT+NUM)
 | 
|---|
| 26 |  . S TXT=$P(TXT,";",4)
 | 
|---|
| 27 |  . I $Y>(IOSL-6) D PAUSE Q:QUIT
 | 
|---|
| 28 |  . W !?3,TXT
 | 
|---|
| 29 |  . S TM=""
 | 
|---|
| 30 |  . F  S TM=$O(^TMP("PCMM POSITION",$J,NUM,TM)) Q:TM=""!QUIT  D
 | 
|---|
| 31 |  .. S POS=""
 | 
|---|
| 32 |  .. F  S POS=$O(^TMP("PCMM POSITION",$J,NUM,TM,POS)) Q:POS=""!QUIT  D
 | 
|---|
| 33 |  ... I $Y>(IOSL-6) D PAUSE Q:QUIT
 | 
|---|
| 34 |  ... W !,?6,TM,?38,POS
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 | PATIENT ;Print patient inconsistencies
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 |  I $Y>(IOSL-7) D PAUSE Q:QUIT
 | 
|---|
| 40 |  W !!,"PATIENT INCONSISTENCIES"
 | 
|---|
| 41 |  W !,"-----------------------",!
 | 
|---|
| 42 |  I '$D(^TMP("PCMM PATIENT",$J)) D  Q
 | 
|---|
| 43 |  . W !?3,"No inconsistencies found.",!
 | 
|---|
| 44 |  I $Y>(IOSL-6) D PAUSE Q:QUIT
 | 
|---|
| 45 |  I SCMODE="B" D BRIEFPT^SCRPV1B1 Q  ;Report type = Brief
 | 
|---|
| 46 |  I SCMODE="DP" D PATIENT1 Q
 | 
|---|
| 47 |  I SCMODE="DT" D PATIENT2 Q
 | 
|---|
| 48 |  Q
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 | PATIENT1 ;Patient printout sorted by patient name.
 | 
|---|
| 51 |  NEW DFN,DFNNAM,NUM,POS,SSN,TM,TXT,VAR
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 |  W !?3,"PATIENT",?41,"SSN"
 | 
|---|
| 54 |  W !?6,"INCONSISTENCY"
 | 
|---|
| 55 |  W !?9,"TEAM",?41,"POSITION",!
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 |  ;Process the PATIENT array
 | 
|---|
| 58 |  S DFNNAM=""
 | 
|---|
| 59 |  F  S DFNNAM=$O(^TMP("PCMM PATIENT",$J,DFNNAM)) Q:DFNNAM=""!QUIT  D  ;
 | 
|---|
| 60 |  . S DFN=0
 | 
|---|
| 61 |  . F  S DFN=$O(^TMP("PCMM PATIENT",$J,DFNNAM,DFN)) Q:'DFN!QUIT  D  ;
 | 
|---|
| 62 |  .. I $Y>(IOSL-6) D PAUSE Q:QUIT
 | 
|---|
| 63 |  .. S SSN=$P($G(^DPT(DFN,0)),U,9)
 | 
|---|
| 64 |  .. W !?3,DFNNAM,?41,SSN
 | 
|---|
| 65 |  .. S NUM=0
 | 
|---|
| 66 |  .. F  S NUM=$O(^TMP("PCMM PATIENT",$J,DFNNAM,DFN,NUM)) Q:'NUM!QUIT  D
 | 
|---|
| 67 |  ... S VAR=0
 | 
|---|
| 68 |  ... ;If number is 8.1, 8.2 or 8.3, substitute in 3 choices below.
 | 
|---|
| 69 |  ... I NUM?1"8.".E S VAR=$P(NUM,".",2)
 | 
|---|
| 70 |  ... S TXT=$T(TXT+(NUM\1))
 | 
|---|
| 71 |  ... S TXT=$P(TXT,";",4)
 | 
|---|
| 72 |  ... I VAR D  ;
 | 
|---|
| 73 |  .... S VAR=$S(VAR=1:"Team Assignment",VAR=2:"Team",1:"Position")
 | 
|---|
| 74 |  .... S TXT=$P(TXT,"[]",1)_VAR_$P(TXT,"[]",2)
 | 
|---|
| 75 |  ... I $Y>(IOSL-6) D PAUSE Q:QUIT
 | 
|---|
| 76 |  ... ;W !?6,(NUM\1),". ",TXT
 | 
|---|
| 77 |  ... W !?6,TXT
 | 
|---|
| 78 |  ... S TM=""
 | 
|---|
| 79 |  ... F  S TM=$O(^TMP("PCMM PATIENT",$J,DFNNAM,DFN,NUM,TM)) Q:TM=""!QUIT  D
 | 
|---|
| 80 |  .... S POS=""
 | 
|---|
| 81 |  .... F  S POS=$O(^TMP("PCMM PATIENT",$J,DFNNAM,DFN,NUM,TM,POS)) Q:POS=""!QUIT  D
 | 
|---|
| 82 |  ..... I $Y>(IOSL-6) D PAUSE Q:QUIT
 | 
|---|
| 83 |  ..... W !?9,TM,?41,POS
 | 
|---|
| 84 |  ..... ;
 | 
|---|
| 85 |  ..... ;Print 404.43 IEN if SCIEN is set to 1 before calling ^SCRPV1.
 | 
|---|
| 86 |  ..... I $G(SCIEN) D  ;
 | 
|---|
| 87 |  ...... I $G(^TMP("PCMM PATIENT",$J,DFNNAM,DFN,NUM,TM,POS)) W ?72,^(POS)
 | 
|---|
| 88 |  Q
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 | PATIENT2 ;Patient printout sorted by inconsistency number and then team name.
 | 
|---|
| 91 |  NEW DFN,DFNNAM,NUM,POS,SSN,TM,TXT,VAR
 | 
|---|
| 92 |  ;
 | 
|---|
| 93 |  W !,"INCONSISTENCY"
 | 
|---|
| 94 |  W !?3,"TEAM"
 | 
|---|
| 95 |  W !?6,"PATIENT",?38,"SSN",?50,"POSITION",!
 | 
|---|
| 96 |  ;
 | 
|---|
| 97 |  KILL ^TMP("PCMM PATIENT1",$J)
 | 
|---|
| 98 |  ;
 | 
|---|
| 99 |  ;Reorder PATIENT array
 | 
|---|
| 100 |  S DFNNAM=""
 | 
|---|
| 101 |  F  S DFNNAM=$O(^TMP("PCMM PATIENT",$J,DFNNAM)) Q:DFNNAM=""  D  ;
 | 
|---|
| 102 |  . S DFN=0
 | 
|---|
| 103 |  . F  S DFN=$O(^TMP("PCMM PATIENT",$J,DFNNAM,DFN)) Q:'DFN  D  ;
 | 
|---|
| 104 |  .. S NUM=0
 | 
|---|
| 105 |  .. F  S NUM=$O(^TMP("PCMM PATIENT",$J,DFNNAM,DFN,NUM)) Q:'NUM  D  ;
 | 
|---|
| 106 |  ... S TM=""
 | 
|---|
| 107 |  ... F  S TM=$O(^TMP("PCMM PATIENT",$J,DFNNAM,DFN,NUM,TM)) Q:TM=""  D
 | 
|---|
| 108 |  .... S POS=""
 | 
|---|
| 109 |  .... F  S POS=$O(^TMP("PCMM PATIENT",$J,DFNNAM,DFN,NUM,TM,POS)) Q:POS=""  D
 | 
|---|
| 110 |  ..... S ^TMP("PCMM PATIENT1",$J,NUM,TM,DFNNAM,DFN,POS)=""
 | 
|---|
| 111 |  ;
 | 
|---|
| 112 |  ;Process new array
 | 
|---|
| 113 |  S NUM=0
 | 
|---|
| 114 |  F  S NUM=$O(^TMP("PCMM PATIENT1",$J,NUM)) Q:'NUM!QUIT  D  ;
 | 
|---|
| 115 |  . S VAR=0
 | 
|---|
| 116 |  . ;If number is 8.1, 8.2 or 8.3, substitute in 3 choices below.
 | 
|---|
| 117 |  . I NUM?1"8.".E S VAR=$P(NUM,".",2)
 | 
|---|
| 118 |  . S TXT=$T(TXT+(NUM\1))
 | 
|---|
| 119 |  . S TXT=$P(TXT,";",4)
 | 
|---|
| 120 |  . I VAR D  ;
 | 
|---|
| 121 |  .. S VAR=$S(VAR=1:"Team Assignment",VAR=2:"Team",1:"Position")
 | 
|---|
| 122 |  .. S TXT=$P(TXT,"[]",1)_VAR_$P(TXT,"[]",2)
 | 
|---|
| 123 |  . ;
 | 
|---|
| 124 |  . I $Y>(IOSL-6) D PAUSE Q:QUIT
 | 
|---|
| 125 |  . W !,TXT
 | 
|---|
| 126 |  . ;
 | 
|---|
| 127 |  . S TM=""
 | 
|---|
| 128 |  . F  S TM=$O(^TMP("PCMM PATIENT1",$J,NUM,TM)) Q:TM=""!QUIT  D  ;
 | 
|---|
| 129 |  .. I $Y>(IOSL-6) D PAUSE Q:QUIT
 | 
|---|
| 130 |  .. W !?3,TM
 | 
|---|
| 131 |  .. S DFNNAM=""
 | 
|---|
| 132 |  .. F  S DFNNAM=$O(^TMP("PCMM PATIENT1",$J,NUM,TM,DFNNAM)) Q:DFNNAM=""!QUIT  D  ;
 | 
|---|
| 133 |  ... S DFN=0
 | 
|---|
| 134 |  ... F  S DFN=$O(^TMP("PCMM PATIENT1",$J,NUM,TM,DFNNAM,DFN)) Q:'DFN!QUIT  D
 | 
|---|
| 135 |  .... S POS=0
 | 
|---|
| 136 |  .... F  S POS=$O(^TMP("PCMM PATIENT1",$J,NUM,TM,DFNNAM,DFN,POS)) Q:'POS!QUIT  D  ;
 | 
|---|
| 137 |  ..... S SSN=$P($G(^DPT(DFN,0)),U,9)
 | 
|---|
| 138 |  ..... I $Y>(IOSL-6) D PAUSE Q:QUIT
 | 
|---|
| 139 |  ..... W !?6,DFNNAM,?38,SSN,?50,POS
 | 
|---|
| 140 |  ;
 | 
|---|
| 141 |  KILL ^TMP("PCMM PATIENT1",$J)
 | 
|---|
| 142 |  Q
 | 
|---|
| 143 |  ;
 | 
|---|
| 144 | PAUSE ;Pause the display
 | 
|---|
| 145 |  NEW ANS,COL,PGTXT
 | 
|---|
| 146 |  S PAGE=PAGE+1
 | 
|---|
| 147 |  I $G(ION)="HFS" Q
 | 
|---|
| 148 |  S PGTXT="Page: "_PAGE
 | 
|---|
| 149 |  S COL=(IOM-$L(PGTXT)-2)
 | 
|---|
| 150 |  I $E(IOST,1,2)="P-" W @IOF,!?COL,PGTXT Q
 | 
|---|
| 151 |  W !,"<RET> to continue, ^ to quit: "
 | 
|---|
| 152 |  R ANS:DTIME S:'$T ANS="^" I ANS["^" S QUIT=1 Q
 | 
|---|
| 153 |  W @IOF,!?COL,PGTXT
 | 
|---|
| 154 |  Q
 | 
|---|
| 155 |  ;
 | 
|---|
| 156 | HD ;Heading
 | 
|---|
| 157 |  NEW HD,LINE,NOW,TM,TMN
 | 
|---|
| 158 |  ;
 | 
|---|
| 159 |  S PAGE=1
 | 
|---|
| 160 |  S HD="PCMM INCONSISTENCY REPORT"
 | 
|---|
| 161 |  ;Adjust heading if going to the P-MESSAGE device
 | 
|---|
| 162 |  I IOST["P-",IOST["MESSAGE" D  Q
 | 
|---|
| 163 |  . W !?(78-$L(HD)\2),HD
 | 
|---|
| 164 |  ;
 | 
|---|
| 165 |  I $E(IOST,1,2)="P-" W !!
 | 
|---|
| 166 |  E  W @IOF
 | 
|---|
| 167 |  S $P(LINE,"=",IOM)=""
 | 
|---|
| 168 |  W !?(IOM-$L(HD)\2),HD
 | 
|---|
| 169 |  S NOW=$$NOW^XLFDT()
 | 
|---|
| 170 |  I $P(NOW,".",2) S NOW=$P(NOW,".",1)_"."_$E($P(NOW,".",2),1,4)
 | 
|---|
| 171 |  S HD=$$FMTE^XLFDT(NOW)
 | 
|---|
| 172 |  W !?(IOM-$L(HD)\2),HD
 | 
|---|
| 173 |  W !,LINE
 | 
|---|
| 174 |  I SCTYPE("TM")="I" D  ;
 | 
|---|
| 175 |  . W !,"See PCMM User Guide for detailed instructions."
 | 
|---|
| 176 |  E  D  ;
 | 
|---|
| 177 |  . W !,"Teams: "
 | 
|---|
| 178 |  . I SCTYPE("TM")="A" W "All teams"
 | 
|---|
| 179 |  . E  D  ;
 | 
|---|
| 180 |  .. S TM=0
 | 
|---|
| 181 |  .. F  S TM=$O(SCTM(TM)) Q:'TM  D  ;
 | 
|---|
| 182 |  ... S TMN=$P($G(^SCTM(404.51,TM,0)),U,1)
 | 
|---|
| 183 |  ... S:TMN']"" TMN="UNKNOWN"
 | 
|---|
| 184 |  ... I ($L(TMN)+$X+2)>IOM W !?7
 | 
|---|
| 185 |  ... W TMN
 | 
|---|
| 186 |  ... I $O(SCTM(TM)) W ", "
 | 
|---|
| 187 |  W !,LINE
 | 
|---|
| 188 |  Q
 | 
|---|
| 189 |  ;
 | 
|---|
| 190 | TXT ;Inconsistencies
 | 
|---|
| 191 |  ;;1;Position has no staff assigned
 | 
|---|
| 192 |  ;;2;Patient has no PCP assigned
 | 
|---|
| 193 |  ;;3;Patient has multiple PCPs assigned
 | 
|---|
| 194 |  ;;4;AP & PCP are the same provider
 | 
|---|
| 195 |  ;;5;AP is without a Preceptor
 | 
|---|
| 196 |  ;;6;AP position is not designated for PC
 | 
|---|
| 197 |  ;;7;PCP position is not designated for PC
 | 
|---|
| 198 |  ;;8;Position assignment with inactive []
 | 
|---|
| 199 |  Q
 | 
|---|