| 1 | PSSORPH ;BIR/RSB/RTR-Dosage choices by Dispense Drug ;03/24/00
 | 
|---|
| 2 |  ;;1.0;PHARMACY DATA MANAGEMENT;**34,38,49,69**;9/30/97
 | 
|---|
| 3 |  ;Reference to ^PS(50.607 supported by DBIA 2221
 | 
|---|
| 4 |  ;Reference to ^YSCL(603.01 supported by DBIA 2697
 | 
|---|
| 5 |  ;Reference to ^PSNAPIS supported by DBIA 2531
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | DOSE(PSSX,PD,TYPE,PSSDFN,PSSUPD) ;
 | 
|---|
| 8 |  K PSSX
 | 
|---|
| 9 |  ; PSSX - Target variable for returned data
 | 
|---|
| 10 |  ; PD - Pharmacy Dispense Drug
 | 
|---|
| 11 |  ; TYPE - Type of Drug (O:Outpt, U:Unit Dose, I:IV, X:Non-VA Med)
 | 
|---|
| 12 |  ; PSSDFN - Patient IEN
 | 
|---|
| 13 |  ; PSSUPD - Units per Dose
 | 
|---|
| 14 |  N DLOOP,DCNT1,DLOOP1,LOW,FORM,PSSOIU,PSSLOW,PSSLOW1,PSSLOW2,PSOLC,PL,PSSHOLD,PSSA,PSSZ,PSSC,PSIEN,PSSTRN,PSSDSE,PSSVERB,PSSPREP,PSSCLO,PSSDEA,PSSMAX,PSSDLP,PSNN,PSNNN,PSSREQS,PSSLOW4,PL2,PSSA1,PL3,POPD,PSSUNITZ,PSSLDV,PSSLDN,PSSUNITX
 | 
|---|
| 15 |  N PSSDOSE,PSSUNTS,PSSUDOS,PSSMD,PSSMD1,PSSMDN,PSSBC,PSSOLDN
 | 
|---|
| 16 |  S POPD=+$P($G(^PSDRUG(PD,2)),"^")
 | 
|---|
| 17 |  S PSSOIU=$S(TYPE="I":1,TYPE="U":1,1:0)
 | 
|---|
| 18 |  I $G(PSSUPD) G ^PSSORPH1
 | 
|---|
| 19 |  S DLOOP=PD D
 | 
|---|
| 20 |  .Q:'$O(^PSDRUG(DLOOP,"DOS1",0))
 | 
|---|
| 21 |  .S PSSTRN=$P($G(^PSDRUG(DLOOP,"DOS")),"^"),PSSUNITZ=$P($G(^("DOS")),"^",2) Q:PSSTRN=""
 | 
|---|
| 22 |  .S PSSUNITX=$S($P($G(^PS(50.607,+$G(PSSUNITZ),0)),"^")'=""&($P($G(^(0)),"^")'["/"):$P($G(^(0)),"^"),1:"")
 | 
|---|
| 23 |  .Q:$G(^PSDRUG(DLOOP,"I"))]""&($G(^("I"))'>DT)  ; omit inactive drugs
 | 
|---|
| 24 |  .;Q:$P($G(^PSDRUG(DLOOP,2)),"^",3)'[TYPE
 | 
|---|
| 25 |  .S PSSDSE=+$P($G(^PS(50.7,POPD,0)),"^",2),PSSVERB=$P($G(^PS(50.606,PSSDSE,"MISC")),"^"),PSSPREP=$P($G(^("MISC")),"^",3)
 | 
|---|
| 26 |  .K PSNNN F PSNN=0:0 S PSNN=$O(^PS(50.606,PSSDSE,"NOUN",PSNN)) Q:'PSNN!($D(PSNNN))  S:$P($G(^(PSNN,0)),"^")'="" PSNNN=$P($G(^(0)),"^")
 | 
|---|
| 27 |  .; Set each possible dose node
 | 
|---|
| 28 |  .F DLOOP1=0:0 S DLOOP1=$O(^PSDRUG(DLOOP,"DOS1",DLOOP1)) Q:'DLOOP1  D
 | 
|---|
| 29 |  ..Q:'$D(^PSDRUG(DLOOP,"DOS1",DLOOP1,0))
 | 
|---|
| 30 |  ..I PSSOIU,$P($G(^PSDRUG(DLOOP,"DOS1",DLOOP1,0)),"^",3)'["I" Q
 | 
|---|
| 31 |  ..I 'PSSOIU,$P($G(^PSDRUG(DLOOP,"DOS1",DLOOP1,0)),"^",3)'["O" Q
 | 
|---|
| 32 |  ..S (PSSDOSE,PSSUNTS,PSSUDOS,PSSBC)=""
 | 
|---|
| 33 |  ..S PSSDOSE=$P($G(^PSDRUG(DLOOP,"DOS1",DLOOP1,0)),"^",2)
 | 
|---|
| 34 |  ..S PSSUNTS=$P($G(^PS(50.607,+$P($G(^PSDRUG(DLOOP,"DOS")),"^",2),0)),"^")
 | 
|---|
| 35 |  ..S PSSUDOS=$P($G(^PSDRUG(DLOOP,"DOS1",DLOOP1,0)),"^"),PSSBC=$P($G(^(0)),"^",4)
 | 
|---|
| 36 |  ..I PSSDOSE]""&(PSSUDOS]"") D
 | 
|---|
| 37 |  ...S DCNT1=$S('$D(DCNT1):1,1:DCNT1+1)
 | 
|---|
| 38 |  ...S LOW(PSSDOSE,PSSUDOS,DCNT1)=""
 | 
|---|
| 39 |  ...S FORM(PSSDOSE,$S($P($G(^PSDRUG(DLOOP,0)),"^",9)=1:1,1:0),DCNT1)=PSSUDOS
 | 
|---|
| 40 |  ...D PARN
 | 
|---|
| 41 |  ...S PSSX(DCNT1)=PSSDOSE_"^"_$S("OX"[$G(TYPE):$G(PSSUNITZ),1:$G(PSSUNTS))_"^"_PSSUDOS_"^"_DLOOP_"^"_$G(PSSTRN)_"^"_$S($G(PSSNP)'="":$G(PSSNP),1:$G(PSNNN))_"^"_$P($G(^PS(50.606,+$G(PSSDSE),0)),"^")_"^"_$G(PSSVERB)_"^"_$G(PSSPREP)
 | 
|---|
| 42 |  ...S PSSX(DCNT1)=PSSX(DCNT1)_$S("OX"'[$G(TYPE):"^^^"_$G(PSSBC),1:"")
 | 
|---|
| 43 |  ...K PSSNP,PSSBC
 | 
|---|
| 44 |  I '$O(PSSX(0)) G DOSE2
 | 
|---|
| 45 |  ; delete non-formulary doses if formulary doses exist
 | 
|---|
| 46 |  S PSSLOW="" F  S PSSLOW=$O(FORM(PSSLOW)) Q:PSSLOW=""  D
 | 
|---|
| 47 |  .I $O(FORM(PSSLOW,0,0)) S PSSLOW2="" F  S PSSLOW2=$O(FORM(PSSLOW,1,PSSLOW2)) Q:PSSLOW2=""  K PSSX(PSSLOW2),LOW(PSSLOW,+$G(FORM(PSSLOW,1,PSSLOW2)),PSSLOW2)
 | 
|---|
| 48 |  ;Find lowest units per dose
 | 
|---|
| 49 |  S PSSLOW="" F  S PSSLOW=$O(LOW(PSSLOW)) Q:PSSLOW=""  D
 | 
|---|
| 50 |  .S PSOLC=0 S PSSLOW1="" F  S PSSLOW1=$O(LOW(PSSLOW,PSSLOW1)) Q:PSSLOW1=""  D
 | 
|---|
| 51 |  ..S PSOLC=PSOLC+1 S:PSOLC=1 PSSLOW4=$O(LOW(PSSLOW,PSSLOW1,0))
 | 
|---|
| 52 |  ..S PSSLOW2="" F  S PSSLOW2=$O(LOW(PSSLOW,PSSLOW1,PSSLOW2)) Q:PSSLOW2=""  D
 | 
|---|
| 53 |  ...I PSOLC>1 S PSSX(PSSLOW4,(PSOLC-1))=PSSX(PSSLOW2) K PSSX(PSSLOW2)
 | 
|---|
| 54 |  K PSSHOLD S PL="" F  S PL=$O(PSSX(PL)) Q:PL=""  S PSSHOLD($P(PSSX(PL),"^"),PL)=PSSX(PL) I $O(PSSX(PL,0)) D
 | 
|---|
| 55 |  .S PL2="" F  S PL2=$O(PSSX(PL,PL2)) Q:PL2=""  S PSSHOLD($P(PSSX(PL,PL2),"^"),PL,PL2)=PSSX(PL,PL2)
 | 
|---|
| 56 |  K PSSX S PSSA=1,PSSZ="" F  S PSSZ=$O(PSSHOLD(PSSZ)) Q:PSSZ=""  F PSSC=0:0 S PSSC=$O(PSSHOLD(PSSZ,PSSC)) Q:'PSSC  S PSSX(PSSA)=PSSHOLD(PSSZ,PSSC) D SLS D:'$D(PSSX("DD",+$P(PSSX(PSSA),"^",4)))  D:$O(PSSHOLD(PSSZ,PSSC,0)) MULTI S PSSA=PSSA+1
 | 
|---|
| 57 |  .S (PSIEN,DLOOP)=+$P(PSSX(PSSA),"^",4) K PSSMAX D:$G(TYPE)["O" MAX
 | 
|---|
| 58 |  .S PSSX("DD",PSIEN)=$P($G(^PSDRUG(PSIEN,0)),"^")_"^"_$P($G(^(660)),"^",6)_"^"_$P($G(^(0)),"^",9)_"^"_$P($G(^(660)),"^",8)_"^"_$P($G(^("DOS")),"^")_"^"_$G(PSSUNITX)_"^"_$G(PSSMAX)
 | 
|---|
| 59 |  .D REQS S PSSX("DD",PSIEN)=PSSX("DD",PSIEN)_"^"_$G(PSSREQS)_"^"_$G(PSNNN)_"^"_$G(PSSVERB)_"^"_1
 | 
|---|
| 60 |  K PSSHOLD
 | 
|---|
| 61 |  D LEADP^PSSUTLA1
 | 
|---|
| 62 |  Q
 | 
|---|
| 63 | DOSE2 ;Local Dose
 | 
|---|
| 64 |  N PSOCT,PSONDS,PSOND,PSOND1,PSONDX,PSONDU,PSODOS,PSLOC,PSLOCV,PSODUPD
 | 
|---|
| 65 |  S PSOCT=1
 | 
|---|
| 66 |  S DLOOP=PD D
 | 
|---|
| 67 |  .I $P($G(^PSDRUG(DLOOP,"I")),"^"),+$P($G(^("I")),"^")<DT Q
 | 
|---|
| 68 |  .;Q:$P($G(^PSDRUG(DLOOP,2)),"^",3)'[TYPE
 | 
|---|
| 69 |  .Q:'$O(^PSDRUG(DLOOP,"DOS2",0))
 | 
|---|
| 70 |  .S PSONDS=$P($G(^PSDRUG(DLOOP,"DOS")),"^"),PSONDU=$P($G(^("DOS")),"^",2),PSOND=$P($G(^("ND")),"^",3),PSOND1=$P($G(^("ND")),"^")
 | 
|---|
| 71 |  .I PSOND,PSOND1 I PSONDS=""!('PSONDU) S PSONDX=$$DFSU^PSNAPIS(PSOND1,PSOND)
 | 
|---|
| 72 |  .I PSONDS="",PSOND,PSOND1 S PSONDS=$P($G(PSONDX),"^",4)
 | 
|---|
| 73 |  .I 'PSONDU,PSOND,PSOND1 S PSONDU=$P($G(PSONDX),"^",5)
 | 
|---|
| 74 |  .S PSODOS=+$P($G(^PS(50.7,POPD,0)),"^",2)
 | 
|---|
| 75 |  .;LOOK IN DOS2 NODE FOR LOCAL DOSES
 | 
|---|
| 76 |  .F PSLOC=0:0 S PSLOC=$O(^PSDRUG(DLOOP,"DOS2",PSLOC)) Q:'PSLOC  D
 | 
|---|
| 77 |  ..S PSLOCV=$P($G(^PSDRUG(DLOOP,"DOS2",PSLOC,0)),"^") Q:PSLOCV=""
 | 
|---|
| 78 |  ..S PSSBC=$P($G(^PSDRUG(DLOOP,"DOS2",PSLOC,0)),"^",3)
 | 
|---|
| 79 |  ..S PSSOLDN=$P($G(^PSDRUG(DLOOP,"DOS2",PSLOC,0)),"^",4)
 | 
|---|
| 80 |  ..I PSSOIU,$P($G(^PSDRUG(DLOOP,"DOS2",PSLOC,0)),"^",2)'["I" Q
 | 
|---|
| 81 |  ..I 'PSSOIU,$P($G(^PSDRUG(DLOOP,"DOS2",PSLOC,0)),"^",2)'["O" Q
 | 
|---|
| 82 |  ..D SET2
 | 
|---|
| 83 |  ;IF NO LOCAL DOSES, RETURN ANY DRUGS YOU CAN
 | 
|---|
| 84 |  K PSSBC,PSSOLDN
 | 
|---|
| 85 |  I '$O(PSSX(0)) K PSLOCV S PSOCT=1 D
 | 
|---|
| 86 |  .S DLOOP=PD D
 | 
|---|
| 87 |  ..I $P($G(^PSDRUG(DLOOP,"I")),"^"),+$P($G(^("I")),"^")<DT Q
 | 
|---|
| 88 |  ..;Q:$P($G(^PSDRUG(DLOOP,2)),"^",3)'[TYPE
 | 
|---|
| 89 |  ..S PSONDS=$P($G(^PSDRUG(DLOOP,"DOS")),"^"),PSONDU=$P($G(^("DOS")),"^",2),PSOND=$P($G(^("ND")),"^",3),PSOND1=$P($G(^("ND")),"^")
 | 
|---|
| 90 |  ..K PSONDX I PSOND,PSOND1 I PSONDS=""!('PSONDU) S PSONDX=$$DFSU^PSNAPIS(PSOND1,PSOND)
 | 
|---|
| 91 |  ..I PSONDS="",PSOND,PSOND1 S PSONDS=$P($G(PSONDX),"^",4)
 | 
|---|
| 92 |  ..I 'PSONDU,PSOND,PSOND1 S PSONDU=$P($G(PSONDX),"^",5)
 | 
|---|
| 93 |  ..S PSODOS=+$P($G(^PS(50.7,POPD,0)),"^",2)
 | 
|---|
| 94 |  ..D SET2
 | 
|---|
| 95 |  D LEADP^PSSUTLA1
 | 
|---|
| 96 |  Q
 | 
|---|
| 97 | SET2 ;
 | 
|---|
| 98 |  D ZSET
 | 
|---|
| 99 |  I $G(PSLOCV)'="",$G(PSLOCV)["&" D AMP^PSSORPH1
 | 
|---|
| 100 |  S PSSX(PSOCT)="^"_$S($G(PSONDU)=0:"",1:$G(PSONDU))_"^"_$G(PSLOCV)_"^"_DLOOP_"^"_$G(PSONDS)_"^"_$G(PSSLDN)_"^"_$P($G(^PS(50.606,+$G(PSODOS),0)),"^")_"^"_$P($G(^("MISC")),"^")_"^"_$P($G(^("MISC")),"^",3)
 | 
|---|
| 101 |  S PSSX(PSOCT)=PSSX(PSOCT)_"^"_$P($G(^PS(50.606,+$G(PSODOS),"MISC")),"^",4)_$S("OX"'[$G(TYPE):"^^"_$G(PSSBC),1:"")
 | 
|---|
| 102 |  S $P(PSSX(PSOCT),"^",13)=$G(PSSOLDN)
 | 
|---|
| 103 |  I '$D(PSSX("DD",DLOOP)) D
 | 
|---|
| 104 |  .D REQS
 | 
|---|
| 105 |  .K PSSMAX I $G(TYPE)["O" D MAX
 | 
|---|
| 106 |  .S PSSX("DD",DLOOP)=$P($G(^PSDRUG(DLOOP,0)),"^")_"^"_$P($G(^(660)),"^",6)_"^"_$P($G(^(0)),"^",9)_"^"_$P($G(^(660)),"^",8)_"^"_$G(PSONDS)_"^"_$S($G(PSONDU):$P($G(^PS(50.607,+$G(PSONDU),0)),"^"),1:"")_"^"_$G(PSSMAX)_"^"_$G(PSSREQS)
 | 
|---|
| 107 |  .S PSSX("DD",DLOOP)=PSSX("DD",DLOOP)_"^"_$G(PSSLDN)_"^"_$G(PSSLDV)_"^"_0
 | 
|---|
| 108 |  S PSOCT=PSOCT+1
 | 
|---|
| 109 |  Q
 | 
|---|
| 110 | ZSET ;
 | 
|---|
| 111 |  K PSSLDN,PSSLNV
 | 
|---|
| 112 |  S PSSLDV=$P($G(^PS(50.606,+$G(PSODOS),"MISC")),"^")
 | 
|---|
| 113 |  ;K PSSLDN F PSSLDNN=0:0 S PSSLDNN=$O(^PS(50.606,+$G(PSODOS),"NOUN",PSSLDNN)) Q:'PSSLDNN!($D(PSSLDN))  S:$P($G(^(PSSLDNN,0)),"^")'="" PSSLDN=$P($G(^(0)),"^")
 | 
|---|
| 114 |  K PSSLDNN
 | 
|---|
| 115 |  Q
 | 
|---|
| 116 | MAX ;
 | 
|---|
| 117 |  K PSSMAX S PSSDEA=$P($G(^PSDRUG(DLOOP,0)),"^",3)
 | 
|---|
| 118 |  I PSSDEA["1"!(PSSDEA["2") S PSSMAX=0 Q
 | 
|---|
| 119 |  I PSSDEA["A",PSSDEA'["B" S PSSMAX=0 Q
 | 
|---|
| 120 |  I $P($G(^PSDRUG(DLOOP,"CLOZ1")),"^")="PSOCLO1",$G(PSSDFN) D  Q
 | 
|---|
| 121 |  .S PSSCLO=$O(^YSCL(603.01,"C",PSSDFN,0)) I PSSCLO,$P($G(^YSCL(603.01,+PSSCLO,0)),"^",3)="B" S PSSMAX=1 Q
 | 
|---|
| 122 |  .S PSSMAX=0
 | 
|---|
| 123 |  I PSSDEA["3"!(PSSDEA["4")!(PSSDEA["5") S PSSMAX=5 Q
 | 
|---|
| 124 |  S PSSMAX=11
 | 
|---|
| 125 |  Q
 | 
|---|
| 126 | SLS ;Convert dosage with /
 | 
|---|
| 127 |  Q:'$D(PSSX(PSSA))
 | 
|---|
| 128 |  I $P($G(PSSX(PSSA)),"^",2)'["/" S $P(PSSX(PSSA),"^",11)=$P($G(PSSX(PSSA)),"^")_$G(PSSUNTS) Q
 | 
|---|
| 129 |  K PSSDZUNT
 | 
|---|
| 130 |  N PSSF,PSSF1,PSSF2,PSSG,PSSFA,PSSFA1,PSSFB,PSSFB1,PSSDZI,PSSDZSL,PSSDZND,PSSDZSL1,PSSDZSL2,PSSDZSL3,PSSDZSL4,PSSDZSL5,PSSDZ50
 | 
|---|
| 131 |  S PSSF=$P($G(PSSX(PSSA)),"^"),PSSG=$P($G(PSSX(PSSA)),"^",2)
 | 
|---|
| 132 |  S PSSDZSL=0,PSSDZI=+$P($G(PSSX(PSSA)),"^",4),PSSDZ50=$P($G(^PSDRUG(PSSDZI,"DOS")),"^")
 | 
|---|
| 133 |  S PSSDZND=$$PSJST^PSNAPIS(+$P($G(^PSDRUG(PSSDZI,"ND")),"^"),+$P($G(^PSDRUG(PSSDZI,"ND")),"^",3)) S PSSDZND=+$P($G(PSSDZND),"^",2) ;I $G(PSSDZND),$G(PSSDZ50),+$G(PSSDZND)'=+$G(PSSDZ50) S PSSDZSL=1
 | 
|---|
| 134 |  S PSSFA=$P(PSSG,"/"),PSSFB=$P(PSSG,"/",2),PSSFA1=+$G(PSSFA),PSSFB1=+$G(PSSFB)
 | 
|---|
| 135 |  I '$G(PSSDZND) S $P(PSSX(PSSA),"^",11)=$P(PSSX(PSSA),"^") G SLSQ
 | 
|---|
| 136 |  S PSSDZSL2=PSSDZ50/PSSDZND,PSSDZSL3=PSSDZSL2*+$P($G(PSSX(PSSA)),"^",3) S PSSDZSL4=PSSDZSL3*$S($G(PSSFB1):PSSFB1,1:1) S PSSDZSL5=$S('$G(PSSFB1):PSSDZSL4_$G(PSSFB),1:PSSDZSL4_$P(PSSFB,PSSFB1,2))
 | 
|---|
| 137 |  S PSSF2=$S('$G(PSSFA1):PSSF,1:($G(PSSFA1)*PSSF))_$S($G(PSSFA1):$P(PSSFA,PSSFA1,2),1:PSSFA)_"/"_$G(PSSDZSL5)
 | 
|---|
| 138 |  S PSSDZUNT=$P(PSSG,"/")_"/"_$G(PSSDZSL4)_$S('$G(PSSFB1):$G(PSSFB),1:$P(PSSFB,PSSFB1,2)) S $P(PSSX(PSSA),"^",2)=PSSDZUNT
 | 
|---|
| 139 |  S $P(PSSX(PSSA),"^",11)=PSSF2
 | 
|---|
| 140 | SLSQ K PSSDZUNT
 | 
|---|
| 141 |  Q
 | 
|---|
| 142 | REQS ;Schedule requirement flag
 | 
|---|
| 143 |  N PSSRF,PSSRFX,PSSRFZ
 | 
|---|
| 144 |  S PSSREQS=1
 | 
|---|
| 145 |  ;No longer needed
 | 
|---|
| 146 |  Q
 | 
|---|
| 147 | MULTI ;
 | 
|---|
| 148 |  S PL3="" F  S PL3=$O(PSSHOLD(PSSZ,PSSC,PL3)) Q:PL3=""  S PSSX(PSSA,PL3)=PSSHOLD(PSSZ,PSSC,PL3) D:'$D(PSSX("DD",+$P(PSSX(PSSA,PL3),"^",4)))
 | 
|---|
| 149 |  .S (PSIEN,DLOOP)=+$P(PSSX(PSSA,PL3),"^",4) K PSSMAX D:$G(TYPE)["O" MAX
 | 
|---|
| 150 |  .S PSSX("DD",PSIEN)=$P($G(^PSDRUG(PSIEN,0)),"^")_"^"_$P($G(^(660)),"^",6)_"^"_$P($G(^(0)),"^",9)_"^"_$P($G(^(660)),"^",8)_"^"_$P($G(^("DOS")),"^")_"^"_$G(PSSUNITX)_"^"_$G(PSSMAX)
 | 
|---|
| 151 |  .D REQS S PSSX("DD",PSIEN)=PSSX("DD",PSIEN)_"^"_$G(PSSREQS)_"^"_$G(PSNNN)_"^"_$G(PSSVERB)_"^"_1
 | 
|---|
| 152 |  Q
 | 
|---|
| 153 | PARN ;
 | 
|---|
| 154 |  N PSSNPL K PSSNP
 | 
|---|
| 155 |  Q:$G(PSNNN)=""
 | 
|---|
| 156 |  Q:$L(PSNNN)'>3
 | 
|---|
| 157 |  S PSSNPL=$E(PSNNN,($L(PSNNN)-2),$L(PSNNN))
 | 
|---|
| 158 |  I $G(PSSNPL)="(S)"!($G(PSSNPL)="(s)") D
 | 
|---|
| 159 |  .I $G(PSSUDOS)'>1 S PSSNP=$E(PSNNN,1,($L(PSNNN)-3))
 | 
|---|
| 160 |  .I $G(PSSUDOS)>1 S PSSNP=$E(PSNNN,1,($L(PSNNN)-3))_$E(PSSNPL,2)
 | 
|---|
| 161 |  Q
 | 
|---|
| 162 | LEAD ;Add leading zeros
 | 
|---|
| 163 |  F PSSMD=0:0 S PSSMD=$O(PSSX(PSSMD)) Q:'PSSMD  D
 | 
|---|
| 164 |  .F PSSMDN=1,5,11 I $E($P(PSSX(PSSMD),"^",PSSMDN),1)="." S $P(PSSX(PSSMD),"^",PSSMDN)="0"_$P(PSSX(PSSMD),"^",PSSMDN)
 | 
|---|
| 165 |  .I $O(PSSX(PSSMD,0)) D
 | 
|---|
| 166 |  ..F PSSMD1=0:0 S PSSMD1=$O(PSSX(PSSMD,PSSMD1)) Q:'PSSMD1  D
 | 
|---|
| 167 |  ...F PSSMDN=1,5,11 I $E($P(PSSX(PSSMD,PSSMD1),"^",PSSMDN),1)="." S $P(PSSX(PSSMD,PSSMD1),"^",PSSMDN)="0"_$P(PSSX(PSSMD,PSSMD1),"^",PSSMDN)
 | 
|---|
| 168 |  S PSSMD="" F  S PSSMD=$O(PSSX("DD",PSSMD)) Q:PSSMD=""  D
 | 
|---|
| 169 |  .I $E($P(PSSX("DD",PSSMD),"^",5),1)="." S $P(PSSX("DD",PSSMD),"^",5)="0"_$P(PSSX("DD",PSSMD),"^",5)
 | 
|---|
| 170 |  Q
 | 
|---|