[613] | 1 | DVBAB1 ;ALB/SPH - CAPRI UTILITIES ;01/01/00
|
---|
| 2 | ;;2.7;AMIE;**35,37,50,42,53,57,73,104,109**;Apr 10, 1995
|
---|
| 3 | ;
|
---|
| 4 | VERSION(ZMSG,DVBGUIV) ;
|
---|
| 5 | ; Must have a letter at the end of the Version for Delphi compatibility
|
---|
| 6 | ; 1st piece is version description
|
---|
| 7 | ; 2nd piece can be YESOLD or NOOLD
|
---|
| 8 | ; YESOLD = Allow old GUI to run with new KID
|
---|
| 9 | ; NOOLD = Do not allow old GUI to run with newer version
|
---|
| 10 | S ZMSG="CAPRI GUI V2.7*71*1*A^NOOLD"
|
---|
| 11 | S DVBABVR1="CAPRI Server Version: "+ZMSG
|
---|
| 12 | I '$D(DVBGUIV) S DVBGUIV="CAPRI GUI Version: UNKNOWN - Version is prior to DVBA*2.7*71"
|
---|
| 13 | S DVBABVR2="CAPRI GUI Version: "+DVBGUIV
|
---|
| 14 | S DVBABVR3=$P(^VA(200,DUZ,0),"^",1)
|
---|
| 15 | Q
|
---|
| 16 | ;
|
---|
| 17 | REQUESTS(Y,TYPE) ;
|
---|
| 18 | ; TYPE is the internal value of field 17 in file 396.3
|
---|
| 19 | ; This relates to which status of request should be returned
|
---|
| 20 | N DVBABCNT,DVBABIEN
|
---|
| 21 | S DVBABCNT=0,DVBABIEN=0
|
---|
| 22 | F S DVBABIEN=$O(^DVB(396.3,DVBABIEN)) Q:'DVBABIEN D
|
---|
| 23 | .S DVBABST=$P($G(^DVB(396.3,DVBABIEN,0)),"^",18)
|
---|
| 24 | .I DVBABST=TYPE D
|
---|
| 25 | ..S DVBABNM=$P($G(^DVB(396.3,DVBABIEN,0)),"^",1)
|
---|
| 26 | ..S DVBABPT=DVBABNM
|
---|
| 27 | ..I DVBABNM'="" S DVBABNM=$P($G(^DPT(DVBABNM,0)),"^",1)
|
---|
| 28 | ..S DVBABDT=$$FMTE^XLFDT($P($G(^DVB(396.3,DVBABIEN,0)),"^",2),"2D")
|
---|
| 29 | ..S DVBABWHO=$P($G(^DVB(396.3,DVBABIEN,0)),"^",4)
|
---|
| 30 | ..I DVBABWHO'="" S DVBABWHO=$P($G(^VA(200,DVBABWHO,0)),"^",1)
|
---|
| 31 | ..E S DVBABWHO="UNKNOWN"
|
---|
| 32 | ..S DVBABRO=$P($G(^DVB(396.3,DVBABIEN,0)),"^",3)
|
---|
| 33 | ..I DVBABRO'="" S DVBABRO=$P($G(^DIC(4,DVBABRO,0)),"^",1)
|
---|
| 34 | ..E S DVBABRO="UNKNOWN"
|
---|
| 35 | ..S ^TMP("DVBAREQ",DUZ,DVBABCNT)=DVBABST_"^"_DVBABPT_"^"_DVBABNM_"^"_DVBABDT_"^"_DVBABWHO_"^"_DVBABRO_"^"_DVBABIEN_$C(13),DVBABCNT=DVBABCNT+1
|
---|
| 36 | S Y=$NA(^TMP("DVBAREQ",DUZ))
|
---|
| 37 | K DVBABCNT,DVBABIEN,TYPE,DVBABNM,DVBABDT,DVBABST,DVBABWHO,DVBABPT
|
---|
| 38 | Q
|
---|
| 39 | TEAMPTS(DVBORY,TEAM,TMPFLAG) ; RETURN LIST OF PATIENTS IN A TEAM
|
---|
| 40 | ; If TMPFLAG passed and = TRUE, code expects a "^TMP(xxx"
|
---|
| 41 | ; global root string passed in ORY, and builds the returned
|
---|
| 42 | ; list in that global instead of to a memory array.
|
---|
| 43 | N DOTMP,NEWTMP,DVBSSN,DVBORI,DVBORPT,I
|
---|
| 44 | K ^TMP("DVBATMPT",DUZ)
|
---|
| 45 | S (I,DOTMP,DVBORI)=0
|
---|
| 46 | I $G(TMPFLAG) D ; Was value passed?
|
---|
| 47 | .I TMPFLAG S DOTMP=1 ; Is value TRUE?
|
---|
| 48 | I +$G(TEAM)<1 D
|
---|
| 49 | .I DOTMP S NEWTMP=DVBORY_1_")",@NEWTMP="^No team identified"
|
---|
| 50 | .E S DVBORY(1)="^No team identified"
|
---|
| 51 | F S DVBORI=$O(^OR(100.21,+TEAM,10,DVBORI)) Q:DVBORI<1 D
|
---|
| 52 | .S DVBORPT=^OR(100.21,+TEAM,10,DVBORI,0)
|
---|
| 53 | .I DOTMP D
|
---|
| 54 | ..S I=I+1,NEWTMP=DVBORY_+I_")"
|
---|
| 55 | ..S @NEWTMP=+DVBORPT_U_$P(^DPT(+DVBORPT,0),U)
|
---|
| 56 | .S DVBSSN=$P($G(^DPT($P(DVBORPT,";",1),0)),U,9)
|
---|
| 57 | .E S I=I+1,^TMP("DVBATMPT",DUZ,I)=+DVBORPT_U_$P(^DPT(+DVBORPT,0),U)_U_DVBSSN_$C(13)
|
---|
| 58 | I DOTMP S:I<1 NEWTMP=DVBORY_1_")",@NEWTMP="^No patients found."
|
---|
| 59 | E S:I<1 ^TMP("DVBATMPT",DUZ,1)="^No patients found."
|
---|
| 60 | S DVBORY=$NA(^TMP("DVBATMPT",DUZ))
|
---|
| 61 | Q
|
---|
| 62 | DIVISION(Y) ; Returns Name for an Institution
|
---|
| 63 | N DVBARR,DVBERR,DVBATP
|
---|
| 64 | S Y=""
|
---|
| 65 | Q:$G(DUZ(2))=""
|
---|
| 66 | D GETS^DIQ(4,DUZ(2)_",0",".01","I","DVBARR","DVBERR")
|
---|
| 67 | Q:$D(DVBERR)
|
---|
| 68 | S Y=$G(DVBARR(4,DUZ(2)_",0,",.01,"I"))
|
---|
| 69 | D GETS^DIQ(4,DUZ(2)_",0",13,"I","DVBARR","DVBERR")
|
---|
| 70 | S DVBATP=$G(DVBARR(4,DUZ(2)_",0,",13,"I"))
|
---|
| 71 | I DVBATP'="" S DVBATP=$P($G(^DIC(4.1,DVBATP,0)),"^",1)
|
---|
| 72 | S Y=Y_"-"_DVBATP
|
---|
| 73 | Q
|
---|
| 74 | ;
|
---|
| 75 | DT(Y,X1,X2) ; Returns date X1 minus X2 days
|
---|
| 76 | ; change the '00:00' that could be passed so Fileman doesn't reject
|
---|
| 77 | ;C^%DTC(X1,X2)
|
---|
| 78 | ;S %DT=$G(%DT,"TS") D ^%DT
|
---|
| 79 | ;K %DT,X1,X2
|
---|
| 80 | ;Q
|
---|
| 81 | DTTM(Y) ;
|
---|
| 82 | S Y=$$HTE^XLFDT($H,"P")
|
---|
| 83 | Q
|
---|
| 84 | CHKCRED(Y) ;KLB
|
---|
| 85 | S Y="[OK]"
|
---|
| 86 | I '$D(DUZ(2)) S Y="Your division number is missing." Q
|
---|
| 87 | I $D(DUZ)#2=0 S Y="Your user number is invalid." Q
|
---|
| 88 | I +DUZ(2)<1 S Y="Invalid division."
|
---|
| 89 | Q
|
---|
| 90 | PTINQ(REF,DFN) ; Return formatted pt inquiry report
|
---|
| 91 | K ^TMP("ORDATA",$J,1)
|
---|
| 92 | ; DVBA*2.7*109 - Added $D to next line
|
---|
| 93 | I ($D(^DPT(DFN,0))) D START^ORWRP(80,"DGINQB^ORCXPND1(DFN)")
|
---|
| 94 | S REF=$NA(^TMP("ORDATA",$J,1))
|
---|
| 95 | Q
|
---|
| 96 | TEMPLATE(Y) ; Returns list of CAPRI exam templates
|
---|
| 97 | N DVBABCNT,DVBABIEN,DVBABNM,DVBABAD,DVBABDD,DVBABSL,DVBABOC
|
---|
| 98 | K Y,^TMP("DVBALAB1",DUZ)
|
---|
| 99 | S DVBABCNT=0,DVBABIEN=0
|
---|
| 100 | F S DVBABIEN=$O(^DVB(396.18,DVBABIEN)) Q:'DVBABIEN D
|
---|
| 101 | .S DVBABNM=$P($G(^DVB(396.18,DVBABIEN,0)),"^",1)
|
---|
| 102 | .S DVBABAD=$P($G(^DVB(396.18,DVBABIEN,2)),"^",1)
|
---|
| 103 | .S DVBABDD=$P($G(^DVB(396.18,DVBABIEN,2)),"^",2)
|
---|
| 104 | .S DVBABSL=$P($G(^DVB(396.18,DVBABIEN,6)),"^",1)
|
---|
| 105 | .S DVBABOC=$P($G(^DVB(396.18,DVBABIEN,6)),"^",2)
|
---|
| 106 | .S ^TMP("DVBATMPL",DUZ,DVBABCNT)=DVBABNM_"^"_DVBABAD_"^"_DVBABDD_"^"_DVBABSL_"^"_DVBABOC_"^"_DVBABIEN_$C(13),DVBABCNT=DVBABCNT+1
|
---|
| 107 | S Y=$NA(^TMP("DVBATMPL",DUZ))
|
---|
| 108 | Q
|
---|
| 109 | ;
|
---|
| 110 | LABLIST(Y) ; Returns list of LAB TEST NAMES
|
---|
| 111 | N DVBABCNT,DVBABIEN,DVBABLNM
|
---|
| 112 | K Y,^TMP("DVBALAB1",DUZ)
|
---|
| 113 | S DVBABCNT=0,DVBABIEN=0
|
---|
| 114 | F S DVBABIEN=$O(^LAB(60,DVBABIEN)) Q:'DVBABIEN D
|
---|
| 115 | .S DVBABLNM=$P($G(^LAB(60,DVBABIEN,0)),"^",1)
|
---|
| 116 | .S ^TMP("DVBALAB1",DUZ,DVBABCNT)=DVBABLNM_"^"_DVBABIEN_$C(13),DVBABCNT=DVBABCNT+1
|
---|
| 117 | S Y=$NA(^TMP("DVBALAB1",DUZ))
|
---|
| 118 | Q
|
---|
| 119 | ;
|
---|
| 120 | INSTLIST(Y) ; Returns full list of Institutions
|
---|
| 121 | N DVBABCNT,DVBABIEN,DVBABNM,DVBABSTN,DVBABST,DVBABDS,DVBARR,DVBERR,DVBATP
|
---|
| 122 | K Y,^TMP("DVBAINST",$J,DUZ)
|
---|
| 123 | S (DVBABCNT,DVBABIEN)=0
|
---|
| 124 | F S DVBABIEN=$O(^DIC(4,DVBABIEN)) Q:'DVBABIEN D
|
---|
| 125 | . K DVBARR,DVBERR
|
---|
| 126 | . D GETS^DIQ(4,DVBABIEN_",0",".01:.02:.03:","I","DVBARR","DVBERR")
|
---|
| 127 | . Q:$D(DVBERR)
|
---|
| 128 | . S DVBABNM=$G(DVBARR(4,DVBABIEN_",0,",.01,"I"))
|
---|
| 129 | . Q:DVBABNM=""
|
---|
| 130 | . S DVBABSTN=$G(DVBARR(4,DVBABIEN_",0,",.02,"I"))
|
---|
| 131 | . Q:DVBABSTN=""
|
---|
| 132 | . S DVBABDS=$G(DVBARR(4,DVBABIEN_",0,",.03,"I"))
|
---|
| 133 | . K DVBARR,DVBERR
|
---|
| 134 | . D GETS^DIQ(5,DVBABSTN_",0",.01,"I","DVBARR","DVBERR")
|
---|
| 135 | . Q:$D(DVBERR)
|
---|
| 136 | . S DVBABST=$G(DVBARR(5,DVBABSTN_",0,",.01,"I"))
|
---|
| 137 | . K DVBARR,DVBERR
|
---|
| 138 | . D GETS^DIQ(4,DVBABIEN_",0",13,"I","DVBARR","DVBERR")
|
---|
| 139 | . S DVBATP=$G(DVBARR(4,DVBABIEN_",0,",13,"I"))
|
---|
| 140 | . I DVBATP'="" D
|
---|
| 141 | .. S DVBATP=$P($G(^DIC(4.1,DVBATP,0)),"^",1)
|
---|
| 142 | . S ^TMP("DVBAINST",$J,DUZ,DVBABCNT)=DVBABNM_"-"_DVBATP_"^"_DVBABST_"^"_DVBABDS_"^"_DVBABIEN_$C(13)
|
---|
| 143 | . S DVBABCNT=DVBABCNT+1
|
---|
| 144 | S Y=$NA(^TMP("DVBAINST",$J,DUZ))
|
---|
| 145 | Q
|
---|
| 146 | ;
|
---|
| 147 | INCEXAM(ZMSG) ;Increased exam # in file and passes back the # to user
|
---|
| 148 | S ZMSG=+$G(^DVB(396.1,1,5))+1
|
---|
| 149 | S ^DVB(396.1,1,5)=ZMSG
|
---|
| 150 | Q
|
---|
| 151 | ;
|
---|
| 152 | MSG(ERR,DUZ,XMSUB,XMTEXT,MGN) ;Generate mail message;KLB
|
---|
| 153 | S ERR=""
|
---|
| 154 | K ^TMP($J,"AMIE")
|
---|
| 155 | I '$D(DUZ) S ERR="MISSING DUZ" Q
|
---|
| 156 | I '$D(XMSUB) S ERR="MISSING SUBJECT" Q
|
---|
| 157 | I '$D(XMTEXT) S ERR="MISSING TEXT" Q
|
---|
| 158 | I '$D(MGN) S ERR="MISSING MAIL GROUP NAME" Q
|
---|
| 159 | S XMDUZ=DUZ,J=0
|
---|
| 160 | F S J=$O(XWBS1(J)) Q:'J S ^TMP($J,"AMIE",J)=$G(XWBS1(J))
|
---|
| 161 | S XMTEXT="^TMP($J,""AMIE"","
|
---|
| 162 | S DIC="^XMB(3.8,",DIC(0)="QM",X=MGN D ^DIC
|
---|
| 163 | S MG=+Y
|
---|
| 164 | I +Y<0 S ERR="INVALID MAIL GROUP NAME" Q
|
---|
| 165 | I '$$GOTLOCAL^XMXAPIG(MGN) S ERR="NO ACTIVE LOCAL MEMBERS IN MAIL GROUP" K ^TMP("XMERR",$J) Q
|
---|
| 166 | S ZZ=0,ZZ1=0
|
---|
| 167 | F S ZZ=$O(^XMB(3.8,MG,1,"B",ZZ)) Q:'ZZ D
|
---|
| 168 | .F S ZZ1=$O(^XMB(3.8,MG,1,"B",ZZ,ZZ1)) Q:'ZZ1 S XMY(ZZ)=""
|
---|
| 169 | D ^XMD
|
---|
| 170 | I $D(XMMG) S ERR=XMMG
|
---|
| 171 | E S ERR="MESSAGE SENT"
|
---|
| 172 | K XMSUB,XMTEXT,MGN,DIC,DIC(0),ZZ,XMY,XWBS1,J,ZZ1,MG,^TMP($J,"AMIE"),XMMG,Y,XMDUZ
|
---|
| 173 | Q
|
---|
| 174 | FINDEXAM(ZMSG,ZIEN) ;Returns list of exams in 396.4 that are linked to ZIEN in 396.3
|
---|
| 175 | N DVBABCNT,DVBABIEN
|
---|
| 176 | S DVBABCNT=0,DVBABIEN=0
|
---|
| 177 | F S DVBABIEN=$O(^DVB(396.4,"C",ZIEN,DVBABIEN)) Q:'DVBABIEN D
|
---|
| 178 | .S DVBABD1=$P($G(^DVB(396.4,DVBABIEN,0)),"^",2)
|
---|
| 179 | .S DVBABD2=$P($G(^DVB(396.6,+$P($G(^DVB(396.4,DVBABIEN,0)),"^",3),0)),"^",1) ;Name of Exam
|
---|
| 180 | .S DVBABD3=$P($G(^DVB(396.4,DVBABIEN,0)),"^",4)
|
---|
| 181 | .I DVBABD3="O" S DVBABD3="[OPEN]"
|
---|
| 182 | .I DVBABD3="C" S DVBABD3="[COMPLETE]"
|
---|
| 183 | .I DVBABD3="X" S DVBABD3="[CANCELED BY MAS]"
|
---|
| 184 | .I DVBABD3="RX" S DVBABD3="[CANCELED BY RO]"
|
---|
| 185 | .I DVBABD3="T" S DVBABD3="[TRANSFERRED OUT]"
|
---|
| 186 | .I ZIEN=DVBABD1 D
|
---|
| 187 | ..S ZMSG(DVBABCNT)=DVBABIEN_"^"_DVBABD2_" "_DVBABD3
|
---|
| 188 | ..S DVBABCNT=DVBABCNT+1
|
---|
| 189 | K DVBABCNT,DVBABIEN,ZIEN,DVBABD1,DVBABD2,DVBABD3
|
---|
| 190 | Q
|
---|