1 | DGRPU1 ;ALB/REW CUSTOM LOAD/EDIT SCREEN UTILITIES ;9-FEB-92
|
---|
2 | ;;5.3;Registration;**139,169,415,527,508**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | QUES(DFN,DGQCODE) ; EDIT SPECIFIC PORTIONS OF REGISTRATION DATA
|
---|
5 | ;
|
---|
6 | ; INPUT:
|
---|
7 | ; DFN
|
---|
8 | ; DGQCODE = Code for question(s) to be asked
|
---|
9 | ; OUTPUT:
|
---|
10 | ; DGERR = ERROR VARIABLE
|
---|
11 | ; DGCHANGE= 1 IF DATA MODIFIED 0 O/W
|
---|
12 | ; USED:
|
---|
13 | ; DGPTND = Prior value(s) of Patient File node(s) [array]
|
---|
14 | ; DGQNODES= Node(s) used above
|
---|
15 | ; DGNODE = Single node
|
---|
16 | ; DGDR = edit=screen*10+item #
|
---|
17 | ; DGRPS = Screen #
|
---|
18 | ; DGCODE = CODE used by ^DGRPE
|
---|
19 | ; DGQ = String of ^DGCODE^DGCODE etc.
|
---|
20 | ; DGPC = Piece Number
|
---|
21 | ; DGX = Line Tag offset
|
---|
22 | ;
|
---|
23 | N D,D0,DI,DIC,DGCODE,DGDR,DGNODE,DGQNODES,DGPC,DGPTND,DGRPS,DGQ,DGX
|
---|
24 | N DQ,N,X,Y,%Y,DGPTNDM
|
---|
25 | S (DGERR,DGRPS,DGCHANGE)=0
|
---|
26 | I '($G(DFN)&$D(DGQCODE)) G QTE
|
---|
27 | F DGX=1:1 S DGQ=$T(QDES+DGX) Q:DGQ[(U_DGQCODE_U)!(DGQ']"")
|
---|
28 | F DGPC=2:1 S DGCODE=$P(DGQ,U,DGPC) Q:(DGCODE']"")!(DGCODE=DGQCODE)
|
---|
29 | G:DGCODE']"" QTE
|
---|
30 | S DGDR=$P($T(QNUM+DGX),U,DGPC)
|
---|
31 | S DGRPS=DGDR\100
|
---|
32 | S DGQNODES=$P($T(QNODE+DGX),U,DGPC)
|
---|
33 | F N=1:1 S DGNODE=$P(DGQNODES,"~",N) Q:DGNODE']"" S DGPTND(DGNODE)=$G(^DPT(DFN,DGNODE))
|
---|
34 | S DGQNODES=$P($T(MNODE+DGX),U,DGPC)
|
---|
35 | F N=1:1 S DGNODE=$P(DGQNODES,"~",N) Q:DGNODE']"" M DGPTNDM(DGNODE)=^DPT(DFN,DGNODE) S DGPTNDM(DGNODE)=""
|
---|
36 | D ^DGRPE
|
---|
37 | F DGNODE=0:0 S DGNODE=$O(DGPTND(DGNODE)) Q:DGNODE']"" S:$G(^DPT(DFN,DGNODE))'=(DGPTND(DGNODE)) DGCHANGE=1
|
---|
38 | S DGNODE="" F S DGNODE=$O(DGPTNDM(DGNODE)) Q:DGNODE']"" D Q:DGCHANGE
|
---|
39 | .S X=0 F S X=$O(DGPTNDM(DGNODE,X)) Q:'X D Q:DGCHANGE
|
---|
40 | ..S Y="" F S Y=$O(DGPTNDM(DGNODE,X,Y)) Q:Y']"" D Q:DGCHANGE
|
---|
41 | ...I $G(^DPT(DFN,DGNODE,X,Y))'=DGPTNDM(DGNODE,X,Y) S DGCHANGE=1
|
---|
42 | .Q:DGCHANGE
|
---|
43 | .S X=0 F S X=$O(^DPT(DGNODE,X)) Q:'X D Q:DGCHANGE
|
---|
44 | ..S Y="" F S Y=$O(^DPT(DGNODE,X,Y)) Q:Y']"" D Q:DGCHANGE
|
---|
45 | ...I $G(^DPT(DFN,DGNODE,X,Y))'=DGPTNDM(DGNODE,X,Y) S DGCHANGE=1
|
---|
46 | QTE I 'DGRPS S DGERR=1
|
---|
47 | QTQ Q
|
---|
48 | QDES ;MNEMONIC - DGQCODE should match with one of these
|
---|
49 | ;;^ADD1^ADD2^ADD^ADD3^ADD4^
|
---|
50 | QNUM ;REFERENCE NUMBERS USED TO SET DGDR FOR USE BY ^DGRPE
|
---|
51 | ;;^104^105^109,105^109,105,111^111^
|
---|
52 | ;;
|
---|
53 | QNODE ;;NODES OF THE PATIENT FILE
|
---|
54 | ;;^.11~.13^.121^.11~.121~.13^.11~.121~.13~.141^.141^
|
---|
55 | ;;
|
---|
56 | MNODE ;;MULTIPLES OF THE PATIENT FILE
|
---|
57 | ;;^^^.02~.06^.02~.06~.14^.14^
|
---|