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

ACHSRPU.m

Go to the documentation of this file.
  1. ACHSRPU ; IHS/ITSC/PMF - PRINT UNIVERSAL 843 FORMS ;JUL 10, 2008
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;**6,7,11,12,13,14,15,16,18,19,20,22,23,27**;JUN 11,2001;Build 43
  1. ;ITSC/SET/JVK ACHS*3.1*12 12/22/04 add DHHS #
  1. ;ACHS*3.1*13 11/17/06 IHS/OIT/FCJ ins fr Pol file, added address, MCD check first entry
  1. ;ACHS*3.1*14 9/16/07 IHS.OIT.FCJ E-SIG CHG
  1. ; 3/17/08 IHS/OIT/LMH test for pol holder #IM27991 & 28424
  1. ;ACHS*3.1*15 12/01/08 IHS.OIT.FCJ FIX MED & contract #
  1. ;ACHS*3.1*16 10/23/09 IHS.OIT.FCJ 2 DIG FY
  1. ;ACHS*3.1*18 5/20/10;IHS/OIT/ABK Q on for loop
  1. ;ACHS*3.1*27 12/12/2017 IHS.OIT.FCJ NEW MBI CHANGES
  1. ;
  1. TESTPRNT ;EP. (For test print.)
  1. ;ACHS*3.1*16 10/26/09;ACHS*3.1*19 CHG FF SECTION;ACHS*3.1*22 ADDED TEST FOR 585101
  1. S ACHSFF=$S($$ASF^ACHS(DUZ(2))=183052:"!!!!",($$ASF^ACHS(DUZ(2))=586212)!($$ASF^ACHS(DUZ(2))=585101):"!!!!!",1:"!!!!!!!!")
  1. W @ACHSFF
  1. I '$D(ACHSTPRT),"CS"[ACHSTYPE W !!!!!!,"**",$S(ACHSTYPE="C":"CANCELLATION**",1:"PO SUPPLEMENT DATED "_E(11)),"**",!
  1. ;W !!!!!!!!
  1. ;I '$D(ACHSTPRT),"CS"[ACHSTYPE W "******** ",$S(ACHSTYPE="C":"CANCELLATION ********",1:"SUPPLEMENT TO P.O. DATED "_E(11))
  1. INS ;
  1. ;
  1. S ACHSIPRM="N" ;SET PRIMARY INS FLAG
  1. D:'$D(ACHSTPRT) FORMAT ;GET INS INF
  1. S N="" ;INITIALIZE INS SUBSCRIPT
  1. S ACHSBZD=0
  1. ;
  1. PONUM ; -- Field 1 : DCR #, Document type, PDO number.
  1. ;
  1. U IO ;ACHS*3.1*16 12/01/08 IHS/OIT/FCJ
  1. ;ITSC/SET/JVK ACHS*3.1*11 12/22/04
  1. I ACHSORDN'="",ACHSORDN'="9-X99-99999" S ACHSDOFY=$P(^ACHSF(DUZ(2),"D",ACHSDIEN,0),U,27)
  1. I ACHSORDN="9-X99-99999" S ACHSDOFY="XXXX",ACHSCTYP=1
  1. I ACHSORDN'="",ACHSORDN'="9-X99-99999" S ACHSCTYP=$S($P($G(^ACHSF(DUZ(2),"D",ACHSDIEN,2)),U,9)'="":$P(^ACHSF(DUZ(2),"D",ACHSDIEN,2),U,9),1:"")
  1. I $D(ACHSCTYP),ACHSCTYP'="" S ACHSCTYP=$P(^ACHSCTYP(ACHSCTYP,0),U,2)
  1. I ACHSORDN="" S ACHSDOFY=ACHSACFY
  1. S ACHSDHHS="HHSI"_$P($G(^ACHSF(DUZ(2),0)),U,11)_ACHSDOFY_$E(ACHSORDN,3,5)_$E(ACHSORDN,7,11)_ACHSCTYP
  1. W ?20,"HHS #:",ACHSDHHS
  1. ;PAR-PRINT DCR # ON P.O.
  1. W:$$PARM^ACHS(2,18)="Y" ?ACHSTAB+50,"DCR:",ACHSDCR
  1. ;PAR-PRINT 3-DIGIT TYPE ON P.O.
  1. ;TYPE # ACHSTYPV FROM MAIN LOOP IN ACHSRP
  1. W ?ACHSTAB+57,$S($$PARM^ACHS(2,20)="Y":$S(ACHSTYPV=1:323,ACHSTYPV=2:324,1:325),1:"")
  1. ;;ACHS*3.1*22 ADDED 585101
  1. I $G(ACHSDIEN) S ACHSTAB2=$S(($$ASF^ACHS(DUZ(2))=586212)!($$ASF^ACHS(DUZ(2))=585101):ACHSTAB+64,1:ACHSTAB+61) W ?ACHSTAB2,$E($P(^ACHSF(DUZ(2),"D",ACHSDIEN,0),U,27),3),ACHSORDN,ACHSSF
  1. E W ?ACHSTAB+61,"0",ACHSORDN,ACHSSF ;ORDER NUM , EITHER CANCEL OR SUPPLEMENT NUM
  1. ;
  1. NAME ; -- Field 2 : Pat Ident
  1. W !!
  1. ;IF BLANKET ORDER SKIP AND GO TO ORDERING FAC
  1. I $D(ACHSBLKF) W !?ACHSTAB,"** BLANKET **" D G ORDFAC
  1. . F %=1:1:7 W ! W:$D(A(%)) ?ACHSTAB,A(%)
  1. ;
  1. W ?ACHSTAB,$G(A(2)) ;PAT NAME
  1. ;
  1. INSHLD ;Field 3.a. : Name of Pol Holder
  1. I ACHSIPRM="Y" D
  1. .S N=$O(I("P",N))
  1. .S ACHSIPRM=N
  1. .W ?ACHSTAB+55,$E(I(N,1),1,22)
  1. ;
  1. PATADRS ;Field 1 : Pat ID
  1. W !
  1. W ?ACHSTAB,$G(A(3)) ;PAT CITY, STATE ZIP
  1. ;
  1. INSNM ;Field 3.b. : Plan Name.
  1. I N'="" W:$D(I(N,2)) ?ACHSTAB+49,$E(I(N,2),1,29)
  1. ;
  1. SSN ;Field 1 : Pat ID SSN
  1. W !
  1. W ?ACHSTAB,$G(A(11))
  1. ;
  1. INSADRS ;Field 3.c. : Insurer's address.
  1. I N'="" W:$D(I(N,3)) ?ACHSTAB+48,I(N,3)
  1. ;
  1. W !
  1. ;CHECK SSN VER STATUS
  1. SSV ;
  1. ;V=VERIFIED BY SSA
  1. ;A=SSN ADDED BY SSA
  1. ;N=FAC SSN NOT EQUAL TO SSA SSN
  1. ;D=SSN MATCHES SSA BUT DATA DIFFERS
  1. ;P=PENDING VERIFICATION
  1. ;X=SSA COULD NOT VERIFY/SUPPLY SSN
  1. I $G(DFN) S ACHSSSNS=$$SSV^ACHSTX3(DFN) I "PVX"[ACHSSSNS W ?ACHSTAB,ACHSSSNS
  1. ;
  1. ;Insurer's addrs, cont.
  1. I N'="" W ?ACHSTAB+48,$G(I(N,4))
  1. ;
  1. INSPOL ;Field 3.d. : Ins Pol #
  1. W !
  1. I N'="" W ?ACHSTAB+52,$G(I(N,5))
  1. ;
  1. FACHRN ;
  1. W !?ACHSTAB,$E($G(A(1)),1,27)
  1. ;
  1. INSTYP ;Field 3.e. : Ins Cov Type
  1. I N'="" W ?ACHSTAB+52,$G(I(N,6))
  1. ;
  1. AGESEX ;
  1. W !?ACHSTAB,$G(A(4))
  1. ;
  1. COMCODE ;
  1. W " ",$G(A(5))
  1. ;
  1. INSBDT ;Field 3.f. : Ins Eff Date
  1. W !
  1. I N'="" W ?ACHSTAB+53,$$FMTE^XLFDT($G(I(N,7)))
  1. ;
  1. DESC ;
  1. W !?ACHSTAB,"Desc: "
  1. W ?ACHSTAB+6,$G(A(7)) ;WRITE THE DESC
  1. ;
  1. INSEDT ;
  1. I N'="",$D(I(N,8)) W ?ACHSTAB+53,$$FMTE^XLFDT(I(N,8)) S N=""
  1. ;
  1. ORDFAC ;
  1. ;I ($G(B(4))=586212)!($G(B(4))=585101) W ! ;ACHS*3.1*19;ACHS 3.1*22 ADDED 585101
  1. I $G(B(4))=586212 W ! ;ACHS*3.1*19;ACHS 3.1*23
  1. I $G(B(4))=153780 W !!,?ACHSTAB,"PONCA TRIBE OF NEBRASKA" ;IHS.OIT.FCJ ACHS*3.1*19
  1. E W !!?ACHSTAB,$G(B(1)) ;ORD FAC NAME
  1. W ?ACHSTAB+25,"(",$G(B(4)),")" ;ORD FAC NUMBER
  1. ;
  1. INSOTH1 ;
  1. S N=$O(I("B",N)) ;MORE OTHER INSURANCE STUFF
  1. S:N=ACHSIPRM N=$O(I("B",N))
  1. W:(N'="") ?ACHSTAB+38,$P(I("B",N),U) ;INSURANCE TYPE
  1. ;
  1. ORDADRS1 ;
  1. W !?ACHSTAB,$G(B(2)) ;ORD FAC ADD
  1. ;
  1. INSOTH2 ;
  1. I N'="" W ?ACHSTAB+39,$P(I("B",N),U,2) ;INS EFF DT
  1. ;
  1. ORDADRS2 ;
  1. W !?ACHSTAB,$G(B(3)) ;ORD FAC ADD
  1. ;
  1. INSOTH3 ;OTHER INS BOX 3 h
  1. I N'="" D
  1. .S N=$O(I("B",N))
  1. .I N'="" D
  1. ..W ?ACHSTAB+38,$P(I("B",N),U)
  1. ..W !?ACHSTAB+39,$P(I("B",N),U,2),!
  1. ..S ACHSBZD=ACHSBZD+1
  1. ;
  1. BOX567 ;
  1. W:ACHSBZD=0 !! ;NO DATA FOR 3H SKIP LINES
  1. W:ACHSTYPV=1 ?ACHSTAB+11,"X" ;HOSPITAL
  1. W:ACHSTYPV=2 ?ACHSTAB+19,"X" ;DENTAL BOX 5,6,7
  1. W:ACHSTYPV=3 ?ACHSTAB+35,"X" ;OUTPATIENT
  1. ;
  1. INSOTH5 ;
  1. I N'="" D
  1. .S N=$O(I("B",N))
  1. .I N'="" D
  1. ..W ?ACHSTAB+38,$P(I("B",N),U)
  1. ..W !?ACHSTAB+39,$P(I("B",N),U,2),!
  1. ..S ACHSBZD=ACHSBZD+1 ;MORE OTHER INSURANCE 3h
  1. ;
  1. OPT ;
  1. ;W:$D(E(8)) ?ACHSTAB+57,E(8) ;COMMENTS
  1. ;
  1. AMT ;
  1. W:ACHSBZD'=2 !!
  1. W !
  1. W:$D(E(9)) ?ACHSTAB+3,E(9) ;EST CHARGES BOX 8
  1. ;
  1. CONT ;
  1. ;W:$D(F(6)) ?ACHSTAB+57,F(6) ;CONTRACT BOX
  1. ;
  1. CAN ;
  1. W:$D(F(7)) ?ACHSTAB+32,F(7) ;CONTRACT ACC # BOX 9
  1. ;
  1. OBJ ;
  1. W:$D(F(9)) ?ACHSTAB+62,F(9) ;OCC BOX 10
  1. ;
  1. FROMTO ;
  1. W !!
  1. W:$D(C(5)) ?ACHSTAB+20,C(5) ;AUTH FR DT BOX 11
  1. W:$D(R("D",1)) ?ACHSTAB+54,R("D",1) ;DIAG NAR BOX 13
  1. ;
  1. REF ;
  1. W !
  1. W:$D(C(6)) ?ACHSTAB+20,C(6) ;AUTH TO DT BOX 11
  1. W:$D(R("D",2)) ?ACHSTAB+39,R("D",2) ;DIAG NAR
  1. W !
  1. W:$D(R("P",1)) ?ACHSTAB+15,R("P",1) ;PROC NAR
  1. W ?ACHSTAB+27,"SCC: ",$G(F(8)) ;SCC
  1. W:$D(R("D",3)) ?ACHSTAB+39,R("D",3)
  1. W !
  1. W:$D(R("P",2)) ?ACHSTAB,R("P",2)
  1. W:$D(R(1)) ?ACHSTAB+55,R(1)
  1. W !
  1. W:$D(R("P",3)) ?ACHSTAB,R("P",3)
  1. W !
  1. W:$D(R("P",4)) ?ACHSTAB,R("P",4)
  1. W:$D(R(2)) ?ACHSTAB+55,R(2)
  1. W !!!
  1. ;
  1. RATE ;PRICING INFO SEGMENT
  1. ;ITSC/SET/JVK ACHS*3.1*11 PRINT MED PROV #
  1. I ACHSMPP W ?ACHSTAB+49,F(6) G SKIP
  1. ;IHS/SET/JVK ACHS*3.1*6 3/20/2003 PRT THE X IN APPROPRIATE BOX OF FORM
  1. I $G(D(10)) W ?ACHSTAB+D(10)-1,"X"
  1. E W ?ACHSTAB+49,"Open Market" G SKIP
  1. G:'$D(D(9)) SKIP
  1. ;ACHS*3.1*15 IHS.OIT.FCJ CHG NXT SECT TO PRT CONTRACT # DO NOT USE DEFAULTS FOR TRIBAL SITES
  1. I $P($G(^ACHSF(DUZ(2),0)),U,8)="Y" W ?ACHSTAB+49,D(9) G SKIP ;
  1. I $E(D(9),1,3)'="HHS",'$F("235^239^241^242^243^244^245^246^247^248^249^285",$E(D(9),1,3)) S D(9)="HHSI"_ACHSARCO_"-"_D(9) ;ACHS*3.1*15 ADDED HHSI
  1. I $E(D(9),1,3)'="HHS",$F("235^239^241^242^243^244^245^246^247^248^249^285",$E(D(9),1,3)) S D(9)="HHSI"_"-"_D(9)
  1. ;ITSC/SET/JVK ACHS*3.1*12
  1. ;W:$D(D(9)) ?ACHSTAB+49,D(9) ;
  1. S ACHSLTH=$L(D(9)) I $E(D(9),ACHSLTH)'="C" S D(9)=D(9)_"C" ;ITSC/SET/JVK ACHS*3.1*12
  1. ;I $D(D(9)) S ACHSLTH=$L(D(9)) I $E(D(9),1,3)'="HHS" S D(9)="HHSI"_ACHSARCO_D(9) ;ITSC/SET/JVK ACHS*3.1*13
  1. W:$D(D(9)) ?ACHSTAB+49,D(9) ;
  1. SKIP ;
  1. ;I ($$ASF^ACHS(DUZ(2))=586212)!($$ASF^ACHS(DUZ(2))=585101) W ! ;ACHS*3.1*19;ACHS*3.1*22 585101
  1. I $$ASF^ACHS(DUZ(2))=586212 W ! ;ACHS*3.1*19;ACHS*3.1*23 585101
  1. W !
  1. W:$D(D(11)) ?ACHSTAB+25,D(11)
  1. W !!
  1. ;CHANGE PER E-MAILS CONCERNING "Open Market" and "Medicare Rate" string
  1. ;being printed when boxes were already X'ed out
  1. I $G(D(12,1))'="" W ?ACHSTAB+D(12,1),"X" ;ACHSMRTI INPATIENT SERVICE
  1. I $G(D(12,2))'="" W ?ACHSTAB+D(12,2),"X" ;ACHSMRTO OUTPATIENT
  1. I $G(D(10))="" W ?ACHSTAB+52,$G(D(13))
  1. ;ITSC/SET/JVK ACHS*3.1*11 place an "x" if medicare provider
  1. I ACHSMPP W ?ACHSTAB+22,"X",?ACHSTAB+52,$G(D(13))
  1. W !
  1. W:$D(D(15)) ?ACHSTAB+52,D(15)
  1. SIG ;
  1. ;ITSC/SET/JVK ACHS*3.1*7 9/9/2003
  1. ;I '$D(ACHSESIG) S ACHSESIG=""
  1. W:ACHSESIG'="" !!?ACHSTAB,ACHSSIG,?ACHSTAB+31,$P(ACHSESIG,",",2)_" "_$P(ACHSESIG,",",1)," E-Signature",?ACHSTAB+66,ACHSEDTE
  1. W:ACHSESIG="" !!?ACHSTAB,ACHSSIG,?ACHSTAB+66,E(7)
  1. W:ACHSASIG'="" !!?ACHSTAB,$P(ACHSASIG,",",2)_" "_$P(ACHSASIG,",",1)," E-Signature",?ACHSTAB+46,ACHSADTE,?ACHSTAB+61,E(9)
  1. PROVIDER ;
  1. ;W !!!!!
  1. S ACHSTAB1=$S(($$ASF^ACHS(DUZ(2))=586212)!($$ASF^ACHS(DUZ(2))=585101):1,1:0) ;ACHS*3.1*19;ACHS*3.1*22
  1. W:ACHSASIG="" !! ;ACHS*3.1*14 9.16.07 IHS/OIT/FCJ ADDED LINE FEED
  1. I $$ASF^ACHS(DUZ(2))=202501 W !!
  1. E W !!! ;ACHS*3.1*14 9.16.07 IHS/OIT/FCJ REMOVED LINE FEED
  1. W:$D(D(1)) ?ACHSTAB+7,D(1)
  1. PROTELE ;
  1. W:$D(D(6)) ?ACHSTAB+ACHSTAB1+53,D(6) ;ACHS*3.1*19
  1. PROADRS1 ;
  1. W !
  1. W:$D(D(2)) ?ACHSTAB+7,D(2)
  1. EIN ;
  1. W:$D(D(4)) ?ACHSTAB+47,D(4)
  1. PROADRS2 ;
  1. W !
  1. W:$D(D(3)) ?ACHSTAB+7,D(3)
  1. UPIN ;ACHS*3.1*16 IHS.OIT.FCJ CHANGED UPIN TO DUNS
  1. W:$D(D(8)) ?ACHSTAB+47,D(8)
  1. FAX ;ACHS*3.1*19
  1. W !
  1. W:$D(D("FAX")) ?ACHSTAB+47,"FAX: ",D("FAX")
  1. PROTYPE ;
  1. ;I $$PARM^ACHS(2,17)="Y",$D(D(7)) W ?ACHSTAB+9,D(7)
  1. PROCLAS ;
  1. W !
  1. I $D(D(14)) W:D(14)?1N.N ?ACHSTAB+D(14),"X"
  1. W !!!!!!
  1. ;
  1. S I=$O(^ACHS(4,0))
  1. W:ACHSDEST="F" ?ACHSTAB+44,$P($G(^ACHS(4,I,0)),U),!,?ACHSTAB,$P($G(^ACHS(4,I,0)),U,2)," ",$P($G(^ACHS(4,I,0)),U,3),",",$P($G(^DIC(5,$P($G(^ACHS(4,I,0)),U,4),0)),U,2)," ",$P($G(^ACHS(4,I,0)),U,5)
  1. W:ACHSDEST="I" ?ACHSTAB+44,B(1),!,?ACHSTAB,B(2)," ",B(3)
  1. W @IOF
  1. KILL ;
  1. ;
  1. I '$D(ACHSTPRT),$P(^AUTTLOC(DUZ(2),0),U,10)=202501 Q:ACHSL'=ACHSCPY ;ACHS*3.1*16 10/26/2009 IHS.OIT.FCJ ZUNI MULTIPLE COPIES PATCH
  1. K A,B,C,D,E,F,I,N,R,X
  1. Q
  1. ;
  1. FORMAT ;
  1. PVT ;
  1. Q:DFN=""
  1. S (DA,N)=0
  1. G MCR:'$D(^AUPNPRVT(DFN,11))
  1. PVT1 ;
  1. F S DA=$O(^AUPNPRVT(DFN,11,DA)) Q:'DA D
  1. . S N=N+1,ACHSINS=$G(^AUPNPRVT(DFN,11,DA,0))
  1. . D DINAPI
  1. . I ACHSBZD("OK")="N" S N=N-1 Q
  1. . F I=1:1:8 S I(N,I)="" ;ACHS*3.1*14 IHS/FCJ/OIT
  1. . ;ACHS*3.1*13 11/17/06 IHS/OIT/FCJ SPLIT NXT LINE-INFO FR POLICY FILE
  1. . ;S I(N,1)=$P(ACHSINS,U,4),I(N,2)=$P(ACHSINS,U),I(N,5)=$P(ACHSINS,U,2),I(N,6)=$P(ACHSINS,U,3),I(N,7)=$P(ACHSINS,U,6),I(N,8)=$P(ACHSINS,U,7)
  1. . S I(N,1)=$P(ACHSINS,U,4),I(N,2)=$P(ACHSINS,U)
  1. . ;ACHS*3.1*14 03/17/08 LMH test for policy holder
  1. . I $P(ACHSINS,U,8)'="",$D(^AUPN3PPH($P(ACHSINS,U,8),0)) D
  1. . .S I(N,5)=$P(^AUPN3PPH($P(ACHSINS,U,8),0),U,4)
  1. . .S I(N,6)=$P(^AUPN3PPH($P(ACHSINS,U,8),0),U,5)
  1. . ;ACHS*3.1*13 11/17/06 IHS/OIT/FCJ END OF CHANGES
  1. . S I(N,7)=$P(ACHSINS,U,6),I(N,8)=$P(ACHSINS,U,7)
  1. . S ACHSINS1=^AUTNINS(I(N,2),0),I(N,2)=$P(ACHSINS1,U),I(N,3)=$P(ACHSINS1,U,2) ;ACHS*3.1*13 11/17/06 IHS/OIT/FCJ
  1. . I $P(ACHSINS1,U,4),$D(^DIC(5,$P(ACHSINS1,U,4),0)) S X=$P(^(0),U,2),I(N,4)=$P(ACHSINS1,U,3)_", "_X_" "_$P(ACHSINS1,U,5)
  1. . S:$G(I(N,6)) I(N,6)=$P(^AUTTPIC(I(N,6),0),U)
  1. . I (ACHSIPRM="N"),((I(N,8)'<ACHSFDT)!(I(N,8)="")) S ACHSIPRM="Y",I("P",N)="" Q
  1. . S:$G(I(N,7)) I(N,7)=$$FMTE^XLFDT(I(N,7)) ;IHS/OIT/LMH ACHS*3.1*14 6/4/08
  1. . S:$G(I(N,8)) I(N,8)=$$FMTE^XLFDT(I(N,8)) ;IHS/OIT/LMH ACHS*3.1*14 6/4/08
  1. . S I("B",N)=$E(I(N,2),1,(38-$L(I(N,5))))_" "_I(N,5)_"^EFF:"_I(N,7)_" "_I(N,8)
  1. . K I(N)
  1. MCR ;
  1. S N=N+1
  1. G MCD:'$D(^AUPNMCR("B",DFN))
  1. S ACHSMR=N,ACHSMDFN=0,ACHSMDFN=$O(^AUPNMCR("B",DFN,ACHSMDFN)),ACHSINS=$G(^AUPNMCR(ACHSMDFN,0))
  1. ;G:$P(ACHSINS,U,3)="" MCD ;ACHS*3.1*27 NEED TO TEST FOR NEW MBI
  1. S ACHSMBI=$$GETMBI^AUPNMBI(DFN,DT,0) ;ACHS*3.1*27
  1. I +ACHSMBI<1 S ACHSMBI=+$P($G(^AUPNMCR(DFN,0)),U,3) S:$P(ACHSINS,U,4)'="" ACHSMBI=ACHSMBI_$P(^AUTTMCS($P(ACHSINS,U,4),0),U) ;ACHS*3.1*27
  1. G:ACHSMBI="" MCD ;ACHS*3.1*27
  1. D DINACK("^AUPNMCR")
  1. G MCD:ACHSBZD("OK")="N"
  1. ;
  1. ;S I(N,5)=$P(ACHSINS,U,3) ;ACHS*3.1*27
  1. S I(N,5)=ACHSMBI ;ACHS*3.1*27
  1. ;S:$P(ACHSINS,U,4)'="" I(N,5)=I(N,5)_$P(^AUTTMCS($P(ACHSINS,U,4),0),U)
  1. S I(N,1)=$S($D(^AUPNMCR(ACHSMDFN,21)):$P(^(21),U),'$D(^(21)):$P($G(^DPT(DFN,0)),U))
  1. D SET("^AUPNMCR")
  1. MCD ;
  1. G RRE:'$D(^AUPNMCD("B",DFN))
  1. ;ACHS*3.1*13 11/17/06 IHS/OIT/FCJ rewrote was only checking first med entry
  1. S ACHSMDFN=0,ACHSMR=N
  1. F S ACHSMDFN=$O(^AUPNMCD("B",DFN,ACHSMDFN)) Q:ACHSMDFN'?1N.N D Q:ACHSBZD("OK")="Y"
  1. .D DINACK("^AUPNMCD")
  1. .Q:ACHSBZD("OK")="N"
  1. .S ACHSINS=$G(^AUPNMCD(ACHSMDFN,0)),I(N,5)=$P(ACHSINS,U,3),I(N,1)=$P(ACHSINS,U,5)
  1. .D SET("^AUPNMCD")
  1. RRE ;
  1. G END:'$D(^AUPNRRE("B",DFN))
  1. S ACHSMDFN=0,ACHSMR=N,ACHSMDFN=$O(^AUPNRRE("B",DFN,ACHSMDFN))
  1. G:ACHSMDFN="" END
  1. ;
  1. D DINACK("^AUPNRRE")
  1. G END:ACHSBZD("OK")="N"
  1. S ACHSINS=$G(^AUPNRRE(ACHSMDFN,0)) ;ACHS*3.1*27
  1. S ACHSMBI=$$GETMBI^AUPNMBI(DFN,DT,0) ;ACHS*3.1*27
  1. I +ACHSMBI<1 S ACHSMBI=+$P(ACHSINS,U,4) S:$P(ACHSINS,U,3)'="" ACHSMBI=$P(^AUTTRRP($P(ACHSINS,U,3),0),U)_ACHSMBI ;ACHS*3.1*27
  1. G:ACHSMBI="" END ;ACHS*3.1*27
  1. S I(N,5)=ACHSMBI ;ACHS*3.1*27
  1. S I(N,1)=$S($D(^AUPNRRE(ACHSMDFN,21)):$P(^(21),U),'$D(^(21)):$P($G(^DPT(DFN,0)),U)) ;ACHS*3.1*27
  1. ;
  1. ;S ACHSINS=$G(^AUPNRRE(ACHSMDFN,0)),I(N,5)=$P(ACHSINS,U,3),I(N,1)=$P(ACHSINS,U,5) ;ACHS*3.1*27
  1. D SET("^AUPNRRE")
  1. END ;
  1. K ACHSMDFN,DA,ACHSGL,ACHSINS,ACHSINS1,ACHSMR,ACHSBZD
  1. Q
  1. ;
  1. SET(ACHSGL) ;
  1. S:$P(ACHSINS,U,2)'="" I(N,2)=$P($G(^AUTNINS($P(ACHSINS,U,2),0)),U)
  1. S DA=0
  1. F S DA=$O(@ACHSGL@(ACHSMDFN,11,DA)) Q:'DA D ;S N=N+1 dmh commented
  1. . S I(N,6)=$P(@ACHSGL@(ACHSMDFN,11,DA,0),U,3),I(N,7)=$P(^(0),U),I(N,8)=$P(^(0),U,2)
  1. . Q:(ACHSBZD("DT")<I(N,7)) ; -- ACHSBZD("DT") gets set from DINACK
  1. . Q:(I(N,8)'="")&(ACHSBZD("DT")>I(N,8)) ; -- ACHSBZD("DT") gets set from DINACK
  1. . I ACHSIPRM="N" S ACHSIPRM="Y",I("P",N)="" Q
  1. . S I(N,7)=$$FMTE^XLFDT(I(N,7))
  1. . S I(N,8)=$$FMTE^XLFDT(I(N,8))
  1. . S I("B",N)=$E(I(ACHSMR,2),1,(37-$L(I(ACHSMR,5))-$L(I(N,6))))_" "_I(ACHSMR,5)_" "_I(N,6)_"^EFF:"_I(N,7)_" "_I(N,8)
  1. . K:N'=ACHSMR I(N)
  1. . S N=N+1 ;dina moved this to here instead of at SET+3 1/15/97
  1. Q
  1. ;
  1. DINACK(ACHSINSZ) ;
  1. ;-- Check for elig at DOS Else, no print.
  1. ;-- ACHSINSZ contains the name of the ins global.
  1. ;
  1. S ACHSBZD("OK")="N"
  1. Q:'$D(C(5))
  1. S X=C(5),%DT=""
  1. D ^%DT
  1. S ACHSBZD("DT")=Y,ACHSBZD("I")=0
  1. ;{ABK, 6/10/10}F S ACHSBZD("I")=$O(@ACHSINSZ@(ACHSMDFN,11,ACHSBZD("I"))) Q:ACHSBZD("I")="" D Q:ACHSBZD("OK")="Y"
  1. F S ACHSBZD("I")=$O(@ACHSINSZ@(ACHSMDFN,11,ACHSBZD("I"))) Q:ACHSBZD("I")'?1N.N D Q:ACHSBZD("OK")="Y"
  1. . S ACHSBZD("REC")=@ACHSINSZ@(ACHSMDFN,11,ACHSBZD("I"),0)
  1. . S ACHSBZD("B")=$P(ACHSBZD("REC"),U),ACHSBZD("E")=$P(ACHSBZD("REC"),U,2)
  1. . I (ACHSBZD("DT")'<ACHSBZD("B"))&(ACHSBZD("DT")'>ACHSBZD("E")) S ACHSBZD("OK")="Y" Q
  1. . I (ACHSBZD("DT")'<ACHSBZD("B"))&(ACHSBZD("E")="") S ACHSBZD("OK")="Y" Q
  1. Q
  1. ;
  1. DINAPI ;-- Check for PI elig at Date Of Service. Else, no print.
  1. S ACHSBZD("OK")="N"
  1. Q:'$D(C(5))
  1. S X=C(5),%DT=""
  1. D ^%DT
  1. S ACHSBZD("DT")=Y
  1. S ACHSBZD("B")=$P(ACHSINS,U,6),ACHSBZD("E")=$P(ACHSINS,U,7)
  1. I (ACHSBZD("DT")'<ACHSBZD("B"))&(ACHSBZD("DT")'>ACHSBZD("E")) S ACHSBZD("OK")="Y" Q
  1. I (ACHSBZD("DT")'<ACHSBZD("B"))&(ACHSBZD("E")="") S ACHSBZD("OK")="Y" Q
  1. Q
  1. ;