| [613] | 1 | PPPSCN2 ;ALB/DMB - PPP CLINIC SCAN ROUTINE ; 2/20/92
 | 
|---|
 | 2 |  ;;1.0;PHARMACY PRESCRIPTION PRACTICE;**9,41,42**;APR 7,1995;Build 4
 | 
|---|
 | 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 |  ;Reference to GETPLIST^SDAMA202 supported by IA #3869
 | 
|---|
 | 5 |  ;Reference to ^SC("AC" supported by IA #4084
 | 
|---|
 | 6 |  ;
 | 
|---|
 | 7 | FFSCAN ; Scan clinic for patients to send PDX's for
 | 
|---|
 | 8 |  ;
 | 
|---|
 | 9 |  N X,TMP,DTCERR,PFGERR,CSCNSTRT,CSCNEND,DATE,SCANDATE,PCSD,TOTPATS
 | 
|---|
 | 10 |  N PDXSTRT,PDXEND,CODE,ERR,FFXIFN,LPDX,MAXDAYS,RSLTPTR,UNSPTR
 | 
|---|
 | 11 |  N PATDFN,STAPTR,TOTSTA,X1,X2,PROCPTR,AUTOPTR
 | 
|---|
 | 12 |  ;
 | 
|---|
 | 13 |  S PPPMRT="FFSCAN_PPPSCN2"
 | 
|---|
 | 14 |  S DTCERR=-9006
 | 
|---|
 | 15 |  S PFGERR=-9007
 | 
|---|
 | 16 |  S CSCNSTRT=1006
 | 
|---|
 | 17 |  S CSCNEND=1007
 | 
|---|
 | 18 |  S PDXSTRT=1008
 | 
|---|
 | 19 |  S PDXEND=1009
 | 
|---|
 | 20 |  S ^TMP("PPP",$J,"ERR",1)="The following Errors occurred while attempting to send PDX's:"
 | 
|---|
 | 21 |  S ^TMP("PPP",$J,"ERR",2)=" "
 | 
|---|
 | 22 |  S (PDXSNT,TOTSTA)=0
 | 
|---|
 | 23 |  S ERR=0
 | 
|---|
 | 24 |  ;GET POINTERS TO ACCEPTABLE PDX STATUSES
 | 
|---|
 | 25 |  S RSLTPTR=$$GETSTPTR^PPPGET7("VAQ-RSLT")
 | 
|---|
 | 26 |  S UNSPTR=$$GETSTPTR^PPPGET7("VAQ-UNSOL")
 | 
|---|
 | 27 |  S PROCPTR=$$GETSTPTR^PPPGET7("VAQ-PROC")
 | 
|---|
 | 28 |  S AUTOPTR=$$GETSTPTR^PPPGET7("VAQ-AUTO")
 | 
|---|
 | 29 |  ;
 | 
|---|
 | 30 |  S TMP=$$LOGEVNT^PPPMSC1(CSCNSTRT,PPPMRT)
 | 
|---|
 | 31 |  ;
 | 
|---|
 | 32 |  D NOW^%DTC
 | 
|---|
 | 33 |  I X="" D  Q
 | 
|---|
 | 34 |  .S TMP=$$LOGEVNT^PPPMSC1(DTCERR,PPPMRT)
 | 
|---|
 | 35 |  S DATE=X
 | 
|---|
 | 36 |  K %,%H,%I,X
 | 
|---|
 | 37 |  ;
 | 
|---|
 | 38 |  S PCSD=$P($G(^PPP(1020.1,1,0)),"^",2)
 | 
|---|
 | 39 |  I PCSD="" D  Q
 | 
|---|
 | 40 |  .S TMP=$$LOGEVNT^PPPMSC1(PFGERR,PPPMRT)
 | 
|---|
 | 41 |  S X1=DATE
 | 
|---|
 | 42 |  S X2=PCSD
 | 
|---|
 | 43 |  D C^%DTC
 | 
|---|
 | 44 |  I X="" D  Q
 | 
|---|
 | 45 |  .S TMP=$$LOGEVNT^PPPMSC1(DTCERR,PPPMRT)
 | 
|---|
 | 46 |  S SCANDATE=X
 | 
|---|
 | 47 |  K X1,X2,X,%H
 | 
|---|
 | 48 |  ;
 | 
|---|
 | 49 |  S TOTPATS=$$CLINSCAN(SCANDATE,"^TMP(""PPP"",$J,SCANDATE)")
 | 
|---|
 | 50 |  S TMP=$$LOGEVNT^PPPMSC1(CSCNEND,PPPMRT,"TOTAL ENTRIES = "_TOTPATS)
 | 
|---|
 | 51 |  ;
 | 
|---|
 | 52 |  S MAXDAYS=$P($G(^PPP(1020.1,1,0)),"^",3)
 | 
|---|
 | 53 |  S TMP=$$LOGEVNT^PPPMSC1(PDXSTRT,PPPMRT)
 | 
|---|
 | 54 |  ;
 | 
|---|
 | 55 |  F PATDFN=0:0 D  Q:PATDFN=""
 | 
|---|
 | 56 |  .K PPPSTA
 | 
|---|
 | 57 |  .S PATDFN=$O(^TMP("PPP",$J,SCANDATE,PATDFN)) Q:PATDFN=""
 | 
|---|
 | 58 |  .F STAPTR=0:0 D  Q:STAPTR=""
 | 
|---|
 | 59 |  ..S STAPTR=$O(^PPP(1020.2,"APOV",PATDFN,STAPTR)) Q:STAPTR=""
 | 
|---|
 | 60 |  ..S FFXIFN=$O(^PPP(1020.2,"APOV",PATDFN,STAPTR,"")) Q:FFXIFN=""
 | 
|---|
 | 61 |  ..I '$D(^PPP(1020.5,"B",STAPTR)) D
 | 
|---|
 | 62 |  ...S LPDX=$P($G(^PPP(1020.2,FFXIFN,1)),"^",2)
 | 
|---|
 | 63 |  ...I LPDX=""!($$DIFFDT^PPPCNV1(DATE,LPDX)>MAXDAYS) D
 | 
|---|
 | 64 |  ....S CODE=$P($G(^PPP(1020.2,FFXIFN,1)),"^",3)
 | 
|---|
 | 65 |  ....I ((CODE=RSLTPTR)!(CODE=UNSPTR)!(CODE=PROCPTR)!(CODE=AUTOPTR)!(CODE="")) D
 | 
|---|
 | 66 |  .....S PPPSTA(STAPTR)=""
 | 
|---|
 | 67 |  .....S TOTSTA=TOTSTA+1
 | 
|---|
 | 68 |  .I $O(PPPSTA(""))'="" D  Q:ERR
 | 
|---|
 | 69 |  ..S ERR=$$SNDPDX^PPPPDX1(PATDFN,"PPPSTA","^TMP(""PPP"",$J,""ERR"")")
 | 
|---|
 | 70 |  ..I ERR D
 | 
|---|
 | 71 |  ...S TMP=$$LOGEVNT^PPPMSC1(ERR,PPPMRT,"Error From PPPPDX1 ==> "_ERR)
 | 
|---|
 | 72 |  ...S PATDFN=""
 | 
|---|
 | 73 |  ;
 | 
|---|
 | 74 |  ; Set the last batch request date to today
 | 
|---|
 | 75 |  ;
 | 
|---|
 | 76 |  S $P(^PPP(1020.1,1,0),"^",6)=DT
 | 
|---|
 | 77 |  S TMP=$$LOGEVNT^PPPMSC1(PDXEND,PPPMRT,"TOTAL PDX'S REQUESTED = "_TOTSTA)
 | 
|---|
 | 78 |  I '$D(^TMP("PPP",$J,"ERR",3)) S ^TMP("PPP",$J,"ERR",1)="No Errors occurred while attempting to send PDX's"
 | 
|---|
 | 79 |  ;S ^TMP("PPP",$J,"ERR",4)=""
 | 
|---|
 | 80 |  S TMP=$$SNDBLTN^PPPMSC1("PPP DAILY BATCH "_$$SLASHDT^PPPCNV1(DT),"PRESCRIPTION PRACTICES","^TMP(""PPP"",$J,""ERR"",")
 | 
|---|
 | 81 |  ;
 | 
|---|
 | 82 |  K ^TMP("PPP",$J,"ERR"),^TMP("PPP",$J,SCANDATE),PPPMRT,PPPSTA,PDXSNT
 | 
|---|
 | 83 |  Q
 | 
|---|
 | 84 |  ;
 | 
|---|
 | 85 | CLINSCAN(SCANDATE,ARRYNM) ; Scan the clinics for appointments
 | 
|---|
 | 86 |  N CLINIC,PATDFN,TPATS,SEQ
 | 
|---|
 | 87 |  ;
 | 
|---|
 | 88 |  S CLINIC="",TPATS=0
 | 
|---|
 | 89 |  F  S CLINIC=$O(^SC("AC","C",CLINIC)) Q:CLINIC=""  D
 | 
|---|
 | 90 |  .K ^TMP($J,"SDAMA202","GETPLIST")
 | 
|---|
 | 91 |  .D GETPLIST^SDAMA202(CLINIC,"3;4;12",,SCANDATE,SCANDATE)
 | 
|---|
 | 92 |  .S SEQ=0
 | 
|---|
 | 93 |  .F  S SEQ=$O(^TMP($J,"SDAMA202","GETPLIST",SEQ)) Q:'SEQ  D
 | 
|---|
 | 94 |  ..I $P($G(^TMP($J,"SDAMA202","GETPLIST",SEQ,3)),"^")="R",$P($G(^TMP($J,"SDAMA202","GETPLIST",SEQ,12)),"^")="O" D
 | 
|---|
 | 95 |  ...S PATDFN=+$G(^TMP($J,"SDAMA202","GETPLIST",SEQ,4)) Q:'PATDFN
 | 
|---|
 | 96 |  ...S @ARRYNM@(PATDFN)=""
 | 
|---|
 | 97 |  ...S TPATS=TPATS+1
 | 
|---|
 | 98 |  K ^TMP($J,"SDAMA202","GETPLIST")
 | 
|---|
 | 99 |  ;
 | 
|---|
 | 100 |  Q TPATS
 | 
|---|