[613] | 1 | DGENA1 ;ALB/CJM,ISA/KWP - Enrollment API - File Data; 05/05/99
|
---|
| 2 | ;;5.3;Registration;**121,147,232**;Aug 13,1993
|
---|
| 3 | ;PHASE II moved CHECK and TESTVAL to DGENA3
|
---|
| 4 | LOCK(DFN) ;
|
---|
| 5 | ;Description: This lock is used to prevent another process from editing
|
---|
| 6 | ; a patient's enrollment, including the current enrollment and the
|
---|
| 7 | ; enrollment history.
|
---|
| 8 | ;Input:
|
---|
| 9 | ; DFN - Patient IEN
|
---|
| 10 | ;Output:
|
---|
| 11 | ; Function Value - Returns 1 if the lock was successful, 0 otherwise
|
---|
| 12 | ;
|
---|
| 13 | I $G(DFN) L +^DPT("ENROLLMENT",DFN):10
|
---|
| 14 | Q $T
|
---|
| 15 | UNLOCK(DFN) ;
|
---|
| 16 | ;Description: Used to release a lock created by $$LOCK.
|
---|
| 17 | ;Input:
|
---|
| 18 | ; DFN - Patient IEN
|
---|
| 19 | ;Output: None
|
---|
| 20 | ;
|
---|
| 21 | I $G(DFN) L -^DPT("ENROLLMENT",DFN)
|
---|
| 22 | Q
|
---|
| 23 | STORE(DGENR,NOCHECK,ERRMSG) ;
|
---|
| 24 | ;Description: Used to file a PATIENT ENROLLMENT record. Consistency
|
---|
| 25 | ; checks are done unless NOCHECK=1.If the
|
---|
| 26 | ; enrollment passes the consistency checks specified the
|
---|
| 27 | ; PATIENT ENROLLMENT record will be created and the ien returned.
|
---|
| 28 | ; If the consistency checks are not passed, or a record can not
|
---|
| 29 | ; be created, 0 is returned. This call does NOT lock the record -
|
---|
| 30 | ; call LOCK prior to STORE if the record needs to be locked.
|
---|
| 31 | ;Input :
|
---|
| 32 | ; DGENR - this local array represents a PATIENT ENROLLMENT (pass by reference)
|
---|
| 33 | ; NOCHECK - a flag, if NOCHECK=1 it means the consistency checks were done already, so do not do them again. (optional)
|
---|
| 34 | ; ERRMSG - error message on failure (optional, pass by reference)
|
---|
| 35 | ;Output:
|
---|
| 36 | ; Function Value - returns the ien of the PATIENT ENROLLMENT record
|
---|
| 37 | ; created if successful , 0 otherwise
|
---|
| 38 | N DIC,DA,DIE,Y,DR,DO,DLAYGO,DD
|
---|
| 39 | ;check that enrollment is valid before storing
|
---|
| 40 | I $G(NOCHECK)'=1 Q:'$$CHECK^DGENA3(.DGENR,,.ERRMSG) 0
|
---|
| 41 | ;create a new record
|
---|
| 42 | S DLAYGO=27.11
|
---|
| 43 | S DIC(0)="L",X=DGENR("APP"),DIC="^DGEN(27.11,"
|
---|
| 44 | D FILE^DICN
|
---|
| 45 | I Y=-1 S ERRMSG="FILEMAN UNABLE TO CREATE ENROLLMENT RECORD" Q 0
|
---|
| 46 | S DA=+Y
|
---|
| 47 | ;if failed to store record, exit
|
---|
| 48 | Q:'DA 0
|
---|
| 49 | ;edit the record
|
---|
| 50 | I '$$EDIT^DGENA1A(DA,.DGENR) Q 0
|
---|
| 51 | Q DA
|
---|
| 52 | STORECUR(DGENR,NOCHECK,ERRMSG) ;
|
---|
| 53 | ;Description: Used to store an enrollment that has already been created
|
---|
| 54 | ; as a local array into the PATIENT ENROLLMENT file as the
|
---|
| 55 | ; patient's current enrollment. If the enrollment passes the
|
---|
| 56 | ; consistency checks specified the enrollment record will be
|
---|
| 57 | ; created and the internal entry number returned. If the
|
---|
| 58 | ; consistency checks are not passed, or a record can not be
|
---|
| 59 | ; created, 0 will be returned
|
---|
| 60 | ;Input :
|
---|
| 61 | ; DGENR - this local array represents a PATIENT ENROLLMENT and should
|
---|
| 62 | ; be passed by reference.
|
---|
| 63 | ; NOCHECK - a flag, if NOCHECK=1 it means the consistency checks were done already, so do not do them again. (optional)
|
---|
| 64 | ;Output:
|
---|
| 65 | ; Function Value - returns the internal entry number of the PATIENT
|
---|
| 66 | ; ENROLLMENT record created if successful , 0 otherwise
|
---|
| 67 | ; ERRMSG - error message on failure (optional, pass by reference)
|
---|
| 68 | N DGENRIEN,OK
|
---|
| 69 | S OK=1
|
---|
| 70 | I '$$LOCK($G(DGENR("DFN"))) S OK=0
|
---|
| 71 | D:OK
|
---|
| 72 | .S DGENRIEN=$$STORE(.DGENR,$G(NOCHECK),.ERRMSG)
|
---|
| 73 | .I 'DGENRIEN S OK=0
|
---|
| 74 | .D:OK
|
---|
| 75 | ..N PRIOR
|
---|
| 76 | ..;link enrollment record to the prior enrollment
|
---|
| 77 | ..D:DGENR("PRIORREC") KILL^DGENA1A(27.11,DGENRIEN,.09,DGENR("PRIORREC"))
|
---|
| 78 | ..S PRIOR=$$FINDCUR^DGENA(DGENR("DFN"))
|
---|
| 79 | ..S $P(^DGEN(27.11,DGENRIEN,0),"^",9)=PRIOR
|
---|
| 80 | ..D:PRIOR SET^DGENA1A(27.11,DGENRIEN,.09,PRIOR)
|
---|
| 81 | ..;now link the patient record to the new current enrollment
|
---|
| 82 | ..D:PRIOR KILL^DGENA1A(2,DGENR("DFN"),27.01,PRIOR)
|
---|
| 83 | ..S $P(^DPT(DGENR("DFN"),"ENR"),"^")=DGENRIEN
|
---|
| 84 | ..D SET^DGENA1A(2,DGENR("DFN"),27.01,DGENRIEN)
|
---|
| 85 | D UNLOCK(DGENR("DFN"))
|
---|
| 86 | Q $S(OK:DGENRIEN,1:0)
|
---|
| 87 | EDITCUR(DGENR) ;
|
---|
| 88 | ;Description: Used to store an enrollment that has already been created
|
---|
| 89 | ; as a local array into the PATIENT ENROLLMENT file as the
|
---|
| 90 | ; patient's current enrollment. If the enrollment passes the
|
---|
| 91 | ; consistency checks specified the current enrollment record, if
|
---|
| 92 | ; it exists, will be overlaid by the enrollment contained in
|
---|
| 93 | ; DGENR, otherwise, if there is no current enrollment, a new
|
---|
| 94 | ; patient enrollment record will be created as the current
|
---|
| 95 | ; enrollment. If the consistency checks are not passed, or a
|
---|
| 96 | ; record can not be created, NULL will be returned.
|
---|
| 97 | ;Input :
|
---|
| 98 | ; DGENR - this local array represents a PATIENT ENROLLMENT and
|
---|
| 99 | ; should be passed by reference.
|
---|
| 100 | ;Output:
|
---|
| 101 | ; Function Value - returns the internal entry number of the PATIENT
|
---|
| 102 | ; ENROLLMENT record created if successful , 0 otherwise
|
---|
| 103 | N DGENRIEN,OK
|
---|
| 104 | S OK=$$LOCK($G(DGENR("DFN")))
|
---|
| 105 | D:OK
|
---|
| 106 | .S DGENRIEN=$$FINDCUR^DGENA(DGENR("DFN"))
|
---|
| 107 | .I 'DGENRIEN D
|
---|
| 108 | ..S OK=$$STORECUR(.DGENR)
|
---|
| 109 | .E D
|
---|
| 110 | ..S OK=$$CHECK^DGENA3(.DGENR)
|
---|
| 111 | ..I OK S OK=$$EDIT^DGENA1A(DGENRIEN,.DGENR)
|
---|
| 112 | D UNLOCK(DGENR("DFN"))
|
---|
| 113 | Q $S(OK:DGENRIEN,1:0)
|
---|