PXRMVSIT ;SLC/PKR - Visit related info for reminders. ;08/20/2020
;;2.0;CLINICAL REMINDERS;**4,6,18,24,42**;Feb 04, 2005;Build 245
;
;===============
GETDATA(DA,DATA,SVALUE) ;Return data for a specific Visit file entry.
;DBIA #2028 for Visit file.
N DONE,IEN,HLOCIEN,HTEMP,LOE,TEMP
S TEMP=^AUPNVSIT(DA,0)
S DATA("VISIT")=DA
S DATA("DATE VISIT CREATED")=$P(TEMP,U,2)
S DATA("DFN")=$P(TEMP,U,5)
S (DATA("LOC. OF ENCOUNTER"),LOE)=$P(TEMP,U,6)
S DATA("VISIT ID")=$P(^AUPNVSIT(DA,150),U,1)
;DBIA #10090
S DATA("STATION NUMBER")=$$GET1^DIQ(4,LOE,99)
S DATA("OFFICAL VA NAME")=$$GET1^DIQ(4,LOE,100)
S DATA("SERVICE CATEGORY")=$P(TEMP,U,7)
I $G(SVALUE) S DATA("VALUE")=$P(TEMP,U,7)
S (DATA("HOSPITAL LOCATION"),HLOCIEN)=$P(TEMP,U,22)
;DBIA #10040, #2804
S HTEMP=$S(HLOCIEN="":"",1:^SC(HLOCIEN,0))
S DATA("HLOC")=$P(HTEMP,U,1)
S DATA("DSS ID")=$P(TEMP,U,8)
I DATA("DSS ID")="" S DATA("DSS ID")=$P(HTEMP,U,7)
S DATA("DIVISION IEN")=$P(HTEMP,U,15)
I HLOCIEN'="" S DATA("DIVISION")=$$GET1^DIQ(44,HLOCIEN,3.5)
;DBIA #557
I DATA("DSS ID")'="" S DATA("STOP CODE")=$P(^DIC(40.7,DATA("DSS ID"),0),U,2)
S DATA("OUTSIDE LOCATION")=$G(^AUPNVSIT(DA,21))
S DATA("VISIT COMMENTS")=$G(^AUPNVSIT(DA,811))
;DBIA #4850
S DATA("STATUS")=$$STATUS^SDPCE(DA)
;Get the primary provider.
;DBIA #3455 for V PROVIDER
S DATA("PRIMARY PROVIDER")="",IEN="",DONE=0
F S IEN=$O(^AUPNVPRV("AD",DA,IEN)) Q:(DONE)!(IEN="") D
. S TEMP=^AUPNVPRV(IEN,0)
. I $P(TEMP,U,4)="P" S DATA("PRIMARY PROVIDER")=$P(TEMP,U,1),DONE=1
Q
;
;===============
GAPSTAT(VIEN) ;Return the status of the appointment associated with the
;visit.
;DBIA #4850
Q $$STATUS^SDPCE(VIEN)
;
;===============
HENC(VIEN,INDENT,NLINES,TEXT) ;Display location and comment for historical
;encounters associated with the V files.
N COMMENT,HLOC,LOCATION,OLOC,NIN,TEXTIN,VDATA
D GETDATA(VIEN,.VDATA) I VDATA("SERVICE CATEGORY")'="E" Q
S NIN=0
S LOCATION=VDATA("LOC. OF ENCOUNTER")
I LOCATION'="" D
. S LOCATION=$$GET1^DIQ(4,LOCATION,.01)_" "_$$GET1^DIQ(4,LOCATION,99)
. S NIN=NIN+1,TEXTIN(NIN)="Location of Encounter: "_LOCATION_"\\"
S HLOC=VDATA("HOSPITAL LOCATION")
I HLOC'="" D
. S HLOC=$$GET1^DIQ(44,HLOC,.01)
. S NIN=NIN+1,TEXTIN(NIN)="Hospital Location: "_HLOC_"\\"
S OLOC=VDATA("OUTSIDE LOCATION")
I OLOC'="" D
. S NIN=NIN+1,TEXTIN(NIN)="Outside Location: "_OLOC_"\\"
S COMMENT=VDATA("COMMENT")
I COMMENT'="" D
. S NIN=NIN+1,TEXTIN(NIN)="Comment: "_COMMENT
I NIN>0 D
. N JND,NOUT,TEXTOUT
. S NLINES=NLINES+1
. S TEXT(NLINES)=$$INSCHR^PXRMEXLC(INDENT," ")_"Historical Encounter Information:"
. D FORMAT^PXRMTEXT(INDENT+2,PXRMRM,NIN,.TEXTIN,.NOUT,.TEXTOUT)
. F JND=1:1:NOUT S NLINES=NLINES+1,TEXT(NLINES)=TEXTOUT(JND)
Q
;
;===============
ISHIST(VIEN) ;Return true if the encounter was historical.
;DBIA #2028
I $P($G(^AUPNVSIT(VIEN,0)),U,7)="E" Q 1
Q 0
;
;===============
VAPSTAT(VIEN) ;Return true if the appointment associated with
;the visit has a valid appointment status.
;Return false if the status is one of the following:
;CANCELLED BY CLINIC
;CANCELLED BY CLINIC & AUTO RE-BOOK
;CANCELLED BY PATIENT
;CANCELLED BY PATIENT & AUTO-REBOOK
;DELETED
;NO ACTION TAKEN
;NO-SHOW
;NO-SHOW & AUTO RE-BOOK
;NULL
N STATUS,VALID
;DBIA #4850
S STATUS=$P($$STATUS^SDPCE(VIEN),U,2)
S VALID=$S(STATUS["CANCELLED":0,STATUS["DELETED":0,STATUS["NO ACTION":0,STATUS["NO-SHOW":0,STATUS="":0,1:1)
Q VALID
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPXRMVSIT 3508 printed Dec 13, 2024@01:50:01 Page 2
PXRMVSIT ;SLC/PKR - Visit related info for reminders. ;08/20/2020
+1 ;;2.0;CLINICAL REMINDERS;**4,6,18,24,42**;Feb 04, 2005;Build 245
+2 ;
+3 ;===============
GETDATA(DA,DATA,SVALUE) ;Return data for a specific Visit file entry.
+1 ;DBIA #2028 for Visit file.
+2 NEW DONE,IEN,HLOCIEN,HTEMP,LOE,TEMP
+3 SET TEMP=^AUPNVSIT(DA,0)
+4 SET DATA("VISIT")=DA
+5 SET DATA("DATE VISIT CREATED")=$PIECE(TEMP,U,2)
+6 SET DATA("DFN")=$PIECE(TEMP,U,5)
+7 SET (DATA("LOC. OF ENCOUNTER"),LOE)=$PIECE(TEMP,U,6)
+8 SET DATA("VISIT ID")=$PIECE(^AUPNVSIT(DA,150),U,1)
+9 ;DBIA #10090
+10 SET DATA("STATION NUMBER")=$$GET1^DIQ(4,LOE,99)
+11 SET DATA("OFFICAL VA NAME")=$$GET1^DIQ(4,LOE,100)
+12 SET DATA("SERVICE CATEGORY")=$PIECE(TEMP,U,7)
+13 IF $GET(SVALUE)
SET DATA("VALUE")=$PIECE(TEMP,U,7)
+14 SET (DATA("HOSPITAL LOCATION"),HLOCIEN)=$PIECE(TEMP,U,22)
+15 ;DBIA #10040, #2804
+16 SET HTEMP=$SELECT(HLOCIEN="":"",1:^SC(HLOCIEN,0))
+17 SET DATA("HLOC")=$PIECE(HTEMP,U,1)
+18 SET DATA("DSS ID")=$PIECE(TEMP,U,8)
+19 IF DATA("DSS ID")=""
SET DATA("DSS ID")=$PIECE(HTEMP,U,7)
+20 SET DATA("DIVISION IEN")=$PIECE(HTEMP,U,15)
+21 IF HLOCIEN'=""
SET DATA("DIVISION")=$$GET1^DIQ(44,HLOCIEN,3.5)
+22 ;DBIA #557
+23 IF DATA("DSS ID")'=""
SET DATA("STOP CODE")=$PIECE(^DIC(40.7,DATA("DSS ID"),0),U,2)
+24 SET DATA("OUTSIDE LOCATION")=$GET(^AUPNVSIT(DA,21))
+25 SET DATA("VISIT COMMENTS")=$GET(^AUPNVSIT(DA,811))
+26 ;DBIA #4850
+27 SET DATA("STATUS")=$$STATUS^SDPCE(DA)
+28 ;Get the primary provider.
+29 ;DBIA #3455 for V PROVIDER
+30 SET DATA("PRIMARY PROVIDER")=""
SET IEN=""
SET DONE=0
+31 FOR
SET IEN=$ORDER(^AUPNVPRV("AD",DA,IEN))
if (DONE)!(IEN="")
QUIT
Begin DoDot:1
+32 SET TEMP=^AUPNVPRV(IEN,0)
+33 IF $PIECE(TEMP,U,4)="P"
SET DATA("PRIMARY PROVIDER")=$PIECE(TEMP,U,1)
SET DONE=1
End DoDot:1
+34 QUIT
+35 ;
+36 ;===============
GAPSTAT(VIEN) ;Return the status of the appointment associated with the
+1 ;visit.
+2 ;DBIA #4850
+3 QUIT $$STATUS^SDPCE(VIEN)
+4 ;
+5 ;===============
HENC(VIEN,INDENT,NLINES,TEXT) ;Display location and comment for historical
+1 ;encounters associated with the V files.
+2 NEW COMMENT,HLOC,LOCATION,OLOC,NIN,TEXTIN,VDATA
+3 DO GETDATA(VIEN,.VDATA)
IF VDATA("SERVICE CATEGORY")'="E"
QUIT
+4 SET NIN=0
+5 SET LOCATION=VDATA("LOC. OF ENCOUNTER")
+6 IF LOCATION'=""
Begin DoDot:1
+7 SET LOCATION=$$GET1^DIQ(4,LOCATION,.01)_" "_$$GET1^DIQ(4,LOCATION,99)
+8 SET NIN=NIN+1
SET TEXTIN(NIN)="Location of Encounter: "_LOCATION_"\\"
End DoDot:1
+9 SET HLOC=VDATA("HOSPITAL LOCATION")
+10 IF HLOC'=""
Begin DoDot:1
+11 SET HLOC=$$GET1^DIQ(44,HLOC,.01)
+12 SET NIN=NIN+1
SET TEXTIN(NIN)="Hospital Location: "_HLOC_"\\"
End DoDot:1
+13 SET OLOC=VDATA("OUTSIDE LOCATION")
+14 IF OLOC'=""
Begin DoDot:1
+15 SET NIN=NIN+1
SET TEXTIN(NIN)="Outside Location: "_OLOC_"\\"
End DoDot:1
+16 SET COMMENT=VDATA("COMMENT")
+17 IF COMMENT'=""
Begin DoDot:1
+18 SET NIN=NIN+1
SET TEXTIN(NIN)="Comment: "_COMMENT
End DoDot:1
+19 IF NIN>0
Begin DoDot:1
+20 NEW JND,NOUT,TEXTOUT
+21 SET NLINES=NLINES+1
+22 SET TEXT(NLINES)=$$INSCHR^PXRMEXLC(INDENT," ")_"Historical Encounter Information:"
+23 DO FORMAT^PXRMTEXT(INDENT+2,PXRMRM,NIN,.TEXTIN,.NOUT,.TEXTOUT)
+24 FOR JND=1:1:NOUT
SET NLINES=NLINES+1
SET TEXT(NLINES)=TEXTOUT(JND)
End DoDot:1
+25 QUIT
+26 ;
+27 ;===============
ISHIST(VIEN) ;Return true if the encounter was historical.
+1 ;DBIA #2028
+2 IF $PIECE($GET(^AUPNVSIT(VIEN,0)),U,7)="E"
QUIT 1
+3 QUIT 0
+4 ;
+5 ;===============
VAPSTAT(VIEN) ;Return true if the appointment associated with
+1 ;the visit has a valid appointment status.
+2 ;Return false if the status is one of the following:
+3 ;CANCELLED BY CLINIC
+4 ;CANCELLED BY CLINIC & AUTO RE-BOOK
+5 ;CANCELLED BY PATIENT
+6 ;CANCELLED BY PATIENT & AUTO-REBOOK
+7 ;DELETED
+8 ;NO ACTION TAKEN
+9 ;NO-SHOW
+10 ;NO-SHOW & AUTO RE-BOOK
+11 ;NULL
+12 NEW STATUS,VALID
+13 ;DBIA #4850
+14 SET STATUS=$PIECE($$STATUS^SDPCE(VIEN),U,2)
+15 SET VALID=$SELECT(STATUS["CANCELLED":0,STATUS["DELETED":0,STATUS["NO ACTION":0,STATUS["NO-SHOW":0,STATUS="":0,1:1)
+16 QUIT VALID
+17 ;