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

DGPTFM1.m

Go to the documentation of this file.
  1. DGPTFM1 ;ALB/MTC/PLT,WOIFO/PMK - MASTER DIAG/OP/PRO CODE ENTER/EDIT ;7/6/15 3:37PM
  1. ;;5.3;Registration;**114,517,635,850,884**;Aug 13, 1993;Build 31
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. D G D^DGPTFM0
  1. ;
  1. A S DGCODSYS=$$CODESYS^DGPTIC10(PTF),L="" F I=1:1:PM S L2=1 D
  1. . N A
  1. . F J=5:1:9 I $P(M(I),U,J)="" S L=L_I_",",L2=0 QUIT
  1. . QUIT:DGCODSYS="ICD9"!'L2
  1. . F J=11:1:15 I $P(M(I),U,J)="" S L=L_I_",",L2=0 QUIT
  1. . QUIT:'L2
  1. . S A=$G(^DGPT(PTF,"M",+M(I),81)) F J=1:1:15 I $P(A,U,J)="" S L=L_I_",",L2=0 QUIT
  1. . QUIT
  1. I L="" W !!,"There are no movement records that can be added to.",*7,*7 H 2 G ^DGPTFM
  1. S L=$E(L,1,$L(L)-1) I L=+L S RC=+L G A2
  1. A1 I 'Z W !!,"Add to movement record <",L,"> : " R RC:DTIME G ^DGPTFM:RC[U!('$T)!(RC="")
  1. E S RC=+$E(A,2,99)
  1. A2 I +RC'=RC!(","_L_","'[(","_RC_",")) W !!,"Enter the movement record number to add ICD diagnosis to: ",L S Z="" G A1
  1. S DGCODSYS=$$CODESYS^DGPTIC10(PTF),DIE="^DGPT(",(DA,DGPTF)=PTF,DR=$S(DGCODSYS="ICD10":"[DG501-10D]",1:"[DG501]"),DGJUMP="" S:DGPTFE DR=$S(DGCODSYS="ICD10":"[DG501F-10D]",1:"[DG501F]")
  1. S DGMOV=+M(RC),DGADD=1 D ^DIE K DR,DA,DGADD,DIE,DGJUMP,DGCODSYS,DGXX,DGTYPE D CHK501^DGPTSCAN K DGPTF,DGMOV,DGADD
  1. G ^DGPTFM
  1. ;
  1. M I DGPTFE G ADD^DGPTFM4
  1. S X=80 X ^%ZOSF("RM") D MVT K T,AM,M I $L(DGVO_DGVI)>4 S X=132 X ^%ZOSF("RM")
  1. G ^DGPTFM:'$D(DGPMDA) S DA=$S('$D(^DGPM(DGPMDA,"PTF")):"",1:$P(^("PTF"),"^",3)) G ^DGPTFM:'$D(^DGPT(PTF,"M",+DA,0)) S Y=^(0)
  1. S X=$S($D(^DIC(42.4,+$P(Y,U,2),0)):$P(^(0),U,1),1:""),Y=$P(Y,U,10)
  1. D D^DGPTUTL K M W !,"Editing ",$S(DA=1:"Discharge ",1:""),"Movement " W:Y]"" "of ",Y W " Losing Specialty ",X
  1. S DGCODSYS=$$CODESYS^DGPTIC10(PTF),DGMOV=DA,(DA,DGPTF)=PTF,DIE="^DGPT(",DR=$S(DGCODSYS="ICD10":"[DG501-10D]",1:"[DG501]"),DGJUMP="1-2" D ^DIE
  1. K DA,DR,DIE,DGJUMP,DGCODSYS,DGXX,DGTYPE D CHK501^DGPTSCAN K DGPTF,DGMOV
  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 ^DGPTFM
  1. ;
  1. Z I 'SU W !,"No surgeries to delete",! H 3 G ^DGPTFM
  1. S ST=1 I 'Z W !!,"Delete surgery record <1",$S(SU=1:"",1:"-"_SU),">: " R RC:DTIME G ^DGPTFM:'$T!(RC[U)!(RC="")
  1. E S RC=$E(A,2,99) W !
  1. I +RC'=RC!('$D(S(RC))) W !!,"Enter the record # to delete from the PTF file, 1",$S(SU=1:"",1:"-"_SU) S Z=0 G Z
  1. K DA S DIK="^DGPT("_PTF_",""S"",",ST=1,(DGPTF,DA(1))=PTF,(DGSUR,DA)=+S(RC,1) D ^DIK K DA W " ",RC,"-DELETED***" D CHK401^DGPTSCAN K DGPTF,DGSUR H 2 G ^DGPTFM
  1. ;
  1. C G CEL:Z
  1. I '$D(S2) W !,"View Surgery Codes first",! H 2 G ^DGPTFM
  1. I 'S2 W !,"No codes to delete",! H 2 G ^DGPTFM
  1. C1 R !!,"Enter the item #'s of the ICD operation codes to delete: ",A1:DTIME
  1. S:'$T A1=U I A1'?1N.NP G ^DGPTFM:"^"[A1 W:A1'["?" " ???",*7 D C^DGPTFM0 G C1
  1. S A=A_A1
  1. CEL D EXPL^DGPTUTL
  1. K X,A1 S DA(1)=PTF,DP=45.01 W !!
  1. F J=1:1 S L=+$P(DGA,",",J),DIE="^DGPT("_PTF_",""S""," Q:'L D
  1. .S L1=$S($D(S2(L)):S2(L),1:"Undefined, ") W:'L1 " ",L,"-",L1
  1. .I L1 S (DA,DGSUR)=+S(+L1,1),(DA(1),DGPTF)=PTF,DR=$$FLDNUM^DILFD(45.01,"OPERATION CODE "_$P(S2(+L),U,2))_"///@" D ^DIE,CEL1
  1. H 3 S ST=1 G ^DGPTFM
  1. ;
  1. CEL1 ;
  1. K DR W " ",L,"-Deleted, " W:$X>70 ! D CHK401^DGPTSCAN K DGPTF,DGSUR
  1. Q
  1. ;
  1. O I '$D(S2) W !,"View Surgery Codes first",! H 2 G ^DGPTFM
  1. I 'S2 W !,"No codes can be added to a Surgery Record.",! H 2 G ^DGPTFM
  1. S DGCODSYS=$$CODESYS^DGPTIC10(PTF),L="" F I=1:1:SU S L2=1 D
  1. . N A
  1. . F J=8:1:12 I $P(S(I),U,J)="" S L=L_I_",",L2=0 QUIT:'L2
  1. . QUIT:DGCODSYS="ICD9"!'L2
  1. . F J=13:1:27 I $P(S(I),U,J)="" S L=L_I_",",L2=0 QUIT:'L2
  1. . QUIT:'L2
  1. . S A=$G(^DGPT(PTF,"S",+S(I,1),1)) F J=1:1:5 I $P(A,U,J)="" S L=L_I_",",L2=0 QUIT:'L2
  1. . QUIT
  1. I L="" W !!,"There are no surgery records that can be added to.",*7 H 2 S ST=1 G ^DGPTFM
  1. S L=$E(L,1,$L(L)-1) I L=+L S RC=+L G O2
  1. O1 I 'Z S ST=1 W !!,"Add to surgery record <",L,"> : " R RC:DTIME G ^DGPTFM:'$T!(RC[U)!(RC="")
  1. E S RC=+$E(A,2,99)
  1. O2 I +RC'=RC!(","_L_","'[(","_RC_",")) W !!,"Enter the surgery record number to add ICD operation codes to: ",L G O1:'Z S Z="" G O1
  1. S DGCODSYS=$$CODESYS^DGPTIC10(PTF),DIE="^DGPT(",(DGPTF,DA)=PTF,DR=$S(DGCODSYS="ICD10":"[DG401-10P]",1:"[DG401]")
  1. S ST=1,DGZS0=RC,DGADD=1,DGSUR=S(DGZS0,1) D ^DIE,CHK401^DGPTSCAN K DR,DGPTF,DGSUR,DGADD G ^DGPTFM
  1. ;
  1. S G ADD^DGPTFM5
  1. V S DGZM0=0 G ^DGPTFM4
  1. J S DGZS0=0 G ^DGPTFM5
  1. ;
  1. ;delete procedure code in 401p(before 2871000) or procedure record
  1. Q I $G(P2P) G Q401P
  1. G QELP:Z
  1. I '$D(P2) W !,"View Prodedure Codes first",! H 2 G ^DGPTFM
  1. I 'P2 W !,"No codes to delete",! H 2 G ^DGPTFM
  1. QP1 R !!,"Enter the item #'s of the ICD procedure codes to delete: ",A1:DTIME
  1. S:'$T A1=U I A1'?1N.NP G ^DGPTFM:"^"[A1 W:A1'["?" " ???",*7 D Q^DGPTFM0 G QP1
  1. S A=A_A1
  1. QELP D EXPL^DGPTUTL
  1. K X,A1 S DA(1)=PTF,DP=45.05 W !!
  1. F J=1:1 S L=+$P(DGA,",",J),DIE="^DGPT("_PTF_",""P""," Q:'L D
  1. . S L1=$S($D(P2(L)):P2(L),1:"Undefined, ") I 'L1 W " ",L,"-",L1 W:$X>70 ! Q ; P884
  1. . I L1 S DA=+P(+L1,1),DGZP=+L1,(DA(1),DGPTF)=PTF,DR=$$FLDNUM^DILFD(45.05,"PROCEDURE CODE "_$P(P2(+L),U,2))_"///@" D ^DIE
  1. . K DR W " ",L,"-Deleted, " W:$X>70 ! D CHK601^DGPTSCAN K DGPTF,DGZP
  1. . QUIT
  1. H 3 S ST=1 G ^DGPTFM
  1. ;
  1. Q401P G QEL:Z
  1. I $G(^DGPT(PTF,70))>2871000!'$G(^(70)) D EN^DDIOL("Patient with no Discharge Date or after 09/30/1987 needs to have all Procedure Codes deleted in 401P Transaction.")
  1. QQ R !!,"Enter the item #'s of the 401P - Procedure codes to delete: ",A1:DTIME
  1. S:'$T A1=U I A1'?1N.NP G ^DGPTFM:"^"[A1 W:A1'["?" " ???",*7 D Q1^DGPTFM0 G QQ
  1. S A=A_A1
  1. QEL D EXPL^DGPTUTL
  1. S DGA=$E(A,2,999) K X,A1 S DIE="^DGPT(",DA=PTF W !!
  1. F J=1:1 S DP=45,L=+$P(DGA,",",J) Q:'L D
  1. . S L1=$S($D(P2P(L)):P2P(L),1:"Undefined, ")
  1. . W:'L1 " ",L,"-",L1
  1. . I L1 S DR=+P2P(+L)/100+45_"///@",DA(1)=PTF D
  1. .. D ^DIE
  1. .. K DR W " ",L,"-Deleted, " W:$X>70 !
  1. H 3 G ^DGPTFM
  1. ;
  1. P G P^DGPTFM6
  1. Q1 Q
  1. T G ^DGPTFM6
  1. R G R^DGPTFM4
  1. E I $D(^DGPT(PTF,70)),+^(70)>2871000 D MOB^DGPTFM6 G SET^DGPTFM6
  1. I DT>2871000 D MOB^DGPTFM6 G SET^DGPTFM6
  1. G ^DGPTFM6
  1. ;
  1. MVT ;
  1. N PTF,DGPMAN
  1. S DGPMT=6 D CA^DGPMV S DGPMDA=+Y
  1. K DGPMT Q
  1. I G ADD^DGPTFM2
  1. Y G DEL^DGPTFM2
  1. N G N^DGPTFM2
  1. G G DC^DGPTFM2
  1. F G F^DGPTFM2
  1. Q