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

ABMEFOVR.m

Go to the documentation of this file.
  1. ABMEFOVR ; IHS/SD/SDR - Setup 837 Form Override ;
  1. ;;2.6;IHS 3P BILLING SYSTEM;**6,8,9,10,21**;NOV 12, 2009;Build 379
  1. ;IHS/SD/SDR - 2.6*21 - HEAT70826 - Made changes to allow for removal of loop 2310B.
  1. ;
  1. START ;start
  1. K DIC,ABMNM
  1. W !
  1. D INS Q:'$G(ABMINS)
  1. D FORM Q:'$G(ABMFORM)
  1. STARTA D VTYP Q:'$G(ABMVTYP)
  1. D LOOP Q:($G(ABMLOOP)="")
  1. D SEND Q:$G(ABMSEND)=""
  1. I ABMLOOP="2310B" D 2310B Q ;abm*2.6*21 IHS/SD/SDR HEAT70826
  1. D SEGMENT Q:($G(ABMSEG)="")
  1. I ABMSEND="N",(ABMSEG="REF") D NOSEND Q
  1. D ELEMENT Q:($G(ABMELE)="")
  1. ;
  1. S ABMNM="FM"_ABMFORM_" "_ABMLOOP_" "_ABMELE_" "_ABMVTYP
  1. S:ABMVTYP=9999 ABMVTYP=""
  1. D FILE
  1. K ABMINS,ABMFORM,ABMLOOP,ABMSEG,ABMELE,ABMANS,ABMDA,ABMEXIST,ABMVTYP,ABMSEND,ABMNM
  1. Q
  1. INS ;select insurer
  1. ;S DIC="^ABMNINS(DUZ(2)," ;abm*2.6*9 NOHEAT
  1. S DIC="^AUTNINS(" ;abm*2.6*9 NOHEAT
  1. S DIC(0)="AEMQ"
  1. D ^DIC Q:+Y<0
  1. S ABMINS=+Y
  1. Q
  1. FORM ;select form
  1. S DIC="^ABMDEXP(",DIC(0)="AEMQ"
  1. S DIC("S")="I +Y=31!(+Y=32)!(+Y=33)"
  1. D ^DIC K DIC
  1. Q:+Y<0
  1. S ABMFORM=+Y
  1. Q
  1. VTYP ;select visit type
  1. S DIC="^ABMDVTYP("
  1. S DIC(0)="AEMQ"
  1. S DIC("A")="Enter visit type, or leave blank for all. "
  1. D ^DIC
  1. I X="" D
  1. .S Y=9999
  1. .W "ALL"
  1. Q:+Y<0
  1. S ABMVTYP=+Y
  1. Q
  1. LOOP ;select loop
  1. S DIR(0)="S^"_$P($T(LOOPS),";;",2)
  1. S DIR("A")="Select Loop"
  1. D ^DIR K DIR
  1. Q:'+Y
  1. S ABMLOOP=Y(0)
  1. Q
  1. SEND ;select send/don't send
  1. S DIR(0)="S^S:Send;N:Don't Send"
  1. S DIR("A")="Select"
  1. D ^DIR K DIR
  1. S ABMSEND=Y
  1. Q
  1. ;start new abm*2.6*21 IHS/SD/SDR HEAT70826
  1. 2310B ;EP
  1. I ABMSEND="N" D ASKLOOP Q
  1. Q:'$D(^ABMNINS(DUZ(2),ABMINS,2.5,"ASEND",ABMFORM,"2310B","N"))
  1. ;if it gets here that means that they had said Don't send but are changing it to send
  1. ;existing entry should just be removed
  1. S DA(1)=ABMINS
  1. S DA=$O(^ABMNINS(DUZ(2),ABMINS,2.5,"ASEND",ABMFORM,"2310B","00",0,"N",0))
  1. S DIK="^ABMNINS(DUZ(2),"_DA(1)_",2.5,"
  1. D ^DIK
  1. Q
  1. ASKLOOP ;
  1. S DIR(0)="Y"
  1. S DIR("A")="Remove WHOLE loop"
  1. S DIR("B")="N"
  1. D ^DIR K DIR
  1. S ABMSKIPL=Y
  1. I ABMSKIPL="N" Q
  1. S ABMQFLG=1
  1. I '$D(^ABMNINS(DUZ(2),ABMINS)) D Q:+Y<0
  1. .D ^XBFMK
  1. .S X="`"_ABMINS
  1. .S DIC="^ABMNINS(DUZ(2),"
  1. .S DIC(0)="LX"
  1. .D ^DIC
  1. D ^XBFMK
  1. S ABMNM="FM"_ABMFORM_" "_ABMLOOP_" DON'T SEND"
  1. S:ABMVTYP=9999 ABMVTYP=""
  1. S DA(1)=ABMINS
  1. S DIC="^ABMNINS(DUZ(2),"_DA(1)_",2.5,"
  1. S DIC("P")=$P(^DD(9002274.09,2.5,0),U,2)
  1. S X=ABMNM
  1. S DIC(0)="LXE" D ^DIC
  1. Q:+Y<0
  1. S DA=+Y
  1. S ABMDA=DA
  1. S DIE=DIC
  1. S ABMANS=1
  1. I $P(Y,U,3)'=1 D
  1. .S DIR(0)="S^1:ADD/EDIT;2:DELETE"
  1. .S DIR("A")="Add/Edit or Delete Entry?"
  1. .S DIR("B")="ADD/EDIT"
  1. .D ^DIR K DIR
  1. .Q:'Y S ABMANS=Y
  1. I ABMANS=1 D
  1. .S DR=".02///"_ABMFORM_";.03///"_ABMLOOP_";.04////00;.05////0;.06///"_ABMVTYP_";.08///"_ABMSEND
  1. S:ABMANS=2 DR=".01///@"
  1. D ^DIE
  1. I ABMANS=2 D
  1. .W !,"Entry Deleted.",!
  1. .D EOP^ABMDUTL(1)
  1. Q
  1. ;end new abm*2.6*21 IHS/SD/SDR HEAT70826
  1. SEGMENT ;select segment
  1. S DIR(0)="S^"_$P($T(@ABMLOOP),";;",2)
  1. S DIR("A")="Select Segment"
  1. D ^DIR K DIR
  1. Q:'+Y
  1. S ABMSEG=Y(0)
  1. Q
  1. ELEMENT ;select element
  1. D ^XBFMK
  1. S DIR(0)="SO^"_$P($T(@ABMSEG),";;",2)
  1. S DIR("A")="Select Element"
  1. D ^DIR K DIR
  1. Q:'+Y
  1. S ABMELE=Y(0)
  1. I ABMSEND="S"&(+$O(^ABMNINS(DUZ(2),ABMINS,2.5,"ASEND",ABMFORM,ABMLOOP,ABMSEG,ABMELE,"N",0))'=0) D
  1. .D ^XBFMK
  1. .S DA(1)=ABMINS
  1. .S DA=$O(^ABMNINS(DUZ(2),ABMINS,2.5,"ASEND",ABMFORM,ABMLOOP,ABMSEG,ABMELE,"N",0))
  1. .S DIK="^ABMNINS(DUZ(2),"_DA(1)_",2.5,"
  1. .D ^DIK
  1. Q
  1. FILE ;
  1. S ABMEXIST=$G(^ABMNINS(DUZ(2),ABMINS,2.5,"A837",ABMFORM,ABMLOOP,ABMSEG,ABMELE,+ABMVTYP)) D
  1. .Q:ABMEXIST=""
  1. .W !!,"Current Value: ",ABMEXIST
  1. .W !,"Visit Type: ",$S(ABMVTYP="":"ALL",1:ABMVTYP)
  1. D ^XBFMK
  1. S DA(1)=ABMINS
  1. S DIC="^ABMNINS(DUZ(2),"_DA(1)_",2.5,"
  1. S DIC("P")=$P(^DD(9002274.09,2.5,0),U,2)
  1. S X=ABMNM
  1. S DIC(0)="LXE" D ^DIC
  1. Q:+Y<0
  1. S DA=+Y
  1. S ABMDA=DA
  1. S DIE=DIC
  1. S ABMANS=1
  1. I $P(Y,U,3)'=1 D
  1. .S DIR(0)="S^1:ADD/EDIT;2:DELETE"
  1. .S DIR("A")="Add/Edit or Delete Entry?"
  1. .S DIR("B")="ADD/EDIT"
  1. .D ^DIR K DIR
  1. .Q:'Y S ABMANS=Y
  1. I ABMANS=1 D
  1. .S DR=".02///"_ABMFORM_";.03///"_ABMLOOP_";.04///"_ABMSEG_";.05///"_ABMELE_";.06///"_ABMVTYP_";.08///"_ABMSEND
  1. .I ABMSEND="S" S DR=DR_";.07//"
  1. S:ABMANS=2 DR=".01///@"
  1. D ^DIE
  1. I ABMANS=2 D
  1. .W !,"Entry Deleted.",!
  1. .D EOP^ABMDUTL(1)
  1. I ABMNM["ISA"!(ABMNM["GS")!(ABMNM["NM")!(ABMNM["REF") D
  1. .K DIR
  1. .S DIR(0)="Y"
  1. .S DIR("A")="EDIT ANOTHER SEGMENT?"
  1. .S DIR("B")="N"
  1. .D ^DIR
  1. .K DIR
  1. .I Y=1 K ABMLOOP,ABMSEG,ABMELE,ABMVTYP G STARTA
  1. Q
  1. NOSEND ;
  1. S ABMNM="FM"_ABMFORM_" "_ABMLOOP_" "_ABMSEG_" DON'T SEND"
  1. S:ABMVTYP=9999 ABMVTYP=""
  1. S ABMELE=""
  1. D ^XBFMK
  1. S DA(1)=ABMINS
  1. S DIC="^ABMNINS(DUZ(2),"_DA(1)_",2.5,"
  1. S DIC("P")=$P(^DD(9002274.09,2.5,0),U,2)
  1. S X=ABMNM
  1. S DIC(0)="LXE" D ^DIC
  1. Q:+Y<0
  1. S DA=+Y
  1. S ABMDA=DA
  1. S DIE=DIC
  1. S DR=".02///"_ABMFORM_";.03///"_ABMLOOP_";.04///"_ABMSEG_";.05///"_ABMELE_";.06///"_ABMVTYP_";.08///"_ABMSEND
  1. D ^DIE
  1. Q
  1. ;
  1. LOOPS ;;1:HEADER;2:1000A;3:1000B;4:2010AA;5:2010BB;6:2000B;7:2310B
  1. ;abm*2.6*21 IHS/SD/SDR HEAT70826 added loop 2310B
  1. ;
  1. 1000A ;;1:NM1
  1. 1000B ;;1:NM1
  1. 2010AA ;;1:NM1;2:REF
  1. 2010BB ;;1:NM1
  1. 2000B ;;1:SBR
  1. ;
  1. ISA ;;1:ISA02;2:ISA03;3:ISA04;4:ISA05;5:ISA06;6:ISA07;7:ISA08;8:ISA14;9:ISA15
  1. ;;1:ISA02;2:ISA03;3:ISA04;4:ISA05;5:ISA06;6:ISA07;7:ISA08;8:ISA15 ;old line abm*2.6*10 HEAT74624
  1. ;;1:ISA03;2:ISA04;3:ISA05;4:ISA06;5:ISA07;6:ISA08;7:ISA15 ;old line ABM*2.6*8
  1. GS ;;1:GS02;2:GS03
  1. NM1 ;;1:NM103;2:NM108;3:NM109
  1. REF ;;1:REF01;2:REF02
  1. SBR ;;1:SBR09