source: WorldVistAEHR/trunk/r/LAB_SERVICE-LR-LS/LRBLAUD.m@ 836

Last change on this file since 836 was 613, checked in by George Lilly, 15 years ago

initial load of WorldVistAEHR

File size: 4.2 KB
Line 
1LRBLAUD ;TOG/CYM - AUDIT TRAIL MULTIPLE FIELDS 9/3/97 14:32
2 ;;5.2;LAB SERVICE;**90,247**;Sep 27, 1994
3 ;Per VHA Directive 97-033 this routine should not be modified. Medical Device # BK970021
4 ;
5 ;
6 ; Routine is called by file 65 edit template LRBLIXR
7 ;
8 ; Multiple field arrays are built and totaled before and after
9 ; editing LRBLIXR to be used for comparison. If total after editing
10 ; is less than before editing, then the entire node is put onto
11 ; the Audit trail for Blood Bank.
12 ;
13REL ; Gets original relocation episodes for a unit, sets into the
14 ; BEGR() array and counts total for later comparison
15 S (REL,BEGREL)=0
16 F S REL=$O(^LRD(65,LRIEN,3,REL)) Q:REL'>0 S BEGREL=BEGREL+1,BEGR(REL)=^LRD(65,LRIEN,3,REL,0)
17 Q
18 ;
19REL1 ; Gets relocation episodes for unit after editing, sets into AFTR()
20 ; array, counts total. If total after edit < original total, then
21 ; entire deleted record is built onto the audit trail
22 S (REL,AFTREL)=0
23 F S REL=$O(^LRD(65,LRIEN,3,REL)) Q:REL'>0 S AFTREL=AFTREL+1,AFTR(REL)=^LRD(65,LRIEN,3,REL,0)
24 I AFTREL<BEGREL D
25 . S LRM=NODE
26 . S O=$P(LRM,U),Z="65.03,.01" D AUDIT
27 . S O=$P(LRM,U,2),Z="65.03,.02" D AUDIT
28 . S O=$P(LRM,U,3),Z="65.03,.03" D AUDIT
29 . S O=$P(LRM,U,4),Z="65.03,.04" D AUDIT
30 . S O=$P(LRM,U,5),Z="65.03,.05" D AUDIT
31 . S O=$P(LRM,U,6),Z="65.03,.06" D AUDIT
32 . S O=$P(LRM,U,7),Z="65.03,.07" D AUDIT
33 . K NODE
34 Q
35 ;
36PAT ; Gets all unit's Patient Xmatched/Assigned episodes, sets into
37 ; the BEGP() array & counts total for later comparison
38 S (BEGPAT,PAT)=0
39 F S PAT=$O(^LRD(65,LRIEN,2,PAT)) Q:PAT'>0 S BEGPAT=BEGPAT+1,BEGP(PAT)=^LRD(65,LRIEN,2,PAT,0)
40 Q
41 ;
42PAT1 ; Gets all Patients Xmatched/Assigned for a unit after editing and
43 ; puts into AFTP() array. If total after editing < original total
44 ; then the deleted patient Xmatched/Assigned node is built onto the
45 ; audit trail. The input template then call line BLD3 to get the
46 ; associated Blood Sample date/time multiple & include this on the
47 ; audit trail also.
48 S (PAT,AFTPAT)=0
49 F S PAT=$O(^LRD(65,LRIEN,2,PAT)) Q:PAT'>0 S AFTPAT=AFTPAT+1,AFTP(PAT)=^LRD(65,LRIEN,2,PAT,0)
50 I AFTPAT<BEGPAT D
51 . S LRM=PNODE
52 . S O=$P(LRM,U),Z="65.01,.01" D AUDIT
53 . S O=$P(LRM,U,2),Z="65.01,.02" D AUDIT
54 I AFTPAT<BEGPAT D BLD4
55 Q
56 ;
57BLD ; Gets all original blood samples for a patient, sets into the
58 ; BEGB() array and counts total for later comparison
59 S (BLD,BEGBLD)=0
60 F S BLD=$O(^LRD(65,LRIEN,2,LRDFN,1,BLD)) Q:BLD'>0 S BEGBLD=BEGBLD+1,BEGB(BLD)=^LRD(65,LRIEN,2,LRDFN,1,BLD,0)
61 Q
62 ;
63BLD1 ; Gets patient blood samples after editing, set into AFTB() array,
64 ; counts total. If total after editing < original total, then the
65 ; deleted node is built onto the audit trail.
66 S (BLD,AFTBLD)=0
67 F S BLD=$O(^LRD(65,LRIEN,2,LRDFN,1,BLD)) Q:BLD'>0 S AFTBLD=AFTBLD+1,AFTB(BLD)=^LRD(65,LRIEN,2,LRDFN,1,BLD,0)
68 Q:'$D(BEGBLD) I AFTBLD<BEGBLD D BLD2 Q
69 Q
70BLD2 ; Actual code that puts the Blood Sample Date/Time subfields
71 ; into the audit trail.
72 S LRM=BNODE
73 S O=$P(LRM,U),Z="65.02,.01" D AUDIT
74 S O=$P(LRM,U,2),Z="65.02,.02" D AUDIT
75 S O=$P(LRM,U,3),Z="65.02,.03" D AUDIT
76 S O=$P(LRM,U,4),Z="65.02,.04" D AUDIT
77 S O=$P(LRM,U,5),Z="65.02,.05" D AUDIT
78 S O=$P(LRM,U,7),Z="65.02,.07" D AUDIT
79 S O=$P(LRM,U,8),Z="65.02,.08" D AUDIT
80 S O=$P(LRM,U,9),Z="65.02,.09" D AUDIT
81 S O=$P(LRM,U,10),Z="65.02,.1" D AUDIT
82 Q
83 ;
84BLD3 ; Gets all Blood Sample date/time assigned to a particular
85 ; LRDFN, sets into BEGB1() array, counts total. This is so
86 ; that the audit trail is built for this submultiple node
87 ; in the case that the entire Patient Xmatched/Assigned node
88 ; is deleted.
89 S (BLD1,BEGBLD1)=0
90 F S BLD1=$O(^LRD(65,LRIEN,2,LRDFN,1,BLD1)) Q:BLD1'>0 S BEGB1(BLD1)=^LRD(65,LRIEN,2,LRDFN,1,BLD1,0),BEGBLD1=BEGBLD1+1
91 Q
92 ;
93BLD4 ; If a Patients Xmatched/Assigned entry has been deleted, adds
94 ; adds any Blood Sample Date/time entries for that deleted
95 ; patient to the audit trail.
96 I '$D(BEGB1) Q
97 F BLD1=0:0 S BLD1=$O(BEGB1(BLD1)) Q:'BLD1 S BNODE=BEGB1(BLD1) D BLD2
98 Q
99 ;
100AUDIT I O]"" S X="Deleted" D EN^LRUD
101 Q
102 ;
103K ; Kills variables created during editing of a disposition
104 K LRDISP,LRDSP,LRDIST,LRPERS,LRPTRANS,LRDIPD,LRPTR,LRPHYS,LRTS,LRREC,LRREACT,LRPROVN,LRTSNUM,LRRXTYPE,LRPTREC,LRTRDT,LRCOMP,LRCOMPID,LRENTP,LRUNABO,LRUNRH,LRPOOL,LRRECRX,LROLD,LRVOL,LRTYPE
105 Q
106 ;
107CHECK I O'=X D EN^LRUD
108 Q
Note: See TracBrowser for help on using the repository browser.