1 | DGENUPL5 ;ALB/KCL/GSN - PROCESS INCOMING (Z11 EVENT TYPE) HL7 MESSAGES ; 5/6/03 2:45pm
|
---|
2 | ;;5.3;Registration;**222,504**;08/13/93
|
---|
3 | ;
|
---|
4 | ;DG*5.3*504 - Now, only updates the DG SECURITY LOG file #38.1 Zero
|
---|
5 | ; node, when SECURITY LEVEL [#2] goes from a Non-sensitive
|
---|
6 | ; value to a Sensitive value, i.e. (null or 0) to 1.
|
---|
7 | GETLOCKS(DFN) ;
|
---|
8 | ; Description - Locks first the patient enrollment history, then the patient record. Used to sychronize the upload with registration and load/edit.
|
---|
9 | ;
|
---|
10 | ;Input: DFN - ien of patient record.
|
---|
11 | ;Output: none
|
---|
12 | ;
|
---|
13 | N COUNT
|
---|
14 | F COUNT=1:1:500 Q:$$BEGUPLD^DGENUPL3(DFN)
|
---|
15 | F COUNT=1:1:500 Q:$$LOCK^DGENA1(DFN)
|
---|
16 | F COUNT=1:1:500 Q:$$LOCK^DGENPTA1(DFN)
|
---|
17 | Q
|
---|
18 | ;
|
---|
19 | ;
|
---|
20 | UNLOCK(DFN) ;
|
---|
21 | ; Description: releases the locks obtained by GETLOCKS()
|
---|
22 | ;
|
---|
23 | ;Input: DFN - ien of patient record
|
---|
24 | ;Output: none
|
---|
25 | ;
|
---|
26 | D ENDUPLD^DGENUPL3(DFN)
|
---|
27 | D UNLOCK^DGENA1(DFN)
|
---|
28 | D UNLOCK^DGENPTA1(DFN)
|
---|
29 | Q
|
---|
30 | ;
|
---|
31 | ;
|
---|
32 | SECUPLD(DFN,DGSEC,OLDSEC) ;
|
---|
33 | ; Description: Upload a patient security record receieved from the
|
---|
34 | ; HEC. The consistency checks on the record are assumed
|
---|
35 | ; to have been completed.
|
---|
36 | ;
|
---|
37 | ; Input:
|
---|
38 | ; DFN - PATIENT ien
|
---|
39 | ; DGSEC - as array containing the patient security record, pass
|
---|
40 | ; by reference
|
---|
41 | ;
|
---|
42 | ; Output:
|
---|
43 | ; OLDSEC - as array containing the patient security record, prior
|
---|
44 | ; to upload of security data from HEC, pass by reference
|
---|
45 | ;
|
---|
46 | ;
|
---|
47 | N SECIEN
|
---|
48 | ;
|
---|
49 | ; is there a local security log record for the patient?
|
---|
50 | S SECIEN=$$FINDSEC^DGENSEC(DFN)
|
---|
51 | ;
|
---|
52 | ; if local security record, obtain record prior to upload
|
---|
53 | I $$GET^DGENSEC(SECIEN,.OLDSEC)
|
---|
54 | ;
|
---|
55 | ; if no local security log record for the patient, create a new
|
---|
56 | ; security log entry with HEC security
|
---|
57 | I 'SECIEN D
|
---|
58 | .I $$STORE^DGENSEC(.DGSEC)
|
---|
59 | E D
|
---|
60 | .; otherwise update the existing security log entry with HEC security
|
---|
61 | .; if new level = Yes and old level Not = Yes (DG*5.3*504)
|
---|
62 | .I $G(DGSEC("LEVEL"))=1,$G(OLDSEC("LEVEL"))'=1 D
|
---|
63 | ..I $$UPDATE^DGENSEC(DFN,.DGSEC)
|
---|
64 | .E D
|
---|
65 | ..; since no update occurring, then set arrays the same to prevent an
|
---|
66 | ..; Audit record from being created later.
|
---|
67 | ..M DGSEC=OLDSEC
|
---|
68 | ;
|
---|
69 | Q
|
---|