1 | DGPFHLL1 ;ALB/RPM - PRF HL7 EVENT LOG API'S ; 2/23/06
|
---|
2 | ;;5.3;Registration;**650**;Aug 13, 1993;Build 3
|
---|
3 | ;
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | GETEVNT(DGLIEN,DGPFL) ;retrieve a given record from PRF HL7 EVENT LOG (#26.21)
|
---|
7 | ;
|
---|
8 | ; Input:
|
---|
9 | ; DGLIEN - IEN of PRF HL7 EVENT (#26.21)
|
---|
10 | ;
|
---|
11 | ; Output:
|
---|
12 | ; Function value - 1 on success; 0 on failure
|
---|
13 | ; DGPFL - array of event data fields
|
---|
14 | ; Subscript Field#
|
---|
15 | ; --------- ------
|
---|
16 | ; "DFN" .01
|
---|
17 | ; "EDT" .02
|
---|
18 | ; "STAT" .03
|
---|
19 | ;
|
---|
20 | N DGERR ;error array
|
---|
21 | N DGFLDS ;field result array
|
---|
22 | N DGIENS ;FM IENS string
|
---|
23 | N DGRSLT ;function value
|
---|
24 | ;
|
---|
25 | S DGRSLT=0
|
---|
26 | I $G(DGLIEN),$D(^DGPF(26.21,DGLIEN)) D
|
---|
27 | . S DGIENS=DGLIEN_","
|
---|
28 | . D GETS^DIQ(26.21,DGIENS,"**","IEZ","DGFLDS","DGERR")
|
---|
29 | . Q:$D(DGERR)
|
---|
30 | . S DGRSLT=1
|
---|
31 | . S DGPFL("DFN")=$G(DGFLDS(26.21,DGIENS,.01,"I"))_U_$G(DGFLDS(26.21,DGIENS,.01,"E"))
|
---|
32 | . S DGPFL("EDT")=$G(DGFLDS(26.21,DGIENS,.02,"I"))_U_$G(DGFLDS(26.21,DGIENS,.02,"E"))
|
---|
33 | . S DGPFL("STAT")=$G(DGFLDS(26.21,DGIENS,.03,"I"))_U_$G(DGFLDS(26.21,DGIENS,.03,"E"))
|
---|
34 | ;
|
---|
35 | Q DGRSLT
|
---|
36 | ;
|
---|
37 | GETSTAT(DGDFN) ;retrieve event status for a given patient
|
---|
38 | ;This function retrieves the internal value of the CURRENT STATUS
|
---|
39 | ;(#.03) field in the PRF HL7 EVENT (#26.21) file and returns it as the
|
---|
40 | ;function value.
|
---|
41 | ;
|
---|
42 | ; Input:
|
---|
43 | ; DGDFN - pointer to patient in PATIENT (#2) file
|
---|
44 | ;
|
---|
45 | ; Output:
|
---|
46 | ; Function value - returns CURRENT STATUS field value in Internal
|
---|
47 | ; format on success; otherwise returns ""
|
---|
48 | ;
|
---|
49 | N DGERR ;DIQ error array
|
---|
50 | ;
|
---|
51 | Q:'+$G(DGDFN) ""
|
---|
52 | Q $$GET1^DIQ(26.21,$$FNDEVNT(DGDFN)_",",.03,"I","","DGERR")
|
---|
53 | ;
|
---|
54 | FNDEVNT(DGDFN) ;find PRF HL7 EVENT (#26.21) file record number
|
---|
55 | ;This function finds and returns the PRF HL7 EVENT (#26.21) file record
|
---|
56 | ;number for a given patient.
|
---|
57 | ;
|
---|
58 | ; Input:
|
---|
59 | ; DGDFN - pointer to patient in PATIENT (#2) file
|
---|
60 | ;
|
---|
61 | ; Output:
|
---|
62 | ; Function value - IEN of PRF HL7 EVENT (#26.21) file on success;
|
---|
63 | ; 0 on failure
|
---|
64 | ;
|
---|
65 | N DGIEN ;function value
|
---|
66 | ;
|
---|
67 | I +$G(DGDFN) D
|
---|
68 | . S DGIEN=$O(^DGPF(26.21,"B",DGDFN,0))
|
---|
69 | Q $S($G(DGIEN)>0:DGIEN,1:0)
|
---|
70 | ;
|
---|
71 | STOEVNT(DGDFN,DGSTAT,DGERR) ;store event in PRF HL7 EVENT (#26.21) file
|
---|
72 | ;
|
---|
73 | ; Input:
|
---|
74 | ; DGDFN - (required) pointer to patient in PATIENT (#2) file
|
---|
75 | ; DGSTAT - (optional) event status [default = INCOMPLETE]
|
---|
76 | ; DGERR - (optional) passed by reference to hold any FM errors
|
---|
77 | ;
|
---|
78 | ; Output:
|
---|
79 | ; DGERR - only defined when FM call fails
|
---|
80 | ;
|
---|
81 | N DGFDA ;FM FDA array
|
---|
82 | N DGFDAIEN ;UPDATE^DIE result
|
---|
83 | N DGLIEN ;PRF HL7 EVENT (#26.21) file IEN
|
---|
84 | N DGRSLT ;CHK^DIE result
|
---|
85 | ;
|
---|
86 | S DGSTAT=$S($G(DGSTAT)]"":DGSTAT,1:"I")
|
---|
87 | I $G(DGDFN),$D(^DPT(DGDFN,0)) D
|
---|
88 | . S DGLIEN=$$FNDEVNT(DGDFN)
|
---|
89 | . D CHK^DIE(26.21,.03,,DGSTAT,.DGRSLT,"DGERR")
|
---|
90 | . Q:$D(DGERR)
|
---|
91 | . I DGLIEN D
|
---|
92 | . . S DGFDA(26.21,DGLIEN_",",.03)=DGSTAT
|
---|
93 | . . D FILE^DIE("","DGFDA","DGERR")
|
---|
94 | . E D
|
---|
95 | . . S DGFDA(26.21,"+1,",.01)=DGDFN
|
---|
96 | . . S DGFDA(26.21,"+1,",.02)=$$NOW^XLFDT()
|
---|
97 | . . S DGFDA(26.21,"+1,",.03)=DGSTAT
|
---|
98 | . . D UPDATE^DIE("","DGFDA","DGFDAIEN","DGERR")
|
---|
99 | ;
|
---|
100 | Q
|
---|
101 | ;
|
---|
102 | LOCK(DGIEN) ;lock HL7 event record
|
---|
103 | ;This function locks a single PRF HL7 EVENT (#26.21) file record
|
---|
104 | ;to prevent more than one PRF query being run at a time.
|
---|
105 | ;
|
---|
106 | ; Input:
|
---|
107 | ; DGIEN - IEN of PRF HL7 EVENT (#26.21) file record
|
---|
108 | ;
|
---|
109 | ; Output:
|
---|
110 | ; Function value - 1 on success; 0 on failure
|
---|
111 | ;
|
---|
112 | I $G(DGIEN) L +^DGPF(26.21,DGIEN):2
|
---|
113 | ;
|
---|
114 | Q $T
|
---|
115 | ;
|
---|
116 | UNLOCK(DGIEN) ;unlock HL7 event record
|
---|
117 | ;This procedure releases a lock on a PRF HL7 EVENT (#26.21) file record
|
---|
118 | ;created by $$LOCK.
|
---|
119 | ;
|
---|
120 | ; Input:
|
---|
121 | ; DGIEN - IEN of PRF HL7 EVENT (#26.21) file record
|
---|
122 | ;
|
---|
123 | ; Output:
|
---|
124 | ;
|
---|
125 | I $G(DGIEN) L -^DGPF(26.21,DGIEN)
|
---|
126 | Q
|
---|
127 | ;
|
---|
128 | ISINCOMP(DGIEN) ;is the HL7 event status INCOMPLETE?
|
---|
129 | ;
|
---|
130 | ; Input:
|
---|
131 | ; DGIEN - IEN of PRF HL7 EVENT (#26.21) file record
|
---|
132 | ;
|
---|
133 | ; Output:
|
---|
134 | ; Function value - return "1" when status is INCOMPLETE;
|
---|
135 | ; otherwise return "0".
|
---|
136 | ;
|
---|
137 | Q $D(^DGPF(26.21,"ASTAT","I",+$G(DGIEN)))
|
---|