| 1 | HDISVF07 ;ALB/RMO - 7118.21 File Utilities/API Cont.; 1/13/05@1:22:00
 | 
|---|
| 2 |  ;;1.0;HEALTH DATA & INFORMATICS;;Feb 22, 2005
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;---- Begin HDIS System file (#7118.21) API(s) ----
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | FINDSYS(HDISDIPA,HDISFACN,HDISTYPE,HDISADDF,HDISYIEN,HDISERRM) ;Find or Add a System Entry
 | 
|---|
| 7 |  ; Input  -- HDISDIPA Domain/IP Address
 | 
|---|
| 8 |  ;           HDISFACN Facility Number  (Optional- Default current facility number)
 | 
|---|
| 9 |  ;           HDISTYPE Type  (Optional- Default current system)
 | 
|---|
| 10 |  ;           HDISADDF Add a New Entry Flag (Optional- Default 0)
 | 
|---|
| 11 |  ;                    1=Yes and 0=No
 | 
|---|
| 12 |  ; Output -- 1=Successful and 0=Failure
 | 
|---|
| 13 |  ;           If Successful:
 | 
|---|
| 14 |  ;           HDISYIEN  HDIS System file IEN
 | 
|---|
| 15 |  ;           If Failure:
 | 
|---|
| 16 |  ;           HDISERRM  Error Message  (Optional)
 | 
|---|
| 17 |  N HDISI,HDISIPTR,HDISOKF,HDISRSLT
 | 
|---|
| 18 |  ;Initialize output
 | 
|---|
| 19 |  S (HDISYIEN,HDISERRM)=""
 | 
|---|
| 20 |  ;Check for missing variable, exit if not defined
 | 
|---|
| 21 |  I $G(HDISDIPA)="" D  G FINDSYSQ
 | 
|---|
| 22 |  . S HDISERRM="Required Variable Missing."
 | 
|---|
| 23 |  ;Set Facility Number to default of current facility number, if needed
 | 
|---|
| 24 |  S HDISFACN=$S('$D(HDISFACN):$$FACNUM^HDISVF01,1:HDISFACN)
 | 
|---|
| 25 |  ;Check Facility Number, return error and exit if no value
 | 
|---|
| 26 |  I $G(HDISFACN)="" D  G FINDSYSQ
 | 
|---|
| 27 |  . S HDISERRM="Unable to determine Facility Number."
 | 
|---|
| 28 |  ;Set Institution file (#4) IEN 
 | 
|---|
| 29 |  S HDISIPTR=$$FACPTR^HDISVF01(HDISFACN)
 | 
|---|
| 30 |  ;Check Institution file (#4) IEN, return error and exit if no value
 | 
|---|
| 31 |  I $G(HDISIPTR)'>0 D  G FINDSYSQ
 | 
|---|
| 32 |  . S HDISERRM="Unable to determine Institution file (#4) IEN."
 | 
|---|
| 33 |  ;Set Type to default of current system, if needed
 | 
|---|
| 34 |  S HDISTYPE=$S('$D(HDISTYPE):$$PROD^XUPROD,1:HDISTYPE)
 | 
|---|
| 35 |  ;Convert HDISTYPE to internal value
 | 
|---|
| 36 |  D CHK^DIE(7118.21,.03,"",HDISTYPE,.HDISRSLT)
 | 
|---|
| 37 |  S HDISTYPE=HDISRSLT
 | 
|---|
| 38 |  ;Check for existing Institution file (#4) IEN and Domain/IP Address, return entry and exit if it exists
 | 
|---|
| 39 |  I $D(^HDISF(7118.21,"B",HDISIPTR)) D  G FINDSYSQ:$G(HDISYIEN)
 | 
|---|
| 40 |  . S HDISI=0
 | 
|---|
| 41 |  . F  S HDISI=$O(^HDISF(7118.21,"B",HDISIPTR,HDISI)) Q:'HDISI!($G(HDISYIEN))  D
 | 
|---|
| 42 |  . . I $D(^HDISF(7118.21,HDISI,0)),$P(^(0),"^",2)=HDISDIPA D
 | 
|---|
| 43 |  . . . S HDISYIEN=HDISI
 | 
|---|
| 44 |  . . . S HDISOKF=1
 | 
|---|
| 45 |  ;If flag is set, Add a New System Entry
 | 
|---|
| 46 |  I $G(HDISADDF) S HDISOKF=$$ADDSYS(HDISIPTR,HDISDIPA,HDISTYPE,.HDISYIEN,.HDISERRM)
 | 
|---|
| 47 |  ; 
 | 
|---|
| 48 | FINDSYSQ Q +$G(HDISOKF)
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 | ADDSYS(HDISIPTR,HDISDIPA,HDISTYPE,HDISYIEN,HDISERRM) ;Add a New System Entry
 | 
|---|
| 51 |  ; Input  -- HDISIPTR Institution file (#4) IEN
 | 
|---|
| 52 |  ;           HDISDIPA Domain/IP Address
 | 
|---|
| 53 |  ;           HDISTYPE Type (Internal Value)
 | 
|---|
| 54 |  ; Output -- 1=Successful and 0=Failure
 | 
|---|
| 55 |  ;           If Successful:
 | 
|---|
| 56 |  ;           HDISYIEN HDIS System file IEN
 | 
|---|
| 57 |  ;           If Failure:
 | 
|---|
| 58 |  ;           HDISERRM  Error Message  (Optional)
 | 
|---|
| 59 |  N HDISFDA,HDISIEN,HDISMSG,HDISOKF
 | 
|---|
| 60 |  ;Initialize output
 | 
|---|
| 61 |  S (HDISYIEN,HDISERRM)=""
 | 
|---|
| 62 |  ;Set array for Institution, Domain/IP Address and Type
 | 
|---|
| 63 |  S HDISFDA(7118.21,"+1,",.01)=$G(HDISIPTR)
 | 
|---|
| 64 |  S HDISFDA(7118.21,"+1,",.02)=$G(HDISDIPA)
 | 
|---|
| 65 |  S HDISFDA(7118.21,"+1,",.03)=$G(HDISTYPE)
 | 
|---|
| 66 |  D UPDATE^DIE("","HDISFDA","HDISIEN","HDISMSG")
 | 
|---|
| 67 |  ;Check for error
 | 
|---|
| 68 |  I $D(HDISMSG("DIERR")) D
 | 
|---|
| 69 |  . S HDISERRM=$G(HDISMSG("DIERR",1,"TEXT",1))
 | 
|---|
| 70 |  ELSE  D
 | 
|---|
| 71 |  . S HDISYIEN=+$G(HDISIEN(1))
 | 
|---|
| 72 |  . S HDISOKF=1
 | 
|---|
| 73 |  D CLEAN^DILF
 | 
|---|
| 74 | ADDSYSQ Q +$G(HDISOKF)
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 | CURSYS(HDISYIEN) ;Current System's HDIS System file IEN
 | 
|---|
| 77 |  ; Input  -- None
 | 
|---|
| 78 |  ; Output -- 1=Successful and 0=Failure
 | 
|---|
| 79 |  ;           If Successful:
 | 
|---|
| 80 |  ;           HDISYIEN HDIS System file IEN
 | 
|---|
| 81 |  N HDISFACN,HDISIPTR,HDISTYPE
 | 
|---|
| 82 |  ;Initialize output
 | 
|---|
| 83 |  S HDISYIEN=""
 | 
|---|
| 84 |  ;Set Facility Number, Institution file (#4) IEN and Type
 | 
|---|
| 85 |  S HDISFACN=$$FACNUM^HDISVF01
 | 
|---|
| 86 |  S HDISIPTR=$$FACPTR^HDISVF01(HDISFACN)
 | 
|---|
| 87 |  S HDISTYPE=$$PROD^XUPROD
 | 
|---|
| 88 |  ;Check for entry by Type and Institution file (#4) IEN
 | 
|---|
| 89 |  S HDISYIEN=$O(^HDISF(7118.21,"ATYP",+HDISTYPE,+HDISIPTR,0))
 | 
|---|
| 90 | CURSYSQ Q +$S($G(HDISYIEN)>0:1,1:0)
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 | GETFAC(HDISYIEN,HDISIPTR,HDISFACN) ;Get Institution file (#4) IEN and Facility Number by IEN
 | 
|---|
| 93 |  ; Input  -- HDISYIEN HDIS System file IEN  (Optional- Default current system)
 | 
|---|
| 94 |  ; Output -- 1=Successful and 0=Failure
 | 
|---|
| 95 |  ;           If Successful:
 | 
|---|
| 96 |  ;           HDISIPTR Institution file (#4) IEN
 | 
|---|
| 97 |  ;           HDISFACN Facility Number
 | 
|---|
| 98 |  ;Initialize output
 | 
|---|
| 99 |  S (HDISIPTR,HDISFACN)=""
 | 
|---|
| 100 |  ;Set HDIS System file IEN to current system, if needed
 | 
|---|
| 101 |  I '$D(HDISYIEN),$$CURSYS(.HDISYIEN)
 | 
|---|
| 102 |  ;Check for missing variable, exit if not defined
 | 
|---|
| 103 |  I $G(HDISYIEN)'>0 G GETFACQ
 | 
|---|
| 104 |  ;Check for Institution file (#4) IEN and Facility Number by IEN
 | 
|---|
| 105 |  I $D(^HDISF(7118.21,HDISYIEN,0)) S HDISIPTR=$P($G(^(0)),"^",1) D
 | 
|---|
| 106 |  . S HDISFACN=$$FACNUM^HDISVF01(HDISIPTR)
 | 
|---|
| 107 | GETFACQ Q +$S($G(HDISIPTR)'=""&($G(HDISFACN)'=""):1,1:0)
 | 
|---|
| 108 |  ;
 | 
|---|
| 109 | GETDIP(HDISYIEN,HDISDIPA) ;Get Domain/IP Address by IEN
 | 
|---|
| 110 |  ; Input  -- HDISYIEN HDIS System file IEN  (Optional- Default current system)
 | 
|---|
| 111 |  ; Output -- 1=Successful and 0=Failure
 | 
|---|
| 112 |  ;           If Successful:
 | 
|---|
| 113 |  ;           HDISDIPA Domain/IP Address
 | 
|---|
| 114 |  ;Initialize output
 | 
|---|
| 115 |  S HDISDIPA=""
 | 
|---|
| 116 |  ;Set HDIS System file IEN to current system, if needed
 | 
|---|
| 117 |  I '$D(HDISYIEN),$$CURSYS(.HDISYIEN)
 | 
|---|
| 118 |  ;Check for missing variable, exit if not defined
 | 
|---|
| 119 |  I $G(HDISYIEN)'>0 G GETDIPQ
 | 
|---|
| 120 |  ;Check for Domain/IP Address by IEN
 | 
|---|
| 121 |  I $D(^HDISF(7118.21,HDISYIEN,0)) S HDISDIPA=$P($G(^(0)),"^",2)
 | 
|---|
| 122 | GETDIPQ Q +$S($G(HDISDIPA)'="":1,1:0)
 | 
|---|
| 123 |  ;
 | 
|---|
| 124 |  ;
 | 
|---|
| 125 | GETTYPE(HDISYIEN,HDISTYPE,HDISTYPX) ;Get Type (Internal and External Value) by IEN
 | 
|---|
| 126 |  ; Input  -- HDISYIEN HDIS System file IEN  (Optional- Default current system)
 | 
|---|
| 127 |  ; Output -- 1=Successful and 0=Failure
 | 
|---|
| 128 |  ;           If Successful:
 | 
|---|
| 129 |  ;           HDISTYPE Type (Internal Value)
 | 
|---|
| 130 |  ;           HDISTYPX Type (External Value)
 | 
|---|
| 131 |  ;Initialize output
 | 
|---|
| 132 |  S (HDISTYPE,HDISTYPX)=""
 | 
|---|
| 133 |  ;Set HDIS System file IEN to current system, if needed
 | 
|---|
| 134 |  I '$D(HDISYIEN),$$CURSYS(.HDISYIEN)
 | 
|---|
| 135 |  ;Check for missing variable, exit if not defined
 | 
|---|
| 136 |  I $G(HDISYIEN)'>0 G GETTYPEQ
 | 
|---|
| 137 |  ;Check for Domain/IP Address by IEN
 | 
|---|
| 138 |  I $D(^HDISF(7118.21,HDISYIEN,0)) S HDISTYPE=$P($G(^(0)),"^",3) D
 | 
|---|
| 139 |  . S HDISTYPX=$$GET1^DIQ(7118.21,HDISYIEN,.03)
 | 
|---|
| 140 | GETTYPEQ Q +$S($G(HDISTYPE)'=""&($G(HDISTYPX)'=""):1,1:0)
 | 
|---|
| 141 |  ;
 | 
|---|
| 142 |  ;---- End HDIS System file (#7118.21) API(s) ----
 | 
|---|