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

AGELUPUT.m

Go to the documentation of this file.
  1. AGELUPUT ;IHS/SET/GTH - UPDATE ELIGIBILITY FROM CMS FILE (UTILITIES) ;
  1. ;;7.1;PATIENT REGISTRATION;;AUG 25,2005
  1. ;
  1. FRMT ;EP - ask template and mode
  1. ;Select template.
  1. W !!
  1. S DIC="^AGELUP(",DIC("S")="I '$P(^(0),U,7)",DIC(0)="AEMQ"
  1. D ^DIC
  1. Q:+Y<0
  1. ;Load template into local vars.
  1. S AGTDA=+Y,AGZERO=^AGELUP(AGTDA,0),AGONE=$G(^(1)),AGTWO=$G(^(2)),AGTHREE=$G(^(3)),AGSEVEN=$G(^(7)),AGFPVL=$P(AGTHREE,U,3),AGPARSE=$P(AGZERO,U,3)
  1. I AGPARSE="V" S AGDEL=$$GET1^DIQ(9009062.01,AGTDA_",",.04)
  1. S AGTYPE=$P(AGZERO,U,2),AGAUTO=$P(AGZERO,U,6)
  1. I AGTYPE="D" D I 'AGMCDST S DIRUT=1
  1. . S AGMCDST=0
  1. . I '$L($P(AGTWO,U,10)) D
  1. .. W !,"MEDICAID STATE isn't entered for this template.",!,"What's the State?"
  1. .. NEW DA,DIE,DR
  1. .. S DIE="^AGELUP(",DR=.295,DA=AGTDA
  1. .. D ^DIE
  1. .. S AGTWO=^AGELUP(AGTDA,2)
  1. ..Q
  1. . I '$L($P(AGTWO,U,10)) Q
  1. . S AGMCDST=$O(^DIC(5,"C",$P(AGTWO,U,10),0))
  1. .Q
  1. S AGMATCH=$G(^AGELUP(AGTDA,11))
  1. F %=1:1:$L(AGMATCH,"^") I '$L($P(AGMATCH,U,%)) S $P(AGMATCH,U,%)=0
  1. S AGMATCH=$TR(AGMATCH,"^")
  1. ;Select processing mode.
  1. NEW DA
  1. S AGAUTO=$$DIR^XBDIR("9009062.01,.06","",AGAUTO,"","","",2)
  1. I AGTYPE="D",AGAUTO="A" D DMC(AGTDA)
  1. Q
  1. ;
  1. ;Data auditing at the file level is indicated by a lower case "a"
  1. ;in the 2nd piece of the 0th node of the global.
  1. ;Data auditing at the field level is indicated by a lower case "a"
  1. ;in the 2nd piece of the 0th node of the field definition in ^DD(.
  1. AUDS ;EP - Save current settings, and SET data auditing 'on'.
  1. S ^XTMP("AGELUP1",0)=$$FMADD^XLFDT(DT,56)_"^"_DT_"^"_"M/M ELIGIBILITY FILE PROCESSING"
  1. NEW G,P
  1. F %=1:1 S G=$P($T(AUD+%),";",3) Q:G="END" D
  1. . S P=$P(@(G_"0)"),"^",2)
  1. . I '$D(^XTMP("AGELUP1",G)) S ^XTMP("AGELUP1",G)=P
  1. . S:'(P["a") $P(@(G_"0)"),"^",2)=P_"a"
  1. . Q:'(G["^DD(")
  1. . I '$D(^XTMP("AGELUP1",G,"AUDIT")) S ^XTMP("AGELUP1",G,"AUDIT")=$G(@(G_"""AUDIT"")"))
  1. . S (@(G_"""AUDIT"")"))="y"
  1. .Q
  1. Q
  1. AUDR ;EP - Restore the file data audit values to their original values.
  1. NEW G,P
  1. F %=1:1 S G=$P($T(AUD+%),";",3) Q:G="END" D
  1. . S $P(@(G_"0)"),"^",2)=^XTMP("AGELUP1",G)
  1. . Q:'(G["^DD(")
  1. . S (@(G_"""AUDIT"")"))=^XTMP("AGELUP1",G,"AUDIT")
  1. . K:@(G_"""AUDIT"")")="" @(G_"""AUDIT"")")
  1. .Q
  1. Q
  1. AUD ;These are files/fields to be audited.
  1. ;;^AUPNMCR(
  1. ;;^DD(9000003,.01,
  1. ;;^DD(9000003,.02,
  1. ;;^DD(9000003,.03,
  1. ;;^DD(9000003,.04,
  1. ;;^DD(9000003,1101,
  1. ;;^DD(9000003,2101,
  1. ;;^DD(9000003,2102,
  1. ;;^AUPNMCD(
  1. ;;^DD(9000004,.01,
  1. ;;^DD(9000004,.02,
  1. ;;^DD(9000004,.03,
  1. ;;^DD(9000004,.04,
  1. ;;^DD(9000004,.07,
  1. ;;^DD(9000004,1101,
  1. ;;^DD(9000004,2101,
  1. ;;^DD(9000004,2102,
  1. ;;^AUPNRRE(
  1. ;;^DD(9000005,.01,
  1. ;;^DD(9000005,.02,
  1. ;;^DD(9000005,.03,
  1. ;;^DD(9000005,.04,
  1. ;;^DD(9000005,1101,
  1. ;;^DD(9000005,2101,
  1. ;;^DD(9000005,2102,
  1. ;;^AUTTMCS(
  1. ;;^DD(9999999.32,.01,
  1. ;;^AUTTRRP(
  1. ;;^DD(9999999.33,.01,
  1. ;;END
  1. ; -----------------------------------------------------
  1. ;
  1. INSPT ;EP - Get the INSURER that is to be used.
  1. U IO(0)
  1. W !!,"Looking for an entry in the INSURER file named """,$S(AGTYPE="M":"MEDICARE",AGTYPE="R":"RAILROAD RETIREMENT",AGTYPE="D":"MEDICAID",1:"???"),"""..."
  1. NEW DA
  1. S AGINSPT=$$DIR^XBDIR("900000"_$S(AGTYPE="M":3,AGTYPE="D":4,AGTYPE="R":5,1:3)_",.02","",$S(AGTYPE="M":"MEDICARE",AGTYPE="D":"MEDICAID",AGTYPE="R":"RAILROAD RETIREMENT",1:""),"","","",1)
  1. I +Y>0 D INSPT9 Q
  1. W !,"An insurer named """,$S(AGTYPE="M":"MEDICARE",AGTYPE="D":"MEDICAID",AGTYPE="R":"RAILROAD RETIREMENT",1:"???"),""" could not be found in your INSURER file."
  1. W !,"What INSURER should be used for the elgibility update?"
  1. S DIC(0)="AEMZ"
  1. D ^DIC
  1. INSPT9 ;
  1. I +Y>0 W !,"The insurer named """,$P(Y,U,2),""" will be used to update eligibility information." S AGINSPT=+Y
  1. Q
  1. U IO(0)
  1. W @IOF,!,"FILE RECORD #: ",AGRCNT
  1. W !,"PATIENT: ",$P(^DPT(AG("DFN"),0),U,1),?35,"SSN: "
  1. W $E(AG("FSSN"),1,3)_"-"_$E(AG("FSSN"),4,5)_"-"_$E(AG("FSSN"),6,9)
  1. W ?58,"DOB: ",$$DOB^AUPNPAT(AG("DFN"),"S")
  1. W !,$$REPEAT^XLFSTR("=",80)
  1. W !?3,"RPMS ",AGHDR," ELIGIBILE File",?48,$S(AGTYPE="M":"CMS Medicare",AGTYPE="D":"State Medicaid",AGTYPE="P":"Private Ins.",AGTYPE="R":"CMS Railroad",1:"<unknown>")," FILE"
  1. W !,$$REPEAT^XLFSTR("-",80)
  1. Q
  1. PEND ;EP - end of page
  1. W !
  1. S AGACT=$$DIR^XBDIR("SBM^F:FILE;S:SKIP;Q:QUIT","ACTION: (F)ILE, (S)KIP, (Q)UIT","QUIT")
  1. I $D(DIRUT) S AGACT="Q"
  1. Q
  1. RUN ;EP - add run multiple
  1. S X=$$NOW^XLFDT,DIC="^AGELUPLG(",DIC(0)="LX",DLAYGO=9009062.02
  1. D ^DIC
  1. I +Y<0 U IO(0) W !!,"Could not create entry in Log file.",! Q
  1. S (AGRUN,DA)=+Y,DIE=DIC,DR=".02////"_AGTDA_";.03///"_AGFILE_";.04///"_AGCNT_";.05////"_DUZ_";.06///"_$P($G(^AUPNMCR(0)),U,4)_";.08///"_$P($G(^AUPNRRE(0)),U,4)_";.11///"_$P($G(^AUPNMCD(0)),U,4)
  1. D ^DIE
  1. Q
  1. RUN1 ;EP - Update end of run file counts.
  1. S DIE="^AGELUPLG(",DA=AGRUN,DR=".07///"_$P($G(^AUPNMCR(0)),U,4)_";.09///"_$P($G(^AUPNRRE(0)),U,4)_";.12///"_$P($G(^AUPNMCD(0)),U,4)
  1. D ^DIE
  1. Q
  1. MATCH() ;EP - Match the Patient for Medicaid Auto-processing, only.
  1. NEW AGQ,AGDPT0
  1. S AGDPT0=^DPT(AG("DFN"),0),AGQ=0
  1. ;SSN
  1. ;SSN must always match.
  1. ;
  1. ;NAME
  1. I $E(AGMATCH,2) D Q:AGQ 0
  1. . S AGQ=AG("FLNM")_","_AG("FFNM")
  1. . S:AG("FMI")'="" AGQ=AGQ_" "_AG("FMI")
  1. . I $E(AGMATCH,2)=1,'($P(AGDPT0,U,1)=AGQ) S AGQ=1 Q
  1. . I $E(AGMATCH,2)=2,'($P($P(AGDPT0,U,1),",",1)=AG("FLNM")) S AGQ=1 Q
  1. . I $E(AGMATCH,2)=3,'($E($P($P(AGDPT0,U,1),",",1),1,6)=$E(AG("FLNM"),1,6)) S AGQ=1 Q
  1. .Q
  1. ;DOB
  1. I $E(AGMATCH,3) D Q:AGQ 0
  1. . I $E(AGMATCH,3)=1,'($P(AGDPT0,U,3)=AG("FDOB")) S AGQ=1 Q
  1. . I $E(AGMATCH,3)=2,'($E($P(AGDPT0,U,3),1,3)=$E(AG("FDOB"),1,3)) S AGQ=1 Q
  1. . I $E(AGMATCH,3)=3,'($E($P(AGDPT0,U,3),1,5)=$E(AG("FDOB"),1,5)) S AGQ=1 Q
  1. .Q
  1. ;GENDER
  1. I $E(AGMATCH,4),'($P(AGDPT0,U,2)=AG("FSEX")) Q 0
  1. ;ZIP
  1. I $E(AGMATCH,5) D Q:AGQ 0
  1. . I $E(AGMATCH,5)=1,'($P($G(^DPT(AG("DFN"),.11)),U,6)=AG("FMAZ")) S AGQ=1 Q
  1. . I $E(AGMATCH,5)=2,'($E($P($G(^DPT(AG("DFN"),.11)),U,6),1,5)=$E(AG("FMAZ"),1,5)) S AGQ=1 Q
  1. .Q
  1. Q 1
  1. DMC(DA) ;EP - Display matching criteria.
  1. ;;You have chosen Medicaid upload in Auto mode.
  1. ;;Because of the widely differing methods used by States for verifying
  1. ;;Patient demographic data, additional matching criteria are available.
  1. ;;Matching is done on PtReg data, -not- Medicaid data.
  1. ;;@;!
  1. ;;The upload Matching criteria for this template is current set for:
  1. ;;###
  1. D HELP^XBHELP("DMC","AGELUPUT",0)
  1. NEW DIC,DR
  1. S DIC="^AGELUP(",DR="11"
  1. D EN^DIQ
  1. I $$DIR^XBDIR("E")
  1. Q