DENTCRD1 ;ISC2/HCD,SAW-PROCESS DENTAL CARDS (CON'T) ;9/24/99 09:26
;;1.2;DENTAL;**3,11,13,16,19,21,24,28**;JAN 26, 1989
C S:X=" " X="" I X=""&($P(^DD(221,F,0),"^",2)'["R") G A
X $P(^DD(221,F,0),"^",5,99) I '$D(X) S E1=1 G E
A Q:E S D2=D2_X_"^" Q
E S E=1 W !,"ERROR--",$P(^DD(221,F,0),"^",1)," entry is incorrect." Q
F S X=$S(X=8:10,X=9:20,1:""),X=$S(X1=" ":X,1:X+X1) Q
CC ;;.01;1;.5;3;4;5;6;7;8;.4;10;11;12;38;14;15;16;17;4.5;19;39;21;22;23;24;25;6.7;27;28;29;30;31;32;33;34;35;36;37;2;.3;7.1;6.2;6.4;6.6;6.8
DATE ;;31;28;31;30;31;30;31;31;30;31;30;31
YN Q:$D(E1) W !,"Okay to accept this value" S %=2 D YN^DICN G YN:%=0 K:%'=1 X Q
EN W !,D S E=0,D2="" F I=1:1:45 S F=$P($T(CC),";",I+2) D @I
K:E D2 G ^DENTCRD2
1 ;
S L1=$E(D,14),L2=$E(D,15),L3=$E(D,16),L4=$E(D,17),L5=$E(D,18)
I L1'=" " G:L2 ERR S Z=L1+1 G DAY
G:L2=" " ERR S Z=L2+3
DAY G:Z<1!(Z>12) ERR S ZZ=$P($T(DATE),";",Z+2)
I Z=2 S ZZ=ZZ+$$LEAP^DENTE1(1700+$E(DT,1,3))
I $L(Z)=1 S Z=0_Z
S L3=$S(L3=7:10,L3=8:20,L3=9:30,1:0),L4=$S(L4=" "!(L4>8):0,1:L4+1),L4=L3+L4 G:L4<1!(L4>ZZ) ERR I $L(L4)=1 S L4=0_L4
S L5=$E(DT,2,3),L6=$E(DT,1)_L5_"01" S:DENTY XX1=$$YR(L6),L5=$E(XX1,2,3) S:$L(L5)=1 L5=0_L5 S (D1,Z)=$S(DENTY:$E(XX1,1),1:$E(DT,1))_L5_Z_L4
I Z'>DT D NOW^%DTC S Z=Z_"."_$P(%,".",2),Z=+Z,Z=$$CHECK^DENTE1(221,Z),(DINUM,D1)=Z G OK
ERR S D2("B")="" G E
OK S X=D1 D A S D2("B")=X,D2("B1")=X Q
YR(DENTX1) ; Get last Year
S X1=DENTX1_"01",X2=-1 D C^%DTC S ZZ=$E(X,1,3)_$E(DENTX1,4,7)
Q ZZ
2 S X=$E(D,5,13) I X'?9N G E
I +X=1 D A S D2("D")=X,D1(39)="GROUP" Q
S Z=$O(^DPT("SSN",X,0)) S:Z="" X=X_"P",Z=$O(^DPT("SSN",X,0))
D:Z="" E Q:E D A S DFN=Z,DENTI=I,DENTX=X D DEM^VADPT S I=DENTI,X=DENTX,D1(39)=VADM(1),D2("D")=X,(D2("E"),D39)=Z K DENTI,DENTX Q
;D A S D2("D")=X Q
3 S X=$E(D,1,4),Z=X,X=$O(^DENT(220.5,"C",X,0))
I $D(^DENT(220.5,+X,0)),$P(^(0),"^",3)="" D A S (D1(10),D2("C"))=Z,(D2("AC"),D2("AC1"))=DENTSTA_","_D2("B")_","_Z Q
G E
;S X=$E(D,1,4) D:X'?4N E Q:E D A S (D1(10),D2("C"))=X,(D2("AC"),D2("AC1"))=DENTSTA_","_D2("B")_","_X Q
4 S X=$S($D(D39):D39,1:"") G A
5 S X="" G A
6 S Z1=$E(D,22),Z2=$E(D,23) I Z1=" "&(Z2=" ") S X="" G A
S X=$S(Z1'=" "&(Z2'=" "):"",Z1'=" ":Z1+1,Z2'=" ":Z2+8) I X<1!(X>15) S X="" G E
G A
7 S X=$E(D,24),X=$S(X=0:"S",X=1:"C",1:"") G A
8 S X=$E(D,31),X=$S(X=4:1,1:"") G A
9 S X=$E(D,32) G C
10 S X=$S($D(D1(10)):D1(10),1:"") G A
11 S X=$E(D,33),X1=$E(D,34) D F G C
12 S X=$E(D,35),X=$S(X=1:1,1:"") G A
13 S X=$E(D,36),X=$S(X=1:1,1:"") G A
14 S X=$E(D,67),X=$S(X=1:1,1:"") G A
15 S X=$E(D,37) G C
16 S X=$E(D,38) G C
17 S X=$E(D,39) G C
18 S X=$E(D,40) G C
19 S X1=0 F I(1)=19,20,21 I $E(D,I(1))'=" " S X1=X1+1,X=$E(D,I(1)),Z=I(1)
I X1>1 S E=1 W !,"ERROR-- More than one patient category has been marked." Q
I X1=0 S E=1 W !,"ERROR-- Patient category is missing." Q
S X=$S(Z=19:X+1,Z=20:X+8,1:X+13) D:Z=19&((X>8)!(X<1)) E D:Z=20&((X>17)!(X<9)) E D:Z=21&((X>22)!(X<18)) E Q:E G A
20 S X=$E(D,41),X1=$E(D,42),X=$S(X=" ":"",1:X*10),X=$S(X1=" ":X,1:X+X1) G C
21 S X="" G A
22 S X=$E(D,43),X1=$E(D,44),X=$S(X=7:10,X=8:20,X=9:30,1:""),X=$S(X1=" ":X,1:X+X1) G C
23 S X=$E(D,45) G C
24 S X=$E(D,46) G C
25 S X=$E(D,47) G C
26 S X=$E(D,48),X=$S(X=1&(+$E(D,5,13)=1):4,X=1&(+$E(D,5,13)'=1):3,1:"") G A
27 S X=$E(D,28),X=$S(X=7:1,X=8:3,1:"") G A
28 S X=$E(D,49),X1=$E(D,50) D F G C
29 S X=$E(D,51),X1=$E(D,52) D F G C
30 S X=$E(D,53),X1=$E(D,54) D F G C
31 S X=$E(D,55),X1=$E(D,56),X=$S(X=7:0,X=8:10,X=9:20,1:""),X=$S(X1=" ":X,1:X+X1) G C
32 S X=$E(D,57) G C
33 S X=$E(D,58) G C
34 S X=$E(D,59) G C
35 S X=$E(D,60),X1=$E(D,61),X=$S(X=" ":"",1:X*10),X=$S(X1=" ":X,1:X+X1) G C
36 S X=$E(D,62),X1=$E(D,63) D F G C
37 S X=$E(D,64) G C
38 S X=$E(D,65),X1=$E(D,66),X=$S(X=7:10,X=8:20,X=9:30,1:""),X=$S(X1=" ":X,1:X+X1) G C
39 S X=$S($D(D1(39)):D1(39),1:"") G A
40 S X=DENTSTA D A Q:E S (D2("A"),D2("A1"))=DENTSTA_","_D2("B") Q
41 S X=$E(D,30),X=$S(X=1:3,X=2:2,1:"") G C
42 S X=$E(D,25),X=$S(X=2:1,1:"") G A
43 S X=$E(D,26),X=$S(X=3:1,1:"") G A
44 S X=$E(D,27),X=$S(X=4:2,1:"") G A
45 S X=$E(D,29),X=$S(X>5:X-6,1:X) G C
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDENTCRD1 4096 printed Oct 16, 2024@17:46:59 Page 2
DENTCRD1 ;ISC2/HCD,SAW-PROCESS DENTAL CARDS (CON'T) ;9/24/99 09:26
+1 ;;1.2;DENTAL;**3,11,13,16,19,21,24,28**;JAN 26, 1989
C if X=" "
SET X=""
IF X=""&($PIECE(^DD(221,F,0),"^",2)'["R")
GOTO A
+1 XECUTE $PIECE(^DD(221,F,0),"^",5,99)
IF '$DATA(X)
SET E1=1
GOTO E
A if E
QUIT
SET D2=D2_X_"^"
QUIT
E SET E=1
WRITE !,"ERROR--",$PIECE(^DD(221,F,0),"^",1)," entry is incorrect."
QUIT
F SET X=$SELECT(X=8:10,X=9:20,1:"")
SET X=$SELECT(X1=" ":X,1:X+X1)
QUIT
CC ;;.01;1;.5;3;4;5;6;7;8;.4;10;11;12;38;14;15;16;17;4.5;19;39;21;22;23;24;25;6.7;27;28;29;30;31;32;33;34;35;36;37;2;.3;7.1;6.2;6.4;6.6;6.8
DATE ;;31;28;31;30;31;30;31;31;30;31;30;31
YN if $DATA(E1)
QUIT
WRITE !,"Okay to accept this value"
SET %=2
DO YN^DICN
if %=0
GOTO YN
if %'=1
KILL X
QUIT
EN WRITE !,D
SET E=0
SET D2=""
FOR I=1:1:45
SET F=$PIECE($TEXT(CC),";",I+2)
DO @I
+1 if E
KILL D2
GOTO ^DENTCRD2
1 ;
+1 SET L1=$EXTRACT(D,14)
SET L2=$EXTRACT(D,15)
SET L3=$EXTRACT(D,16)
SET L4=$EXTRACT(D,17)
SET L5=$EXTRACT(D,18)
+2 IF L1'=" "
if L2
GOTO ERR
SET Z=L1+1
GOTO DAY
+3 if L2=" "
GOTO ERR
SET Z=L2+3
DAY if Z<1!(Z>12)
GOTO ERR
SET ZZ=$PIECE($TEXT(DATE),";",Z+2)
+1 IF Z=2
SET ZZ=ZZ+$$LEAP^DENTE1(1700+$EXTRACT(DT,1,3))
+2 IF $LENGTH(Z)=1
SET Z=0_Z
+3 SET L3=$SELECT(L3=7:10,L3=8:20,L3=9:30,1:0)
SET L4=$SELECT(L4=" "!(L4>8):0,1:L4+1)
SET L4=L3+L4
if L4<1!(L4>ZZ)
GOTO ERR
IF $LENGTH(L4)=1
SET L4=0_L4
+4 SET L5=$EXTRACT(DT,2,3)
SET L6=$EXTRACT(DT,1)_L5_"01"
if DENTY
SET XX1=$$YR(L6)
SET L5=$EXTRACT(XX1,2,3)
if $LENGTH(L5)=1
SET L5=0_L5
SET (D1,Z)=$SELECT(DENTY:$EXTRACT(XX1,1),1:$EXTRACT(DT,1))_L5_Z_L4
+5 IF Z'>DT
DO NOW^%DTC
SET Z=Z_"."_$PIECE(%,".",2)
SET Z=+Z
SET Z=$$CHECK^DENTE1(221,Z)
SET (DINUM,D1)=Z
GOTO OK
ERR SET D2("B")=""
GOTO E
OK SET X=D1
DO A
SET D2("B")=X
SET D2("B1")=X
QUIT
YR(DENTX1) ; Get last Year
+1 SET X1=DENTX1_"01"
SET X2=-1
DO C^%DTC
SET ZZ=$EXTRACT(X,1,3)_$EXTRACT(DENTX1,4,7)
+2 QUIT ZZ
2 SET X=$EXTRACT(D,5,13)
IF X'?9N
GOTO E
+1 IF +X=1
DO A
SET D2("D")=X
SET D1(39)="GROUP"
QUIT
+2 SET Z=$ORDER(^DPT("SSN",X,0))
if Z=""
SET X=X_"P"
SET Z=$ORDER(^DPT("SSN",X,0))
+3 if Z=""
DO E
if E
QUIT
DO A
SET DFN=Z
SET DENTI=I
SET DENTX=X
DO DEM^VADPT
SET I=DENTI
SET X=DENTX
SET D1(39)=VADM(1)
SET D2("D")=X
SET (D2("E"),D39)=Z
KILL DENTI,DENTX
QUIT
+4 ;D A S D2("D")=X Q
3 SET X=$EXTRACT(D,1,4)
SET Z=X
SET X=$ORDER(^DENT(220.5,"C",X,0))
+1 IF $DATA(^DENT(220.5,+X,0))
IF $PIECE(^(0),"^",3)=""
DO A
SET (D1(10),D2("C"))=Z
SET (D2("AC"),D2("AC1"))=DENTSTA_","_D2("B")_","_Z
QUIT
+2 GOTO E
+3 ;S X=$E(D,1,4) D:X'?4N E Q:E D A S (D1(10),D2("C"))=X,(D2("AC"),D2("AC1"))=DENTSTA_","_D2("B")_","_X Q
4 SET X=$SELECT($DATA(D39):D39,1:"")
GOTO A
5 SET X=""
GOTO A
6 SET Z1=$EXTRACT(D,22)
SET Z2=$EXTRACT(D,23)
IF Z1=" "&(Z2=" ")
SET X=""
GOTO A
+1 SET X=$SELECT(Z1'=" "&(Z2'=" "):"",Z1'=" ":Z1+1,Z2'=" ":Z2+8)
IF X<1!(X>15)
SET X=""
GOTO E
+2 GOTO A
7 SET X=$EXTRACT(D,24)
SET X=$SELECT(X=0:"S",X=1:"C",1:"")
GOTO A
8 SET X=$EXTRACT(D,31)
SET X=$SELECT(X=4:1,1:"")
GOTO A
9 SET X=$EXTRACT(D,32)
GOTO C
10 SET X=$SELECT($DATA(D1(10)):D1(10),1:"")
GOTO A
11 SET X=$EXTRACT(D,33)
SET X1=$EXTRACT(D,34)
DO F
GOTO C
12 SET X=$EXTRACT(D,35)
SET X=$SELECT(X=1:1,1:"")
GOTO A
13 SET X=$EXTRACT(D,36)
SET X=$SELECT(X=1:1,1:"")
GOTO A
14 SET X=$EXTRACT(D,67)
SET X=$SELECT(X=1:1,1:"")
GOTO A
15 SET X=$EXTRACT(D,37)
GOTO C
16 SET X=$EXTRACT(D,38)
GOTO C
17 SET X=$EXTRACT(D,39)
GOTO C
18 SET X=$EXTRACT(D,40)
GOTO C
19 SET X1=0
FOR I(1)=19,20,21
IF $EXTRACT(D,I(1))'=" "
SET X1=X1+1
SET X=$EXTRACT(D,I(1))
SET Z=I(1)
+1 IF X1>1
SET E=1
WRITE !,"ERROR-- More than one patient category has been marked."
QUIT
+2 IF X1=0
SET E=1
WRITE !,"ERROR-- Patient category is missing."
QUIT
+3 SET X=$SELECT(Z=19:X+1,Z=20:X+8,1:X+13)
if Z=19&((X>8)!(X<1))
DO E
if Z=20&((X>17)!(X<9))
DO E
if Z=21&((X>22)!(X<18))
DO E
if E
QUIT
GOTO A
20 SET X=$EXTRACT(D,41)
SET X1=$EXTRACT(D,42)
SET X=$SELECT(X=" ":"",1:X*10)
SET X=$SELECT(X1=" ":X,1:X+X1)
GOTO C
21 SET X=""
GOTO A
22 SET X=$EXTRACT(D,43)
SET X1=$EXTRACT(D,44)
SET X=$SELECT(X=7:10,X=8:20,X=9:30,1:"")
SET X=$SELECT(X1=" ":X,1:X+X1)
GOTO C
23 SET X=$EXTRACT(D,45)
GOTO C
24 SET X=$EXTRACT(D,46)
GOTO C
25 SET X=$EXTRACT(D,47)
GOTO C
26 SET X=$EXTRACT(D,48)
SET X=$SELECT(X=1&(+$EXTRACT(D,5,13)=1):4,X=1&(+$EXTRACT(D,5,13)'=1):3,1:"")
GOTO A
27 SET X=$EXTRACT(D,28)
SET X=$SELECT(X=7:1,X=8:3,1:"")
GOTO A
28 SET X=$EXTRACT(D,49)
SET X1=$EXTRACT(D,50)
DO F
GOTO C
29 SET X=$EXTRACT(D,51)
SET X1=$EXTRACT(D,52)
DO F
GOTO C
30 SET X=$EXTRACT(D,53)
SET X1=$EXTRACT(D,54)
DO F
GOTO C
31 SET X=$EXTRACT(D,55)
SET X1=$EXTRACT(D,56)
SET X=$SELECT(X=7:0,X=8:10,X=9:20,1:"")
SET X=$SELECT(X1=" ":X,1:X+X1)
GOTO C
32 SET X=$EXTRACT(D,57)
GOTO C
33 SET X=$EXTRACT(D,58)
GOTO C
34 SET X=$EXTRACT(D,59)
GOTO C
35 SET X=$EXTRACT(D,60)
SET X1=$EXTRACT(D,61)
SET X=$SELECT(X=" ":"",1:X*10)
SET X=$SELECT(X1=" ":X,1:X+X1)
GOTO C
36 SET X=$EXTRACT(D,62)
SET X1=$EXTRACT(D,63)
DO F
GOTO C
37 SET X=$EXTRACT(D,64)
GOTO C
38 SET X=$EXTRACT(D,65)
SET X1=$EXTRACT(D,66)
SET X=$SELECT(X=7:10,X=8:20,X=9:30,1:"")
SET X=$SELECT(X1=" ":X,1:X+X1)
GOTO C
39 SET X=$SELECT($DATA(D1(39)):D1(39),1:"")
GOTO A
40 SET X=DENTSTA
DO A
if E
QUIT
SET (D2("A"),D2("A1"))=DENTSTA_","_D2("B")
QUIT
41 SET X=$EXTRACT(D,30)
SET X=$SELECT(X=1:3,X=2:2,1:"")
GOTO C
42 SET X=$EXTRACT(D,25)
SET X=$SELECT(X=2:1,1:"")
GOTO A
43 SET X=$EXTRACT(D,26)
SET X=$SELECT(X=3:1,1:"")
GOTO A
44 SET X=$EXTRACT(D,27)
SET X=$SELECT(X=4:2,1:"")
GOTO A
45 SET X=$EXTRACT(D,29)
SET X=$SELECT(X>5:X-6,1:X)
GOTO C