[613] | 1 | PXCEPAT ;ISL/dee,ISA/KWP - Creates the List Manager display of visit for a patient ; 6/3/03 10:47am ; Compiled January 5, 2007 14:12:43
|
---|
| 2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**1,5,14,30,70,147,160,161,183,188**;Aug 12, 1996;Build 3
|
---|
| 3 | Q
|
---|
| 4 | ;
|
---|
| 5 | NEWPAT2 ;Entry point of changing patient from Update Encounter
|
---|
| 6 | N PXCENEWP
|
---|
| 7 | D PATIENT(.PXCENEWP)
|
---|
| 8 | Q:PXCENEWP'>0
|
---|
| 9 | D PATKILL
|
---|
| 10 | S PXCEPAT=+PXCENEWP
|
---|
| 11 | NEWPAT1 ;Entry point for initial selection of patient
|
---|
| 12 | D PATINFO(.PXCEPAT) Q:$D(DIRUT)
|
---|
| 13 | I $P(PXCEVIEW,"^",1)'="P" D
|
---|
| 14 | . S $P(PXCEVIEW,"^",1)="P"
|
---|
| 15 | . D SETDATES^PXCE
|
---|
| 16 | S SDAMTYP="P"
|
---|
| 17 | I PXCEVIEW["A" K PXCEHLOC
|
---|
| 18 | Q
|
---|
| 19 | ;
|
---|
| 20 | NEWPAT ; -- init variables and list array
|
---|
| 21 | N PXCENEWP
|
---|
| 22 | D PATIENT(.PXCENEWP)
|
---|
| 23 | I PXCENEWP'>0,("~H~P~"'[("~"_$P(PXCEVIEW,"^")_"~")) S VALMQUIT=1 Q
|
---|
| 24 | I PXCENEWP'>0 Q
|
---|
| 25 | D PATKILL
|
---|
| 26 | S PXCEPAT=+PXCENEWP
|
---|
| 27 | D NEWPAT1 Q:$D(DIRUT)
|
---|
| 28 | D MAKELIST^PXCENEW
|
---|
| 29 | Q
|
---|
| 30 | ;
|
---|
| 31 | MAKELIST ;
|
---|
| 32 | N PXCEDATE,PXCELOC,PXCESTAT,PXCEDT,PXCEIEN,PXCEVSIT,PXCEPRIM
|
---|
| 33 | D CHGCAP^VALM("LOCATION","Clinic")
|
---|
| 34 | K VALMHDR S VALMBCK="R"
|
---|
| 35 | S PXCEDT=PXCE9END
|
---|
| 36 | D CLEAN^VALM10
|
---|
| 37 | K ^TMP("PXCEIDX",$J)
|
---|
| 38 | S VALMBG=1
|
---|
| 39 | S VALMCNT=0
|
---|
| 40 | F S PXCEDT=$O(^AUPNVSIT("AA",PXCEPAT,PXCEDT)) Q:PXCEDT'>0!(PXCEDT>PXCE9BEG) D
|
---|
| 41 | . S PXCEIEN=""
|
---|
| 42 | . F S PXCEIEN=$O(^AUPNVSIT("AA",PXCEPAT,PXCEDT,PXCEIEN)) Q:PXCEIEN'>0 D
|
---|
| 43 | .. S PXCEVSIT=^AUPNVSIT(PXCEIEN,0)
|
---|
| 44 | .. I $D(PXCEHLOC),$P(PXCEVSIT,"^",22)'=PXCEHLOC Q
|
---|
| 45 | .. S PXCEPRIM=$P($G(^AUPNVSIT(PXCEIEN,150)),"^",3)
|
---|
| 46 | .. ;+do not show encounter if the encounter type is S,C or null
|
---|
| 47 | .. Q:"SC"[PXCEPRIM
|
---|
| 48 | .. I PXCEKEYS'["S",PXCEKEYS'["V","A"=PXCEPRIM Q ;+let supervisor and viewer see ancillary encounters
|
---|
| 49 | .. I PXCEKEYS'["V",$$DISPOSIT^PXUTL1(PXCEPAT,+PXCEVSIT,PXCEIEN) Q ;+let viewer see disposition
|
---|
| 50 | .. S VALMCNT=VALMCNT+1
|
---|
| 51 | .. S Y=$P(PXCEVSIT,"^",1)
|
---|
| 52 | .. S PXCEDATE=$$DATE^PXCEDATE($P(PXCEVSIT,"^",1))
|
---|
| 53 | .. S PXCEDATE=$E(PXCEDATE,1,18)_$J("",(19-$L(PXCEDATE)))
|
---|
| 54 | .. I $P(PXCEVSIT,"^",7)="E" D
|
---|
| 55 | ... S PXCELOC=" Historical Encounter at "
|
---|
| 56 | ... I $P(PXCEVSIT,"^",6)]"" D
|
---|
| 57 | .... N PXCEDELF
|
---|
| 58 | .... S PXCESTAT=$E($$EXTERNAL^DILFD(9000010,.06,"",$P(PXCEVSIT,"^",6),"PXCEDILF"),1,30)
|
---|
| 59 | ... E S PXCESTAT=$E($P($G(^AUPNVSIT(PXCEIEN,21)),"^"),1,30)
|
---|
| 60 | .. E D
|
---|
| 61 | ... S PXCELOC=$S($P(PXCEVSIT,"^",22)>0:$P(^SC($P(PXCEVSIT,"^",22),0),"^"),$P(PXCEVSIT,"^",7)="E":" Historical",1:"")
|
---|
| 62 | ... S PXCELOC=$E(PXCELOC,1,26)_$J("",(28-$L(PXCELOC)))
|
---|
| 63 | ... S PXCESTAT=$P($$STATUS^SDPCE(PXCEIEN),"^",2)
|
---|
| 64 | .. S ^TMP("PXCE",$J,VALMCNT,0)=$J(VALMCNT,4)_" "_PXCEDATE_PXCELOC_PXCESTAT
|
---|
| 65 | .. S ^TMP("PXCEIDX",$J,VALMCNT)=PXCEIEN
|
---|
| 66 | S ^TMP("PXCEIDX",$J,0)=VALMCNT
|
---|
| 67 | I VALMCNT'>0 D
|
---|
| 68 | . S ^TMP("PXCE",$J,1,0)=" "
|
---|
| 69 | . S ^TMP("PXCE",$J,2,0)=" No encounter found that satisfy the above criteria."
|
---|
| 70 | . S VALMCNT=2
|
---|
| 71 | Q
|
---|
| 72 | ;
|
---|
| 73 | SDSALONE ;Get the patient for standalone from the appointment/hospital
|
---|
| 74 | ;location screen
|
---|
| 75 | Q:$G(PXCEPAT)>0
|
---|
| 76 | D PATIENT(.PXCEPAT)
|
---|
| 77 | I PXCEPAT>0 D PATINFO(.PXCEPAT) S PXCEJPAT=1
|
---|
| 78 | Q
|
---|
| 79 | ;
|
---|
| 80 | SDKALONE ;Kill the patient info if it was created above
|
---|
| 81 | Q:'$D(PXCEJPAT)
|
---|
| 82 | D PATKILL
|
---|
| 83 | K PXCEJPAT
|
---|
| 84 | Q
|
---|
| 85 | ;
|
---|
| 86 | JUSTDFN ;Just set DFN for other packages.
|
---|
| 87 | Q
|
---|
| 88 | Q:$G(DFN)>0
|
---|
| 89 | N X,Y,DIC,DA
|
---|
| 90 | S DIC=2,DIC(0)="AEMQ"
|
---|
| 91 | D ^DIC
|
---|
| 92 | I +Y>0 S DFN=+Y,PXCEJDFN=1
|
---|
| 93 | Q
|
---|
| 94 | ;
|
---|
| 95 | JUSTDFNK ;Kill DFN if it was set above
|
---|
| 96 | I $G(PXCEJDFN) K DFN,PXCEJDFN
|
---|
| 97 | I $G(PXCEPAT)>0 S DFN=PXCEPAT
|
---|
| 98 | Q
|
---|
| 99 | ;
|
---|
| 100 | PATIENT(PXCEDATA) ; Select a patient
|
---|
| 101 | N X,Y,DIC,DA,DFN
|
---|
| 102 | D FULL^VALM1
|
---|
| 103 | S DIC=2,DIC(0)="AEMQ" D ^DIC
|
---|
| 104 | S PXCEDATA=+Y
|
---|
| 105 | PAT1 S %=1 I Y>0 W !," ...OK" D YN^DICN I %=0 W " Answer With 'Yes' or 'No'" G PAT1
|
---|
| 106 | I %'=1!$D(DIRUT) S (Y,PXCEDATA)=-1
|
---|
| 107 | I +Y'>0 D Q
|
---|
| 108 | . I $G(DFN)'>0 S VALMSG=$C(7)_"Patient has not been selected." W !!,$G(VALMSG) H 1
|
---|
| 109 | I +Y>0 S DFN=+Y D 2^VADPT I +VADM(6) N DIR D I $D(DIRUT) S PXCEDATA=-1
|
---|
| 110 | . S DIR(0)="E",DIR("A")="Enter RETURN to continue or '^' to exit"
|
---|
| 111 | . S DIR("A",1)="WARNING "_VADM(7) D ^DIR
|
---|
| 112 | Q
|
---|
| 113 | ;
|
---|
| 114 | PATINFO(PXCEDATA) ;
|
---|
| 115 | Q:$G(PXCEDATA)'>0
|
---|
| 116 | S (DFN,SDFN,ORVP)=PXCEDATA
|
---|
| 117 | D:$G(PXCECAT)="SIT"!($G(PXCECAT)="HIST")!($G(PXCECAT)="AEP")!$G(FSEL) DTHINFO
|
---|
| 118 | I $D(DIRUT),$G(FSEL) D PATKILL Q
|
---|
| 119 | ;D 2^VADPT I +VADM(6) D K DIR I $D(DIRUT) D:$G(PXCECAT)'="SIT"&($G(PXCECAT)'="HIST")&($G(PXCECAT)'="AEP") PATKILL Q
|
---|
| 120 | ;. S DIR(0)="E",DIR("A")="Enter RETURN to continue or '^' to Quit"
|
---|
| 121 | ;. S DIR("A",2)="WARNING "_VADM(7),DIR("A",1)=" ",DIR("A",3)=" " D ^DIR
|
---|
| 122 | N Y
|
---|
| 123 | S Y=PXCEDATA
|
---|
| 124 | ;Set IHS patient variables
|
---|
| 125 | D START^AUPNPAT
|
---|
| 126 | D PATNAME(.PXCEDATA)
|
---|
| 127 | N VAERR,VAROOT,PXCEVA,PXCEINDX
|
---|
| 128 | S VAROOT="PXCEVA"
|
---|
| 129 | D ELIG^VADPT
|
---|
| 130 | S PXCEDATA("ELIG")=$P($G(PXCEVA(1)),"^",1,99)
|
---|
| 131 | S PXCEINDX=""
|
---|
| 132 | F S PXCEINDX=$O(PXCEVA(1,PXCEINDX)) Q:'PXCEINDX S PXCEDATA("ELIG",PXCEINDX)=$P(PXCEVA(1,PXCEINDX),"^",1,99)
|
---|
| 133 | Q
|
---|
| 134 | ;
|
---|
| 135 | DTHINFO ;DEATH WARNING
|
---|
| 136 | D 2^VADPT N DIR I +VADM(6) D
|
---|
| 137 | . S DIR(0)="E",DIR("A")="Enter RETURN to continue or '^' to Quit"
|
---|
| 138 | . S DIR("A",2)="WARNING "_VADM(7),DIR("A",1)=" ",DIR("A",3)=" " D ^DIR
|
---|
| 139 | Q
|
---|
| 140 | PATNAME(PXCEDATA) ;
|
---|
| 141 | S PXCEDATA("NAME")=$P($G(^DPT(+PXCEDATA,0)),"^",1)
|
---|
| 142 | N VAPTYP,VA,VAERR,DFN
|
---|
| 143 | S DFN=+PXCEDATA
|
---|
| 144 | D PID^VADPT6
|
---|
| 145 | I 'VAERR S PXCEDATA("SSN")=VA("PID"),PXCEDATA("SSN_BRIEF")=VA("BID")
|
---|
| 146 | E S (PXCEDATA("SSN"),PXCEDATA("SSN_BRIEF"))=""
|
---|
| 147 | Q
|
---|
| 148 | ;
|
---|
| 149 | PATKILL ;
|
---|
| 150 | K PXCEPAT,DFN,SDFN,ORVP,VADM,VAEL,VALMSG
|
---|
| 151 | ; Kill IHS patient variables
|
---|
| 152 | D KILL^AUPNPAT
|
---|
| 153 | Q
|
---|
| 154 | ;
|
---|
| 155 | APPOINT(DFN,DATETIME,HOSLOC) ;See if there is an appointment.
|
---|
| 156 | ;Input:
|
---|
| 157 | ; DFN ien of the patient
|
---|
| 158 | ; DATETIME the date and time of the appointment
|
---|
| 159 | ; HOSLOC optional, is the Hospital Location (#44)
|
---|
| 160 | ;Returns the clinic ien or -1 if no appointement.
|
---|
| 161 | ;
|
---|
| 162 | N VASD,HL,INDEX,VAERR
|
---|
| 163 | K ^UTILITY("VASD",$J)
|
---|
| 164 | S VASD("T")=DATETIME
|
---|
| 165 | S VASD("F")=DATETIME-.00000001
|
---|
| 166 | S VASD("W")=129 ;1)Active/Kept 2)Inpatient appts. only 9)No action taken
|
---|
| 167 | S:$G(HOSLOC) VASD("C",HOSLOC)=""
|
---|
| 168 | D SDA^VADPT
|
---|
| 169 | I VAERR S HL=-1 G QAPPOINT
|
---|
| 170 | S INDEX=$O(^UTILITY("VASD",$J,0))
|
---|
| 171 | I INDEX>0 S HL=$P(^UTILITY("VASD",$J,INDEX,"I"),"^",2)
|
---|
| 172 | E S HL=-1
|
---|
| 173 | QAPPOINT K ^UTILITY("VASD",$J)
|
---|
| 174 | Q HL
|
---|
| 175 | ;
|
---|