| 1 | A1B2MUT ;ALB/AAS - BILLING UTILITY ROUTINE ;16-JAN-91 | 
|---|
| 2 | ;;Version 1.55 (local for MAS v5 sites);; | 
|---|
| 3 | ; | 
|---|
| 4 | ;written as war breaks out | 
|---|
| 5 | ; | 
|---|
| 6 | ; | 
|---|
| 7 | ADM ;  -- find local patient dfn and ods admission entry number from ptf entry | 
|---|
| 8 | ;  -- input       DFN := entry in dpt | 
|---|
| 9 | ;             a1b2ptf := entry in ^dgpt | 
|---|
| 10 | ;  -- output  a1b2adm := entry in 11500.2 | 
|---|
| 11 | S DFN=+^DGPT(A1B2PTF,0),A1B2ADM="" | 
|---|
| 12 | S A1B2ADM1=$O(^DGPM("APTF",A1B2PTF,0)) G:'A1B2ADM1 ADMQ | 
|---|
| 13 | S A1B2ADM=$S($D(^DGPM(A1B2ADM1,"ODS")):$P(^("ODS"),"^",4),1:"") | 
|---|
| 14 | ADMQ K A1B2ADM1 Q | 
|---|
| 15 | ; | 
|---|
| 16 | PTF ;  -- find ptf entry number from ods admission entry | 
|---|
| 17 | ;  -- input a1b2adm := entry in 11500.2 | 
|---|
| 18 | ;  -- output a1b2ptf :=entry in ^dgpt | 
|---|
| 19 | S A1B2ADM2=$O(^DGPM("AODSA",A1B2ADM,0)),A1B2ADM="" G:'A1B2ADM2 PTFQ | 
|---|
| 20 | S A1B2PTF=$S($D(^DGPM(A1B2ADM2,0)):$P(^(0),"^",16),1:"") | 
|---|
| 21 | PTFQ K A1B2ADM2 Q | 
|---|
| 22 | Q | 
|---|
| 23 | ; | 
|---|
| 24 | ASKAD ;  -- ask ods admission | 
|---|
| 25 | ;I '$D(A1B2NTY) D FAC^A1B2UTL | 
|---|
| 26 | S A1B2ADM="" | 
|---|
| 27 | S DIC("S")="I $P(^(0),U,15),$P(^(0),U,7)=A1B2FN" | 
|---|
| 28 | S DIC("A")="Select ODS ADMISSION DATE/TIME: ",DIC="^A1B2(11500.2,",DIC(0)="AEQMN" D ^DIC K DIC S A1B2Y=Y G:+Y<1 ASKADQ | 
|---|
| 29 | S A1B2ADM=+A1B2Y,DFN=$P(^A1B2(11500.2,A1B2ADM,0),"^",12) | 
|---|
| 30 | ASKADQ Q | 
|---|
| 31 | ; | 
|---|
| 32 | EN1 ;  -- local site enter/edit of cost data | 
|---|
| 33 | D FAC^A1B2UTL | 
|---|
| 34 | D ASKAD G:'A1B2ADM EN1Q W ! | 
|---|
| 35 | S A1B2NK="" D DISP1 | 
|---|
| 36 | D EDIT | 
|---|
| 37 | W ! G EN1 | 
|---|
| 38 | EN1Q K A1B2MAIN,DIC,DIE,X,Y,A1B2Y,A1B2ADM,A1B2NOD,A1B2YY,DA,DR,DFN,A1B2NK | 
|---|
| 39 | I '$D(A1B2NTY) K A1B2FN,A1B2FNME | 
|---|
| 40 | Q | 
|---|
| 41 | ; | 
|---|
| 42 | EDIT ;  -- input cost data,local input | 
|---|
| 43 | S DLAYGO=11500.64,DIC("A")="Select COST DATE: ",DIC="^A1B2(11500.64,",DIC(0)="AEQLMZ" D DICDR1 | 
|---|
| 44 | D ^DIC Q:Y<1  K DIC S DA=+Y,A1B2NOD=Y(0) | 
|---|
| 45 | S DIE="^A1B2(11500.64,",DR="[A1B2 ENTRY]" | 
|---|
| 46 | D ^DIE | 
|---|
| 47 | S A1B2YY=^A1B2(11500.64,DA,0) I A1B2YY'=A1B2NOD,$D(^(1)),+^(1)'=2 S DR="1.01////3" D ^DIE | 
|---|
| 48 | K DIE,DR,DA,DLAYGO | 
|---|
| 49 | W ! G EDIT | 
|---|
| 50 | Q | 
|---|
| 51 | ; | 
|---|
| 52 | DICDR1 ;  --set dic(dr) and dic(s) for files 11500.61 => 11500.64 | 
|---|
| 53 | S DIC("DR")=".02////"_A1B2ADM_";.07////"_A1B2FN_";.08////"_A1B2FNME_";.15////1;1.05////"_DUZ_";1.01////2"_$S($D(A1B2PTF):";.13////"_A1B2PTF,1:"")_";.12////"_DFN_";.03;.04;.05" | 
|---|
| 54 | S DIC("S")="I $P(^(0),U,15),$P(^(0),U,7)=A1B2FN,$P(^(0),U,2)=A1B2ADM" | 
|---|
| 55 | Q | 
|---|
| 56 | ; | 
|---|
| 57 | EN2 ;  -- Print billing data | 
|---|
| 58 | I '$D(A1B2NTY) D FAC^A1B2UTL | 
|---|
| 59 | S L=0,DIC="^A1B2(11500.2,",FLDS="[A1B2 BILLING DATA]",BY="[A1B2 BILLING DATA]" | 
|---|
| 60 | S A1B2FL=11500.2 D DIS^A1B2UTL | 
|---|
| 61 | D EN1^DIP | 
|---|
| 62 | EN2Q K DIC,FLDS,BY,X,X1,D,A1B2FL | 
|---|
| 63 | Q | 
|---|
| 64 | ; | 
|---|
| 65 | DISP ;  -- display billing data header, and data | 
|---|
| 66 | I '$D(A1B2NTY) D FAC^A1B2UTL | 
|---|
| 67 | W ! D ASKAD G:'A1B2ADM DISPQ | 
|---|
| 68 | DISP1 D HOME^%ZIS K DXS S D0=+A1B2ADM,DN=1 | 
|---|
| 69 | D HEAD | 
|---|
| 70 | S ^UTILITY($J,1)="S A1B2X=X D PAUSE^A1B2MUT Q:'DN  D HEAD^A1B2MUT S X=A1B2X W !" | 
|---|
| 71 | D ^A1B2CO,PAUSE:DN | 
|---|
| 72 | I '$D(A1B2NK) G DISP | 
|---|
| 73 | DISPQ I $D(A1B2NK) K A1B2X,A1B2ANS,A1B2I,A1B2Y,DXS,DN,D0,X,X1,C,D,DIXX Q | 
|---|
| 74 | K A1B2ADM,A1B2X,A1B2ANS,A1B2BR,A1B2I,A1B2VR,A1B2Y,DFN,DXS,DN,D0,X,X1,C,D,DIXX | 
|---|
| 75 | I '$D(A1B2NTY) K A1B2FN,A1B2FNME | 
|---|
| 76 | K A1B2X,A1B2ANS,A1B2I,A1B2Y,DXS,DN,D0,X,X1,C,D,DIXX | 
|---|
| 77 | Q | 
|---|
| 78 | ; | 
|---|
| 79 | HEAD ; | 
|---|
| 80 | W @IOF | 
|---|
| 81 | D ^A1B2COH | 
|---|
| 82 | Q | 
|---|
| 83 | PAUSE ; | 
|---|
| 84 | F A1B2I=0:0 Q:$Y>(IOSL-2)  W ! | 
|---|
| 85 | R "Press RETURN to continue:",A1B2ANS:DTIME I A1B2ANS["^" S DN=0 | 
|---|
| 86 | Q | 
|---|