1 | GMPLSAVE ; SLC/MKB/KER -- Save Problem List data ; 04/15/2002
|
---|
2 | ;;2.0;Problem List;**26,31**;Aug 25, 1994
|
---|
3 | ;
|
---|
4 | ; External References
|
---|
5 | ; DBIA 10018 ^DIE
|
---|
6 | ; DBIA 10013 ^DIK
|
---|
7 | ; DBIA 10013 IX1^DIK
|
---|
8 | ; DBIA 10103 $$HTFM^XLFDT
|
---|
9 | ;
|
---|
10 | EN ; Save Changes made to Existing Problem
|
---|
11 | N FLD,NOW,CHNGE,I,NIFN,TEXT,OLDTEXT,FAC,NODE,AUDITED,DR,DA,DIE,DIK
|
---|
12 | S:'GMPORIG(.01) GMPORIG(.01)=$$NOS^GMPLX
|
---|
13 | S:'GMPFLD(.01) GMPFLD(.01)=$$NOS^GMPLX
|
---|
14 | S:$P(+GMPFLD(.01),U)=-1 GMPFLD(.01)=$$NOS^GMPLX ;chk for error from ICD
|
---|
15 | S:'GMPORIG(1.01) GMPORIG(1.01)="1^Unresolved"
|
---|
16 | S:'GMPFLD(1.01) GMPFLD(1.01)="1^Unresolved"
|
---|
17 | S:'GMPFLD(.05) I=$P(GMPFLD(.05),U,2),GMPFLD(.05)=$$PROVNARR^GMPLX(I,+GMPFLD(1.01))
|
---|
18 | S NOW=$$HTFM^XLFDT($H),AUDITED=0
|
---|
19 | S DR="1.02////"_$S('$D(GMPLUSER):"T",1:GMPFLD(1.02))
|
---|
20 | I GMPORIG(1.02)="T",GMPFLD(1.02)="P" D
|
---|
21 | . S CHNGE=GMPIFN_"^1.02^"_NOW_U_DUZ_"^T^P^Verified^"_DUZ
|
---|
22 | . D AUDIT^GMPLX(CHNGE,"")
|
---|
23 | I $P($G(GMPORIG(.12)),U)="I",$P(GMPFLD(.12),U)="A" D REACTV S AUDITED=1
|
---|
24 | I +$G(GMPORIG(1.01))'=(+GMPFLD(1.01)) D REFORM S AUDITED=1
|
---|
25 | S GMPFLD(.01)=+GMPFLD(.01) ;to remove text left by ?? lex (~)
|
---|
26 | F FLD=.01,.05,.12,.13,1.01,1.05,1.06,1.07,1.08,1.09,1.1,1.11,1.12,1.13,1.14,1.15,1.16 D
|
---|
27 | . Q:'$D(GMPFLD(FLD)) Q:$P($G(GMPORIG(FLD)),U)=$P($G(GMPFLD(FLD)),U)
|
---|
28 | . S DR=DR_";"_FLD_"////"_$S($P(GMPFLD(FLD),U)'="":$P(GMPFLD(FLD),U),1:"@")
|
---|
29 | . Q:AUDITED S CHNGE=GMPIFN_U_FLD_U_NOW_U_DUZ_U_$P(GMPORIG(FLD),U)_U_$P(GMPFLD(FLD),U)_"^^"_+$G(GMPROV)
|
---|
30 | . D AUDIT^GMPLX(CHNGE,"")
|
---|
31 | S DA=GMPIFN,DIE="^AUPNPROB(" D ^DIE S GMPSAVED=1
|
---|
32 | NOTES ; Save Changes to Notes
|
---|
33 | F I=0:0 S I=$O(GMPORIG(10,I)) Q:I'>0 I GMPORIG(10,I)'=GMPFLD(10,I) D
|
---|
34 | . S NIFN=+GMPFLD(10,I),FAC=$P(GMPFLD(10,I),U,2),TEXT=$P(GMPFLD(10,I),U,3),OLDTEXT=$P(GMPORIG(10,I),U,3)
|
---|
35 | . S NODE=$G(^AUPNPROB(GMPIFN,11,FAC,11,NIFN,0))
|
---|
36 | . I TEXT'="" S $P(^AUPNPROB(GMPIFN,11,FAC,11,NIFN,0),U,3)=TEXT D
|
---|
37 | .. I TEXT=OLDTEXT Q
|
---|
38 | .. S CHNGE=GMPIFN_"^1101^"_NOW_U_DUZ_"^C^^Note Modified^"_+$G(GMPROV)
|
---|
39 | . I TEXT=OLDTEXT Q
|
---|
40 | . I TEXT="" S CHNGE=GMPIFN_"^1101^"_NOW_U_DUZ_"^A^^Deleted Note^"_+$G(GMPROV)
|
---|
41 | . D AUDIT^GMPLX(CHNGE,NODE)
|
---|
42 | . I TEXT="" D
|
---|
43 | .. S DIK="^AUPNPROB("_GMPIFN_",11,"_FAC_",11,"
|
---|
44 | .. S DA(2)=GMPIFN,DA(1)=FAC,DA=NIFN D ^DIK
|
---|
45 | I $D(GMPFLD(10,"NEW"))>9 D NEWNOTE
|
---|
46 | EXIT ; Quit Saving Changes
|
---|
47 | D:$G(GMPSAVED) DTMOD^GMPLX(GMPIFN)
|
---|
48 | Q
|
---|
49 | ;
|
---|
50 | REFORM ; Audit Entry that has been Reformulated
|
---|
51 | S CHNGE=GMPIFN_"^1.01^"_NOW_U_DUZ_U_+GMPORIG(1.01)_U_+GMPFLD(1.01)_"^Reformulated^"_+$G(GMPROV)
|
---|
52 | S NODE=$G(^AUPNPROB(GMPIFN,0))_U_$G(^AUPNPROB(GMPIFN,1))
|
---|
53 | D AUDIT^GMPLX(CHNGE,NODE)
|
---|
54 | Q
|
---|
55 | ;
|
---|
56 | REACTV ; Audit Entry that has been Reactivated
|
---|
57 | S CHNGE=GMPIFN_"^.12^"_NOW_U_DUZ_"^I^A^Reactivated^"_+$G(GMPROV)
|
---|
58 | S NODE=$G(^AUPNPROB(GMPIFN,0))_U_$G(^AUPNPROB(GMPIFN,1))
|
---|
59 | D AUDIT^GMPLX(CHNGE,NODE)
|
---|
60 | Q
|
---|
61 | ;
|
---|
62 | NEW ; Save Collected Values in new Problem Entry
|
---|
63 | ; Output DA (left defined)
|
---|
64 | N DATA,APCDLOOK,APCDALVR,NUM,I,DIK,GMPIFN,X
|
---|
65 | S:'GMPFLD(.01) GMPFLD(.01)=$$NOS^GMPLX
|
---|
66 | S:$P(+GMPFLD(.01),U)=-1 GMPFLD(.01)=$$NOS^GMPLX ;chk for error from ICD
|
---|
67 | S GMPFLD(.01)=+GMPFLD(.01) ;to remove text left by ?? lex (~)
|
---|
68 | S:'GMPFLD(1.01) GMPFLD(1.01)="1^Unresolved"
|
---|
69 | S:'GMPFLD(.05) X=$P(GMPFLD(.05),U,2),GMPFLD(.05)=$$PROVNARR^GMPLX(X,+GMPFLD(1.01))
|
---|
70 | S DA=$$NEWPROB(+GMPFLD(.01),+GMPDFN) Q:DA'>0
|
---|
71 | S NUM=$$NEXTNMBR(+GMPDFN,+GMPVAMC),GMPSAVED=1 S:'NUM NUM=""
|
---|
72 | ; Set Node 0
|
---|
73 | S DATA=^AUPNPROB(DA,0)_U_DT_"^^"_$P(GMPFLD(.05),U)_U_+GMPVAMC_U_+NUM_U_DT_"^^^^"_$P(GMPFLD(.12),U)_U_$P(GMPFLD(.13),U)
|
---|
74 | S ^AUPNPROB(DA,0)=DATA
|
---|
75 | ; Set Node 1
|
---|
76 | S DATA=$P(GMPFLD(1.01),U) F I=1.02:.01:1.16 S DATA=DATA_U_$P($G(GMPFLD(+I)),U)
|
---|
77 | S ^AUPNPROB(DA,1)=DATA
|
---|
78 | ; Set X-Refs
|
---|
79 | S DIK="^AUPNPROB(",(APCDLOOK,APCDALVR)=1 D IX1^DIK
|
---|
80 | I $D(GMPFLD(10,"NEW"))>9 S GMPIFN=DA D NEWNOTE
|
---|
81 | Q
|
---|
82 | ;
|
---|
83 | NEWPROB(ICD,DFN) ; Creates New Problem Entry in file #9000011
|
---|
84 | N I,HDR,LAST,TOTAL,DA
|
---|
85 | L +^AUPNPROB(0):1 I '$T D Q -1
|
---|
86 | . W !!,"Someone else is currently editing this file."
|
---|
87 | . W !,"Please try again later.",!
|
---|
88 | S HDR=$G(^AUPNPROB(0)) Q:HDR="" -1
|
---|
89 | S LAST=$P(HDR,U,3),TOTAL=$P(HDR,U,4)
|
---|
90 | F I=(LAST+1):1 Q:'$D(^AUPNPROB(I,0))
|
---|
91 | S DA=I,^AUPNPROB(DA,0)=ICD_U_DFN
|
---|
92 | S ^AUPNPROB("B",ICD,DA)="",^AUPNPROB("AC",DFN,DA)=""
|
---|
93 | S $P(^AUPNPROB(0),U,3,4)=DA_U_(TOTAL+1) L -^AUPNPROB(0)
|
---|
94 | Q DA
|
---|
95 | ;
|
---|
96 | NEWNOTE ; Creates New Note Entries for Problem
|
---|
97 | ; Requires GMPIFN Pointer to Problem
|
---|
98 | ; GMPROV Current Provider
|
---|
99 | ; GMPVAMC Facility
|
---|
100 | N HDR,LAST,TOTAL,I,FAC,NIFN
|
---|
101 | L +^AUPNPROB(GMPIFN,11):1 I '$T Q
|
---|
102 | S FAC=+$O(^AUPNPROB(GMPIFN,11,"B",GMPVAMC,0)) I 'FAC D
|
---|
103 | . S:'$D(^AUPNPROB(GMPIFN,11,0)) ^(0)="^9000011.11PA^^"
|
---|
104 | . S HDR=^AUPNPROB(GMPIFN,11,0),LAST=$P(HDR,U,3),TOTAL=$P(HDR,U,4)
|
---|
105 | . F I=(LAST+1):1 Q:'$D(^AUPNPROB(GMPIFN,11,I,0))
|
---|
106 | . S ^AUPNPROB(GMPIFN,11,I,0)=GMPVAMC,^AUPNPROB(GMPIFN,11,"B",GMPVAMC,I)=""
|
---|
107 | . S FAC=I,$P(^AUPNPROB(GMPIFN,11,0),U,3,4)=FAC_U_(TOTAL+1)
|
---|
108 | I FAC'>0 G NNQ
|
---|
109 | NN1 ; Get New Note
|
---|
110 | S:'$D(^AUPNPROB(GMPIFN,11,FAC,11,0)) ^(0)="^9000011.1111IA^^"
|
---|
111 | S HDR=^AUPNPROB(GMPIFN,11,FAC,11,0),LAST=$P(HDR,U,3),TOTAL=$P(HDR,U,4)
|
---|
112 | F I=(LAST+1):1 Q:'$D(^AUPNPROB(GMPIFN,11,FAC,11,I,0))
|
---|
113 | S NIFN=I
|
---|
114 | F I=0:0 S I=$O(GMPFLD(10,"NEW",I)) Q:I'>0 D
|
---|
115 | . S ^AUPNPROB(GMPIFN,11,FAC,11,NIFN,0)=NIFN_"^^"_GMPFLD(10,"NEW",I)_"^A^"_DT_U_+$G(GMPROV)
|
---|
116 | . S ^AUPNPROB(GMPIFN,11,FAC,11,"B",NIFN,NIFN)=""
|
---|
117 | . S TOTAL=TOTAL+1,LAST=NIFN,NIFN=NIFN+1
|
---|
118 | S $P(^AUPNPROB(GMPIFN,11,FAC,11,0),U,3,4)=LAST_U_TOTAL
|
---|
119 | NNQ ; Quit Getting New Notes
|
---|
120 | L -^AUPNPROB(GMPIFN,11)
|
---|
121 | Q
|
---|
122 | ;
|
---|
123 | NEXTNMBR(DFN,VAMC) ; Returns Next Available Problem Number
|
---|
124 | N I,J,NUM S NUM=1,I="" I '$D(^AUPNPROB("AA",DFN,VAMC)) Q NUM
|
---|
125 | F S I=$O(^AUPNPROB("AA",DFN,VAMC,I)) Q:I="" S J=$E(I,2,999),NUM=+J
|
---|
126 | S NUM=NUM+1
|
---|
127 | Q NUM
|
---|