Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DGPTFM4

DGPTFM4.m

Go to the documentation of this file.
  1. DGPTFM4 ;ALB/MTC/ADL/PLT - PTF ENTRY/EDIT-2 ;12/18/07 11:37am
  1. ;;5.3;Registration;**114,195,397,510,565,775,664,759,850,884,1104**;Aug 13, 1993;Build 59
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ; Reference to $$DRGD^ICDGTDRG in ICR #4052
  1. ; Reference to DIS^EASECU in ICR #6771
  1. ; Reference to $$DISPLAY^PXCOMPACT in ICR #7327
  1. ;;ADL;Update for CSV Project;;Mar 26, 2003
  1. ;
  1. S DGZM0=DGZM0+1
  1. EN ;
  1. N M3,M82,DGMPOA
  1. D MOB:'$D(M)
  1. S M(DGZM0)=$S($D(M(DGZM0)):M(DGZM0),1:"") G NEXM:M(DGZM0)=""
  1. S (M3,M(DGZM0),M1)=$S($D(^DGPT(PTF,"M",+M(DGZM0),0)):^DGPT(PTF,"M",+M(DGZM0),0),1:"")
  1. S M82=$G(^DGPT(PTF,"M",+M(DGZM0),82))
  1. I $D(^DGPT(PTF,"M",+M(DGZM0),"P")) S $P(M(DGZM0),U,20)=^("P"),$P(M1,U,20)=^("P")
  1. WR S DG300=$S($D(^DGPT(PTF,"M",+M(DGZM0),300)):^(300),1:"")
  1. W @IOF,HEAD,?70 S Z="<501-"_DGZM0_">" D Z^DGPTFM I +M(DGZM0)=1 W !,?62,"Discharge Movement"
  1. M S L=+$P(M1,U,10),Y=L D D^DGPTUTL W !! S Z=1 D Z W "Date of Move: " S Z=Y,Z1=20 D Z1 W "Losing Specialty: ",$E($S($D(^DIC(42.4,+$P(M1,U,2),0)):$P(^(0),U,1),1:""),1,25)
  1. W !," Leave days: ",$P(M1,U,3),?44,"Pass days: ",$P(M1,U,4)
  1. W !,"Treated for SC Condition: ",$S($P(M3,U,18)=1:"Yes",1:"No")
  1. W !,"Treated for Acute Suicidal Crisis: ",$S($P(^DGPT(PTF,"M",+M(DGZM0),0),"^",33)="Y":"Yes",1:"No")
  1. ;check for COMPACT Act information
  1. N DISPLAY
  1. S DISPLAY=$$DISPLAY^PXCOMPACT(DFN)
  1. ;DISPLAY will contain one of the following groups of information:
  1. ; If end date exists (episode has ended) and there are no extensions,
  1. ; "COMPACT Act Start Date"^EPISODE START DATE^"End Date"^EPISODE END DATE^"IP Benefit End Date"^INPATIENT BENEFIT END DATE^"OP Benefit end date"^OUTPATIENT BENEFIT END DATE
  1. ; If end date exists (episode has ended) and an extension exists,
  1. ; "Extension Start Date"^EXTENSION START DATE^"Episode End Date"^EPISODE END DATE
  1. ; If end date does not exist (episode is ongoing) and there are no extensions,
  1. ; For an inpatient with an INPATIENT BENEFIT END DATE,
  1. ; "COMPACT Act Start Date"^EPISODE START DATE^"Remaining Days"^REMAINING INPATIENT DAYS^"Inpatient Benefit End Date"^INPATIENT BENEFIT END DATE
  1. ; Otherwise,
  1. ; "COMPACT Act Start Date"^EPISODE START DATE^"Remaining Days"^REMAINING INPATIENT DAYS or REMAINING OUTPATIENT DAYS
  1. ; If end date does not exist (episode is ongoing) and an extension exists,
  1. ; "Extension Start Date"^EXTENSION START DATE^"Remaining Days"^REMAINING INPATIENT DAYS or REMAINING OUTPATIENT DAYS
  1. ;
  1. I $P(DISPLAY,U)="COMPACT Act Start Date" W ?42,"COMPACT Start Date: ",$P(DISPLAY,U,2)
  1. I $P(DISPLAY,U)="Extension Start Date" W ?40,"Extension Start Date: ",$P(DISPLAY,U,2)
  1. I $P(DISPLAY,U,3)["End Date" W !," COMPACT End Date: ",$S($P(DISPLAY,U,6)]"":$P(DISPLAY,U,6),1:$P(DISPLAY,U,4))
  1. I $P(DISPLAY,U,3)="Remaining Days" W !," Remaining Days: ",$P(DISPLAY,U,4)
  1. N NL S NL=1 ; Changed from 0 to accommodate new COMPACT line
  1. I $P(M3,U,31)'="" W @($S(NL#2:"!",1:"?37")),"Potentially Related to Combat: ",$S($P(M3,U,31)="Y":"Yes",1:"No") S NL=NL+1
  1. I $P(M3,U,26)'="" W @($S(NL#2:"!",1:"?37")),"Treated for AO Condition: ",$S($P(M3,U,26)="Y":"Yes",1:"No") S NL=NL+1
  1. I $P(M3,U,27)'="" W @($S(NL#2:"!",1:"?37")),"Treated for IR Condition: ",$S($P(M3,U,27)="Y":"Yes",1:"No") S NL=NL+1
  1. I $P(M3,U,28)'="" W @($S(NL#2:"!",1:"?37")),"Treated for service in SW Asia: ",$S($P(M3,U,28)="Y":"Yes",1:"No") S NL=NL+1
  1. I $P(M3,U,29)'="" W @($S(NL#2:"!",1:"?37")),"Treated for MST Condition: ",$S($P(M3,U,29)="Y":"Yes",1:"No") S NL=NL+1
  1. K DGNTARR
  1. S DGNTARR=$$GETCUR^DGNTAPI(DFN,"DGNTARR")
  1. I $P(M3,U,30)="",(",3,4,5,"[(","_$P($G(DGNTARR("STAT")),U)_",")) S $P(M3,U,30)="N"
  1. I $P(M3,U,30)'="" W @($S(NL#2:"!",1:"?37")),"Treated for HEAD/NECK CA Condition: ",$S($P(M3,U,30)="Y":"Yes",1:"No") S NL=NL+1
  1. I $P(M3,U,32)'="" W @($S(NL#2:"!",1:"?37")),"Treated for Project 112/SHAD: ",$S($P(M3,U,32)="Y":"Yes",1:"No")
  1. K NL
  1. N EFFDATE,IMPDATE
  1. D EFFDATE^DGPTIC10(PTF)
  1. W !! S Z=2 D Z W " DX: ",$$GETLABEL^DGPTIC10(EFFDATE,"D")
  1. ;F I=1:1:11 S L=$P(M1,U,I+4) I L'=""&(I'=6) D
  1. D PTFICD^DGPTFUT(501,PTF,+M(DGZM0),.DGX501)
  1. S I=0 F S I=$O(DGX501(I)) QUIT:'I S L=DGX501(I) D
  1. . S DGMPOA=$P(L,U,2)
  1. . S DGPTTMP=$$ICDDATA^ICDXCODE("DIAG",+L,EFFDATE)
  1. . D WRITECOD^DGPTIC10("DIAG",+L,EFFDATE,2,1,15)
  1. . I $P(DGPTTMP,U,20)=30 W:$X>73 !," " W " (POA=",$S(DGMPOA]"":DGMPOA,1:"''"),")"
  1. . W $S(+DGPTTMP<1!('$P(DGPTTMP,U,10)):"*",1:"")
  1. . I $Y>(IOSL-4) D PGBR W @IOF,HEAD,?72 S Z="<501-"_DGZM0_">" D Z^DGPTFM W !
  1. . QUIT
  1. K DGX501
  1. D PRN2^DGPTFM8:DG300]""
  1. ;
  1. I $P(M1,U,20) S DRG=$P(M1,U,20) W:DRG=998!(DRG=999)!((DRG=468!(DRG=469)!(DRG=470))&(+$P($G(M1),U,10)<3071001)) *7 W !!?14,"TRANSFER DRG: ",DRG D
  1. . N DXD,DGDX
  1. . S DXD=$$DRGD^ICDGTDRG(DRG,"DGDX",,$P(M1,U,10)),DGDS=0
  1. . F S DGDS=$O(DGDX(DGDS)) Q:'+DGDS Q:DGDX(DGDS)=" " W !,DGDX(DGDS)
  1. JUMP K DG300 F I=$Y:1:21 W !
  1. X S DGNUM=$S($D(M(DGZM0+1)):501_"-"_(DGZM0+1),1:"MAS") G 501^DGPTFJC:DGST
  1. W "Enter <RET> to continue, 1-2 to edit,",!,"'M' ",$S(DGPTFE:" to add a patient movement",1:"to edit Treat. Specialty"),", '^N' for screen N, or '^' to abort:<",DGNUM,">// " R X:DTIME
  1. K DGNUM G Q:X="^",NEXM:X="",^DGPTFJ:X?1"^".E,M^DGPTFM1:X="M"!(X="m")
  1. X1 I X'=1,X'=2,X'="1-2" G PR
  1. S DGCODSYS=$$CODESYS^DGPTIC10(PTF)
  1. S DR=$S(DGPTFE:"[DG501F-10D]",1:"[DG501-10D]") I DGCODSYS="ICD9" S DR=$S(DGPTFE:"[DG501F]",1:"[DG501]")
  1. S DGJUMP=X,DIE="^DGPT(",(DA,DGPTF)=PTF,DGMOV=+M(DGZM0) D ^DIE
  1. I DR'["-10D" K DR,DA,DIE,DIC S DR="" X:(+M(DGZM0)=1) "S J=^DGPT(PTF,""M"",1,0) F I=11:1:15 I $P(J,U,I) S DR=DR_I_"";""" I DR'="" D
  1. . S DGJUMP=X,DIE="^DGPT("_DGPTF_",""M"",",(DA(1),DGPTF)=PTF,(DA,DGMOV)=+M(DGZM0)
  1. . D ^DIE
  1. . QUIT
  1. K M,DR,DIE D CHK501^DGPTSCAN K DGPTF,DGMOV
  1. ; Determine if NTR HISTORY (#28.11) filer is called if question for
  1. ; 'Treated for Head/Neck CA Condition:' is answered YES.
  1. ; Only a NTR screening status of 3=PENDING DIAGNOSIS gets Filed.
  1. I $P($G(M3),U,30)="Y",$P($G(DGNTARR("STAT")),U)=3 D
  1. . S DGNTARR=$$FILEHNC^DGNTAPI1(DFN)
  1. . QUIT
  1. K DGNTARR
  1. ;- update MT indicator after edit movement
  1. N DGPMCA,DGPMAN D PM^DGPTUTL
  1. I '$G(DGADM) S DGADM=+^DGPT(PTF,0)
  1. D MT^DGPTUTL
  1. G EN
  1. ;
  1. PR W !,"Enter '^' to stop the display and edit of data",!,"'^N' to jump to screen #N (appears in upper right of screen '<N>'",!,"<RET> to continue on to the next screen or 1-2 to edit:"
  1. W !?10,"1-",$S(DGPTFE:"Date of movement, Losing Specialty, ",1:""),"Leave and Pass days",!?10,"2-ICD DIAGNOSIS CODES"
  1. W !,"You may also enter 1-2",!
  1. R !!,"Enter <RET>: ",X:DTIME G WR
  1. Q
  1. NEXM S DGZM0=DGZM0+1 G ^DGPTFM:'$D(M(DGZM0)),EN
  1. ;
  1. ADD ;add movement record of fee basis patent
  1. S DGZM0=$S($D(DGZM0):DGZM0+1,1:0) S L=$S($D(^DGPT(PTF,"M",0)):^(0),1:"^45.02DA^^"),L1=$P(L,U,3) F I=1:1 Q:'$D(^DGPT(PTF,"M",L1+I))
  1. S DA(1)=PTF,DIC="^DGPT("_DA(1)_",""M"",",X=L1+I,DIC(0)="LMZQE" D ^DIC K DIC,DIE G ^DGPTFM:Y'>0
  1. S M(DGZM0)=L1+I S X="1-2" G X1
  1. Q
  1. MOB S I=0 K M,M1,M2 S M2=0 F I1=1:1 S I=$O(^DGPT(PTF,"M",I)) Q:'I S M(I1)=^(I,0)
  1. S PM=I1-1 D ORDER^DGPTF Q
  1. Q G Q^DGPTF
  1. Z I 'DGN S Z=$S(IOST="C-QUME"&($L(DGVI)'=2):Z,1:"["_Z_"]") W @DGVI,Z,@DGVO
  1. E W " "
  1. Q
  1. Z1 F I=1:1:(Z1-$L(Z)) S Z=Z_" "
  1. W Z
  1. Q
  1. R ;DELETE PROCEDURE RECORD
  1. I '$D(^DGPT(PTF,"P")) G NOPROC
  1. I $O(^DGPT(PTF,"P",0))']"" G NOPROC
  1. S DGPNUM="" F DGPROC=0:0 S DGPROC=$O(P(DGPROC)) Q:'DGPROC S:$D(P(DGPROC,1)) DGPNUM=DGPNUM_","_DGPROC
  1. S DGPNUM=DGPNUM_","
  1. ASKPRO W !!,"Delete procedure record <",$P(DGPNUM,",",2,99),"> : " R DGPROC:DTIME I DGPROC[U!(DGPROC="") K DGPNUM,DGPROC G ^DGPTFM
  1. I DGPNUM'[(","_DGPROC_",") W !!,"Enter the record # to delete from the PTF file <",$P(DGPNUM,",",2,99),">",! G ASKPRO
  1. K DA N DGJ
  1. F DGJ=1:1 S DA=+$P(DGPROC,",",DGJ) Q:'DA S DA=$S($D(P(DA,1)):+P(DA,1),1:0) I DA S DA(1)=PTF,DIK="^DGPT("_PTF_",""P""," D ^DIK K DA W " ",$P(DGPROC,",",DGJ),"-DELETED***" H:'$P(DGPROC,",",DGJ+1) 2
  1. K DIK,DA,DGPROC,DGPNUM G ^DGPTFM
  1. NOPROC W !!,*7,"No procedures to delete",! H 3 G ^DGPTFM
  1. Q
  1. ;
  1. PGBR N DIR,X,Y S DIR(0)="E",DIR("A")="Enter RETURN to continue" D ^DIR QUIT