1 | FHWGMR ; HISC/NCA - Signed Reaction Event Filer ;2/16/96 11:37
|
---|
2 | ;;5.5;DIETETICS;**8**;Jan 28, 2005;Build 28
|
---|
3 | EN1 ; File Entered Signed Reaction
|
---|
4 | Q:+$$VERSION^XPDUTL("GMRA")'=4
|
---|
5 | S FLG=1 D CHK G:'FLG KIL
|
---|
6 | S EVT="M^O^^"_"Allergy - "_ALG D FIL
|
---|
7 | I FHGMRN'="" D UPDFP
|
---|
8 | G KIL
|
---|
9 | CAN ; File Cancelled/Entered in Error Allergy
|
---|
10 | S FLG=1 D CHK G:'FLG KIL
|
---|
11 | S EVT="M^O^^"_"Allergy - "_ALG_" Cancelled" D FIL
|
---|
12 | I FHGMRN'="" D CANFP
|
---|
13 | G KIL
|
---|
14 | FIL ; File Event
|
---|
15 | D ^FHORX
|
---|
16 | Q
|
---|
17 | KIL K %,%H,%I,ADM,ALG,COM,DFN,FHSTR,FHTYP,FHWRD,FLG,FHALGN,FHGMRN,FHFPN,FHFPIEN,X Q
|
---|
18 | CHK ; Check Validity of Data Passed
|
---|
19 | I 'GMRAPA!($G(GMRAPA(0))="") G ERR
|
---|
20 | S FHSTR=$G(GMRAPA(0)),DFN=+FHSTR G:'DFN ERR
|
---|
21 | S FHALGN=$P(FHSTR,U,3)
|
---|
22 | S FHGMRN="" I $P(FHALGN,";",2)="GMRD(120.82," S FHGMRN=$P(FHALGN,";",1)
|
---|
23 | S FHZ115="P"_DFN D CHECK^FHOMDPA I FHDFN="" G ERR
|
---|
24 | S ALG=$P(FHSTR,"^",2) G:ALG="" ERR
|
---|
25 | G:'$D(^FHPT(FHDFN)) ERR S FHWRD=$G(^DPT(DFN,.1)) ;G:FHWRD="" ERR
|
---|
26 | S ADM="" I FHWRD'="" S ADM=$G(^DPT("CN",FHWRD,DFN)) ;G:ADM<1 ERR
|
---|
27 | G:'$P(FHSTR,"^",12) ERR
|
---|
28 | S FHTYP=$P(FHSTR,"^",20) G:FHTYP'["F" ERR
|
---|
29 | Q
|
---|
30 | UPDFP ;Automatically add FP's corresponding to the Allergy
|
---|
31 | D ^FHSELA2
|
---|
32 | UPDFP1 I $O(^FH(115.2,"C",FHGMRN,""))="" D MISSFP Q ;No Corr FP for FHGMRN
|
---|
33 | F FHFPN=0:0 S FHFPN=$O(^FH(115.2,"C",FHGMRN,FHFPN)) Q:FHFPN'>0 D ADD
|
---|
34 | Q
|
---|
35 | ADD ;Add the FP(s) to the patient record
|
---|
36 | I $O(^FHPT(FHDFN,"P","B",FHFPN,"")) Q ;pt already has the FP
|
---|
37 | I $G(^FH(115.2,FHFPN,"I"))="Y" Q ;don't assign INACTIVE FP's
|
---|
38 | S Y=FHFPN K DIC,DO S DA(1)=FHDFN,DIC="^FHPT("_DA(1)_",""P"","
|
---|
39 | S DIC(0)="L",DIC("P")=$P(^DD(115,10,0),U,2),X=+Y
|
---|
40 | D FILE^DICN I Y=-1 Q
|
---|
41 | K DIE S DA=+Y,DA(1)=FHDFN,DIE="^FHPT("_DA(1)_",""P"","
|
---|
42 | S DR="1////^S X=""BNE""" D ^DIE
|
---|
43 | S COM="Add "_$P($G(^FH(115.2,FHFPN,0)),U,1)_" (BNE) (D)"
|
---|
44 | S EVT="P^O^^"_COM D ^FHORX
|
---|
45 | Q
|
---|
46 | MISSFP ;
|
---|
47 | I '$D(^GMRD(120.82,FHGMRN,0)) Q ;bad pointer/entry
|
---|
48 | S FHANAME=$P($G(^GMRD(120.82,FHGMRN,0)),U,1)
|
---|
49 | S FHPTNM=$P($G(^DPT(DFN,0)),U,1)
|
---|
50 | S FHRR="" F S FHRR=$O(^TMP($J,"FHALG",FHRR)) Q:FHRR="" S FHRRNM=$P(^TMP($J,"FHALG",FHRR),";",2,99) D
|
---|
51 | .S FHZ=0 F S FHZ=FHZ+1,FHANMZZ=$P(FHRRNM,";",FHZ) Q:FHANMZZ="" D
|
---|
52 | ..I FHANMZZ=FHANAME S ^TMP($J,"FHMISS",FHRR,FHPTNM)=FHANAME
|
---|
53 | Q
|
---|
54 | CANFP ;Automatically cancel FP's corresponding to Allergy Entered in Error
|
---|
55 | I $O(^FH(115.2,"C",FHGMRN,""))="" Q ;No Corr FP for this GMRA Allergy
|
---|
56 | F FHFPN=0:0 S FHFPN=$O(^FH(115.2,"C",FHGMRN,FHFPN)) Q:FHFPN'>0 D REM
|
---|
57 | Q
|
---|
58 | REM ;Remove the FP(s) from the patient record
|
---|
59 | I '$O(^FHPT(FHDFN,"P","B",FHFPN,"")) Q ;pt does not have the FP
|
---|
60 | S FHFPIEN=$O(^FHPT(FHDFN,"P","B",FHFPN,""))
|
---|
61 | S DA(1)=FHDFN,DA=FHFPIEN,DIK="^FHPT("_DA(1)_",""P""," D ^DIK
|
---|
62 | S COM="Del "_$P($G(^FH(115.2,FHFPN,0)),U,1)_" (BNE) (D)"
|
---|
63 | S EVT="P^O^^"_COM D ^FHORX
|
---|
64 | Q
|
---|
65 | ERR S FLG=0 Q
|
---|