| [613] | 1 | VAQUTL1 ;ALB/JRP - UTILITY ROUTINES;30-APR-93 | 
|---|
|  | 2 | ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993 | 
|---|
|  | 3 | REPEAT(CHAR,TIMES) ;REPEAT A STRING | 
|---|
|  | 4 | ;INPUT  : CHAR - Character to repeat | 
|---|
|  | 5 | ;         TIMES - Number of times to repeat CHAR | 
|---|
|  | 6 | ;OUTPUT : s - String of CHAR that is TIMES long | 
|---|
|  | 7 | ;         "" - Error (bad input) | 
|---|
|  | 8 | ; | 
|---|
|  | 9 | ;CHECK INPUT | 
|---|
|  | 10 | Q:($G(CHAR)="") "" | 
|---|
|  | 11 | Q:((+$G(TIMES))=0) "" | 
|---|
|  | 12 | ;RETURN STRING | 
|---|
|  | 13 | Q $TR($J("",TIMES)," ",CHAR) | 
|---|
|  | 14 | INSERT(INSTR,OUTSTR,COLUMN,LENGTH) ;INSERT A STRING INTO ANOTHER | 
|---|
|  | 15 | ;INPUT  : INSTR - String to insert | 
|---|
|  | 16 | ;         OUTSTR - String to insert into | 
|---|
|  | 17 | ;         COLUMN - Where to begin insertion (defaults to end of OUTSTR) | 
|---|
|  | 18 | ;         LENGTH - Number of characters to clear from OUTSTR | 
|---|
|  | 19 | ;                  (defaults to length of INSTR) | 
|---|
|  | 20 | ;OUTPUT : s - INSTR will be placed into OUTSTR starting at COLUMN | 
|---|
|  | 21 | ;             using LENGTH characters | 
|---|
|  | 22 | ;         "" - Error (bad input) | 
|---|
|  | 23 | ; | 
|---|
|  | 24 | ;NOTE : This module is based on $$SETSTR^VALM1 | 
|---|
|  | 25 | ; | 
|---|
|  | 26 | ;CHECK INPUT | 
|---|
|  | 27 | Q:('$D(INSTR)) "" | 
|---|
|  | 28 | Q:('$D(OUTSTR)) "" | 
|---|
|  | 29 | S:('$D(COLUMN)) COLUMN=$L(OUTSTR)+1 | 
|---|
|  | 30 | S:('$D(LENGTH)) LENGTH=$L(INSTR) | 
|---|
|  | 31 | ;DECLARE VARIABLES | 
|---|
|  | 32 | N FRONT,END | 
|---|
|  | 33 | S FRONT=$E((OUTSTR_$J("",COLUMN-1)),1,(COLUMN-1)) | 
|---|
|  | 34 | S END=$E(OUTSTR,(COLUMN+LENGTH),$L(OUTSTR)) | 
|---|
|  | 35 | ;INSERT STRING | 
|---|
|  | 36 | Q FRONT_$E((INSTR_$J("",LENGTH)),1,LENGTH)_END | 
|---|
|  | 37 | KILLARR(ARRAY,NODE,START,END) ;KILL NODES OF AN ARRAY | 
|---|
|  | 38 | ;INPUT  : ARRAY - Array to kill nodes in (full global reference) | 
|---|
|  | 39 | ;         NODE - Subscript to kill (optional) | 
|---|
|  | 40 | ;         START - Subscript to start killing at (default to first) | 
|---|
|  | 41 | ;         END - Subscript to stop killing at (default to all) | 
|---|
|  | 42 | ;OUTPUT : 0 - Success | 
|---|
|  | 43 | ;        -1 - Error | 
|---|
|  | 44 | ; | 
|---|
|  | 45 | ;NOTES: | 
|---|
|  | 46 | ;  If NODE is passed KILLing takes place at | 
|---|
|  | 47 | ;     @ARRAY@(NODE,x) | 
|---|
|  | 48 | ;  If NODE is not passed KILLing takes place at | 
|---|
|  | 49 | ;     @ARRAY@(x) | 
|---|
|  | 50 | ; | 
|---|
|  | 51 | ;  If START is passed KILLing starts at | 
|---|
|  | 52 | ;     @ARRAY@([NODE,]START) | 
|---|
|  | 53 | ;  If START is not passed KILLing starts on first node after | 
|---|
|  | 54 | ;     @ARRAY@([NODE,],"") | 
|---|
|  | 55 | ; | 
|---|
|  | 56 | ;  If END is passed KILLing ends on first node after | 
|---|
|  | 57 | ;     @ARRAR@([NODE,],END) | 
|---|
|  | 58 | ;  If END is not passed KILLing ends on first node after | 
|---|
|  | 59 | ;     @ARRAY@([NODE]) | 
|---|
|  | 60 | ;CHECK INPUT | 
|---|
|  | 61 | Q:($G(ARRAY)="") -1 | 
|---|
|  | 62 | S NODE=$G(NODE) | 
|---|
|  | 63 | S START=$G(START) | 
|---|
|  | 64 | S END=$G(END) | 
|---|
|  | 65 | ;DECLARE VARIABLES | 
|---|
|  | 66 | N LOOP,SUBSCRPT | 
|---|
|  | 67 | ;KILL STARTING SUBSCRIPT | 
|---|
|  | 68 | I (START'="")&(NODE'="") K @ARRAY@(NODE,START) | 
|---|
|  | 69 | I (START'="")&(NODE="") K @ARRAY@(START) | 
|---|
|  | 70 | ;KILL NODES | 
|---|
|  | 71 | F LOOP=0:0 D  Q:(SUBSCRPT="") | 
|---|
|  | 72 | .I (NODE="") S SUBSCRPT=$O(@ARRAY@(START)) | 
|---|
|  | 73 | .I (NODE'="") S SUBSCRPT=$O(@ARRAY@(NODE,START)) | 
|---|
|  | 74 | .Q:(SUBSCRPT="") | 
|---|
|  | 75 | .I (NODE="") K @ARRAY@(SUBSCRPT) | 
|---|
|  | 76 | .I (NODE'="") K @ARRAY@(NODE,SUBSCRPT) | 
|---|
|  | 77 | .S:(SUBSCRPT=END) SUBSCRPT="" | 
|---|
|  | 78 | Q 0 | 
|---|
|  | 79 | PATINFO(DFN) ;RETURNS PATIENT NAME, SSN, DOB, PATIENT ID | 
|---|
|  | 80 | ;INPUT  : DFN - Pointer to patient in PATIENT file | 
|---|
|  | 81 | ;OUTPUT : Name^SSN^DOB^PID - Success | 
|---|
|  | 82 | ;        -1^Error_Text - Error | 
|---|
|  | 83 | ;NOTES  : SSN returned without dashes | 
|---|
|  | 84 | ;         DOB returned in external format | 
|---|
|  | 85 | ; | 
|---|
|  | 86 | ;CHECK INPUT | 
|---|
|  | 87 | S DFN=+$G(DFN) | 
|---|
|  | 88 | Q:('DFN) "-1^Pointer to PATIENT file not passed" | 
|---|
|  | 89 | ;DECLARE VARIABLES | 
|---|
|  | 90 | N VAPTYP,VAHOW,VAROOT,VAERR,VA,TMP,Y,%DT | 
|---|
|  | 91 | S VAHOW=2 | 
|---|
|  | 92 | K ^UTILITY("VADM",$J) | 
|---|
|  | 93 | D DEM^VADPT | 
|---|
|  | 94 | Q:(VAERR) "-1^Unable to gather patient information" | 
|---|
|  | 95 | S TMP=^UTILITY("VADM",$J,1) | 
|---|
|  | 96 | S $P(TMP,"^",2)=$P(^UTILITY("VADM",$J,2),"^",1) | 
|---|
|  | 97 | S Y=+^UTILITY("VADM",$J,3) D DD^%DT S $P(TMP,"^",3)=Y | 
|---|
|  | 98 | S $P(TMP,"^",4)=VA("PID") | 
|---|
|  | 99 | K ^UTILITY("VADM",$J) | 
|---|
|  | 100 | Q TMP | 
|---|
|  | 101 | ; | 
|---|
|  | 102 | PDXVER() ;RETURN VERSION OF PDX IN USE | 
|---|
|  | 103 | ;INPUT  : None | 
|---|
|  | 104 | ;OUTPUT : N - Version of PDX in use at facility | 
|---|
|  | 105 | ;        -1^Error_Text - Error | 
|---|
|  | 106 | ; | 
|---|
|  | 107 | ;DECLARE VARIABLES | 
|---|
|  | 108 | N X,Y | 
|---|
|  | 109 | S X=+$G(^DD(394.61,0,"VR")) | 
|---|
|  | 110 | S Y=$D(^DD(394)) | 
|---|
|  | 111 | ;NOT INSTALLED | 
|---|
|  | 112 | Q:(('X)&('Y)) "-1^PDX has not been installed" | 
|---|
|  | 113 | ;VERSION 1.0 | 
|---|
|  | 114 | Q:(('X)&(Y)) "1.0" | 
|---|
|  | 115 | ;VERSION 1.5 AND UP | 
|---|
|  | 116 | Q X | 
|---|
|  | 117 | ; | 
|---|
|  | 118 | APDX ;CONTINUATION OF APDX X-REF ON *PDX TRANSACTION FILE (# 394) | 
|---|
|  | 119 | ;  THIS IS LEFT OVER FROM VERSION 1.0 - INCLUDED TO PASS %INDEX | 
|---|
|  | 120 | S:($P(^VAT(394,DA,0),U,12)=VAQ15)!($P(^(0),U,12)=VAQ16) ^VAT(394,"APDX",$P(^(0),U,4),X,(9999999.999999-$P(^(0),U,1)),DA)="" | 
|---|
|  | 121 | K:VAQTMP=1 VAQ15,VAQ16 K VAQTMP | 
|---|
|  | 122 | Q | 
|---|