- PXKVST ;ISL/ARS - SET UP VISIT FIELDS BEFORE CALLING OFF TO VSIT ;08/20/2023
- ;;1.0;PCE PATIENT CARE ENCOUNTER;**56,111,130,164,168,211,238**;Aug 12, 1996;Build 3
- VSIT ;ENTRY POINT
- ;COMMON SECTION
- N PXKAFTR,PXKAFT8,PXKAFT15,PXKAFT21,PXKAF811,PXKAF812,PXVSTIEN
- N VSIT,VSITPKG
- S PXKAFTR=$S($G(^TMP("PXK",$J,"VST",1,0,"AFTER"))]"":^TMP("PXK",$J,"VST",1,0,"AFTER"),1:"")
- Q:PXKAFTR=""
- S PXKAFT21=$S($G(^TMP("PXK",$J,"VST",1,21,"AFTER"))]"":^TMP("PXK",$J,"VST",1,21,"AFTER"),1:"")
- S PXKAFT15=$S($G(^TMP("PXK",$J,"VST",1,150,"AFTER"))]"":^TMP("PXK",$J,"VST",1,150,"AFTER"),1:"")
- S PXKAFT8=$S($G(^TMP("PXK",$J,"VST",1,800,"AFTER"))]"":^TMP("PXK",$J,"VST",1,800,"AFTER"),1:"")
- S PXKAF811=$S($G(^TMP("PXK",$J,"VST",1,811,"AFTER"))]"":^TMP("PXK",$J,"VST",1,811,"AFTER"),1:"")
- S PXKAF812=$S($G(^TMP("PXK",$J,"VST",1,812,"AFTER"))]"":^TMP("PXK",$J,"VST",1,812,"AFTER"),1:"")
- S VSIT("IEN")=$S(^TMP("PXK",$J,"VST",1,"IEN")]"":^TMP("PXK",$J,"VST",1,"IEN"),1:"")
- I VSIT("IEN")="" S PXKAFTR=$TR(PXKAFTR,"@"),PXKAFT8=$TR(PXKAFT8,"@")
- S VSIT("VDT")=$S($P(PXKAFTR,"^",1)]"":$P(PXKAFTR,"^",1),1:"NOW")
- S VSIT("TYP")=$P(PXKAFTR,"^",3)
- S VSIT("INS")=$P(PXKAFTR,"^",6)
- S VSIT("OUT")=$P(PXKAFT21,"^")
- S VSIT("PAT")=$P(PXKAFTR,"^",5)
- S VSIT("SVC")=$P(PXKAFTR,"^",7)
- S VSIT("DSS")=$P(PXKAFTR,"^",8)
- S VSIT("LNK")=$P(PXKAFTR,"^",12)
- S VSIT("WIA")=$P(PXKAFTR,"^",16)
- S VSIT("LOS")=$P(PXKAFTR,"^",17)
- S VSIT("COD")=$P(PXKAFTR,"^",18)
- S:$P(PXKAFTR,"^",21)]"" VSIT("ELG")=$P(PXKAFTR,"^",21)
- S VSIT("LOC")=$P(PXKAFTR,"^",22)
- S VSIT("USR")=$P(PXKAFTR,"^",23)
- S VSIT("ACT")=$P(PXKAFTR,"^",26) ;PX*1.0*164
- S:$P(PXKAFT8,"^",1)]"" VSIT("SC")=$P(PXKAFT8,"^",1)
- S:$P(PXKAFT8,"^",2)]"" VSIT("AO")=$P(PXKAFT8,"^",2)
- S:$P(PXKAFT8,"^",3)]"" VSIT("IR")=$P(PXKAFT8,"^",3)
- S:$P(PXKAFT8,"^",4)]"" VSIT("EC")=$P(PXKAFT8,"^",4)
- S:$P(PXKAFT8,"^",5)]"" VSIT("MST")=$P(PXKAFT8,"^",5) ;added 6/17/98 for MST enhancement
- ;PX*1*111 - added for HNC enhancement
- S:$P(PXKAFT8,"^",6)]"" VSIT("HNC")=$P(PXKAFT8,"^",6)
- S:$P(PXKAFT8,"^",7)]"" VSIT("CV")=$P(PXKAFT8,"^",7)
- S:$P(PXKAFT8,"^",8)]"" VSIT("SHAD")=$P(PXKAFT8,"^",8)
- S:$P(PXKAFT15,"^",1)]"" VSIT("SVP")=$P(PXKAFT15,"^",1)
- S:$P(PXKAFT15,"^",2)]"" VSIT("IO")=$P(PXKAFT15,"^",2)
- S:$P(PXKAFT15,"^",3)]"" VSIT("PRI")=$P(PXKAFT15,"^",3)
- S:$P(PXKAF812,"^",2)]"" VSIT("PKG")=$P(PXKAF812,"^",2)
- S:$P(PXKAF812,"^",3)]"" VSIT("SOR")=$P(PXKAF812,"^",3)
- S:PXKAF811]"" VSIT("COM")=PXKAF811
- S VSITPKG=$G(VSIT("PKG"))
- I $G(VSIT("PRI"))="",VSIT("SVC")="E"!($P($G(^SC(+VSIT("LOC"),0)),"^",7)=VSIT("DSS")) S VSIT("PRI")="P"
- ;If ^TMP("PXK",$J,"VISITCREATE")="F" then in CALL^PXAIVST, FINDVISIT^PXUTLVST could not find an existing visit so
- ;force the creation of a new one.
- I $G(^TMP("PXK",$J,"VISITCREATE"))="F" S VSIT(0)=$S(VSIT("SVC")="E":"F",1:"EF")
- I '$D(VSIT(0)) S VSIT(0)=$S(VSIT("SVC")="E":"D0NM",1:"D0NEM")
- ;
- ;CALL FOR VSIT
- D ^VSIT
- I '$D(VSIT("IEN"))#2 Q
- S PXVSTIEN=$P(VSIT("IEN"),"^",1)
- S ^TMP("PXK",$J,"VST",1,"IEN")=PXVSTIEN
- I PXVSTIEN<1 Q
- D VIEN(PXVSTIEN)
- I $P(VSIT("IEN"),"^",3)'=1 D
- .S ^TMP("PXK",$J,"VST",1,0,"BEFORE")=^AUPNVSIT(PXVSTIEN,0)
- .S ^TMP("PXK",$J,"VST",1,21,"BEFORE")=$G(^AUPNVSIT(PXVSTIEN,21))
- .S ^TMP("PXK",$J,"VST",1,150,"BEFORE")=$G(^AUPNVSIT(PXVSTIEN,150))
- .S ^TMP("PXK",$J,"VST",1,800,"BEFORE")=$G(^AUPNVSIT(PXVSTIEN,800))
- .S ^TMP("PXK",$J,"VST",1,811,"BEFORE")=$G(^AUPNVSIT(PXVSTIEN,811))
- .S ^TMP("PXK",$J,"VST",1,812,"BEFORE")=$G(^AUPNVSIT(PXVSTIEN,812))
- .S $P(^TMP("PXK",$J,"VST",1,0,"AFTER"),"^",3)=$P(^AUPNVSIT(PXVSTIEN,0),"^",3)
- .S $P(^TMP("PXK",$J,"VST",1,0,"AFTER"),"^",7)=$P(^AUPNVSIT(PXVSTIEN,0),"^",7)
- I $P(VSIT("IEN"),"^",3)=1 D
- .S ^TMP("PXK",$J,"VST",1,0,"AFTER")=^AUPNVSIT(PXVSTIEN,0)
- .S ^TMP("PXK",$J,"VST",1,21,"AFTER")=$G(^AUPNVSIT(PXVSTIEN,21))
- .S ^TMP("PXK",$J,"VST",1,150,"AFTER")=$G(^AUPNVSIT(PXVSTIEN,150))
- .S ^TMP("PXK",$J,"VST",1,800,"AFTER")=$G(^AUPNVSIT(PXVSTIEN,800))
- .S ^TMP("PXK",$J,"VST",1,811,"AFTER")=$G(^AUPNVSIT(PXVSTIEN,811))
- .S ^TMP("PXK",$J,"VST",1,812,"AFTER")=$G(^AUPNVSIT(PXVSTIEN,812))
- .S ^TMP("PXK",$J,"VST",1,0,"BEFORE")=""
- .S ^TMP("PXK",$J,"VST",1,21,"BEFORE")=""
- .S ^TMP("PXK",$J,"VST",1,150,"BEFORE")=""
- .S ^TMP("PXK",$J,"VST",1,800,"BEFORE")=""
- .S ^TMP("PXK",$J,"VST",1,811,"BEFORE")=""
- .S ^TMP("PXK",$J,"VST",1,812,"BEFORE")=""
- .I $D(PXELAP)#2 D
- ..S ^TMP("PXKCO",$J,PXVSTIEN,"VST",PXVSTIEN,"ELAP","BEFORE")=""
- ..S ^TMP("PXKCO",$J,PXVSTIEN,"VST",PXVSTIEN,"ELAP","AFTER")=PXELAP
- K VSIT
- Q
- ;
- VIEN(VIEN) ;Put the Visit IEN in the AFTERs for all of the V-Files
- N PXCAINX1,PXCAINX2
- S PXCAINX1=""
- F S PXCAINX1=$O(^TMP("PXK",$J,PXCAINX1)) Q:PXCAINX1']"" D:"^VST^SOR^"'[PXCAINX1
- . S PXCAINX2=""
- . F S PXCAINX2=$O(^TMP("PXK",$J,PXCAINX1,PXCAINX2)) Q:PXCAINX2']"" D
- .. I $D(^TMP("PXK",$J,PXCAINX1,PXCAINX2,0,"AFTER"))=1 S $P(^TMP("PXK",$J,PXCAINX1,PXCAINX2,0,"AFTER"),"^",3)=VIEN
- Q
- ;
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPXKVST 4920 printed Feb 18, 2025@23:55:50 Page 2
- PXKVST ;ISL/ARS - SET UP VISIT FIELDS BEFORE CALLING OFF TO VSIT ;08/20/2023
- +1 ;;1.0;PCE PATIENT CARE ENCOUNTER;**56,111,130,164,168,211,238**;Aug 12, 1996;Build 3
- VSIT ;ENTRY POINT
- +1 ;COMMON SECTION
- +2 NEW PXKAFTR,PXKAFT8,PXKAFT15,PXKAFT21,PXKAF811,PXKAF812,PXVSTIEN
- +3 NEW VSIT,VSITPKG
- +4 SET PXKAFTR=$SELECT($GET(^TMP("PXK",$JOB,"VST",1,0,"AFTER"))]"":^TMP("PXK",$JOB,"VST",1,0,"AFTER"),1:"")
- +5 if PXKAFTR=""
- QUIT
- +6 SET PXKAFT21=$SELECT($GET(^TMP("PXK",$JOB,"VST",1,21,"AFTER"))]"":^TMP("PXK",$JOB,"VST",1,21,"AFTER"),1:"")
- +7 SET PXKAFT15=$SELECT($GET(^TMP("PXK",$JOB,"VST",1,150,"AFTER"))]"":^TMP("PXK",$JOB,"VST",1,150,"AFTER"),1:"")
- +8 SET PXKAFT8=$SELECT($GET(^TMP("PXK",$JOB,"VST",1,800,"AFTER"))]"":^TMP("PXK",$JOB,"VST",1,800,"AFTER"),1:"")
- +9 SET PXKAF811=$SELECT($GET(^TMP("PXK",$JOB,"VST",1,811,"AFTER"))]"":^TMP("PXK",$JOB,"VST",1,811,"AFTER"),1:"")
- +10 SET PXKAF812=$SELECT($GET(^TMP("PXK",$JOB,"VST",1,812,"AFTER"))]"":^TMP("PXK",$JOB,"VST",1,812,"AFTER"),1:"")
- +11 SET VSIT("IEN")=$SELECT(^TMP("PXK",$JOB,"VST",1,"IEN")]"":^TMP("PXK",$JOB,"VST",1,"IEN"),1:"")
- +12 IF VSIT("IEN")=""
- SET PXKAFTR=$TRANSLATE(PXKAFTR,"@")
- SET PXKAFT8=$TRANSLATE(PXKAFT8,"@")
- +13 SET VSIT("VDT")=$SELECT($PIECE(PXKAFTR,"^",1)]"":$PIECE(PXKAFTR,"^",1),1:"NOW")
- +14 SET VSIT("TYP")=$PIECE(PXKAFTR,"^",3)
- +15 SET VSIT("INS")=$PIECE(PXKAFTR,"^",6)
- +16 SET VSIT("OUT")=$PIECE(PXKAFT21,"^")
- +17 SET VSIT("PAT")=$PIECE(PXKAFTR,"^",5)
- +18 SET VSIT("SVC")=$PIECE(PXKAFTR,"^",7)
- +19 SET VSIT("DSS")=$PIECE(PXKAFTR,"^",8)
- +20 SET VSIT("LNK")=$PIECE(PXKAFTR,"^",12)
- +21 SET VSIT("WIA")=$PIECE(PXKAFTR,"^",16)
- +22 SET VSIT("LOS")=$PIECE(PXKAFTR,"^",17)
- +23 SET VSIT("COD")=$PIECE(PXKAFTR,"^",18)
- +24 if $PIECE(PXKAFTR,"^",21)]""
- SET VSIT("ELG")=$PIECE(PXKAFTR,"^",21)
- +25 SET VSIT("LOC")=$PIECE(PXKAFTR,"^",22)
- +26 SET VSIT("USR")=$PIECE(PXKAFTR,"^",23)
- +27 ;PX*1.0*164
- SET VSIT("ACT")=$PIECE(PXKAFTR,"^",26)
- +28 if $PIECE(PXKAFT8,"^",1)]""
- SET VSIT("SC")=$PIECE(PXKAFT8,"^",1)
- +29 if $PIECE(PXKAFT8,"^",2)]""
- SET VSIT("AO")=$PIECE(PXKAFT8,"^",2)
- +30 if $PIECE(PXKAFT8,"^",3)]""
- SET VSIT("IR")=$PIECE(PXKAFT8,"^",3)
- +31 if $PIECE(PXKAFT8,"^",4)]""
- SET VSIT("EC")=$PIECE(PXKAFT8,"^",4)
- +32 ;added 6/17/98 for MST enhancement
- if $PIECE(PXKAFT8,"^",5)]""
- SET VSIT("MST")=$PIECE(PXKAFT8,"^",5)
- +33 ;PX*1*111 - added for HNC enhancement
- +34 if $PIECE(PXKAFT8,"^",6)]""
- SET VSIT("HNC")=$PIECE(PXKAFT8,"^",6)
- +35 if $PIECE(PXKAFT8,"^",7)]""
- SET VSIT("CV")=$PIECE(PXKAFT8,"^",7)
- +36 if $PIECE(PXKAFT8,"^",8)]""
- SET VSIT("SHAD")=$PIECE(PXKAFT8,"^",8)
- +37 if $PIECE(PXKAFT15,"^",1)]""
- SET VSIT("SVP")=$PIECE(PXKAFT15,"^",1)
- +38 if $PIECE(PXKAFT15,"^",2)]""
- SET VSIT("IO")=$PIECE(PXKAFT15,"^",2)
- +39 if $PIECE(PXKAFT15,"^",3)]""
- SET VSIT("PRI")=$PIECE(PXKAFT15,"^",3)
- +40 if $PIECE(PXKAF812,"^",2)]""
- SET VSIT("PKG")=$PIECE(PXKAF812,"^",2)
- +41 if $PIECE(PXKAF812,"^",3)]""
- SET VSIT("SOR")=$PIECE(PXKAF812,"^",3)
- +42 if PXKAF811]""
- SET VSIT("COM")=PXKAF811
- +43 SET VSITPKG=$GET(VSIT("PKG"))
- +44 IF $GET(VSIT("PRI"))=""
- IF VSIT("SVC")="E"!($PIECE($GET(^SC(+VSIT("LOC"),0)),"^",7)=VSIT("DSS"))
- SET VSIT("PRI")="P"
- +45 ;If ^TMP("PXK",$J,"VISITCREATE")="F" then in CALL^PXAIVST, FINDVISIT^PXUTLVST could not find an existing visit so
- +46 ;force the creation of a new one.
- +47 IF $GET(^TMP("PXK",$JOB,"VISITCREATE"))="F"
- SET VSIT(0)=$SELECT(VSIT("SVC")="E":"F",1:"EF")
- +48 IF '$DATA(VSIT(0))
- SET VSIT(0)=$SELECT(VSIT("SVC")="E":"D0NM",1:"D0NEM")
- +49 ;
- +50 ;CALL FOR VSIT
- +51 DO ^VSIT
- +52 IF '$DATA(VSIT("IEN"))#2
- QUIT
- +53 SET PXVSTIEN=$PIECE(VSIT("IEN"),"^",1)
- +54 SET ^TMP("PXK",$JOB,"VST",1,"IEN")=PXVSTIEN
- +55 IF PXVSTIEN<1
- QUIT
- +56 DO VIEN(PXVSTIEN)
- +57 IF $PIECE(VSIT("IEN"),"^",3)'=1
- Begin DoDot:1
- +58 SET ^TMP("PXK",$JOB,"VST",1,0,"BEFORE")=^AUPNVSIT(PXVSTIEN,0)
- +59 SET ^TMP("PXK",$JOB,"VST",1,21,"BEFORE")=$GET(^AUPNVSIT(PXVSTIEN,21))
- +60 SET ^TMP("PXK",$JOB,"VST",1,150,"BEFORE")=$GET(^AUPNVSIT(PXVSTIEN,150))
- +61 SET ^TMP("PXK",$JOB,"VST",1,800,"BEFORE")=$GET(^AUPNVSIT(PXVSTIEN,800))
- +62 SET ^TMP("PXK",$JOB,"VST",1,811,"BEFORE")=$GET(^AUPNVSIT(PXVSTIEN,811))
- +63 SET ^TMP("PXK",$JOB,"VST",1,812,"BEFORE")=$GET(^AUPNVSIT(PXVSTIEN,812))
- +64 SET $PIECE(^TMP("PXK",$JOB,"VST",1,0,"AFTER"),"^",3)=$PIECE(^AUPNVSIT(PXVSTIEN,0),"^",3)
- +65 SET $PIECE(^TMP("PXK",$JOB,"VST",1,0,"AFTER"),"^",7)=$PIECE(^AUPNVSIT(PXVSTIEN,0),"^",7)
- End DoDot:1
- +66 IF $PIECE(VSIT("IEN"),"^",3)=1
- Begin DoDot:1
- +67 SET ^TMP("PXK",$JOB,"VST",1,0,"AFTER")=^AUPNVSIT(PXVSTIEN,0)
- +68 SET ^TMP("PXK",$JOB,"VST",1,21,"AFTER")=$GET(^AUPNVSIT(PXVSTIEN,21))
- +69 SET ^TMP("PXK",$JOB,"VST",1,150,"AFTER")=$GET(^AUPNVSIT(PXVSTIEN,150))
- +70 SET ^TMP("PXK",$JOB,"VST",1,800,"AFTER")=$GET(^AUPNVSIT(PXVSTIEN,800))
- +71 SET ^TMP("PXK",$JOB,"VST",1,811,"AFTER")=$GET(^AUPNVSIT(PXVSTIEN,811))
- +72 SET ^TMP("PXK",$JOB,"VST",1,812,"AFTER")=$GET(^AUPNVSIT(PXVSTIEN,812))
- +73 SET ^TMP("PXK",$JOB,"VST",1,0,"BEFORE")=""
- +74 SET ^TMP("PXK",$JOB,"VST",1,21,"BEFORE")=""
- +75 SET ^TMP("PXK",$JOB,"VST",1,150,"BEFORE")=""
- +76 SET ^TMP("PXK",$JOB,"VST",1,800,"BEFORE")=""
- +77 SET ^TMP("PXK",$JOB,"VST",1,811,"BEFORE")=""
- +78 SET ^TMP("PXK",$JOB,"VST",1,812,"BEFORE")=""
- +79 IF $DATA(PXELAP)#2
- Begin DoDot:2
- +80 SET ^TMP("PXKCO",$JOB,PXVSTIEN,"VST",PXVSTIEN,"ELAP","BEFORE")=""
- +81 SET ^TMP("PXKCO",$JOB,PXVSTIEN,"VST",PXVSTIEN,"ELAP","AFTER")=PXELAP
- End DoDot:2
- End DoDot:1
- +82 KILL VSIT
- +83 QUIT
- +84 ;
- VIEN(VIEN) ;Put the Visit IEN in the AFTERs for all of the V-Files
- +1 NEW PXCAINX1,PXCAINX2
- +2 SET PXCAINX1=""
- +3 FOR
- SET PXCAINX1=$ORDER(^TMP("PXK",$JOB,PXCAINX1))
- if PXCAINX1']""
- QUIT
- if "^VST^SOR^"'[PXCAINX1
- Begin DoDot:1
- +4 SET PXCAINX2=""
- +5 FOR
- SET PXCAINX2=$ORDER(^TMP("PXK",$JOB,PXCAINX1,PXCAINX2))
- if PXCAINX2']""
- QUIT
- Begin DoDot:2
- +6 IF $DATA(^TMP("PXK",$JOB,PXCAINX1,PXCAINX2,0,"AFTER"))=1
- SET $PIECE(^TMP("PXK",$JOB,PXCAINX1,PXCAINX2,0,"AFTER"),"^",3)=VIEN
- End DoDot:2
- End DoDot:1
- +7 QUIT
- +8 ;