| 1 | EASWTAPI ; ALB/SCK - ENROLLMENT DATE API - ; 7-12-2002
 | 
|---|
| 2 |  ;;1.0;ENROLLMENT APPLICATION SYSTEM;**17**;MAR 15, 2001
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | ENROLL(DFN) ; Find enrollement date for patient
 | 
|---|
| 5 |  ; Input
 | 
|---|
| 6 |  ;    DFN - IEN of the patient file
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 |  ; Output
 | 
|---|
| 9 |  ;    0 -  If an enrollment date cannot be determined
 | 
|---|
| 10 |  ;    1^IEN^date^type - If an enrollment date can be determined
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  ;    1    - Flag that an enrollment date was determined
 | 
|---|
| 13 |  ;    IEN  - IEN of the PATIENT ENROLLMENT File entry returned
 | 
|---|
| 14 |  ;    date - Date in FileMan internal format
 | 
|---|
| 15 |  ;    type - "E" for an ENROLLMENT DATE
 | 
|---|
| 16 |  ;           "A" for an ENROLLMENT APPLICATION DATE
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  N RSLT,EAIEN,EAIEN1,EAX,DONE,EAVER,EASTAT,EANODE
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 |  S RSLT=0
 | 
|---|
| 21 |  S DFN=$G(DFN) I 'DFN Q RSLT
 | 
|---|
| 22 |  I '$D(^DPT(DFN,0)) Q RSLT
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  ;; Retrieve last enrollment record for patient
 | 
|---|
| 25 |  S EAIEN="Z",EAIEN=$O(^DGEN(27.11,"C",DFN,EAIEN),-1)
 | 
|---|
| 26 |  I 'EAIEN Q RSLT
 | 
|---|
| 27 |  ;; If last enrollment record is Cancel/Decline, return 0
 | 
|---|
| 28 |  I $$GET1^DIQ(27.11,EAIEN,.04,"I")=7 Q $G(RSLT)
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 |  S RSLT=$$VERIFY(EAIEN)
 | 
|---|
| 31 |  I 'RSLT S RSLT=$$UNVERIFY(EAIEN)
 | 
|---|
| 32 |  Q RSLT
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 | VERIFY(EAIEN) ; Find latest verified record
 | 
|---|
| 35 |  N EAX,EANODE,EAVER,RSLT,DONE
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 |  S EANODE=EAIEN_"~"_$G(^DGEN(27.11,EAIEN,0))
 | 
|---|
| 38 |  S RSLT=0
 | 
|---|
| 39 |  S EAVER=$$SEARCH(EANODE,2)
 | 
|---|
| 40 |  I +$P($G(EAVER),"~",1)>0 D
 | 
|---|
| 41 |  . S RSLT="1^"_$P(EAVER,"~",1)_U_$P(EAVER,U,10)_"^E"
 | 
|---|
| 42 |  Q RSLT
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 | UNVERIFY(EAIEN) ; Find an un-verified record 
 | 
|---|
| 45 |  N EAX,EANODE,EAUNV,RSLT,DONE
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 |  S RSLT=0
 | 
|---|
| 48 |  S EANODE=EAIEN_"~"_$G(^DGEN(27.11,EAIEN,0))
 | 
|---|
| 49 |  S EAUNV=$$SEARCH(EANODE,1)
 | 
|---|
| 50 |  I +$P($G(EAUNV),"~",1)>0 D
 | 
|---|
| 51 |  . S RSLT="1^"_$P(EAUNV,"~",1)_U_$P($P(EAUNV,"~",2),U,1)_"^A"
 | 
|---|
| 52 |  Q RSLT
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 | SEARCH(EANODE,STAT) ;  Search for enrollment record
 | 
|---|
| 55 |  N EACUR,DONE,EAX,EAIEN
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 |  I $P(EANODE,U,4)=STAT S EACUR=EANODE
 | 
|---|
| 58 |  F EAX=1:1 D  Q:$G(DONE)
 | 
|---|
| 59 |  . S EAIEN=$P(EANODE,U,9)
 | 
|---|
| 60 |  . I 'EAIEN S DONE=1 Q
 | 
|---|
| 61 |  . S EANODE=$G(^DGEN(27.11,EAIEN,0))
 | 
|---|
| 62 |  . I $P(EANODE,U,4)=STAT S EACUR=EAIEN_"~"_$G(^DGEN(27.11,EAIEN,0))
 | 
|---|
| 63 |  . I $P(EANODE,U,4)=7 S DONE=1
 | 
|---|
| 64 |  Q $G(EACUR)
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 | CHECK(DFN) ;
 | 
|---|
| 67 |  N EAX,EAIEN,EANODE,DONE
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 |  S DFN=$G(DFN) I 'DFN Q
 | 
|---|
| 70 |  Q:'$D(^DPT(DFN,0))
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 |  S EAIEN="Z"
 | 
|---|
| 73 |  S EAIEN=$O(^DGEN(27.11,"C",DFN,EAIEN),-1)
 | 
|---|
| 74 |  Q:'EAIEN
 | 
|---|
| 75 |  S EANODE=$G(^DGEN(27.11,EAIEN,0))
 | 
|---|
| 76 |  W !,EAIEN_" | "_EANODE
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 |  F EAX=1:1 D  Q:$G(DONE)
 | 
|---|
| 79 |  . S EAIEN=$P(EANODE,U,9)
 | 
|---|
| 80 |  . I 'EAIEN S DONE=1 Q
 | 
|---|
| 81 |  . S EANODE=$G(^DGEN(27.11,EAIEN,0))
 | 
|---|
| 82 |  . W !,EAIEN_" | "_EANODE
 | 
|---|
| 83 |  Q
 | 
|---|