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

ABMDE6.m

Go to the documentation of this file.
  1. ABMDE6 ; IHS/ASDST/DMJ - Page 6 - DENTAL ;
  1. ;;2.6;IHS Third Party Billing System;**2,8,10,21**;NOV 12, 2009;Build 379
  1. ;
  1. ; IHS/SD/SDR - v2.5 p9 - IM17106 - <UNDEFINED>PC1^ABMDE6 regarding
  1. ; a cross reference with no entry
  1. ; IHS/SD/SDR - v2.5 p10 - IM20380/IM20401 - fix when Edit choosen & only one option
  1. ; of if they don't select any
  1. ; IHS/SD/SDR - v2.5 p10 - IM20873 - <UNDEF>E+21^ABMDE6 error (entry not
  1. ; selected when Delete is selected)
  1. ; IHS/SD/SDR - v2.5 p11 - NPI - change for needed fields for ADA-2006 format
  1. ; field was there but not being asked
  1. ; IHS/SD/SDR - abm*2.6*2 - 3PMS10003A - modified to call ABMFEAPI
  1. ;IHS/SD/SDR - 2.6*21 - HEAT124092 - Made default revenue code 512
  1. ;
  1. OPT9 K ABM,ABME
  1. S ABM("TOTL")=0
  1. D DISP
  1. W ! S ABMP("OPT")="ADEVNJBQ" D SEL^ABMDEOPT S ABM("ACTION")=Y
  1. I "AVDE"'[$E(Y) S:$D(ABMP("DDL"))&($E(ABMP("PAGE"),$L(ABMP("PAGE")))=6) ABMP("QUIT")="" G XIT
  1. G XIT:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. S ABM("DO")=$S($E(Y)="V":"V1",1:"A")
  1. K DA D @ABM("DO")
  1. G OPT9
  1. ;
  1. DISP ;PAGE DISPLAY
  1. K ABMZ
  1. S ABMZ("TITL")="DENTAL SERVICES",ABMZ("PG")="6"
  1. S ABMZ("ITEM")="Dental (ADA Code)"
  1. I $D(ABMP("DDL")),$Y>(IOSL-9) D PAUSE^ABMDE1 G:$D(DUOUT)!$D(DTOUT)!$D(DIROUT) XIT I 1
  1. E D SUM^ABMDE1
  1. ;
  1. D ^ABMDE6X
  1. S ABMZ("SUB")=33
  1. D HD G LOOP
  1. HD ;
  1. W !?4,"VISIT",?56,"ORAL",?61,"OPER"
  1. W !?4,"DATE",?11," DENTAL SERVICE",?56,"CAV",?61,"SITE",?66,"SURF",?73,"CHARGE"
  1. W !?4,"=====",?11,"============================================",?56,"====",?61,"====",?66,"=====",?73,"======"
  1. Q
  1. LOOP ;LOOP THROUGH LINE ITEMS
  1. S (ABMZ("LNUM"),ABMZ(1),ABM)=0
  1. S ABMZ("NUM")=0
  1. F S ABM=$O(^ABMDCLM(DUZ(2),ABMP("CDFN"),33,"C",ABM)) Q:'ABM D
  1. .S ABM("X")=0
  1. .F S ABM("X")=$O(^ABMDCLM(DUZ(2),ABMP("CDFN"),33,"C",ABM,ABM("X"))) Q:'ABM("X") D
  1. ..I '$D(^ABMDCLM(DUZ(2),ABMP("CDFN"),33,ABM("X"),0)) K ^ABMDCLM(DUZ(2),ABMP("CDFN"),33,"C",ABM,ABM("X")) Q
  1. ..D PC1
  1. W !?72,"=======",!?70,$J(("$"_$FN(ABM("TOTL"),",",2)),9)
  1. I +$O(ABME(0)) S ABME("CONT")="" D ^ABMDERR K ABME("CONT")
  1. G XIT
  1. ;
  1. PC1 S ABM("X0")=^ABMDCLM(DUZ(2),ABMP("CDFN"),33,ABM("X"),0)
  1. S ABMZ("NUM")=+ABMZ("NUM")+1
  1. S ABMZ(ABMZ("NUM"))=$P(^AUTTADA(+ABM("X0"),0),U)_U_ABM("X")
  1. EOP I $Y>(IOSL-5) D PAUSE^ABMDE1,HD
  1. W !,"[",ABMZ("NUM"),"]"
  1. I $P(ABM("X0"),U,7)]"" W ?4,$E($P(ABM("X0"),U,7),4,5)_"/"_$E($P(ABM("X0"),U,7),6,7)
  1. W ?11,$P(^AUTTADA(+ABM("X0"),0),U)," ",$E($P(^(0),U,2),1,39)
  1. W ?57,$P($G(ABM("X0")),U,11) ;oral cavity
  1. W ?62 W $S($P(ABM("X0"),U,5)="":"",$D(^ADEOPS($P(ABM("X0"),U,5),88)):$P(^(88),U),1:"")
  1. W ?66,$J($P(ABM("X0"),U,6),4)
  1. S ABM("ITMTOTL")=$P(ABM("X0"),U,8)*$P(ABM("X0"),U,9)
  1. S:'+ABM("ITMTOTL") ABM("ITMTOTL")=$P(ABM("X0"),U,8)
  1. W ?73,$J($FN(ABM("ITMTOTL"),",",2),6)
  1. S ABM("TOTL")=ABM("TOTL")+ABM("ITMTOTL")
  1. Q
  1. ;
  1. XIT K ABM
  1. Q
  1. ;
  1. V1 S ABMZ("TITL")="DENTAL VIEW OPTION" D SUM^ABMDE1
  1. D ^ABMDERR
  1. Q
  1. A ;ADD LINE ITEM
  1. K DA S DA(1)=ABMP("CDFN")
  1. I $E(ABM("ACTION"))="A" D
  1. .S DIC="^AUTTADA(",DIC(0)="AEMQ"
  1. .D ^DIC Q:+Y<0
  1. .S X=$P(Y,U)
  1. .S DIC("P")=$P(^DD(9002274.3,33,0),U,2)
  1. .S DIC="^ABMDCLM(DUZ(2),DA(1),33,"
  1. .;K DD,DO D FILE^DICN Q:+Y<0 S DA=+Y ;abm*2.6*8 5010
  1. .K DD,DO D FILE^DICN Q:+Y<0 S (DA,ABMXANS)=+Y ;abm*2.6*8 5010
  1. E ;EDIT LINE ITEM
  1. I $E(ABM("ACTION"))="D" D Q
  1. .K DIR S DIR(0)="LO^1:"_ABMZ("NUM")_":0"
  1. .S DIR("?")="Enter the Sequence Number of "_ABMZ("ITEM")_" to Delete"
  1. .S DIR("A")="Sequence Number to DELETE"
  1. .D ^DIR K DIR
  1. .W !
  1. .S ABMXANS=Y
  1. .;Q:ABMXANS="" ;abm*2.6*10 HEAT69379
  1. .Q:ABMXANS=""!$D(DTOUT)!$D(DUOUT)!$D(DIRUT)!$D(DIROUT) ;abm*2.6*10 HEAT69379
  1. .F ABM("I")=1:1 S ABM=$P(ABMXANS,",",ABM("I")) Q:ABM="" D
  1. ..I $G(ABMX("ANS"))'="" S ABMX("ANS")=ABMX("ANS")_","_$P(ABMZ(ABM),U)
  1. ..E S ABMX("ANS")=$P(ABMZ(ABM),U)
  1. .K DIR S DIR(0)="YO",DIR("A")="Do you wish "_ABMX("ANS")_" DELETED"
  1. .D ^DIR K DIR
  1. .Q:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. .I Y=1 D
  1. ..F ABM("I")=1:1 S ABM=$P(ABMXANS,",",ABM("I")) Q:ABM="" D
  1. ...S DA(1)=ABMP("CDFN")
  1. ...S DA=$P(ABMZ(ABM),U,2)
  1. ...S DIK="^ABMDCLM(DUZ(2),"_DA(1)_",33,"
  1. ...D ^DIK
  1. ;
  1. I $E(ABM("ACTION"))="E" D
  1. .;I ABMZ("NUM")=1 S (DA,Y)=$P(ABMZ(1),U,2) Q ;abm*2.6*8
  1. .I ABMZ("NUM")=1 S (DA,Y,ABMXANS)=$P(ABMZ(1),U,2) Q ;abm*2.6*8
  1. .K DIR S DIR(0)="NO^1:"_ABMZ("NUM")_":0"
  1. .S DIR("?")="Enter the Sequence Number of "_ABMZ("ITEM")_" to Edit",DIR("A")="Sequence Number to EDIT"
  1. .D ^DIR K DIR
  1. .G XIT:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)!(+Y'>0)
  1. .;W !!!,"[",+Y,"] ",$P(ABMZ(+Y),U) S DA=$P(ABMZ(+Y),U,2) ;abm*2.6*8 5010
  1. .W !!!,"[",+Y,"] ",$P(ABMZ(+Y),U) S (DA,ABMXANS)=$P(ABMZ(+Y),U,2) ;abm*2.6*8 5010
  1. E2 ;
  1. G XIT:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)!(+Y'>0)
  1. S ABMZ("ADACODE")=$P($G(^ABMDCLM(DUZ(2),DA(1),33,DA,0)),U)
  1. S ABMZ("DCD")=$P(^AUTTADA(ABMZ("ADACODE"),0),U)
  1. ;S ABMZ("CHRG")=+$P($G(^ABMDFEE(ABMP("FEE"),21,1_ABMZ("DCD"),0)),"^",2) ;abm*2.6*2 3PMS10003A
  1. S ABMZ("CHRG")=+$P($$ONE^ABMFEAPI(ABMP("FEE"),21,1_ABMZ("DCD"),ABMP("VDT")),U) ;abm*2.6*2 3PMS10003A
  1. S DIE="^ABMDCLM(DUZ(2),"_DA(1)_",33,"
  1. I $P(^ABMDEXP(ABMP("EXP"),0),"^",1)["UB" D Q:$D(Y)
  1. .;S DR="W !;.02" D ^DIE ;abm*2.6*21 IHS/SD/SDR HEAT124092
  1. .S DR="W !;.02//512" D ^DIE ;abm*2.6*21 IHS/SD/SDR HEAT124092
  1. S DR="W !;.07//"_ABMP("VISTDT") D ^DIE Q:$D(Y)
  1. S ABMZ("OPSITE")=1 S:$P(^AUTTADA(ABMZ("ADACODE"),0),"^",9)="n" ABMZ("OPSITE")=0
  1. I ABMZ("OPSITE") D Q:$D(Y)
  1. .S DR="W !;.05;W !;.06;W !;.11"
  1. .D ^DIE
  1. ;D DX^ABMDEMLC S DR=".04///"_Y(0) D ^DIE Q:$D(Y) ;abm*2.6*10 ICD10 002I
  1. D DX^ABMDEMLC I +$G(Y(0)) S DR=".04///"_Y(0) D ^DIE Q:$D(Y) ;abm*2.6*10 ICD10 002I
  1. S DR=".09//1" D ^DIE Q:$D(Y)
  1. S DR=".08//"_ABMZ("CHRG") D ^DIE Q:$D(Y)
  1. S DR=".17///M" D ^DIE
  1. D PROV ;abm*2.6*8 5010
  1. Q
  1. ;start new code abm*2.6*8 5010
  1. PROV ;EP
  1. I +$O(^ABMDCLM(DUZ(2),ABMP("CDFN"),ABMZ("SUB"),DA,"P",0))>0 D
  1. .W !
  1. .S ABMIEN=0
  1. .F S ABMIEN=$O(^ABMDCLM(DUZ(2),ABMP("CDFN"),ABMZ("SUB"),DA,"P",ABMIEN)) Q:+ABMIEN=0 D
  1. ..W !?5,$P($G(^VA(200,$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),ABMZ("SUB"),DA,"P",ABMIEN,0)),U),0)),U)
  1. ..W ?40,$S($P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),ABMZ("SUB"),DA,"P",ABMIEN,0)),U,2)="R":"RENDERING",$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),ABMZ("SUB"),DA,"P",ABMIEN,0)),U,2)="D":"ORDERING",1:"")
  1. .W !
  1. K DIC,DR,DIE,DA
  1. S DA(2)=ABMP("CDFN")
  1. S DA(1)=ABMXANS
  1. S DIC="^ABMDCLM(DUZ(2),"_DA(2)_","_ABMZ("SUB")_","_DA(1)_",""P"","
  1. S DIC(0)="AELMQ"
  1. S ABMFLNM="9002274.30"_$G(ABMZ("SUB"))
  1. S DIC("P")=$P($G(^DD(ABMFLNM,.18,0)),U,2)
  1. Q:DIC("P")=""
  1. S DIC("DR")=".01;.02//RENDERING"
  1. I +$O(^ABMDCLM(DUZ(2),ABMP("CDFN"),ABMZ("SUB"),DA(1),"P","C","R",0))>0 S DIC("DR")=".01;.02//ORDERING"
  1. D ^DIC
  1. K DIC,DR,DIE,DA
  1. I +Y>0,(+$P(Y,U,3)=0) D
  1. .K DIE,DA,DR
  1. .S DA(2)=ABMP("CDFN")
  1. .S DA(1)=ABMXANS
  1. .S DIE="^ABMDCLM(DUZ(2),"_DA(2)_","_ABMZ("SUB")_","_DA(1)_",""P"","
  1. .S DA=+Y
  1. .S DR=".01//;.02"
  1. .D ^DIE
  1. Q
  1. ;end new code abm*2.6*8