[613] | 1 | PXQUTL ;ISL/JVS - FUNCTION CALLS FOR DEBUGGING UTILITIES;8/29/96 10:34 ;3/26/97 09:25
|
---|
| 2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**4,14,29,121**;Aug 12, 1996
|
---|
| 3 | ;
|
---|
| 4 | LCFLE() ;--LOCATION FILES
|
---|
| 5 | N LOCCNT,IHSCNT
|
---|
| 6 | ;--COUNT FROM LOCATION FILE 4
|
---|
| 7 | S LOCCNT=$P($G(^DIC(4,0)),"^",3)
|
---|
| 8 | ;--COUNT FROM IHS LOCATION FILE 9999999.06
|
---|
| 9 | S IHSCNT=$P($G(^AUTTLOC(0)),"^",3)
|
---|
| 10 | Q LOCCNT_"^"_IHSCNT
|
---|
| 11 | ;
|
---|
| 12 | PTFLE() ;--PATIENT FILES
|
---|
| 13 | N DPTCNT,IHSCNT
|
---|
| 14 | ;--COUNT FROM DPT FILE 2
|
---|
| 15 | S DPTCNT=$P($G(^DPT(0)),"^",3)
|
---|
| 16 | ;--COUNT FORM AUPNPAT FILE 9000010
|
---|
| 17 | S IHSCNT=$P($G(^AUPNPAT(0)),"^",3)
|
---|
| 18 | Q DPTCNT_"^"_IHSCNT
|
---|
| 19 | ;
|
---|
| 20 | RE(ENTRY) ;--RECORD ENTRY TO BE PRINTED
|
---|
| 21 | Q:$G(ENTRY)="" ""
|
---|
| 22 | I $L(ENTRY)>80 S ENTRY=$E(ENTRY,1,78)_""""
|
---|
| 23 | S PXQRECI=PXQRECI+1
|
---|
| 24 | S ^TMP("PXQRECORD",$J,PXQRECI,ENTRY)=""
|
---|
| 25 | Q ""
|
---|
| 26 | ;
|
---|
| 27 | READ ;--READ
|
---|
| 28 | N VAR,I,ANS,DX,DY
|
---|
| 29 | W !,"**************************************************************"
|
---|
| 30 | S (DX,DY)=0 X ^%ZOSF("XY")
|
---|
| 31 | S I=0
|
---|
| 32 | I '$G(CNT) S CNT=0
|
---|
| 33 | F S I=$O(^TMP("PXQRECORD",$J,I)) Q:I="" D
|
---|
| 34 | .S VAR=$O(^TMP("PXQRECORD",$J,I,0))
|
---|
| 35 | .;--NEW 3/25/97
|
---|
| 36 | .I VAR["^" S VAR=$TR(VAR,"?!","11")
|
---|
| 37 | .;--END OF NEW
|
---|
| 38 | .I VAR'["?"&(VAR'["!") W !,$O(^TMP("PXQRECORD",$J,I,0))
|
---|
| 39 | .I VAR["?"!(VAR["!") W !,@$O(^TMP("PXQRECORD",$J,I,0))
|
---|
| 40 | .S CNT=CNT+1
|
---|
| 41 | .;I $Y>(IOSL-2) D
|
---|
| 42 | .I CNT>(IOSL-4) S CNT=0 D
|
---|
| 43 | ..I IOST["C-" R !,"ENTER to continue",ANS:DTIME
|
---|
| 44 | ..I $G(ANS)="^" S I=9999999999999
|
---|
| 45 | ..S (DX,DY)=0 X ^%ZOSF("XY")
|
---|
| 46 | K ^TMP("PXQRECORD",$J),PXQPRM
|
---|
| 47 | I IOST["C-",$G(ANS)'="^" R !," END OF DISPLAY",ANS:DTIME
|
---|
| 48 | ;I IOST["C-",$G(ANS)'="^" W !," END OF DISPLAY"
|
---|
| 49 | Q
|
---|
| 50 | ASKPAT() ;Ask user for a patient
|
---|
| 51 | ;DIC on file 9000001
|
---|
| 52 | N DIR,DIC,Y,X,DA
|
---|
| 53 | S DIR(0)="PO^9000001:AEMQ"
|
---|
| 54 | S DIR("A")="Patient Name"
|
---|
| 55 | D ^DIR
|
---|
| 56 | Q $S(+Y>0:+Y,1:-1)
|
---|
| 57 | ;
|
---|
| 58 | ;
|
---|
| 59 | ASKNUM() ;Ask user for a VISIT
|
---|
| 60 | ;DIC on file 9000010
|
---|
| 61 | N DIR,DIC,Y,X,DA
|
---|
| 62 | I $D(^DISV(DUZ,"PXQREP3")) S DIR("B")=$G(^DISV(DUZ,"PXQREP3"))
|
---|
| 63 | S DIR(0)="P^9000010:AEMQ"
|
---|
| 64 | S DIR("A")="Enter VISIT (UNIQUE ID or `1239)"
|
---|
| 65 | D ^DIR
|
---|
| 66 | Q $S(+Y>0:+Y,1:-1)
|
---|
| 67 | ;
|
---|
| 68 | ASKNUM1() ;Ask user for a VISIT
|
---|
| 69 | ;DIC on file 9000010
|
---|
| 70 | N DIC,Y,X,DA
|
---|
| 71 | I $D(^DISV(DUZ,"PXQREP3")) S DIR("B")=$G(^DISV(DUZ,"PXQREP3"))
|
---|
| 72 | S DIR(0)="P^9000010:AEMQ"
|
---|
| 73 | S DIR("A")="Enter VISIT (UNIQUE ID or `1239)"
|
---|
| 74 | D ^DIR
|
---|
| 75 | Q $S(+Y>0:+Y,1:-1)
|
---|
| 76 | ;
|
---|
| 77 | ASKENC() ;Ask user for a ENCOUNTER
|
---|
| 78 | ;DIC on file 409.68
|
---|
| 79 | N DIR,DIC,Y,X,DA
|
---|
| 80 | S DIR(0)="P^409.68:AEMQ"
|
---|
| 81 | S DIR("A")="Enter ENCOUNTER (`2344)"
|
---|
| 82 | D ^DIR
|
---|
| 83 | Q $S(+Y>0:+Y,1:-1)
|
---|
| 84 | ;
|
---|
| 85 | ;
|
---|
| 86 | SOR(IEN) ;--SOURCE IF SELECTED FROM MENU
|
---|
| 87 | Q:'$G(IEN) ""
|
---|
| 88 | W $$RE^PXQUTL("!")
|
---|
| 89 | W $$RE^PXQUTL("----------------VISIT "_IEN_"---SOURCES-------------")
|
---|
| 90 | ;
|
---|
| 91 | ;
|
---|
| 92 | ;
|
---|
| 93 | S DATEC=$P($G(^AUPNVSIT(IEN,0)),"^",2) D
|
---|
| 94 | .S Y=DATEC D DD^%DT S DATEC=Y
|
---|
| 95 | W $$RE^PXQUTL("?5,""CREATED : ""_DATEC")
|
---|
| 96 | ;
|
---|
| 97 | ;
|
---|
| 98 | S DATEE=$P($G(^AUPNVSIT(IEN,0)),"^",13) D
|
---|
| 99 | .S Y=DATEE D DD^%DT S DATEE=Y
|
---|
| 100 | W $$RE^PXQUTL("?5,""EDITED : ""_DATEE")
|
---|
| 101 | ;
|
---|
| 102 | ;
|
---|
| 103 | S USER=$S(+$P($G(^AUPNVSIT(IEN,0)),"^",23)>0:$P(^VA(200,+$P($G(^AUPNVSIT(IEN,0)),"^",23),0),"^",1),1:"")
|
---|
| 104 | W $$RE^PXQUTL("?5,""USER : ""_USER")
|
---|
| 105 | ;
|
---|
| 106 | ;
|
---|
| 107 | I $D(^DIC(19,+$P($G(^AUPNVSIT(IEN,0)),"^",24),0)) D
|
---|
| 108 | .S OPTION=$S(+$P($G(^AUPNVSIT(IEN,0)),"^",24)>0:$P(^DIC(19,+$P($G(^AUPNVSIT(IEN,0)),"^",24),0),"^",2),1:"")
|
---|
| 109 | .W $$RE^PXQUTL("?5,""OPTION : ""_OPTION")
|
---|
| 110 | ;
|
---|
| 111 | I $D(^ORD(101,+$P($G(^AUPNVSIT(IEN,0)),"^",25),0)) D
|
---|
| 112 | .S PROTOCOL=$S(+$P($G(^AUPNVSIT(IEN,0)),"^",25)>0:$P(^ORD(101,+$P($G(^AUPNVSIT(IEN,0)),"^",25),0),"^",2),1:"")
|
---|
| 113 | .W $$RE^PXQUTL("?5,""PROTOCOL: ""_PROTOCOL")
|
---|
| 114 | ;
|
---|
| 115 | ;
|
---|
| 116 | I $D(^DIC(9.4,+$P($G(^AUPNVSIT(IEN,812)),"^",2),0)) D
|
---|
| 117 | .S PACKAGE=$S(+$P($G(^AUPNVSIT(IEN,812)),"^",2)>0:$P(^DIC(9.4,+$P($G(^AUPNVSIT(IEN,812)),"^",2),0),"^",1),1:"")
|
---|
| 118 | .W $$RE^PXQUTL("?5,""PACKAGE : ""_PACKAGE")
|
---|
| 119 | ;
|
---|
| 120 | ;
|
---|
| 121 | I $P($G(^AUPNVSIT(IEN,812)),"^",3) D
|
---|
| 122 | .I $D(^PX(839.7,$P($G(^AUPNVSIT(IEN,812)),"^",3),0)) D
|
---|
| 123 | ..S SOURCE=$S(+$P($G(^AUPNVSIT(IEN,812)),"^",3)>0:$P(^PX(839.7,+$P($G(^AUPNVSIT(IEN,812)),"^",3),0),"^",1),1:"")
|
---|
| 124 | ..W $$RE^PXQUTL("?5,""SOURCE : ""_SOURCE")
|
---|
| 125 | ;
|
---|
| 126 | W $$RE^PXQUTL("______________________________________________________")
|
---|
| 127 | Q ""
|
---|
| 128 | ;
|
---|
| 129 | SDV ;--IF AN APPOINTMENT ON THAT DAY
|
---|
| 130 | N JUNK,PATIENT,ENTRY,CNT,CS,DAY,DAY2,ERR,POINT,STOP
|
---|
| 131 | N PXC,PXCC,PXCCC,PXCCCC,ICPTSTR
|
---|
| 132 | S (PXC,PXCC,PXCCC,PXCCCC,ICPTSTR)=""
|
---|
| 133 | I $G(BROKEN),'$G(DFN),'$G(PATIENT),'$G(DATE) Q
|
---|
| 134 | I $G(DFN) S PATIENT=DFN
|
---|
| 135 | I '$G(DFN) S (PATIENT,DFN)=$P(^AUPNVSIT(IEN,0),"^",5)
|
---|
| 136 | Q:'$G(PATIENT)
|
---|
| 137 | I '$G(BROKEN) S DATE=$P(^AUPNVSIT(IEN,0),"^",1)
|
---|
| 138 | S CNT=0
|
---|
| 139 | S DAY=$P(DATE,".",1)
|
---|
| 140 | F S DAY=$O(^SDV("C",PATIENT,DAY)) Q:DAY'[$P(DATE,".",1) S CNT=CNT+1 D
|
---|
| 141 | .W $$RE^PXQUTL("!")
|
---|
| 142 | .W !
|
---|
| 143 | .S REF="^SDV(DAY)"
|
---|
| 144 | .F S REF=$Q(@REF) Q:REF'[DAY S DAY2=$P($P(REF,"(",2),",") I '$G(ERR),$P($G(^SDV(DAY2,0)),"^",2)=PATIENT,REF'["""CS"",""B""," S ENTRY=REF_" = "_@REF W $$RE^PXQUTL(ENTRY) I REF["""PR""" D CPT2
|
---|
| 145 | .;---
|
---|
| 146 | .W $$RE^PXQUTL(" ")
|
---|
| 147 | .S CS=0 F S CS=$O(^SDV(DAY2,"CS",CS)) Q:CS'>0 D
|
---|
| 148 | ..Q:$P($G(^SDV(DAY2,0)),"^",2)'=PATIENT
|
---|
| 149 | ..S POINT=$P($G(^SDV(DAY2,"CS",CS,0)),"^",1)
|
---|
| 150 | ..S STOP=$G(^DIC(40.7,POINT,0))
|
---|
| 151 | ..W $$RE^PXQUTL("STOP CODE "_POINT_" = "_STOP)
|
---|
| 152 | .S PXC=0 F S PXC=$O(PXQSDV(PXC)) Q:PXC="" Q:'$D(PXQSDV) D
|
---|
| 153 | ..S PXCC=$O(PXQSDV(PXC,0))
|
---|
| 154 | ..;S PXCCC=$E($P($G(^ICPT(PXC,0)),"^",2),1,30)
|
---|
| 155 | ..;S PXCCCC=$P($G(^ICPT(PXC,0)),"^",1)
|
---|
| 156 | ..S ICPTSTR=$$CPT^ICPTCOD(PXC,DAY)
|
---|
| 157 | ..S PXCCC=$E($P(ICPTSTR,"^",3),1,30)
|
---|
| 158 | ..S PXCCCC=$P(ICPTSTR,"^",2)
|
---|
| 159 | ..S ENTRY="CPT "_$G(PXCCCC)_" - "_$G(PXCCC)_" = "_$G(PXCC)_" TIMES"
|
---|
| 160 | ..W $$RE^PXQUTL(ENTRY)
|
---|
| 161 | D CPT
|
---|
| 162 | K PXQSDV,DATE
|
---|
| 163 | W $$RE^PXQUTL(" ")
|
---|
| 164 | Q
|
---|
| 165 | CPT ;--PROCEDURES
|
---|
| 166 | I $D(^AUPNVCPT("AD",VISIT)),CNT=0 W $$RE^PXQUTL("THERE ARE PROCEDURES IN PCE BUT NO RECORD IN SCHEDULING **")
|
---|
| 167 | Q
|
---|
| 168 | CPT2 ;--COUNT PROCEDURES
|
---|
| 169 | N PXQC,PXQQ
|
---|
| 170 | S PXQQ=0
|
---|
| 171 | F I=1:1:5 S PXQC=$P(@REF,"^",I) I PXQC]"" D
|
---|
| 172 | .I $D(PXQSDV(PXQC)) S PXQQ=$O(PXQSDV(PXQC,0))
|
---|
| 173 | .K PXQSDV(PXQC,PXQQ)
|
---|
| 174 | .S PXQSDV(PXQC,(PXQQ+1))=""
|
---|
| 175 | .S PXQQ=0
|
---|
| 176 | Q
|
---|
| 177 | ;
|
---|
| 178 | ;
|
---|
| 179 | EXP(ROOT,IEN) ;---EXPAND ENTRIES
|
---|
| 180 | N I,REF,REF2,ENTRY
|
---|
| 181 | I ROOT["SCE",$P($G(^SCE(IEN,0)),"^",6)']"",$G(PXQPRM)=1 D
|
---|
| 182 | .W $$RE^PXQUTL(" ~~~~ERROR~~~")
|
---|
| 183 | .W $$RE^PXQUTL("** There is more Than 1 PARENT OUTPATIENT ENCOUNTER pointing to the same VISIT**")
|
---|
| 184 | .W $$RE^PXQUTL(" ")
|
---|
| 185 | I ROOT["SCE"&($P($G(^SCE(IEN,0)),"^",6)']"") S PXQPRM=1
|
---|
| 186 | I $G(BROKEN),ROOT["AUPNVCPT" S (DFN,PATIENT)=$P($G(^AUPNVCPT(IEN,0)),"^",2)
|
---|
| 187 | I $G(BROKEN),ROOT["SCE",'$G(DATE) S DATE=$P($G(^SCE(IEN,0)),"^",1),(DFN,PATIENT)=$P($G(^SCE(IEN,0)),"^",2)
|
---|
| 188 | S REF=$P(ROOT,"""",1)_IEN_")"
|
---|
| 189 | S REF2=$P(ROOT,"""",1)_IEN
|
---|
| 190 | F S REF=$Q(@REF) Q:REF'[REF2 S ENTRY=REF_" = "_@REF W $$RE^PXQUTL($G(ENTRY))
|
---|
| 191 | W $$RE^PXQUTL(" ")
|
---|
| 192 | Q ""
|
---|