1 | ALPBUTL3 ;OIFO-DALLAS MW,SED,KC-BCBU BACKUP REPORT FUNCTIONS AND UTILITIES ;01/01/03
|
---|
2 | ;;3.0;BAR CODE MED ADMIN;**8**;Mar 2004
|
---|
3 | START(DAY) ;Get current date
|
---|
4 | D NOW^%DTC
|
---|
5 | S Y=X
|
---|
6 | S STARD=%I(2)
|
---|
7 | D DD^%DT
|
---|
8 | S MON=$E(Y,1,3)
|
---|
9 | S LD=$S(MON="JAN":31,MON="FEB":29,MON="MAR":31,MON="APR":30,MON="MAY":31,MON="JUN":30,MON="JUL":31,MON="AUG":31,MON="SEP":30,MON="OCT":31,MON="NOV":30,MON="DEC":31)
|
---|
10 | S LDD=LD+1
|
---|
11 | S SP=69,CNT=0
|
---|
12 | S SS=STARD+DAY
|
---|
13 | I SS>LDD S SS=LDD
|
---|
14 | I SS<LDD S LDD=SS
|
---|
15 | F J=STARD:0 DO Q:J=LDD
|
---|
16 | .S SP=SP+6,CNT=CNT+1
|
---|
17 | .W ?SP,J
|
---|
18 | .S J=J+1
|
---|
19 | .I J=SS Q
|
---|
20 | I CNT'=DAY F J=1:1 DO Q:CNT=DAY
|
---|
21 | .S SP=SP+6,CNT=CNT+1
|
---|
22 | .W ?SP,J
|
---|
23 | Q
|
---|
24 | MON(DAY) ;Get the month
|
---|
25 | D NOW^%DTC
|
---|
26 | S Y=X
|
---|
27 | S STARD=%I(2)
|
---|
28 | D DD^%DT
|
---|
29 | S MON=$E(Y,1,3)
|
---|
30 | S LD=$S(MON="JAN":31,MON="FEB":29,MON="MAR":31,MON="APR":30,MON="MAY":31,MON="JUN":30,MON="JUL":31,MON="AUG":31,MON="SEP":30,MON="OCT":31,MON="NOV":30,MON="DEC":31)
|
---|
31 | Q
|
---|
32 | ARRAY(DAY) ;BUILD ARRAY FOR TO FIND NEXT MONTH
|
---|
33 | S MONT("JAN")="FEB"
|
---|
34 | S MONT("FEB")="MAR"
|
---|
35 | S MONT("MAR")="APR"
|
---|
36 | S MONT("APR")="MAY"
|
---|
37 | S MONT("MAY")="JUN"
|
---|
38 | S MONT("JUN")="JUL"
|
---|
39 | S MONT("JUL")="AUG"
|
---|
40 | S MONT("AUG")="SEP"
|
---|
41 | S MONT("SEP")="OCT"
|
---|
42 | S MONT("OCT")="NO"
|
---|
43 | S MONT("NOV")="DEC"
|
---|
44 | S MONT("DEC")="JAN"
|
---|
45 | D NOW^%DTC
|
---|
46 | S Y=X
|
---|
47 | S STARD=%I(2)
|
---|
48 | D DD^%DT
|
---|
49 | S MON=$E(Y,1,3)
|
---|
50 | S LD=$S(MON="JAN":31,MON="FEB":29,MON="MAR":31,MON="APR":30,MON="MAY":31,MON="JUN":30,MON="JUL":31,MON="AUG":31,MON="SEP":30,MON="OCT":31,MON="NOV":30,MON="DEC":31)
|
---|
51 | S LDD=LD+1
|
---|
52 | S SP=69,CNT=0
|
---|
53 | S SS=STARD+DAY
|
---|
54 | I SS>LDD S SS=LDD
|
---|
55 | I SS<LDD S LDD=SS
|
---|
56 | F J=STARD:0 DO Q:J=LDD
|
---|
57 | .S SP=SP+6,CNT=CNT+1
|
---|
58 | .S J=J+1
|
---|
59 | .I J=SS Q
|
---|
60 | I CNT'=DAY W ?SP+6,$P(MONT(MON),"^",1)
|
---|
61 | Q
|
---|
62 | DEFML() ; fetch and return default med log print...
|
---|
63 | ; returns default number of med log entries to print based on entry in
|
---|
64 | ; MED-LOG NUMBER field in BCMA BACKUP PARAMETERS file (53.71)
|
---|
65 | N X
|
---|
66 | S X=$S(+$P($G(^ALPB(53.71,1,2)),U,4)>0:+$P(^ALPB(53.71,1,2),U,4),1:1)
|
---|
67 | Q X
|
---|
68 | DEFOR() ; fetch and return purge order flag...
|
---|
69 | ; returns the number of day to hold a patient order after
|
---|
70 | ; the Stop Date. Default is 7
|
---|
71 | ; Based on entry in PURGE ORDER DAYS field in BCMA BACKUP
|
---|
72 | ; PARAMETERS file (53.71)
|
---|
73 | N X
|
---|
74 | S X=$S(+$P($G(^ALPB(53.71,1,2)),U,2)>0:+$P(^ALPB(53.71,1,2),U,2),1:7)
|
---|
75 | Q X
|
---|
76 | DEFPR() ; fetch and return purge patient flag...
|
---|
77 | ; returns the number of days to hold the patient record
|
---|
78 | ; with no orders. Default is 30
|
---|
79 | ; Based on entry in PURGE PATIENT field in BCMA BACKUP
|
---|
80 | ; PARAMETERS file (53.71)
|
---|
81 | N X
|
---|
82 | S X=$S(+$P($G(^ALPB(53.71,1,2)),U,3)>0:+$P(^ALPB(53.71,1,2),U,3),1:30)
|
---|
83 | Q X
|
---|
84 | LSTACT ; Build a cross reference by patient by drug to keep up
|
---|
85 | ; with the last action of the drug. The x-ref is built but stays
|
---|
86 | ; even if order is purged. The x-ref gets removed when the patient
|
---|
87 | ; is purged.
|
---|
88 | ; ^ALPB(53.1,DFN,"LSTACT",DRUG,ACTION DATE)=PERSON^ACTION
|
---|
89 | N ALP,DRUG,DATE
|
---|
90 | ;Q:+$G(DA(2))'>0!(+$G(DA(1))'>0)!(+$G(DA)'>0)
|
---|
91 | ; get drug info - can be multiple
|
---|
92 | S ALP=0 F ALP=$O(^ALPB(53.7,DA(2),2,DA(1),7,ALP)) Q:+ALP'>0 D
|
---|
93 | . S DRUG=$P($G(^ALPB(53.7,DA(2),2,DA(1),7,ALP,0)),U,1)
|
---|
94 | . Q:+DRUG'>0
|
---|
95 | . S DATE=$P($G(^ALPB(53.7,DA(2),2,DA(1),10,DA,0)),U,1)
|
---|
96 | . S ^ALPB(53.7,DA(2),"LSTACT",DRUG,(9999999-DATE))=$G(^ALPB(53.7,DA(2),2,DA(1),10,DA,0))
|
---|
97 | Q
|
---|
98 | LACT(ALPDFN,ALPDRUG) ; Retrieve the last action infor for a patient
|
---|
99 | ; for a certian drug
|
---|
100 | ; ALPDFN = Patient DFN
|
---|
101 | ; ALPDRUG = Drug Ordable Item IEN
|
---|
102 | N DATA,ALP
|
---|
103 | Q:+$G(ALPDFN)'>0 ""
|
---|
104 | Q:+$G(ALPDRUG)'>0 ""
|
---|
105 | I '$D(^ALPB(53.7,ALPDFN,"LSTACT",ALPDRUG)) Q ""
|
---|
106 | S ALP=$O(^ALPB(53.7,ALPDFN,"LSTACT",ALPDRUG,0))
|
---|
107 | S DATA=$G(^ALPB(53.7,ALPDFN,"LSTACT",ALPDRUG,ALP))
|
---|
108 | Q DATA
|
---|