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

ABMDRCHK.m

Go to the documentation of this file.
  1. ABMDRCHK ; IHS/ASDST/DMJ - Report Utility to Check Parms ;
  1. ;;2.6;IHS Third Party Billing;**1,9,10,14,21**;NOV 12, 2009;Build 379
  1. ;Original;TMD;10/17/95 12:45 PM
  1. ;
  1. ; IHS/SD/SDR - v2.5 p8 - Added code to check cancelled claim file
  1. ; IHS/SD/SDR,TPF - v2.5 p8 - added code for pending status (12)
  1. ; IHS/SD/SDR - v2.5 p9 - IM17380 - Split out line and added $G
  1. ; IHS/SD/SDR - v2.5 p10 - IM21520 - Fixed report so it would allow selection of one insurer
  1. ;
  1. ; IHS/SD/SDR - v2.6 CSV
  1. ; IHS/SD/SDR - abm*2.6*1 - HEAT7633 - didn't work when V-codes were selected
  1. ; IHS/SD/SDR - 2.6*9 - HEAT43507 - Closed claim report doesn't run by visit date
  1. ;IHS/SD/SDR - 2.6*14 - ICD10 009 - Updated so reports will check for ICD-10 codes
  1. ;IHS/SD/SDR - 2.6*14 - Updated DX^ABMCVAPI to be numeric
  1. ;IHS/SD/SDR - 2.6*14 - HEAT165197 (CR3109) - Updated check for DX range to use $$NUM
  1. ;IHS/SD/SDR - 2.6*21 - HEAT184442 - Made change for programming error <UNDEF>DX+22^ABMDRCHK. Occurs when user selects BOTH
  1. ; but doesn't enter any ICD10 codes, just hits return.
  1. ;IHS/SD/SDR - 2.6*21 - HEAT186137 - Fixed check for pending claims report if a specific visit type is selected.
  1. ;IHS/SD/SDR - 2.6*21 - VMBP RQMT_96 - Updated checked to look at new insurer type field
  1. ;
  1. BILL ;EP for checking Bill File data parameters
  1. Q:'$D(^ABMDBILL(DUZ(2),ABM,0))!('$D(^(1)))
  1. Q:$P(^ABMDBILL(DUZ(2),ABM,0),"^",4)="X"
  1. ;ABM("L") is piece 3 of bill file
  1. S ABM("V")=$P($G(^ABMDBILL(DUZ(2),ABM,0)),U,7)
  1. S ABM("L")=$P($G(^ABMDBILL(DUZ(2),ABM,0)),U,3)
  1. S ABM("I")=$P($G(^ABMDBILL(DUZ(2),ABM,0)),U,8)
  1. S ABM("P")=$P($G(^ABMDBILL(DUZ(2),ABM,0)),U,5)
  1. S ABM("D")=$P($G(^ABMDBILL(DUZ(2),ABM,7)),U)
  1. S ABM("A")=$P($G(^ABMDBILL(DUZ(2),ABM,1)),U,4)
  1. S ABM("C")=$P($G(^ABMDBILL(DUZ(2),ABM,0)),U,10)
  1. S ABM("AD")=$P($G(^ABMDBILL(DUZ(2),ABM,1)),U,5)
  1. S ABM("XD")=$P($G(^ABMDBILL(DUZ(2),ABM,1)),U,7)
  1. Q:ABM("L")=""!(ABM("I")="")!(ABM("P")="")!(ABM("D")="")
  1. Q:($D(ABMY("VYTP"))&(ABM("V")=""))
  1. Q:($D(ABMY("CLIN"))&(ABM("C")=""))
  1. Q:'$D(^AUTNINS(ABM("I"),0))
  1. I $D(ABMP("TYP")),ABMP("TYP")=0 Q:+$O(^ABMDBILL(DUZ(2),ABM,3,0))
  1. I $D(ABMP("TYP")),ABMP("TYP")=1,'+$O(^ABMDBILL(DUZ(2),ABM,3,0)) Q
  1. I $G(ABMP("COMPL")) Q:$P(^ABMDBILL(DUZ(2),ABM,0),U,4)="C"
  1. I $D(ABMY("LOC")),ABMY("LOC")'=ABM("L") Q
  1. I $D(ABMY("PAT")),ABMY("PAT")'=ABM("P") Q
  1. I $D(ABMP("FORM")),+ABMP("FORM")'=$P(^ABMDBILL(DUZ(2),ABM,0),U,6) Q
  1. I $D(ABMY("PRV")),'$D(^ABMDBILL(DUZ(2),ABM,41,"B",ABMY("PRV"))) Q
  1. I $D(ABMY("DX")) S ABM("DX","HIT")=0,ABM("DX")="BILL" D DX Q:'ABM("DX","HIT")
  1. I $D(ABMY("PX")) S ABM("PX","HIT")=0,ABM("PX")="BILL" D PX Q:'ABM("PX","HIT")
  1. I $D(ABMY("APPR")),ABMY("APPR")'=ABM("A") Q
  1. I $G(ABMY("PTYP"))=2,$P($G(^AUPNPAT(ABM("P"),11)),U,12)'="I" Q
  1. I $G(ABMY("PTYP"))=1,$P($G(^AUPNPAT(ABM("P"),11)),U,12)="I" Q
  1. I $D(ABMY("INS")),ABMY("INS")'=ABM("I") Q
  1. ;I $D(ABMY("TYP")) Q:ABMY("TYP")'[$P($G(^AUTNINS(ABM("I"),2)),U) ;abm*2.6*10 HEAT73780
  1. ;I $D(ABMY("TYP")) Q:ABMY("TYP")'[$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,ABM("I"),".211","I"),1,"I") ;abm*2.6*10 HEAT73780 ;abm*2.6*21 IHS/SD/SDR VMBP RQMT_96
  1. I $D(ABMY("TYP")) Q:("^"_ABMY("TYP")_"^")'[("^"_$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,ABM("I"),".211","I"),1,"I")_"^") ;abm*2.6*10 HEAT73780 ;abm*2.6*21 IHS/SD/SDR VMBP RQMT_96
  1. I $D(ABMY("CLIN")),'$D(ABMY("CLIN",+$P(^ABMDBILL(DUZ(2),ABM,0),"^",10))) Q
  1. I $D(ABMY("VTYP")),'$D(ABMY("VTYP",+$P(^ABMDBILL(DUZ(2),ABM,0),"^",7))) Q
  1. K ABM("QUIT")
  1. I $G(ABMY("DT"))="V" D Q:$G(ABM("QUIT"))
  1. .S:$P(ABM("D"),".")<ABMY("DT",1) ABM("QUIT")=1
  1. .S:$P(ABM("D"),".")>ABMY("DT",2) ABM("QUIT")=1
  1. I $G(ABMY("DT"))="A" D Q:$G(ABM("QUIT"))
  1. .S:$P(ABM("AD"),".")<ABMY("DT",1) ABM("QUIT")=1
  1. .S:$P(ABM("AD"),".")>ABMY("DT",2) ABM("QUIT")=1
  1. S ABMP("HIT")=1
  1. Q
  1. ;
  1. CLM ;EP for checking Claim file data parameters
  1. Q:'$D(^ABMDCLM(DUZ(2),ABM,0))
  1. I ABM("STA")'="",$P(^ABMDCLM(DUZ(2),ABM,0),U,4)'=ABM("STA") Q
  1. S ABM("V")=$P(^ABMDCLM(DUZ(2),ABM,0),U,7) ;visit type
  1. S ABM("L")=$P(^ABMDCLM(DUZ(2),ABM,0),U,3) ;visit location
  1. S ABM("I")=$P(^ABMDCLM(DUZ(2),ABM,0),U,8) ;active insurer
  1. S ABM("P")=$P(^ABMDCLM(DUZ(2),ABM,0),U) ;patient
  1. S ABM("D")=$P(^ABMDCLM(DUZ(2),ABM,0),U,2) ;encounter date
  1. S ABM("C")=$P(^ABMDCLM(DUZ(2),ABM,0),U,6) ;clinic
  1. Q:ABM("L")=""!(ABM("I")="")!(ABM("P")="")!(ABM("D")="")!(ABM("V")="")!(ABM("C")="")
  1. Q:'$D(^AUTNINS(ABM("I"),0))
  1. I $D(ABMY("DX")) S ABM("DX","HIT")=0,ABM("DX")="CLM" D DX
  1. I $D(ABMY("PX")) S ABM("PX","HIT")=0,ABM("PX")="CLM" D PX
  1. I $D(ABMY("PRV")),'$D(^ABMDCLM(DUZ(2),ABM,41,"B",ABMY("PRV"))) Q
  1. I $D(ABMY("PAT")),ABMY("PAT")'=ABM("P") Q
  1. I $D(ABMY("LOC")),ABMY("LOC")'=ABM("L") Q
  1. I $D(ABMY("INS")),ABMY("INS")'=ABM("I") Q
  1. I $G(ABMY("PTYP"))=2,$P($G(^AUPNPAT(ABM("P"),11)),U,12)'="I" Q
  1. I $G(ABMY("PTYP"))=1,$P($G(^AUPNPAT(ABM("P"),11)),U,12)="I" Q
  1. ;I $D(ABMY("TYP")) Q:ABMY("TYP")'[$P($G(^AUTNINS(ABM("I"),2)),U) ;abm*2.6*10 HEAT73780
  1. ;I $D(ABMY("TYP")) Q:ABMY("TYP")'[$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,ABM("I"),".211","I"),1,"I") ;abm*2.6*10 HEAT73780 ;abm*2.6*21 IHS/SD/SDR VMBP RQMT_96
  1. I $D(ABMY("TYP")) Q:ABMY("TYP")'[("^"_$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,ABM("I"),".211","I"),1,"I")_"^") ;abm*2.6*10 HEAT73780 ;abm*2.6*21 IHS/SD/SDR VMBP RQMT_96
  1. I $D(ABMY("DT")),$G(ABMY("DT"))'="X",ABM("D")<ABMY("DT",1)!(ABM("D")>ABMY("DT",2)) Q
  1. I $D(ABMY("CLIN")),'$D(ABMY("CLIN",+$P(^ABMDCLM(DUZ(2),ABM,0),"^",6))) Q
  1. I $D(ABMY("VTYP")),'$D(ABMY("VTYP",+$P(^ABMDCLM(DUZ(2),ABM,0),"^",7))) Q
  1. I ABM("STA")'="X" S ABMP("HIT")=1 Q ;stop here if not closed claims
  1. ;I ABM("STA")="X",ABMY("DT")="V" S ABMP("HIT")=1 ;abm*2.6*9 HEAT43507 ;abm*2.6*10 HEAT80275
  1. I ABM("STA")="X",$G(ABMY("DT"))="V" S ABMP("HIT")=1 ;abm*2.6*9 HEAT43507 ;abm*2.6*10 HEAT80275
  1. S ABMXFLG=0,ABMDFLG=0
  1. I '$D(ABMY("CLOS")) S ABMXFLG=1
  1. I '$D(ABMY("DT")) S ABMDFLG=1
  1. S ABMY("CIEN")=99999
  1. F S ABMY("CIEN")=$O(^ABMDCLM(DUZ(2),ABM,69,ABMY("CIEN")),-1) Q:+ABMY("CIEN")=0 D Q:ABMXFLG=1
  1. .Q:$P($G(^ABMDCLM(DUZ(2),ABM,69,ABMY("CIEN"),0)),U,3)'="C" ;closed only
  1. .S ABMY("CLOSER")=$P($G(^ABMDCLM(DUZ(2),ABM,69,ABMY("CIEN"),0)),U,2)
  1. .I $D(ABMY("CLOS")),ABMY("CLOSER")=ABMY("CLOS") S ABMXFLG=1
  1. .S ABM("REAS")=$P($G(^ABMDCLM(DUZ(2),ABM,69,ABMY("CIEN"),0)),U,4)
  1. .S ABMY("CLDT")=$P($P($G(^ABMDCLM(DUZ(2),ABM,69,ABMY("CIEN"),0)),U),".")
  1. .I $D(ABMY("DT")),($G(ABMY("DT"))="X") D
  1. ..Q:(ABMY("CLDT")<ABMY("DT",1)!(ABMY("CLDT")>ABMY("DT",2)))
  1. ..S ABMDFLG=1
  1. .;the below code counts how many times it has been closed, if we are looking for closed
  1. S ABMY("CIEN")=0
  1. F S ABMY("CIEN")=$O(^ABMDCLM(DUZ(2),ABM,69,ABMY("CIEN"))) Q:+ABMY("CIEN")=0 D
  1. .Q:$P($G(^ABMDCLM(DUZ(2),ABM,69,ABMY("CIEN"),0)),U,3)'="C" ;closed only
  1. .S ABMCLSCT=+$G(ABMCLSCT)+1
  1. Q:ABMXFLG=0
  1. Q:ABMDFLG=0
  1. S ABMP("HIT")=1 ;we want this one!
  1. Q
  1. ;
  1. DX ;EP
  1. ;I 'ABMY("DX",1)!'ABMY("DX",2) G DX2 ;abm*2.6*1 HEAT7633
  1. ;I $G(ABMY("DX",1))=""!($G(ABMY("DX",2))="") G DX2 ;abm*2.6*1 HEAT7633 ;abm*2.6*14 ICD10 009
  1. I (+$G(ABMY("DXANS"))'=10)&($G(ABMY("DX",1))=""!($G(ABMY("DX",2))="")) G DX2 ;abm*2.6*14 ICD10 009
  1. ;I (+$G(ABMY("DXANS"))'=9)&($G(ABMY("DX",3))=""!($G(ABMY("DX",4))="")) G DX2 ;abm*2.6*14 ICD10 009
  1. ;S ABM("DX")=0,ABM("DX","HIT")=0,ABM("LP")=$S($D(ABMY("DX","ALL")):10,1:1) ;abm*2.6*14 ICD10 009
  1. S ABM("DX")=0 ;abm*2.6*14 ICD10 009
  1. S ABM("DX","HIT")=0 ;abm*2.6*14 ICD10 009
  1. S ABM("LP")=$S($D(ABMY("DX","ALL"))!$D(ABMY("DX10","ALL")):10,1:1) ;abm*2.6*14 ICD10 009
  1. F ABM("II")=1:1:ABM("LP") S ABM("DX")=$O(^ABMDBILL(DUZ(2),ABM,17,"C",ABM("DX"))) Q:'ABM("DX") D Q:ABM("DX","HIT")
  1. .S ABM("DX")=$O(^ABMDBILL(DUZ(2),ABM,17,"C",ABM("DX"),""))
  1. .Q:'$D(^ABMDBILL(DUZ(2),ABM,17,ABM("DX"),0)) S ABM("DX",0)=$P(^(0),U)
  1. .;S ABM("DX",0)=$P($$DX^ABMCVAPI(ABM("DX"),ABM("D")),U,2) ;CSV-c ;abm*2.6*14 updated API call
  1. .S ABM("DX",0)=$$NUM^ABMCVAPI($P($$DX^ABMCVAPI(+ABM("DX"),ABM("D")),U,2)) ;CSV-c ;abm*2.6*14 updated API call and added NUM (HEAT165197 - CR3109)
  1. .;I ABM("DX",0)'>ABMY("DX",2),ABM("DX",0)'<ABMY("DX",1) S ABM("DX","HIT")=1 ;abm*2.6*14 ICD10 009
  1. .;start new code abm*2.6*14 ICD10 009 and CR3108
  1. .S ABMDXTYP=+$P($G(^ABMDBILL(DUZ(2),ABM,17,ABM("DX"),0)),U,6)
  1. .I ABMDXTYP=1,$G(ABMY("DXANS"))=9 Q
  1. .I ABMDXTYP=0,$G(ABMY("DXANS"))=10 Q
  1. .I (ABMDXTYP=0) D
  1. ..I (ABM("DX",0)'>ABMY("DX",2)),(ABM("DX",0)'<ABMY("DX",1)) S ABM("DX","HIT")=1
  1. .I (ABMDXTYP=1) D
  1. ..I '$D(ABMY("DX",3)) Q ;stop here if no data at ABMY("DX",3) ;abm*2.6*21 IHS/SD/SDR HEAT184442
  1. ..I (ABM("DX",0)'>ABMY("DX",4)),(ABM("DX",0)'<ABMY("DX",3)) S ABM("DX","HIT")=1
  1. .;end new code ICD10 009 and CR3108
  1. Q
  1. ;
  1. DX2 ;EP
  1. Q
  1. ;
  1. PX I '+ABMY("PX",1)!'+ABMY("PX",2) Q
  1. I ABM("PX")="BILL" S ABM("PX","HIT")=0 N I F I=21,27,35,37,39 D Q:ABM("PX","HIT")
  1. .N J S J=0 F S J=$O(^ABMDBILL(DUZ(2),ABM,I,J)) Q:'J D
  1. ..S ABM("CPT")=$P(^ABMDBILL(DUZ(2),ABM,I,J,0),U)
  1. ..Q:ABM("CPT")>+ABMY("PX",2)
  1. ..Q:ABM("CPT")<+ABMY("PX",1)
  1. ..S ABM("PX","HIT")=1
  1. I ABM("PX")="CLM" S ABM("PX")=0,ABM("PX","HIT")=0 S ABM("PX")=$O(^ABMDCLM(DUZ(2),ABM,21,"C",ABM("PX"))) Q:'ABM("PX") D Q:ABM("PX","HIT")
  1. .S ABM("PX")=$O(^ABMDCLM(DUZ(2),ABM,21,"C",ABM("PX"),""))
  1. .Q:'$D(^ABMDCLM(DUZ(2),ABM,21,ABM("PX"),0)) S ABM("PX",0)=$P(^(0),U)
  1. .Q:+ABM("PX",0)>ABMY("PX",2)
  1. .Q:+ABM("PX",0)<ABMY("PX",1)
  1. .S ABM("PX","HIT")=1
  1. Q
  1. CANCEL ;EP for checking Claim file data parameters
  1. Q:'$D(^ABMCCLMS(DUZ(2),ABM,0))
  1. S ABMCREC=$G(^ABMCCLMS(DUZ(2),ABM,0))
  1. S ABM("VT")=$P(ABMCREC,U,7)
  1. S ABM("VLOC")=$P(ABMCREC,U,3)
  1. S ABM("AINS")=$P(ABMCREC,U,8)
  1. S ABM("PDFN")=$P(ABMCREC,U)
  1. S ABM("CL")=$P(ABMCREC,U,6)
  1. S ABM("CANC")=$P($G(^ABMCCLMS(DUZ(2),ABM,1)),U,4)
  1. S ABM("CDT")=$P($P($G(^ABMCCLMS(DUZ(2),ABM,1)),U,5),".")
  1. S ABM("CR")=$P($G(^ABMCCLMS(DUZ(2),ABM,1)),U,8)
  1. I $D(ABMY("REASON")) Q:'$D(ABMY("REASON",ABM("CR")))
  1. Q:ABM("VLOC")=""!(ABM("AINS")="")!(ABM("PDFN")="")!(ABM("CDT")="")!(ABM("VT")="")!(ABM("CL")="")
  1. Q:'$D(^AUTNINS(ABM("AINS"),0))
  1. I $D(ABMY("DX")) S ABM("DX","HIT")=0,ABM("DX")="CLM" D DX
  1. I $D(ABMY("PX")) S ABM("PX","HIT")=0,ABM("PX")="CLM" D PX
  1. I $D(ABMY("PRV")),'$D(^ABMCCLMS(DUZ(2),ABM,41,"B",ABMY("PRV"))) Q
  1. I $D(ABMY("PAT")),ABMY("PAT")'=ABM("PDFN") Q
  1. I $D(ABMY("LOC")),ABMY("LOC")'=ABM("VLOC") Q
  1. I $D(ABMY("INS")),ABMY("INS")'=ABM("AINS") Q
  1. I $G(ABMY("PTYP"))=2,$P($G(^AUPNPAT(ABM("PDFN"),11)),U,12)'="I" Q
  1. I $G(ABMY("PTYP"))=1,$P($G(^AUPNPAT(ABM("PDFN"),11)),U,12)="I" Q
  1. ;I $D(ABMY("TYP")) Q:ABMY("TYP")'[$P($G(^AUTNINS(ABM("AINS"),2)),U) ;abm*2.6*10 HEAT73780
  1. I $D(ABMY("TYP")) Q:ABMY("TYP")'[$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,ABM("AINS"),".211","I"),1,"I") ;abm*2.6*10 HEAT73780
  1. I $D(ABMY("DT")),ABM("CDT")<ABMY("DT",1)!(ABM("CDT")>ABMY("DT",2)) Q
  1. I $D(ABMY("CLIN")),'$D(ABMY("CLIN",+$P(^ABMCCLMS(DUZ(2),ABM,0),"^",6))) Q
  1. I $D(ABMY("VTYP")),'$D(ABMY("VTYP",+$P(^ABMCCLMS(DUZ(2),ABM,0),"^",7))) Q
  1. I $D(ABMY("CANC")),(ABM("CANC")'=ABMY("CANC")) Q
  1. S ABMP("HIT")=1
  1. Q
  1. INCOM(ABM,ABMTEMP,ABMYTEMP) ;EP - determine parameters for claims with pending status
  1. Q:$P($G(^ABMDCLM(DUZ(2),ABM,0)),U,4)'="P"
  1. ;is the provider involved with this claim?
  1. I $D(ABMY("PRV")),'$D(^ABMDCLM(DUZ(2),ABM,41,"B",ABMY("PRV"))) Q
  1. S ABMREC0=$G(^ABMDCLM(DUZ(2),ABM,0))
  1. S ABMREC7=$G(^ABMDCLM(DUZ(2),ABM,7))
  1. S ABMTEMP("PATIENT")=$P(ABMREC0,U) Q:ABMTEMP("PATIENT")=""
  1. I $G(ABMY("PAT"))'="" Q:ABMY("PAT")'=ABMTEMP("PATIENT")
  1. S ABMTEMP("ELIGIBILITY STATUS")=$P($G(^AUPNPAT(ABMTEMP("PATIENT"),11)),U,11)
  1. I $G(ABMY("PTYP"))'="" Q:ABMTEMP("ELIGIBILITY STATUS")'=ABMY("PTYP")
  1. S ABMTEMP("ENCOUNTER DATE")=$P(ABMREC0,U,2)
  1. S ABMTEMP("LOCATION")=$P(ABMREC0,U,3)
  1. I $G(ABMY("LOC"))'="" Q:ABMTEMP("LOCATION")'=ABMY("LOC")
  1. S ABMTEMP("CLINIC")=$P(ABMREC0,U,6)
  1. I ABMTEMP("CLINIC")'="",$D(ABMY("CLIN")) Q:'$D(ABMY("CLIN",ABMTEMP("CLINIC")))
  1. S ABMTEMP("VISIT TYPE")=$P(ABMREC0,U,7)
  1. ;I ABMTEMP("VISIT TYPE"),$D(ABMY("VTYP")) Q:'$D(ABMY("CLIN",ABMTEMP("VISIT TYPE"))) ;abm*2.6*21 IHS/SD/SDR HEAT186137
  1. I ABMTEMP("VISIT TYPE"),$D(ABMY("VTYP")) Q:'$D(ABMY("VTYP",ABMTEMP("VISIT TYPE"))) ;abm*2.6*21 IHS/SD/SDR HEAT186137
  1. S ABMTEMP("ACTIVE INSURER")=$P(ABMREC0,U,8)
  1. I $G(ABMY("INS"))'="" Q:ABMY("INS")'=ABMTEMP("ACTIVE INSURER")
  1. ;I ABMTEMP("ACTIVE INSURER")'="" S ABMTEMP("BILLING ENTITY")=$P($G(^AUTNINS(ABMTEMP("ACTIVE INSURER"),2)),U) ;abm*2.6*10 HEAT73780
  1. I ABMTEMP("ACTIVE INSURER")'="" S ABMTEMP("BILLING ENTITY")=$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,ABMTEMP("ACTIVE INSURER"),".211","I"),1,"I") ;abm*2.6*10 HEAT73780
  1. S:ABMTEMP("ACTIVE INSURER")="" ABMTEMP("ACTIVE INSURER")="NO COVERAGE FOUND"
  1. I $G(ABMYTEMP("TYP"))'="" Q:ABMYTEMP("TYP")'[(ABMTEMP("BILLING ENTITY"))
  1. S ABMTEMP("PS")=$P(ABMREC0,U,18)
  1. I $D(ABMY("REASON")) Q:'$D(ABMY("REASON",ABMTEMP("PS")))
  1. S ABMTEMP("PS UPDATER")=$P(ABMREC0,U,19)
  1. I $G(ABMY("STATUS UPDATER"))'="" Q:ABMTEMP("PS UPDATER")'=$G(ABMY("STATUS UPDATER"))
  1. S ABMTEMP("VISIT DATE")=$P(ABMREC7,U)
  1. S ABMTEMP("PS REASON")=$S(ABMTEMP("PS")'="":$P($G(^ABMPSTAT(ABMTEMP("PS"),0)),U),1:"UNDEFINED")
  1. S ABMP("HIT")=1
  1. Q