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