1 | PSOSIGNO ;BHAM ISC/RTR-Check new Sig for Route and Schedule ; 10/10/96
|
---|
2 | ;;7.0;OUTPATIENT PHARMACY;;DEC 1997
|
---|
3 | ;
|
---|
4 | ;Pass in IEN from Pending File, and New Sig
|
---|
5 | ;Returned PSOSIGFL=0 no new order (common Routes and Schedules)
|
---|
6 | ; PSOSIGFL=1 new order (no Route to having route) or
|
---|
7 | ; (no Schedule to having schedule) or
|
---|
8 | ; (visa versa, or discrepency)
|
---|
9 | ;
|
---|
10 | ;Also returned are arrays with Original and New Routes & Schedules:
|
---|
11 | ;
|
---|
12 | ; PSOMDRTE array (original route) PSOMDRTE(1)="ORAL"
|
---|
13 | ;
|
---|
14 | ; PSONEWMD array (new routes) PSONEWMD(1)="ORAL"
|
---|
15 | ; PSONEWMD(22)="BOTH EYES"
|
---|
16 | ;
|
---|
17 | ; PSOSCH array (original schedules) PSOSCH("Q12H")=""
|
---|
18 | ; PSOSCH("Q4H")=""
|
---|
19 | ;
|
---|
20 | ; PSONEWSD array (new schedules) PSONEWSD("Q4H")=""
|
---|
21 | ; PSONEWSD("Q8H")=""
|
---|
22 | ;
|
---|
23 | EN(PSPENIEN,PSPENSIG) ;
|
---|
24 | K PSONEWMD,PSOMDRTE,PSOSCH,PSONEWSD N AA,GGG,PSONULL,XXX,XXXX,ZZZZ
|
---|
25 | ;S PSOSIGFL=0
|
---|
26 | I $P($G(^PS(52.41,PSPENIEN,0)),"^",15),$P($G(^PS(51.2,+$P(^(0),"^",15),0)),"^")'="" S PSOMDRTE($P(^PS(52.41,PSPENIEN,0),"^",15))=$P(^PS(51.2,+$P(^(0),"^",15),0),"^")
|
---|
27 | F ZZZZ=0:0 S ZZZZ=$O(^PS(52.41,PSPENIEN,1,ZZZZ)) Q:'ZZZZ I $P($G(^PS(52.41,PSPENIEN,1,ZZZZ,1)),"^")'="" S PSOSCH($P(^(1),"^"))=""
|
---|
28 | F GGG=1:1:$L(PSPENSIG," ") S XXX=$P(PSPENSIG," ",GGG) D:XXX]""
|
---|
29 | .I $D(^PS(51,"A",XXX)) D
|
---|
30 | ..S XXXX=$O(^PS(51,"B",XXX,0)) D:XXXX
|
---|
31 | ...I $P($G(^PS(51,XXXX,0)),"^",5),$P($G(^PS(51.2,+$P(^(0),"^",5),0)),"^")'="" S PSONEWMD($P(^PS(51,XXXX,0),"^",5))=$P(^PS(51.2,$P(^(0),"^",5),0),"^")
|
---|
32 | ...I $P($G(^PS(51,XXXX,0)),"^",6)'="" S PSONEWSD($P(^(0),"^",6))=""
|
---|
33 | NEW ;Check for new order
|
---|
34 | S PSONULL=""
|
---|
35 | I $O(PSOMDRTE(0)),'$O(PSONEWMD(0)) S PSOSIGFL=1
|
---|
36 | Q:$G(PSOSIGFL) I $O(PSONEWMD(0)),'$O(PSOMDRTE(0)) S PSOSIGFL=1
|
---|
37 | Q:$G(PSOSIGFL) I $O(PSOSCH(PSONULL))="",$O(PSONEWSD(PSONULL))'="" S PSOSIGFL=1
|
---|
38 | Q:$G(PSOSIGFL) I $O(PSONEWSD(PSONULL))="",$O(PSOSCH(PSONULL))'="" S PSOSIGFL=1
|
---|
39 | Q:$G(PSOSIGFL)
|
---|
40 | ERROR ;check for error
|
---|
41 | ;This is also a new order now
|
---|
42 | F AA=0:0 S AA=$O(PSOMDRTE(AA)) Q:'AA!($G(PSOSIGFL)) I '$D(PSONEWMD(AA)) S PSOSIGFL=1
|
---|
43 | Q:$G(PSOSIGFL) F AA=0:0 S AA=$O(PSONEWMD(AA)) Q:'AA!($G(PSOSIGFL)) I '$D(PSOMDRTE(AA)) S PSOSIGFL=1
|
---|
44 | Q:$G(PSOSIGFL) S AA="" F S AA=$O(PSOSCH(AA)) Q:AA=""!($G(PSOSIGFL)) I '$D(PSONEWSD(AA)) S PSOSIGFL=1
|
---|
45 | Q:$G(PSOSIGFL) S AA="" F S AA=$O(PSONEWSD(AA)) Q:AA=""!($G(PSOSIGFL)) I '$D(PSOSCH(AA)) S PSOSIGFL=1
|
---|
46 | Q
|
---|
47 | ;
|
---|
48 | EN1(PSRENIEN,PSRENSIG) ;
|
---|
49 | ;Same as above, only for a new Sig from File 52
|
---|
50 | ;Pass in IEN from 52, and new Sig
|
---|
51 | K PSONEWMD,PSOMDRTE,PSOSCH,PSONEWSD N AA,GGG,PSONULL,XXX,XXXX,ZZZZ
|
---|
52 | ;S PSOSIGFL=0
|
---|
53 | F GGG=0:0 S GGG=$O(^PSRX(PSRENIEN,"MEDR",GGG)) Q:'GGG S ZZZZ=+$P(^(GGG,0),"^") I ZZZZ,$P($G(^PS(51.2,ZZZZ,0)),"^")'="" S PSOMDRTE(ZZZZ)=$P(^(0),"^")
|
---|
54 | F ZZZZ=0:0 S ZZZZ=$O(^PSRX(PSRENIEN,"SCH",ZZZZ)) Q:'ZZZZ I $P(^(ZZZZ,0),"^")'="" S PSOSCH($P(^(0),"^"))=""
|
---|
55 | F GGG=1:1:$L(PSRENSIG," ") S XXX=$P(PSRENSIG," ",GGG) D:XXX]""
|
---|
56 | .I $D(^PS(51,"A",XXX)) D
|
---|
57 | ..S XXXX=$O(^PS(51,"B",XXX,0)) D:XXXX
|
---|
58 | ...I $P($G(^PS(51,XXXX,0)),"^",5),$P($G(^PS(51.2,+$P(^(0),"^",5),0)),"^")'="" S PSONEWMD($P(^PS(51,XXXX,0),"^",5))=$P(^PS(51.2,$P(^(0),"^",5),0),"^")
|
---|
59 | ...I $P($G(^PS(51,XXXX,0)),"^",6)'="" S PSONEWSD($P(^(0),"^",6))=""
|
---|
60 | NEWOR ;Check for new order
|
---|
61 | G NEW
|
---|
62 | ;
|
---|
63 | POP(PSOPOPRX) ;Pass in Internal Rx number, will populate Med Route and
|
---|
64 | ;schedule fields from BACK door Sig
|
---|
65 | N BACKSIG,BBB,LLL,LLLL,POPMD,POPSC
|
---|
66 | Q:'$D(^PSRX(PSOPOPRX,0))
|
---|
67 | Q:$P($G(^PSRX(PSOPOPRX,"SIG")),"^")=""!($P($G(^("SIG")),"^",2))
|
---|
68 | S BACKSIG=$P(^PSRX(PSOPOPRX,"SIG"),"^")
|
---|
69 | F BBB=1:1:$L(BACKSIG," ") S LLL=$P(BACKSIG," ",BBB) D:LLL]""
|
---|
70 | .I $D(^PS(51,"A",LLL)) D
|
---|
71 | ..S LLLL=$O(^PS(51,"B",LLL,0)) D:LLLL
|
---|
72 | ...I $P($G(^PS(51,LLLL,0)),"^",5),$P($G(^PS(51.2,+$P(^(0),"^",5),0)),"^")'="" S POPMD($P(^PS(51,LLLL,0),"^",5))=""
|
---|
73 | ...I $P($G(^PS(51,LLLL,0)),"^",6)'="" S POPSC($P(^(0),"^",6))=""
|
---|
74 | K ^PSRX(PSOPOPRX,"MEDR"),^PSRX(PSOPOPRX,"SCH")
|
---|
75 | S LLLL=1 F LLL=0:0 S LLL=$O(POPMD(LLL)) Q:'LLL S ^PSRX(PSOPOPRX,"MEDR",LLLL,0)=LLL,^PSRX(PSOPOPRX,"MEDR",0)="^52.037PA^"_LLLL_"^"_LLLL S LLLL=LLLL+1
|
---|
76 | S LLLL=1,LLL="" F S LLL=$O(POPSC(LLL)) Q:LLL="" S ^PSRX(PSOPOPRX,"SCH",LLLL,0)=LLL,^PSRX(PSOPOPRX,"SCH",0)="^52.038A^"_LLLL_"^"_LLLL S LLLL=LLLL+1
|
---|
77 | K PSOPOPRX
|
---|
78 | Q
|
---|