1 | VAQLED07 ;ALB/JFP,JRP - DISPLAY MINIMAL DATA/ADD NEW PATIENT ;01MAR93 [ 12/04/96 9:23 AM ]
|
---|
2 | ;;1.5;PATIENT DATA EXCHANGE;**13,22,23,43**;NOV 17, 1993
|
---|
3 | EP ; -- Main entry point for the list processor
|
---|
4 | ; Note: sets flag 'VAQADFL' if required elements are blank
|
---|
5 | ;
|
---|
6 | K ^TMP("VAQD1",$J),^TMP("VAQDIS",$J)
|
---|
7 | S (VAQADFL,VALMCNT)=0
|
---|
8 | ;
|
---|
9 | EXTR ; -- Extract PDX minimal data
|
---|
10 | S DFN=DFNTR
|
---|
11 | S ROOT="^TMP(""VAQDIS"",$J)"
|
---|
12 | S SEGPTR=$O(^VAT(394.71,"C","PDX*MIN",""))
|
---|
13 | S VAQIGNC=1 ; -- turns of encryption
|
---|
14 | S X=$$SEGEXT^VAQUPD1(DFN,SEGPTR,ROOT)
|
---|
15 | I +X=-1 W !,"Extract not successful...Error: "_$P(X,U,2) D PAUSE^VALM1 QUIT
|
---|
16 | ; -- extraction sucessful,check for missing data
|
---|
17 | D CHKNULL
|
---|
18 | I VAQADFL=1 D Q
|
---|
19 | .S VAQST="** Unable to load patient...required elements missing"
|
---|
20 | .D EN^VALM("VAQ DIS MIN NUPD") ; -- Protocol = VAQ DIS1 (MENU)
|
---|
21 | S VAQST="** <AP> attempt to add new patient or <RETURN> to exit"
|
---|
22 | D EN^VALM("VAQ DIS MIN UPD") ; -- protocol = VAQ PDX7 (MENU)
|
---|
23 | QUIT
|
---|
24 | ;
|
---|
25 | INIT ; -- Builds array of minimal data for the patient entered (DFN)
|
---|
26 | S XTRCT=ROOT
|
---|
27 | S ROOT="^TMP(""VAQD1"",$J)"
|
---|
28 | S (OFFSET,DSP)=0
|
---|
29 | S X=$$DISPMIN^VAQDIS21(XTRCT,SEGPTR,ROOT,OFFSET,DSP)
|
---|
30 | I +X=-1 S MSG="Display load not successful...Error: "_$P(X,U,2) D ERRMSG QUIT
|
---|
31 | S VALMCNT=+X-1
|
---|
32 | D DISMSG
|
---|
33 | K VALMBCK
|
---|
34 | QUIT
|
---|
35 | ;
|
---|
36 | HD ; -- Make header line for list processor
|
---|
37 | D HD1^VAQEXT02 QUIT
|
---|
38 | ;
|
---|
39 | ADD ; -- Adds new patient to local data base
|
---|
40 | D CLEAR^VALM1
|
---|
41 | W !,"Please wait while information on ",$G(^TMP("VAQDIS",$J,"VALUE",2,.01,0))," is added",!
|
---|
42 | I $G(^TMP("VAQDIS",$J,"VALUE",2,.09,0))'["P",$O(^DPT("SSN",$G(^TMP("VAQDIS",$J,"VALUE",2,.09,0)),"")) D Q
|
---|
43 | . W !!,$C(7),"** Patient not added, SSN in use by existing patient"
|
---|
44 | . W !
|
---|
45 | . D TRANEX
|
---|
46 | S DIC="^DPT("
|
---|
47 | S DIC(0)="EL"
|
---|
48 | S DLAYGO=2
|
---|
49 | S X=$G(^TMP("VAQDIS",$J,"VALUE",2,.01,0))
|
---|
50 | S DIC("DR")=".03///"_$G(^TMP("VAQDIS",$J,"VALUE",2,.03,0))
|
---|
51 | F I=.09,391,1901 S DIC("DR")=DIC("DR")_";"_I_"///"_$G(^TMP("VAQDIS",$J,"VALUE",2,I,0))
|
---|
52 | K DD,D0 D FILE^DICN K DIC,DLAYGO
|
---|
53 | I $P(Y,U,3)'=1 W !!,$C(7),"** Patient not added",! D TRANEX QUIT
|
---|
54 | ;
|
---|
55 | ; -- Update workload file (new patient)
|
---|
56 | D WORKLD
|
---|
57 | ; -- Add rest of information for stub"
|
---|
58 | S VAQSTUB=+Y
|
---|
59 | S LOCKFLE=$G(^DIC(2,0,"GL"))
|
---|
60 | L +(@(LOCKFLE_VAQSTUB_")")):60
|
---|
61 | I ('$T) W !,"Could not edit entry...record locked" K LOCKFLE QUIT
|
---|
62 | F FLD=.02,.05,.08,.301,.302,.361,.323,.111,.112,.113,.114,.115,.1112,.117 D LOAD
|
---|
63 | ; -- load temporary address information, if active
|
---|
64 | D TMPADDR QUIT
|
---|
65 | L -(@(LOCKFLE_VAQSTUB_")")) K LOCKFLE
|
---|
66 | W !,"** PDX minimal information on ",$G(^TMP("VAQDIS",$J,"VALUE",2,.01,0))," has been added"
|
---|
67 | D TRANEX
|
---|
68 | D EP^VAQLED02
|
---|
69 | K VALMBCK
|
---|
70 | QUIT
|
---|
71 | ;
|
---|
72 | LOAD ; -- Loads fields to patient file
|
---|
73 | S DIE=2,(DA,DFNPT)=VAQSTUB
|
---|
74 | S DR=FLD_"///^S X=$G(^TMP(""VAQDIS"",$J,""VALUE"",2,FLD,0))"
|
---|
75 | D ^DIE K DIE,DA,DR
|
---|
76 | I ($D(Y)#2) W ?10,"- ",$P(^DD(2,FLD,0),U,1),?40," could not be added",!
|
---|
77 | QUIT
|
---|
78 | ;
|
---|
79 | TMPADDR ; -- Checks to see if temporary address dates are active and flag set
|
---|
80 | ; -- active flag
|
---|
81 | I $G(^TMP("VAQDIS",$J,"VALUE",2,.12105,0))="Y" QUIT ;strt dte
|
---|
82 | I $G(^TMP("VAQDIS",$J,"VALUE",2,.1217,0))'<DT QUIT ;strt dte
|
---|
83 | I $G(^TMP("VAQDIS",$J,"VALUE",2,.1218,0))'>DT QUIT ;end dte
|
---|
84 | ; -- Load temporary address fields
|
---|
85 | F FLD=.12105,.1211,.12111,.12112,.1212,.1213,.1214,.1215,.12112,.1217,.1218,.1219 D LOAD
|
---|
86 | QUIT
|
---|
87 | ;
|
---|
88 | ERRMSG ; -- Displays error message
|
---|
89 | S X=$$SETSTR^VALM1(" ","",1,79) D TMP
|
---|
90 | S X=$$SETSTR^VALM1(MSG,"",1,80) D TMP
|
---|
91 | S VALMBCK="Q"
|
---|
92 | QUIT
|
---|
93 | ;
|
---|
94 | DISMSG ; -- Display status message
|
---|
95 | S X=$$SETSTR^VALM1(VAQST,"",1,79) D TMP
|
---|
96 | K VAQLN,VAQST
|
---|
97 | QUIT
|
---|
98 | ;
|
---|
99 | TMP ; -- Set the array used by list processor
|
---|
100 | S VALMCNT=VALMCNT+1
|
---|
101 | S ^TMP("VAQD1",$J,VALMCNT,0)=$E(X,1,79)
|
---|
102 | QUIT
|
---|
103 | ;
|
---|
104 | CHKNULL ; -- Sets missing data flag if it finds a required field null
|
---|
105 | ; Added quit condition. NOIS ISD-0495-40199
|
---|
106 | S FLD=""
|
---|
107 | F FLD=.01,.02,.03,.05,.08,.09,.111,.114,.115,.1112,.117,.323,.361,391,1901 Q:(VAQADFL=1) D
|
---|
108 | .S VAQDATA=$G(^TMP("VAQDIS",$J,"VALUE",2,FLD,0))
|
---|
109 | .S:VAQDATA="" VAQADFL=1
|
---|
110 | I VAQADFL=0 D
|
---|
111 | .S:($G(^TMP("VAQDIS",$J,"VALUE",2,.302,0))=""&($G(^TMP("VAQDIS",$J,"VALUE",2,.301,0))'="NO")) VAQADFL=0
|
---|
112 | K FLD,VAQDATA
|
---|
113 | QUIT
|
---|
114 | ;
|
---|
115 | TRANEX ; -- Transaction exit
|
---|
116 | D PAUSE^VALM1
|
---|
117 | S VALMBCK="Q"
|
---|
118 | QUIT
|
---|
119 | ;
|
---|
120 | WORKLD ; -- Updates work load file
|
---|
121 | S X=$$WORKDONE^VAQADS01("NEW",DFNTR,$G(DUZ))
|
---|
122 | I +X<0 W !,"Error updating work loadfile (NEW)... "_$P(X,U,2)
|
---|
123 | I $P($G(^VAT(394.61,DFNTR,0)),U,4)=0 QUIT
|
---|
124 | S X=$$WORKDONE^VAQADS01("SNSTVE",DFNTR,$G(DUZ))
|
---|
125 | I X<0 W !,"Error updating workload file (SNSTVE)... "_$P(X,U,2)
|
---|
126 | QUIT
|
---|
127 | ;
|
---|
128 | EXIT ; -- Note: The list processor cleans up its own variables.
|
---|
129 | ; All other variables cleaned up here.
|
---|
130 | ;
|
---|
131 | K ^TMP("VAQD1",$J),^TMP("VAQDIS",$J)
|
---|
132 | K VAQADFL,VAQSTUB,VAQIGNC
|
---|
133 | K VALMCNT,ROOT,SEGPTR,X,MSG,XTRCT,OFFSET,DSP
|
---|
134 | Q
|
---|
135 | ;
|
---|
136 | END ; -- End of code
|
---|
137 | QUIT
|
---|