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

VENPCCD.m

Go to the documentation of this file.
  1. VENPCCD ; IHS/OIT/GIS - UPDATE DEMOGRAPHICS AND INSURANCE INFO ;
  1. ;;2.6;PCC+;;NOV 12, 2007
  1. ;
  1. ;
  1. ;
  1. PAT(DFN) ; EP-UPDATE DEMOGRAPHICS
  1. N VENA,VENPI,N,SEX,SSN,AGE,DOB,D0,IOEDEOP,IOINHI,IOINLOW,IOINORM,IORVOFF,IORVON,IOUOFF,IOUON,X,VEN,Y,I,IOBOFF,IOBON,%,VEND,DIPGM,AUPNDAYS,AUPNDOB,AUPNDOD,AUPNPAT,AUPNSEX,DA,DIC,DR,DIQ,D0,DLAYGO,VENPAT
  1. D ^XBKVAR
  1. S X="IOEDEOP;IORVON;IORVOFF;IOBOFF;IOBON;IOINHI;IOINORM;IOINLOW;IOUOFF;IOUON" D ENDR^%ZISS
  1. S VEND("EMPST")=$P(^DD(9000001,.21,0),"^",3)
  1. START ;
  1. K VEN
  1. S DIC="^AUPNPAT(",DIC(0)="",X="`"_DFN,DLAYGO=9000001 D ^DIC K DIC
  1. I $D(DFN) D PROCESS
  1. I $D(DFN),$L($T(UPDATE1^AGED)),$P($G(^VEN(7.5,CFIGIEN,0)),U,20) D PAGE11(DFN)
  1. G END
  1. PROCESS ; EP - DRIVER
  1. L ^AUPNPAT(DFN,0):0 I '$T W !!,*7,"Patient is being edited by someone else!!" H 1 Q ;G START
  1. S VEN(0)=^DPT(DFN,0)
  1. S DIC=2,DA=DFN,DR=.033,DIQ="VENA" D EN^DIQ1 S VEN("AGE")=VENA(2,DFN,.033)
  1. S VEN("SSN")=$P(VEN(0),"^",9)
  1. S VEN("HPHONE")=$P($G(^DPT(DFN,.13)),"^",1)
  1. S VEN("OPHONE")=$P($G(^DPT(DFN,.13)),"^",2)
  1. S VEN("N")=$P(VEN(0),"^",1)
  1. S VEN("HRN")=$P(^AUPNPAT(DFN,41,DUZ(2),0),"^",2)
  1. S %=$P($G(^DPT(DFN,0)),U,3) I %'?7N W !,"Missing/invalid DOB!!!" Q
  1. S AGE=(DT-%)\10000
  1. I (AGE>64)&('$D(^AUPNMCR(DFN))) S VEN("MRCK")="Y"
  1. DISPLAY I '$G(CHECKIN) D ^XBCLS I 1
  1. E W !!
  1. U 0 W ?5,IOUON,IOINHI,"Patient: ",IOUOFF,IOINLOW,VEN("N"),?69,IOUON,IOINHI,"HRN: ",IOUOFF,IOINLOW,VEN("HRN")
  1. ADD ;
  1. S VEN(.11)=$G(^DPT(DFN,.11))
  1. F I=1:1:6 S VEN("A",I)=$P(VEN(.11),"^",I)
  1. I VEN("A",5)'="" S VEN("A",5)=$P(^DIC(5,VEN("A",5),0),"^",1)
  1. W !,?5,IOUON,IOINHI,"SSN: ",IOUOFF,IOINLOW,VEN("SSN")
  1. W !,?5,IOUON,IOINHI,"HOME PHONE: ",IOUOFF,IOINLOW,VEN("HPHONE")
  1. W !,?5,IOUON,IOINHI,"OFFICE PHONE: ",IOUOFF,IOINLOW,VEN("OPHONE")
  1. W !!,?5,IOUON,IOINHI,"Address: ",IOUOFF,IOINLOW,VEN("A",1) I VEN("A",2)'="" W !,?14,VEN("A",2)
  1. I VEN("A",3)'="" W !,?14,VEN("A",3)
  1. W !,?14,VEN("A",4),", ",VEN("A",5)," ",VEN("A",6)
  1. S DIR("A")="SSN, Phone or Address Change",DIR("B")="N",DIR(0)="Y"
  1. W IOINHI D ^DIR W IOINLOW
  1. I $D(DTOUT)!($D(DUOUT)) G END
  1. I Y=1 D ADDCHG G DISPLAY
  1. D INCHG G DISPLAY:VEN("ICHG")="Y"
  1. D EMPCHG
  1. D MDCDFL
  1. I (VEN("AGE")>64)&('$D(^AUPNMCR(DFN))) D MCRFL
  1. G END
  1. ADDCHG ; call routine that changes address fields in pat reg
  1. ;makes sure change the date last edit,who edited and agpatch also
  1. N GBL,%,DIE,DA,DR,X,Y,DIC
  1. S GBL=$NA(^AGPATCH)
  1. S DIE="^DPT(",DA=DFN,DR=".09;.131;.132;.111;.112;.113;.114;.115;.116"
  1. L +^DPT(DA):0 I $T D ^DIE L -^DPT(DA)
  1. S DIE="^AUPNPAT(",DA=DFN,DR=".03////"_DT_";.16////"_DT_";.12////"_DUZ
  1. L +^AUPNPAT(DA):0 I $T D ^DIE L -^AUPNPAT(DA)
  1. D NOW^%DTC
  1. S @GBL@(%,DUZ(2),DFN)=""
  1. Q
  1. INCHG ; changes in the insurance plan
  1. S VEN("ICHG")="N"
  1. W !
  1. I $D(^AUPNPRVT(DFN)) D PI^VENPCCD1
  1. I $$MOK(DFN) D MDCD^VENPCCD1
  1. D MCR^VENPCCD1
  1. S DIR("A")="Any 3rd Party Rescource Changes",DIR("B")="N",DIR(0)="Y"
  1. W IOINHI D ^DIR W IOINLOW
  1. I $D(DTOUT)!($D(DUOUT)) Q
  1. K DIR
  1. I Y=1 D ELIG^VENPCCD1 S VEN("ICHG")="Y"
  1. Q
  1. MOK(DFN) ; IS PT MEDICAID ELIGIBLE?
  1. N MDIEN,START,END
  1. S MDIEN=$O(^AUPNMCD("B",+$G(DFN),0)) I 'MDIEN Q 0
  1. S START=$O(^AUPNMCD(MDIEN,11,9999999),-1) I 'START Q 0
  1. S END=$P($G(^AUPNMCD(MDIEN,11,START,0)),U,2)
  1. I END<DT Q 0
  1. Q 1
  1. ;
  1. EMPCHG ; changes in the employment, employment status, or spouse employment
  1. S VEN("$Y")=$Y
  1. S VEN(0)=^AUPNPAT(DFN,0)
  1. S VEN("E")=$P(VEN(0),"^",19) I VEN("E")'="" S VEN("E")=$P(^AUTNEMPL(VEN("E"),0),"^",1)
  1. S VEN("ES")=$P(VEN(0),"^",21) I VEN("ES")'="" S VEN("ES")=$P(VEND("EMPST"),(VEN("ES")_":"),2),VEN("ES")=$P(VEN("ES"),";",1)
  1. S VEN("SE")=$P(VEN(0),"^",22) I VEN("SE")'="" S VEN("SE")=$P(^AUTNEMPL(VEN("SE"),0),"^",1)
  1. W !!,?5,IOUON,IOINHI,"Employer: ",IOUOFF,IOINLOW,VEN("E")," ",IOUON,IOINHI,"Status: ",IOUOFF,IOINLOW,VEN("ES")
  1. I VEN("SE")'="" W !,?5,IOUON,IOINHI,"Spouse's Employer: ",IOUOFF,IOINLOW,VEN("SE")
  1. S DIR("A")="Any Changes in Employment",DIR("B")="N",DIR(0)="Y"
  1. W IOINHI D ^DIR W IOINLOW
  1. I $D(DTOUT)!($D(DUOUT)) Q
  1. I Y=1 D EMPL^VENPCCD1 S VEN("ECHG")="Y",$Y=VEN("$Y") W IOEDEOP S $Y=VEN("$Y")
  1. W !
  1. Q
  1. MDCDFL ; medicaid alert for passport signature
  1. I $D(VEN("MDCD")) D
  1. .W IORVON,*7
  1. .S DIR("A",1)="Patient is currently on Medicaid and must sign Passport form."
  1. .S DIR("A")="Has this been COMPLETED"
  1. .S DIR(0)="Y"
  1. .S DIR("B")="Y"
  1. .D ^DIR
  1. .I Y=1 S VEN("COMP")="Y"
  1. .I Y=0 S VEN("COMP")="N"
  1. .I '$D(VENPAT("MDCD",DFN)) S VENPAT("MDCD",DFN)=DT_"^"_DUZ_"^"_VEN("COMP")
  1. .S VEN("M")=VENPAT("MDCD",DFN)
  1. .S $P(VEN("M"),"^",4)=DT
  1. .S $P(VEN("M"),"^",5)=DUZ
  1. .S $P(VEN("M"),"^",6)=VEN("COMP")
  1. .S VENPAT("MDCD",DFN)=VEN("M")
  1. K DIR
  1. W IORVOFF
  1. Q
  1. MCRFL ; medicare alert--person over 65 and not on file with medicare
  1. U 0 W *7,IORVON,IOBON,!,?5,"PERSON OVER 65--NO MEDICARE ON FILE!!!",IORVOFF,IOBOFF
  1. I '$D(VENPAT("MCR",DFN)) S VENPAT("MCR",DFN)=DT_"^"_DUZ
  1. D NOW^%DTC
  1. S VENPAT("MCR",DFN,%)=DUZ
  1. ;THE VENPAT("MCR",DFN) node contains the initial time that the user
  1. ;was alerted to see person wasn't on file with Medicare & is over 64
  1. ;the next nodes with % is the times after that the user is alerted that
  1. ;the person is not on file with medicare
  1. Q
  1. END ;
  1. Q
  1. PAGE11(DFN) ; EP-EDIT PAGE 11
  1. N DA,DR,DIE
  1. W !!,"Want to enter additional registration information (Page 11)"
  1. S %=2 D YN^DICN I %'=1 Q
  1. S DIE=9000001,DR=1301,DA=DFN
  1. L +^AUPNPAT(DA):0 I $T D ^DIE L -^AUPNPAT(DA)
  1. D UPDATE1^AGED(DUZ(2),DFN,11,"")
  1. D ^XBFMK
  1. Q
  1. ;