[613] | 1 | PPPPRT4 ;ALB/DMB - FFX PRINT ROUTINES ; 3/13/92
|
---|
| 2 | ;;V1.0;PHARMACY PRESCRIPTION PRACTICE;;APR 7,1995
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | SRTBYNM(OUTARRY) ; Sort the FFX file by name
|
---|
| 6 | ;
|
---|
| 7 | ; This function will order through the APOV xref of the FFX file
|
---|
| 8 | ; and return an array containing the patient info and place of visit
|
---|
| 9 | ; info.
|
---|
| 10 | ;
|
---|
| 11 | ; The output array is in the form:
|
---|
| 12 | ;
|
---|
| 13 | ; @OUTARRY@(PATIENT_NAME)=DOB^SSN
|
---|
| 14 | ; @OUTARRY@(PATIENT_NAME,STATION_NAME)=NUMBER^DOMAIN^LDOV
|
---|
| 15 | ;
|
---|
| 16 | N DIC,DA,PATDFN,DR,DIQ,PATNAME,PATDOB,PATSSN,PPPTMP,STANAME,STANUM
|
---|
| 17 | N STADOM,LDOV,TPATS,TSTATION,SNIFN,FFXIFN
|
---|
| 18 | ;
|
---|
| 19 | K @OUTARRY
|
---|
| 20 | ;
|
---|
| 21 | S TPATS=0
|
---|
| 22 | S TSTATION=0
|
---|
| 23 | ;
|
---|
| 24 | ; Order through the APOV xref and get the data for each dfn
|
---|
| 25 | ;
|
---|
| 26 | F PATDFN=0:0 D Q:PATDFN=""
|
---|
| 27 | .S PATDFN=$O(^PPP(1020.2,"APOV",PATDFN)) Q:PATDFN=""
|
---|
| 28 | .S DIC=2,DA=PATDFN,DR=".01;.03;.09",DIQ="PPPTMP"
|
---|
| 29 | .D EN^DIQ1 Q:'$D(PPPTMP)
|
---|
| 30 | .S PATNAME=PPPTMP(2,PATDFN,.01)
|
---|
| 31 | .S PATDOB=PPPTMP(2,PATDFN,.03)
|
---|
| 32 | .S PATSSN=PPPTMP(2,PATDFN,.09)
|
---|
| 33 | .S @OUTARRY@(PATNAME)=PATDOB_"^"_PATSSN
|
---|
| 34 | .S TPATS=TPATS+1
|
---|
| 35 | .K PPPTMP
|
---|
| 36 | .F SNIFN=0:0 D Q:SNIFN=""
|
---|
| 37 | ..S SNIFN=$O(^PPP(1020.2,"APOV",PATDFN,SNIFN)) Q:SNIFN=""
|
---|
| 38 | ..S FFXIFN=$O(^PPP(1020.2,"APOV",PATDFN,SNIFN,"")) Q:FFXIFN=""
|
---|
| 39 | ..S DIC=4,DA=SNIFN,DR=".01;99",DIQ="PPPTMP"
|
---|
| 40 | ..D EN^DIQ1 Q:'$D(PPPTMP)
|
---|
| 41 | ..S STANAME=PPPTMP(4,SNIFN,.01)
|
---|
| 42 | ..S STANUM=PPPTMP(4,SNIFN,99)
|
---|
| 43 | ..K PPPTMP
|
---|
| 44 | ..S LDOV=$$I2EDT^PPPCNV1($P($G(^PPP(1020.2,FFXIFN,0)),"^",3))
|
---|
| 45 | ..S STADOM=$P($G(^PPP(1020.2,FFXIFN,1)),"^",5)
|
---|
| 46 | ..S @OUTARRY@(PATNAME,STANAME)=STANUM_"^"_STADOM_"^"_LDOV
|
---|
| 47 | ..S TSTATION=TSTATION+1
|
---|
| 48 | Q TPATS_"^"_TSTATION
|
---|
| 49 | ;
|
---|
| 50 | SRTBYSTA(OUTARRY) ; Sort the FFX file by STATION
|
---|
| 51 | ;
|
---|
| 52 | ; This function will order through the ARPOV xref of the FFX file
|
---|
| 53 | ; and return an array containing the patient info and place of visit
|
---|
| 54 | ; info.
|
---|
| 55 | ;
|
---|
| 56 | ; The output array is in the form:
|
---|
| 57 | ;
|
---|
| 58 | ; @OUTARRY@(STATION_NAME)=NUMBER^DOMAIN
|
---|
| 59 | ; @OUTARRY@(STATION_NAME_PATIENT_NAME)=DOB^SSN^LDOV
|
---|
| 60 | ;
|
---|
| 61 | N DIC,DA,PATDFN,DR,DIQ,PATNAME,PATDOB,PATSSN,PPPTMP,STANAME,STANUM
|
---|
| 62 | N STADOM,LDOV,TPATS,TSTATION,SNIFN,FFXIFN
|
---|
| 63 | ;
|
---|
| 64 | K @OUTARRY
|
---|
| 65 | ;
|
---|
| 66 | S TPATS=0
|
---|
| 67 | S TSTATION=0
|
---|
| 68 | ;
|
---|
| 69 | ; Order through the ARPOV xref and get the data for each dfn
|
---|
| 70 | ;
|
---|
| 71 | F SNIFN=0:0 D Q:SNIFN=""
|
---|
| 72 | .S SNIFN=$O(^PPP(1020.2,"ARPOV",SNIFN)) Q:SNIFN=""
|
---|
| 73 | .S DIC=4,DA=SNIFN,DR=".01;99",DIQ="PPPTMP"
|
---|
| 74 | .D EN^DIQ1 Q:'$D(PPPTMP)
|
---|
| 75 | .S STANAME=PPPTMP(4,SNIFN,.01)
|
---|
| 76 | .S STANUM=PPPTMP(4,SNIFN,99)
|
---|
| 77 | .K PPPTMP
|
---|
| 78 | .S TSTATION=TSTATION+1
|
---|
| 79 | .F PATDFN=0:0 D Q:PATDFN=""
|
---|
| 80 | ..S PATDFN=$O(^PPP(1020.2,"ARPOV",SNIFN,PATDFN)) Q:PATDFN=""
|
---|
| 81 | ..S DIC=2,DA=PATDFN,DR=".01;.03;.09",DIQ="PPPTMP"
|
---|
| 82 | ..D EN^DIQ1 Q:'$D(PPPTMP)
|
---|
| 83 | ..S PATNAME=PPPTMP(2,PATDFN,.01)
|
---|
| 84 | ..S PATDOB=PPPTMP(2,PATDFN,.03)
|
---|
| 85 | ..S PATSSN=PPPTMP(2,PATDFN,.09)
|
---|
| 86 | ..S FFXIFN=$O(^PPP(1020.2,"ARPOV",SNIFN,PATDFN,"")) Q:FFXIFN=""
|
---|
| 87 | ..S LDOV=$$I2EDT^PPPCNV1($P($G(^PPP(1020.2,FFXIFN,0)),"^",3))
|
---|
| 88 | ..S STADOM=$P($G(^PPP(1020.2,FFXIFN,1)),"^",5)
|
---|
| 89 | ..S @OUTARRY@(STANAME)=STANUM_"^"_STADOM
|
---|
| 90 | ..S @OUTARRY@(STANAME,PATNAME)=PATDOB_"^"_PATSSN_"^"_LDOV
|
---|
| 91 | ..S TPATS=TPATS+1
|
---|
| 92 | ..K PPPTMP
|
---|
| 93 | Q TSTATION_"^"_TPATS
|
---|
| 94 | ;
|
---|
| 95 | NAMESRT(INARRY,OUTARRY) ; Sort the clinic list by name and get SSN & DOB.
|
---|
| 96 | ;
|
---|
| 97 | N DIC,DA,PATDFN,DR,DIQ,NAME,DOB,SSN,PPPTMP
|
---|
| 98 | ;
|
---|
| 99 | ; Make sure the output array is empty
|
---|
| 100 | ;
|
---|
| 101 | K @OUTARRY,PPPTMP
|
---|
| 102 | ;
|
---|
| 103 | S TENTRY=0
|
---|
| 104 | ;
|
---|
| 105 | ; Order through the in array and get the data for each DFN.
|
---|
| 106 | ;
|
---|
| 107 | F PATDFN=0:0 D Q:PATDFN=""
|
---|
| 108 | .S PATDFN=$O(@INARRY@(PATDFN)) Q:PATDFN=""
|
---|
| 109 | .S DIC=2,DA=PATDFN,DR=".01;.03;.09",DIQ="PPPTMP"
|
---|
| 110 | .D EN^DIQ1 Q:'$D(PPPTMP)
|
---|
| 111 | .S NAME=PPPTMP(2,PATDFN,.01)
|
---|
| 112 | .S DOB=PPPTMP(2,PATDFN,.03)
|
---|
| 113 | .S SSN=PPPTMP(2,PATDFN,.09)
|
---|
| 114 | .S @OUTARRY@(NAME,PATDFN)=DOB_"^"_SSN
|
---|
| 115 | .S TENTRY=TENTRY+1
|
---|
| 116 | .K PPPTMP
|
---|
| 117 | Q TENTRY
|
---|