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

ABMTALLY.m

Go to the documentation of this file.
  1. ABMTALLY ; IHS/SD/SDR - Monthly tally report - 8/19/2005 1:28:34 PM
  1. ;;2.6;IHS Third Party Billing;**1**;NOV 12, 2009
  1. ;
  1. ; IHS/SD/SDR - v2.5 p10 - IM18370
  1. ; New report
  1. ; IHS/SD/SDR - abm*2.6*1 - HEAT3073 - fix <SUBSCR>COMPUTE+45^ABMTALLY
  1. ;
  1. ;Report to count:
  1. ; Number of visits (total; with and without TPB coverage)
  1. ; Number of claims (total; divided by claim status)
  1. ; Number of bills (total; divided by billed amount and outstanding)
  1. ; User will be prompted for (this will also be the sort order):
  1. ; Visit Location(s)
  1. ; Clinic Type(s)
  1. ; Date range
  1. ;OPTION: ABMD RP TALLY^VISIT/CLAIM/BILL TALLY REPORT
  1. K ABM,ABMY
  1. S ABM("RTYP")=1
  1. S ABM("RTYP","NM")="TALLY LISTING"
  1. ;
  1. SEL D LOOP Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. S ABM("HD",0)="LISTING of TALLIED files "
  1. S ABM("LVL")=0
  1. D QUE
  1. Q
  1. ;
  1. QUE ;
  1. S ZTRTN="COMPUTE^ABMTALLY"
  1. S ZTDESC="TALLED REPORT OF PCC/TPB/AR"
  1. S ZTSAVE("ABM*")=""
  1. K ZTSK
  1. ;S ABMFILE=$P($G(^DIC(4,DUZ(2),0)),U)_DT_".txt" ;abm*2.6*1 HEAT3073
  1. S ABMFILE=$TR($P($G(^DIC(4,DUZ(2),0)),U)_DT_".txt"," ","_") ;abm*2.6*1 HEAT3073
  1. S ABMPATH=$P($G(^ABMDPARM(DUZ(2),1,4)),U,7)
  1. S %ZIS("HFSNAME")=ABMPATH_ABMFILE
  1. S %ZIS("HFSMODE")="W"
  1. S %ZIS("B")="HFS"
  1. S %ZIS="QN"
  1. D ^%ZIS
  1. Q:POP
  1. S ZTIO="" ;force taskman NOT to use IO from here. TM gets confused and sends output to tmp.hfs
  1. ;file is transferred via ABMPATH and ABMFILE
  1. D ^%ZTLOAD
  1. I $G(ZTSK) D
  1. .W !,"Task # ",ZTSK," queued."
  1. .W !,"File to be created:"_ABMPATH_ABMFILE
  1. .D ^%ZISC
  1. D HOME^%ZIS
  1. K DIR
  1. S DIR(0)="E"
  1. D ^DIR
  1. Q
  1. ;
  1. LOOP ;
  1. ; Display current exclusion parameters
  1. S ABMY("X")="W $$SDT^ABMDUTL(X)"
  1. G XIT:$D(DUOUT)!$D(DTOUT)!$D(DIROUT)
  1. W !!?3,"EXCLUSION PARAMETERS Currently in Effect for RESTRICTING the EXPORT to:",!?3,"======================================================================="
  1. W !?3,"- Visit Location.....: "
  1. I $D(ABMY("LOC")) D
  1. .S ABMI=0
  1. .F S ABMI=$O(ABMY("LOC",ABMI)) Q:+ABMI=0 W !?12,$P(^DIC(4,ABMI,0),U)
  1. E W "ALL"
  1. I $D(ABMY("DT")) W !?3,"- Date Range....:"
  1. I S X=ABMY("DT",1) X ABMY("X") W " to: " S X=ABMY("DT",2) X ABMY("X")
  1. W !?3,"- Clinics...:"
  1. I $D(ABMY("CLIN")) D
  1. .S ABMI=0
  1. .F S ABMI=$O(ABMY("CLIN",ABMI)) Q:+ABMI=0 W !?12,$P(^DIC(40.7,ABMI,0),U)
  1. E W "ALL"
  1. PARM ;
  1. ; Choose additional exclusion parameters
  1. K DIR
  1. S DIR(0)="SO^1:LOCATION;2:DATE RANGE;3:CLINIC"
  1. S DIR("A")="Select ONE or MORE of the above EXCLUSION PARAMETERS"
  1. S DIR("?")="The report can be restricted to one or more of the listed parameters. A parameter can be removed by reselecting it and making a null entry."
  1. D ^DIR
  1. K DIR
  1. G XIT:$D(DIRUT)!$D(DIROUT)
  1. I Y=1!(Y=2)!(Y=3) D @($S(Y=3:"CLIN",Y=1:"LOC",1:"DT")_"^ABMTALLY") G LOOP
  1. Q
  1. ;
  1. COMPUTE ;
  1. S ABM("SUBR")="ABM-TALLY"
  1. K ^TMP("ABM-TALLY",$J)
  1. ;PCC DATA
  1. S ABMSDT=+$G(ABMY("DT",1)) ;start date
  1. S ABMEDT=$S(+$G(ABMY("DT",2))'=0:+$G(ABMY("DT",2)),1:9999999) ;end date
  1. S ABMVDT=ABMSDT-.01
  1. F S ABMVDT=$O(^AUPNVSIT("B",ABMVDT)) Q:+ABMVDT=0!(ABMVDT>ABMEDT) D
  1. .S ABMVIEN=0
  1. .F S ABMVIEN=$O(^AUPNVSIT("B",ABMVDT,ABMVIEN)) Q:+ABMVIEN=0 D
  1. ..S ABMVL=$P($G(^AUPNVSIT(ABMVIEN,0)),U,6)
  1. ..S:ABMVL="" ABMVL="NO VISIT LOCATION"
  1. ..I $D(ABMY("LOC"))&('$D(ABMY("LOC",ABMVL))) Q ;not selected visit location
  1. ..S ABMCLN=$P($G(^AUPNVSIT(ABMVIEN,0)),U,8)
  1. ..S:ABMCLN="" ABMCLN=99999
  1. ..I $D(ABMY("CLIN"))&('$D(ABMY("CLIN",ABMCLN))) Q ;not selected clinic
  1. ..S ABMSCAT=$P($G(^AUPNVSIT(ABMVIEN,0)),U,7) ;SERVICE CATEGORY
  1. ..S:ABMSCAT="" ABMSCAT="NO SERVICE CATEGORY"
  1. ..S ABMTPB=$P($G(^AUPNVSIT(ABMVIEN,0)),U,4)
  1. ..S ^TMP("ABM-TALLY",$J,"VTOT")=+$G(^TMP("ABM-TALLY",$J,"VTOT"))+1 ;total visits
  1. ..S ABMSTODT=$E(ABMVDT,1,5) ;month and year of visit for sorting
  1. ..I ABMTPB=1!(ABMTPB=2)!(ABMTPB=24)!(ABMTPB=25) S ^TMP("ABM-TALLY",$J,"PCC",ABMVL,ABMCLN,ABMSCAT,ABMSTODT,"CLM")=+$G(^TMP("ABM-TALLY",$J,"PCC",ABMVL,ABMCLN,ABMSCAT,ABMSTODT,"CLM"))+1 ;clinic cnt w/clm
  1. ..E S ^TMP("ABM-TALLY",$J,"PCC",ABMVL,ABMCLN,ABMSCAT,ABMSTODT,"NOCLM")=+$G(^TMP("ABM-TALLY",$J,"PCC",ABMVL,ABMCLN,ABMSCAT,ABMSTODT,"NOCLM"))+1
  1. ;
  1. ;CLAIM DATA
  1. S ABMCLMDT=ABMSDT-.01
  1. F S ABMCLMDT=$O(^ABMDCLM(DUZ(2),"AC",ABMCLMDT)) Q:+ABMCLMDT=0!(ABMCLMDT>ABMEDT) D
  1. .S ABMIEN=0
  1. .F S ABMIEN=$O(^ABMDCLM(DUZ(2),"AC",ABMCLMDT,ABMIEN)) Q:+ABMIEN=0 D
  1. ..S ABMVL=$P($G(^ABMDCLM(DUZ(2),ABMIEN,0)),U,3)
  1. ..S:ABMVL="" ABMVL="NO VISIT LOCATION" ;NO VISIT LOCATION
  1. ..I $D(ABMY("LOC"))&('$D(ABMY("LOC",ABMVL))) Q ;not selected visit location
  1. ..S ABMCLN=$P($G(^ABMDCLM(DUZ(2),ABMIEN,0)),U,6) ;CLINIC
  1. ..S:ABMCLN="" ABMCLN=99999
  1. ..I $D(ABMY("CLIN"))&('$D(ABMY("CLIN",ABMCLN))) Q ;not selected clinic
  1. ..S ABMVTYP=$P($G(^ABMDCLM(DUZ(2),ABMIEN,0)),U,7) ;VISIT TYPE
  1. ..S:ABMVTYP="" ABMVTYP="UNKNOWN"
  1. ..S ABMCLST=$P($G(^ABMDCLM(DUZ(2),ABMIEN,0)),U,4) ;CLAIM STATUS
  1. ..S:ABMCLST="" ABMCLST="UNKNOWN" ;abm*2.6*1 HEAT3073
  1. ..S ABMACTI=$P($G(^ABMDCLM(DUZ(2),ABMIEN,0)),U,8) ;ACTIVE INSURER
  1. ..S:ABMACTI'="" ABMITYP=$P($G(^AUTNINS(ABMACTI,2)),U)
  1. ..S:ABMACTI'="" ABMACTI=$P($G(^AUTNINS(ABMACTI,0)),U) ;
  1. ..I ABMACTI="" S ABMACTI="NO INSURER"
  1. ..I ABMITYP="" S ABMITYP="NO INS. TYPE"
  1. ..S ABMSTODT=$E(ABMCLMDT,1,5) ;month and year of visit for sorting
  1. ..S ^TMP("ABM-TALLY",$J,"CTOT")=+$G(^TMP("ABM-TALLY",$J,"CTOT"))+1 ;total claims
  1. ..S ^TMP("ABM-TALLY",$J,"TPB",ABMVL,ABMCLN,ABMVTYP,ABMSTODT,ABMCLST,ABMITYP,ABMACTI)=+$G(^TMP("ABM-TALLY",$J,"TPB",ABMVL,ABMCLN,ABMVTYP,ABMSTODT,ABMCLST,ABMITYP,ABMACTI))+1
  1. ;now get cancelled claim data
  1. S ABMCLMDT=ABMSDT-.01
  1. S ABMCLST="X" ;CLAIM STATUS
  1. F S ABMCLMDT=$O(^ABMCCLMS(DUZ(2),"AC",ABMCLMDT)) Q:+ABMCLMDT=0!(ABMCLMDT>ABMEDT) D
  1. .S ABMIEN=0
  1. .F S ABMIEN=$O(^ABMCCLMS(DUZ(2),"AC",ABMCLMDT,ABMIEN)) Q:+ABMIEN=0 D
  1. ..S ABMVL=$P($G(^ABMCCLMS(DUZ(2),ABMIEN,0)),U,3)
  1. ..S:ABMVL="" ABMVL="NO VISIT LOCATION" ;NO VISIT LOCATION
  1. ..I $D(ABMY("LOC"))&('$D(ABMY("LOC",ABMVL))) Q ;not selected visit location
  1. ..S ABMCLN=$P($G(^ABMCCLMS(DUZ(2),ABMIEN,0)),U,6) ;CLINIC
  1. ..S:ABMCLN="" ABMCLN=99999
  1. ..I $D(ABMY("CLIN"))&('$D(ABMY("CLIN",ABMCLN))) Q ;not selected clinic
  1. ..S ABMVTYP=$P($G(^ABMCCLMS(DUZ(2),ABMIEN,0)),U,7) ;VISIT TYPE
  1. ..S:ABMVTYP="" ABMVTYP="UNKNOWN"
  1. ..S ABMACTI=$P($G(^ABMCCLMS(DUZ(2),ABMIEN,0)),U,8) ;ACTIVE INSURER
  1. ..S:ABMACTI'="" ABMITYP=$P($G(^AUTNINS(ABMACTI,2)),U)
  1. ..S:ABMACTI'="" ABMACTI=$P($G(^AUTNINS(ABMACTI,0)),U)
  1. ..I ABMACTI="" S ABMACTI="NO INSURER"
  1. ..I ABMITYP="" S ABMITYP="NO INS. TYPE"
  1. ..S ABMSTODT=$E(ABMCLMDT,1,5) ;month and year of visit for sorting
  1. ..S ^TMP("ABM-TALLY",$J,"CTOT")=+$G(^TMP("ABM-TALLY",$J,"CTOT"))+1 ;total claims
  1. ..S ^TMP("ABM-TALLY",$J,"TPB",ABMVL,ABMCLN,ABMVTYP,ABMSTODT,ABMCLST,ABMITYP,ABMACTI)=+$G(^TMP("ABM-TALLY",$J,"TPB",ABMVL,ABMCLN,ABMVTYP,ABMSTODT,ABMCLST,ABMITYP,ABMACTI))+1
  1. ;
  1. ;BILL DATA
  1. S ABMBDT=ABMSDT-.01
  1. F S ABMBDT=$O(^BARBL(DUZ(2),"F",ABMBDT)) Q:+ABMBDT=0!(ABMBDT>ABMEDT) D
  1. .S ABMBIEN=0
  1. .F S ABMBIEN=$O(^BARBL(DUZ(2),"F",ABMBDT,ABMBIEN)) Q:+ABMBIEN=0 D
  1. ..S ABMACCTI=$P($G(^BARBL(DUZ(2),ABMBIEN,0)),U,3)
  1. ..S ABMACCT=$P($G(^BARAC(DUZ(2),ABMACCTI,0)),U)
  1. ..I (ABMACCT'["AUTNINS")&(ABMACCT'["AUPNDPT") Q ;only insurer/patient entries
  1. ..I ABMACCT[("AUTNINS") S ABMINS=$P($G(@(U_$P(ABMACCT,";",2)_+ABMACCT_",0)")),U)
  1. ..S:ABMINS="" ABMINS="NO INSURER"
  1. ..S D0=ABMACCTI,ABMITYP=$$VAL^BARVPM(8) ;insurer type
  1. ..S ABMVL=$P($G(^BARBL(DUZ(2),ABMBIEN,1)),U,8) ;visit location
  1. ..S:ABMVL="" ABMVL="NO VISIT LOCATION" ;NO VISIT LOCATION
  1. ..I $D(ABMY("LOC"))&('$D(ABMY("LOC",ABMVL))) Q ;not selected visit location
  1. ..S ABMCLN=$P($G(^BARBL(DUZ(2),ABMBIEN,1)),U,12) ;clinic
  1. ..S:ABMCLN="" ABMCLN=99999
  1. ..I $D(ABMY("CLIN"))&('$D(ABMY("CLIN",ABMCLN))) Q ;not selected clinic
  1. ..S ABMVTYP=$P($G(^BARBL(DUZ(2),ABMBIEN,1)),U,14) ;VISIT TYPE
  1. ..S:ABMVTYP="" ABMVTYP="UNKNOWN"
  1. ..S ABMSTODT=$E(ABMBDT,1,5) ;month and year of visit for sorting
  1. ..S ABMBLST=$$VAL^BAR3PINQ(ABMBIEN,"B",.04) ;bill status
  1. ..Q:ABMBLST="" ;NO BILL STATUS
  1. ..S ABMBILL=$P($G(^BARBL(DUZ(2),ABMBIEN,0)),U,13) ;amount billed
  1. ..S ABMCURR=$P($G(^BARBL(DUZ(2),ABMBIEN,0)),U,15) ;current bill amount
  1. ..S ^TMP("ABM-TALLY",$J,"BTOT")=+$G(^TMP("ABM-TALLY",$J,"BTOT"))+1 ;total bills
  1. ..S ^TMP("ABM-TALLY",$J,"BAR",ABMVL,ABMCLN,ABMVTYP,ABMSTODT,ABMBLST,ABMITYP,ABMINS)=+$G(^TMP("ABM-TALLY",$J,"BAR",ABMVL,ABMCLN,ABMVTYP,ABMSTODT,ABMBLST,ABMITYP,ABMINS))+1
  1. ..S ^TMP("ABM-TALLY",$J,"BAR-BILLED",ABMVL,ABMCLN,ABMVTYP,ABMSTODT,ABMBLST,ABMITYP,ABMINS)=+$G(^TMP("ABM-TALLY",$J,"BAR-BILLED",ABMVL,ABMCLN,ABMVTYP,ABMSTODT,ABMBLST,ABMITYP,ABMINS))+ABMBILL
  1. ..S ^TMP("ABM-TALLY",$J,"TBILLED")=+$G(^TMP("ABM-TALLY",$J,"TBILLED"))+ABMBILL
  1. ..S ^TMP("ABM-TALLY",$J,"BAR-CBILLED",ABMVL,ABMCLN,ABMVTYP,ABMSTODT,ABMBLST,ABMITYP,ABMINS)=+$G(^TMP("ABM-TALLY",$J,"BAR-CBILLED",ABMVL,ABMCLN,ABMVTYP,ABMSTODT,ABMBLST,ABMITYP,ABMINS))+ABMCURR
  1. ..S ^TMP("ABM-TALLY",$J,"TCBILLED")=+$G(^TMP("ABM-TALLY",$J,"TCBILLED"))+ABMCURR
  1. ..; now get transaction data
  1. ..S ABMTRIEN=0
  1. ..F S ABMTRIEN=$O(^BARTR(DUZ(2),"AC",ABMBIEN,ABMTRIEN)) Q:+ABMTRIEN=0 D
  1. ...S (ABM(1),ABM(2),ABM(3),ABM(4))=0
  1. ...I +ABMTRIEN<ABMSDT!(+ABMTRIEN>ABMEDT) Q ;outside date range
  1. ...D TRANS^ABMTALL2
  1. ...S ABMTR("ADJ CAT")=$P(ABMTR(1),U,2) ; Adjustment Category
  1. ...I ",3,4,13,14,15,16,19,20,"'[(","_ABMTR("ADJ CAT")_",")&(",40,49,39,108,503,"'[(","_ABMTR("T")_",")) Q
  1. ...S:(ABMTR("T")=49!(ABMTR("T")=503)) ABM(1)=ABMTR("CR-DB")
  1. ...S:ABMTR("T")=40 ABM(2)=ABMTR("CR-DB")
  1. ...S:(",3,4,13,14,15,16,20,"[(","_ABMTR("ADJ CAT")_",")) ABM(3)=ABMTR("CR-DB")
  1. ...S:ABMTR("T")=108 ABM(3)=ABMTR("CR-DB")
  1. ...S:(ABMTR("T")=39!(ABMTR("ADJ CAT")=19)) ABM(4)=ABMTR("CR-DB")
  1. ...S ^TMP("ABM-TALLY",$J,"PAYMENT",ABMVL,ABMCLN,ABMVTYP,ABMSTODT,ABMBLST,ABMITYP,ABMINS)=+$G(^TMP("ABM-TALLY",$J,"PAYMENT",ABMVL,ABMCLN,ABMVTYP,ABMSTODT,ABMBLST,ABMITYP,ABMINS))+ABM(2)
  1. ...S ^TMP("ABM-TALLY",$J,"TPAY")=+$G(^TMP("ABM-TALLY",$J,"TPAY"))+ABM(2)
  1. ...S ^TMP("ABM-TALLY",$J,"ADJUST",ABMVL,ABMCLN,ABMVTYP,ABMSTODT,ABMBLST,ABMITYP,ABMINS)=+$G(^TMP("ABM-TALLY",$J,"ADJUST",ABMVL,ABMCLN,ABMVTYP,ABMSTODT,ABMBLST,ABMITYP,ABMINS))+ABM(3)
  1. ...S ^TMP("ABM-TALLY",$J,"TADJ")=+$G(^TMP("ABM-TALLY",$J,"TADJ"))+ABM(3)
  1. ...S ^TMP("ABM-TALLY",$J,"REFUND",ABMVL,ABMCLN,ABMVTYP,ABMSTODT,ABMBLST,ABMITYP,ABMINS)=+$G(^TMP("ABM-TALLY",$J,"REFUND",ABMVL,ABMCLN,ABMVTYP,ABMSTODT,ABMBLST,ABMITYP,ABMINS))+ABM(4)
  1. ...S ^TMP("ABM-TALLY",$J,"TREF")=+$G(^TMP("ABM-TALLY",$J,"TREF"))+ABM(4)
  1. D OPEN^%ZISH("ABMTALLY",ABMPATH,ABMFILE,"W")
  1. Q:POP
  1. U IO
  1. D OUTPUT ;write data
  1. D CLOSE^%ZISH("ABMTALLY")
  1. K ^TMP("ABM-TALLY",$J)
  1. Q
  1. OUTPUT ;
  1. D OUTPUT^ABMTALL2
  1. Q
  1. LOC ;EP
  1. W ! K DIC,ABMY("LOC")
  1. S DIC="^BAR(90052.05,DUZ(2),"
  1. S DIC(0)="AEMQ"
  1. S DIC("A")="Select LOCATION: ALL//"
  1. F D Q:+Y<0
  1. .I $D(ABMY("LOC")) S DIC("A")="Select Another Location: "
  1. .D ^DIC
  1. .Q:+Y<0
  1. .S ABMY("LOC",+Y)=""
  1. I '$D(ABMY("LOC")) D
  1. .I $D(DUOUT) K ABMY("SORT") Q
  1. .W "ALL"
  1. K DIC
  1. Q
  1. DT ;EP
  1. K DIR,ABMY("DT")
  1. Q:$D(DIRUT)
  1. S ABMY("DT")="E"
  1. S Y="DATE"
  1. W !!," ============ Entry of ",Y," Range =============",!
  1. S DIR("A")="Enter STARTING "_Y_" for the Report"
  1. S DIR(0)="DO^::EP"
  1. D ^DIR
  1. G DT:$D(DIRUT)
  1. S ABMY("DT",1)=Y
  1. W !
  1. S DIR("A")="Enter ENDING DATE for the Report"
  1. D ^DIR
  1. K DIR
  1. G DT:$D(DIRUT)
  1. S ABMY("DT",2)=Y
  1. I ABMY("DT",1)>ABMY("DT",2) W !!,*7,"INPUT ERROR: Start Date is Greater than than the End Date, TRY AGAIN!",!! G DT
  1. Q
  1. CLIN ;SELECT CLINICS
  1. K ABMY("CLIN")
  1. S DIC="^DIC(40.7,"
  1. S DIC(0)="AEMQ"
  1. S DIC("A")="Select Clinic: ALL// "
  1. F D Q:+Y<0
  1. .I $D(ABMY("CLIN")) S DIC("A")="Select Another Clinic: "
  1. .D ^DIC
  1. .Q:+Y<0
  1. .S ABMY("CLIN",+Y)=""
  1. I '$D(ABMY("CLIN")) D
  1. .I $D(DUOUT) K ABMY("SORT") Q
  1. .W "ALL"
  1. K DIC
  1. Q
  1. XIT ;
  1. K ABMY("I"),ABMY("X"),DIR
  1. Q
  1. HDR ;
  1. I $D(ABMY("LOC")) S ABM("TXT")=$P(^DIC(4,ABMY("LOC"),0),U),ABM("CONJ")="at " D CHK
  1. Q:$G(ABMY("DT",1))="" ;no dates
  1. S ABM("CONJ")="with "
  1. S ABM("TXT")="Edit Date" D CHK
  1. S ABM("CONJ")="from ",ABM("TXT")=$$SDT^ABMDUTL(ABMY("DT",1)) D CHK
  1. S ABM("CONJ")="to ",ABM("TXT")=$$SDT^ABMDUTL(ABMY("DT",2)) D CHK
  1. Q
  1. WHD ;EP for writing Report Header
  1. W $$EN^ABMVDF("IOF"),!
  1. I $D(ABM("PRIVACY")) W ?($S($D(ABM(132)):34,1:8)),"WARNING: Confidential Patient Information, Privacy Act Applies",!
  1. K ABM("LINE") S $P(ABM("LINE"),"=",$S($D(ABM(132)):132,1:80))="" W ABM("LINE"),!
  1. W ABM("HD",0),?$S($D(ABM(132)):108,1:57) S Y=DT X ^DD("DD") W Y," Page ",ABM("PG")
  1. W:$G(ABM("HD",1))]"" !,ABM("HD",1)
  1. W:$G(ABM("HD",2))]"" !,ABM("HD",2)
  1. W !,ABM("LINE") K ABM("LINE")
  1. Q
  1. CHK I ($L(ABM("HD",ABM("LVL")))+1+$L(ABM("CONJ"))+$L(ABM("TXT")))<($S($D(ABM(132)):104,1:52)+$S(ABM("LVL")>0:28,1:0)) S ABM("HD",ABM("LVL"))=ABM("HD",ABM("LVL"))_" "_ABM("CONJ")_ABM("TXT")
  1. E S ABM("LVL")=ABM("LVL")+1,ABM("HD",ABM("LVL"))=ABM("CONJ")_ABM("TXT")
  1. Q
  1. GETSVCAT(ABMCAT) ;EP-GET THE FULL SERVICE CATEGORY NAME
  1. Q $P($P(ABMCATS,ABMCAT_":",2),";")