1 | PSBAPIPM ;BIRMINGHAM/EFC-BCMA API TO IPM FOR ORDER RENEWAL ;Mar 2004
|
---|
2 | ;;3.0;BAR CODE MED ADMIN;**6,15**;Mar 2004
|
---|
3 | ;
|
---|
4 | ;
|
---|
5 | EN(PSBDFN,PSBORDX) ;
|
---|
6 | ;
|
---|
7 | ; PSBLADT=date/time of the last action
|
---|
8 | ; PSBADMDT=scheduled time of the last action
|
---|
9 | ; PSBSTUS=last action (given, held, refused, etc.)
|
---|
10 | ;
|
---|
11 | ;
|
---|
12 | S (PSBCNT,PSBFLAG)=0,Y=""
|
---|
13 | S PSBSTR=""
|
---|
14 | I '$D(^PSB(53.79,"AORDX",PSBDFN,PSBORDX)) Q ""
|
---|
15 | F S Y=$O(^PSB(53.79,"AORDX",PSBDFN,PSBORDX,Y),-1) Q:Y="" Q:PSBFLAG=1 D
|
---|
16 | .S PSBLADT=$S(Y:Y,1:"")
|
---|
17 | .S X="" F S X=$O(^PSB(53.79,"AORDX",PSBDFN,PSBORDX,Y,X),-1) Q:X="" D
|
---|
18 | ..S PSBSTUS=$P(^PSB(53.79,X,0),U,9) I PSBSTUS'="N" S PSBFLAG=1
|
---|
19 | ..S PSBADMDT=$P(^PSB(53.79,X,.1),U,3)
|
---|
20 | ..D:PSBSTUS="N"
|
---|
21 | ...S (PSBLADT,PSBSTUS,PSBADMDT)=""
|
---|
22 | ...S Z="" F S Z=$O(^PSB(53.79,X,.9,Z),-1) Q:'Z Q:PSBFLAG=1 S PSBDATA=$G(^(Z,0)) D
|
---|
23 | ....I (PSBDATA["Set to 'NOT GIVEN'")!(PSBDATA["Set to 'GIVEN'")!(PSBDATA["Set to 'REFUSED'")!(PSBDATA["Set to 'HELD'")!(PSBDATA["Set to 'MISSING DOSE'")!(PSBDATA["Set to 'REMOVED'") S PSBCNT=PSBCNT+1
|
---|
24 | ....I (PSBDATA["STATUS 'HELD'")!(PSBDATA["STATUS 'GIVEN'")!(PSBDATA["STATUS 'REFUSED'")!(PSBDATA["STATUS 'MISSING DOSE'")!(PSBDATA["STATUS 'REMOVED'") S PSBCNT=PSBCNT+1
|
---|
25 | ....I PSBCNT#2=0,PSBDATA["'REFUSED'" S PSBSTUS="R",PSBADMDT=$P(^PSB(53.79,X,.1),U,3) D LAST
|
---|
26 | ....I PSBCNT#2=0,PSBDATA["'HELD'" S PSBSTUS="H",PSBADMDT=$P(^PSB(53.79,X,.1),U,3) D LAST
|
---|
27 | ....I PSBCNT#2=0,PSBDATA["'MISSING DOSE'" S PSBSTUS="M",PSBADMDT=$P(^PSB(53.79,X,.1),U,3) D LAST
|
---|
28 | ....I PSBCNT#2=0,PSBDATA["'REMOVED'" S PSBSTUS="RM",PSBADMDT=$P(^PSB(53.79,X,.1),U,3) D LAST
|
---|
29 | I PSBSTUS'="" S PSBSTR=PSBADMDT_U_PSBLADT_U_PSBSTUS
|
---|
30 | Q PSBSTR
|
---|
31 | ;
|
---|
32 | LAST ;
|
---|
33 | S PSBCC=0
|
---|
34 | S ZZ="" F S ZZ=$O(^PSB(53.79,X,.3,ZZ),-1) Q:'ZZ Q:PSBFLAG=1 S PSBDATA2=$G(^(ZZ,0)) D
|
---|
35 | .S PSBCC=PSBCC+1
|
---|
36 | .I PSBCC=2 S PSBLADT=$P(PSBDATA2,U,3),PSBFLAG=1
|
---|
37 | Q
|
---|
38 | MOB(PSBDFN,PSBCORN) ;
|
---|
39 | I '$D(^TMP("PSBMO",$J,PSBDFN,PSBCORN)) S ^TMP("PSB",$J,0)=-1 Q
|
---|
40 | M ^TMP("PSB",$J)=^TMP("PSBMO",$J,PSBDFN,PSBCORN)
|
---|
41 | K ^TMP("PSB",$J,"PSB")
|
---|
42 | Q
|
---|
43 | ;
|
---|
44 | MOBR(PSBDFN,PSBCORN,PSBORDN) ;
|
---|
45 | I $G(PSBORDN)="" K ^TMP("PSB",$J) Q
|
---|
46 | S PSBDUZ=DUZ,PSBDUZ(2)=DUZ(2),DFN=PSBDFN
|
---|
47 | S DUZ=$P(^TMP("PSBMO",$J,PSBDFN,PSBCORN,"PSB"),U,1),DUZ(2)=$P(^TMP("PSBMO",$J,PSBDFN,PSBCORN,"PSB"),U,2),PSBISITE=$P(^TMP("PSBMO",$J,PSBDFN,PSBCORN,"PSB"),U,3)
|
---|
48 | D PSJ1^PSBVT(PSBDFN,PSBORDN)
|
---|
49 | S PSBREC(0)=PSBDFN
|
---|
50 | S PSBREC(1)=PSBONX
|
---|
51 | S PSBREC(2)=PSBSCHT
|
---|
52 | S PSBREC(4)=PSBOIT
|
---|
53 | S PSBREC(5)=$P(^TMP("PSBMO",$J,PSBDFN,PSBCORN,0),U,5)
|
---|
54 | S PSBREC(6)=""
|
---|
55 | S PSBREC(7)="BCMA/CPRS Interface Entry."
|
---|
56 | S PSBREC(8)=PSBISITE
|
---|
57 | I PSBONX["U" S PSBREC(9)="UDTAB^",PSBREC(3)="G"
|
---|
58 | I PSBONX["V" D
|
---|
59 | .I "PCS"'[PSBIVT S PSBREC(9)="IVTAB"_U_$$GETWSID^PSBVDLU2(PSBDFN,PSBORDN),PSBREC(3)="I" Q
|
---|
60 | .I PSBIVT["S",PSBISYR=0 S PSBREC(9)="IVTAB"_U_$$GETWSID^PSBVDLU2(PSBDFN,PSBORDN),PSBREC(3)="I" Q
|
---|
61 | .I PSBIVT["C",PSBISYR=0 S PSBREC(9)="IVTAB"_U_$$GETWSID^PSBVDLU2(PSBDFN,PSBORDN),PSBREC(3)="I" Q
|
---|
62 | .S PSBREC(9)="PBTAB"_U_$$GETWSID^PSBVDLU2(PSBDFN,PSBORDN),PSBREC(3)="G" Q
|
---|
63 | S PSBIMV="^"_$P($G(^TMP("PSBMO",$J,PSBDFN,PSBCORN,"PSB")),U,4)
|
---|
64 | S PSBINDX=10
|
---|
65 | S X="" F S X=$O(PSBDDA(X)) Q:X="" S PSBREC(PSBINDX)=$P(PSBDDA(X),U,1,2)_U_$P(PSBDDA(X),U,4)_U_$P(PSBDDA(X),U,4)_U_PSBDOSEF,PSBINDX=PSBINDX+1
|
---|
66 | S X="" F S X=$O(PSBADA(X)) Q:X="" S PSBREC(PSBINDX)=PSBADA(X),PSBINDX=PSBINDX+1
|
---|
67 | S X="" F S X=$O(PSBSOLA(X)) Q:X="" S PSBREC(PSBINDX)=PSBSOLA(X),PSBINDX=PSBINDX+1
|
---|
68 | D RPC^PSBML(.PSB,"+1^MEDPASS"_$G(PSBIMV),.PSBREC)
|
---|
69 | S DUZ=PSBDUZ,DUZ(2)=PSBDUZ(2) K PSBDUZ,PSBDUZ(2),^TMP("PSBMO",$J,PSBREC(0),PSBCORN),^TMP("PSB",$J) D CLEAN^PSBVT
|
---|
70 | Q
|
---|