| 1 | VAQUTL93 ;ALB/JFP,JRP - UTILITY ROUTINES; 01-APR-93
 | 
|---|
| 2 |  ;;1.5;PATIENT DATA EXCHANGE;**7**;NOV 17, 1993
 | 
|---|
| 3 | EP ; -- Entry point for report
 | 
|---|
| 4 |  F SEG="MIN","MAS","ELIG","DENTAL","APPOINT","INSURE" D EXTR
 | 
|---|
| 5 |  QUIT
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | EXTR ;EXTRACT INFORMATION
 | 
|---|
| 8 |  W !,"[ ",SEG," ]",!
 | 
|---|
| 9 |  W !,?5,"FILE NO.",?25,"FIELD NO",?35,"NODE;PIECE",?48,"DESCRIPT",!
 | 
|---|
| 10 |  S (FLENO,ERROR)=0
 | 
|---|
| 11 |  F LOOP=1:1 D  Q:(ERROR)
 | 
|---|
| 12 |  .S OLDFLE=FLENO
 | 
|---|
| 13 |  .S TMP=$T(@SEG+LOOP^VAQDBII1)
 | 
|---|
| 14 |  .I ($P(TMP,";;",2)="") S ERROR=1 Q
 | 
|---|
| 15 |  .S FLENO=$P(TMP,";",3)
 | 
|---|
| 16 |  .S FIELDS=$P(TMP,";",4)
 | 
|---|
| 17 |  .I OLDFLE'=FLENO S FLEREF=FLENO W ! ;$G(^DIC(FLENO,0,"GL"))
 | 
|---|
| 18 |  .I OLDFLE=FLENO S FLEREF=" "
 | 
|---|
| 19 |  .F LP=1:1 D  Q:FLD=""
 | 
|---|
| 20 |  ..S FLD=$P(FIELDS,",",LP) Q:FLD=""
 | 
|---|
| 21 |  ..S DDNODE=$G(^DD(FLENO,FLD,0))
 | 
|---|
| 22 |  ..S FLDDS=$P(DDNODE,U,1)
 | 
|---|
| 23 |  ..S FLDLC=$P(DDNODE,U,4)
 | 
|---|
| 24 |  ..W !,?5,FLEREF,?25,FLD,?35,FLDLC,?48,FLDDS
 | 
|---|
| 25 |  ..S FLEREF=" "
 | 
|---|
| 26 |  QUIT
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 |  ;EXTRACT OTHER ELIGIBILITIES
 | 
|---|
| 29 |  D ELIG^VAQDBIP6
 | 
|---|
| 30 |  ;EXTRACT APPOINTMENTS
 | 
|---|
| 31 |  D APPOINT^VAQDBIP6
 | 
|---|
| 32 |  ;EXTRACT DENTAL APPOINTMENTS
 | 
|---|
| 33 |  D DENTAL^VAQDBIP6
 | 
|---|
| 34 |  ;EXTRACT ACTIVE INSURANCES
 | 
|---|
| 35 |  D INSURE^VAQDBIP7
 | 
|---|
| 36 |  QUIT
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 | ADDEDT ;TAG FOR ADD/EDIT OPTIONS
 | 
|---|
| 39 |  ;INPUT  : VAQOFLG - Number indicating which option is calling tag
 | 
|---|
| 40 |  ;           1 = VAQ (EDIT) ENCRY FIELDS
 | 
|---|
| 41 |  ;           2 = VAQ (EDIT) PARAMETER
 | 
|---|
| 42 |  ;           3 = VAQ (EDIT) RELEASE GROUP
 | 
|---|
| 43 |  ;           4 = VAQ (EDIT) OUTGOING GROUP
 | 
|---|
| 44 |  ;           5 = VAQ (EDIT) SEGMENT GRP - ALL
 | 
|---|
| 45 |  ;           6 = VAQ (EDIT) SEGMENT GRP - PRIV
 | 
|---|
| 46 |  ;           7 = VAQ (EDIT) SEGMENT GRP - PUBL
 | 
|---|
| 47 |  ;           8 = VAQ (EDIT) MAX LIMITS
 | 
|---|
| 48 |  ;OUTPUT  : None
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 |  S VAQOFLG=+$G(VAQOFLG)
 | 
|---|
| 51 |  Q:((VAQOFLG<1)!(VAQOFLG>8))
 | 
|---|
| 52 |  ;DECLARE VARIABLES
 | 
|---|
| 53 |  N FNUM,TMPLT,SCRN,DELADD
 | 
|---|
| 54 |  S TMPLT="[VAQ EDIT FILE]"
 | 
|---|
| 55 |  S SCRN=""
 | 
|---|
| 56 |  S DELADD=3
 | 
|---|
| 57 |  S:(VAQOFLG=1) FNUM=394.73
 | 
|---|
| 58 |  S:(VAQOFLG=2) FNUM=394.81
 | 
|---|
| 59 |  S:(VAQOFLG=3) FNUM=394.82
 | 
|---|
| 60 |  S:(VAQOFLG=4) FNUM=394.83
 | 
|---|
| 61 |  S:(VAQOFLG=5) FNUM=394.84
 | 
|---|
| 62 |  S:(VAQOFLG=6) FNUM=394.84,TMPLT="[VAQ EDIT FILE (PRIVATE)]",SCRN="I (($P(^(0),U,2)'=1)&($P(^(0),U,3)=$G(DUZ)))"
 | 
|---|
| 63 |  S:(VAQOFLG=7) FNUM=394.84,TMPLT="[VAQ EDIT FILE (PUBLIC)]",SCRN="I $P(^(0),U,2)=1"
 | 
|---|
| 64 |  S:(VAQOFLG=8) FNUM=394.71,DELADD=0
 | 
|---|
| 65 |  D INPUT(FNUM,TMPLT,SCRN,DELADD)
 | 
|---|
| 66 |  Q
 | 
|---|
| 67 | INPUT(FILENUM,TEMPLATE,SCREEN,ADDEL) ;ADD/EDIT ENTRIES IN FILES USING INPUT TEMPLATE
 | 
|---|
| 68 |  ;INPUT  : FILE - File number
 | 
|---|
| 69 |  ;         TEMPLATE - Name of input template (with brackets)
 | 
|---|
| 70 |  ;         SCREEN - Optional screen to use during lookup
 | 
|---|
| 71 |  ;         ADDEL - Code indicating if add/delete override is allowed
 | 
|---|
| 72 |  ;           0 = Don't override add/delete protection (default)
 | 
|---|
| 73 |  ;           1 = Override add protection only
 | 
|---|
| 74 |  ;           2 = Override delete protection only
 | 
|---|
| 75 |  ;           3 = Override add & delete protection
 | 
|---|
| 76 |  ;OUTPUT : None
 | 
|---|
| 77 |  ;NOTE   : All input is assumed to be in correct format
 | 
|---|
| 78 |  ;         (Existance of variables is the only thing checked)
 | 
|---|
| 79 |  ;
 | 
|---|
| 80 |  Q:('$G(FILENUM))
 | 
|---|
| 81 |  Q:($G(TEMPLATE)="")
 | 
|---|
| 82 |  S SCREEN=$G(SCREEN)
 | 
|---|
| 83 |  S ADDEL=+$G(ADDEL)
 | 
|---|
| 84 |  ;INITIALIZE VARIABLES
 | 
|---|
| 85 |  N DIC,X,Y,DLAYGO,DTOUT,DUOUT,DIE,DA,DR,DIDEL,STOP
 | 
|---|
| 86 |  ;CONTINUOUS LOOP
 | 
|---|
| 87 |  S STOP=0
 | 
|---|
| 88 |  F  D  Q:(STOP)
 | 
|---|
| 89 |  .;ADD/FIND ENTRY
 | 
|---|
| 90 |  .K DIC,DLAYGO,X
 | 
|---|
| 91 |  .S DIC=FILENUM
 | 
|---|
| 92 |  .S DIC(0)="AEMQ"
 | 
|---|
| 93 |  .S DIC("DR")=TEMPLATE
 | 
|---|
| 94 |  .S:(SCREEN'="") DIC("S")=SCREEN
 | 
|---|
| 95 |  .S:((ADDEL=1)!(ADDEL=3)) DLAYGO=FILENUM,DIC(0)="AEMQL"
 | 
|---|
| 96 |  .D ^DIC
 | 
|---|
| 97 |  .;CHECK FOR ABORT
 | 
|---|
| 98 |  .I ($D(DTOUT)!$D(DUOUT)!(Y<0)) S STOP=1 Q
 | 
|---|
| 99 |  .;ENTRY ADDED
 | 
|---|
| 100 |  .Q:(+$P(Y,"^",3))
 | 
|---|
| 101 |  .;EDIT ENTRY
 | 
|---|
| 102 |  .K DIE,DA,DR,DIDEL
 | 
|---|
| 103 |  .S DIE=FILENUM
 | 
|---|
| 104 |  .S DA=+Y
 | 
|---|
| 105 |  .S DR=TEMPLATE
 | 
|---|
| 106 |  .S:((ADDEL=2)!(ADDEL=3)) DIDEL=FILENUM
 | 
|---|
| 107 |  .D ^DIE
 | 
|---|
| 108 |  Q
 | 
|---|