| 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 | 
|---|