1 | DGPTC1 ;ALN/MJK - Census Record Processing; JAN 27, 2005
|
---|
2 | ;;5.3;Registration;**37,413,643,701**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | CEN ; -- determine if PTF rec is current Census rec
|
---|
5 | ; input: PTF := ptf rec #
|
---|
6 | ; DGPMCA := corres. adm (non-fee)
|
---|
7 | ; DGPMAN := 0th node of corrs adm "
|
---|
8 | ;output: DGCI := census rec #
|
---|
9 | ; DGCST := census rec status
|
---|
10 | ; DGCN := census date entry to 45.86
|
---|
11 | ;
|
---|
12 | K DGCST,DGCI,DGCN,DGCN0,DGFEE
|
---|
13 | S DGFEE=0
|
---|
14 | G CENQ:'$D(^DGPT(PTF,0)) N DFN S DGPTF0=^(0),DFN=+DGPTF0
|
---|
15 | ;G CENQ:$P(DGPTF0,U,4)
|
---|
16 | D CEN^DGPTUTL I DGCN0=""!(DT'>DGCN0) K DGCN G CENQ
|
---|
17 | ;I $P(DGPTF0,U,4) D FEE G CENQ ;DG*701 reposition line
|
---|
18 | S DGT=$P(DGCN0,U)_".9" I '$P(DGPTF0,U,4) D WARD I 'Y K DGCN G CENQ
|
---|
19 | ;if Fee Basis quit if admit > census date or admit < census date if disch
|
---|
20 | I $P(DGPTF0,U,4)=1,$P(DGPTF0,U,2)>DGT G CENQ
|
---|
21 | I $P(DGPTF0,U,4)=1,+$P($G(^DGPT(PTF,70)),U),$P(DGPTF0,U,2)<DGT G CENQ
|
---|
22 | I $P(DGPTF0,U,4)=1 D FEE G CENQ
|
---|
23 | S DGCST=0,DGCI=""
|
---|
24 | F S DGCI=$O(^DGPT("ACENSUS",PTF,DGCI)) Q:'DGCI I $D(^DGPT(DGCI,0)),$P(^(0),U,13)=DGCN S DGCST=$P(^(0),U,6) Q:DGCST'=0 D Q
|
---|
25 | .S DGCI=$$RDGCI(DGCI),DGCST=1
|
---|
26 | CENQ K DGCN0,DGA1,DGT,X,DGPTF0,DGFEE Q
|
---|
27 | ;
|
---|
28 | KVAR K DGCN,DGCI,DGCST Q
|
---|
29 | ;
|
---|
30 | FEE ;
|
---|
31 | S DGCST=0,DGCI="",DGFEE=1
|
---|
32 | F S DGCI=$O(^DGPT("ACENSUS",PTF,DGCI)) Q:'DGCI I $D(^DGPT(DGCI,0)),$P(^(0),U,13)=DGCN S DGCST=$P(^(0),U,6) Q:DGCST'=0 D Q
|
---|
33 | . S DGCI=$$RDGCI(DGCI),DGCST=+$P(^DGPT(DGCI,0),U,6)
|
---|
34 | Q
|
---|
35 | ACT ; -- census actions with input of X
|
---|
36 | Q:'$D(X)
|
---|
37 | S Y=2 D RTY^DGPTUTL
|
---|
38 | I X="L" D CLS G ACTQ
|
---|
39 | I X="P" D OPEN G ACTQ
|
---|
40 | I X="E" S DGPTFLE=1,DGPTIFN=DGCI D EN^DGPTFREL K DGRTY,DGRTY0 G ^DGPTF
|
---|
41 | ACTQ K DGRTY,DGRTY0 G EN1^DGPTF4
|
---|
42 | ;
|
---|
43 | RDGCI(DGCI) ;-- eliminating 'OPEN' status census record and duplicates
|
---|
44 | S DGDL=DGCI,DGCIR="" D
|
---|
45 | .F S DGCIR=$O(^DGPT("ACENSUS",PTF,DGCIR),-1) Q:DGCIR<DGDL D
|
---|
46 | ..I $D(^DGPT(DGCIR,0)),$P(^(0),U,13)=DGCN S:DGCI=DGDL DGCI=DGCIR D
|
---|
47 | ...I DGCIR<DGCI S DGPTIFN=DGCIR,DGRTY=2 D KDGP^DGPTFDEL,KDGPT^DGPTFDEL
|
---|
48 | Q DGCI
|
---|
49 | ;
|
---|
50 | CLS ;
|
---|
51 | S DGFEE=0
|
---|
52 | I $P(^DGPT(DGPTF,0),U,4)'=1 W !,"Updating TRANSFER DRGs..." S DGADM=$P(^DGPT(PTF,0),U,2) D SUDO1^DGPTSUDO
|
---|
53 | S J=PTF,DGERR=-1,T2=^DG(45.86,DGCN,0)+.9,T1=$P(^(0),U,5)
|
---|
54 | S DGPTFMTX=DGPTFMT S Y=T2 D FMT^DGPTUTL
|
---|
55 | W !,"Performing edit checks..."
|
---|
56 | ;-- init for Austin Edits
|
---|
57 | K ^TMP("AEDIT",$J),^TMP("AERROR",$J) S DGACNT=0
|
---|
58 | ;
|
---|
59 | D LOG^DGPTFTR1:DGPTFMT=1,LOG^DGPTR1:DGPTFMT=2,COM1^DGPTFTR
|
---|
60 | K DGLOGIC,T1,T2,DGCCO D LO^DGUTL
|
---|
61 | I DGERR>0 K DGERR D ^DGPTF2 G CLSQ
|
---|
62 | ;-- do austin edits
|
---|
63 | ;
|
---|
64 | D ^DGPTAE I DGERR>0 K DGERR D ^DGPTF2 G CLSQ
|
---|
65 | K DGERR,^TMP("AEDIT",$J),DGACNT
|
---|
66 | I $P(^DGPT(PTF,0),U,4) S DGFEE=1 D FEE1 G CLSQ:'DGCI
|
---|
67 | I $P(^DGPT(PTF,0),U,4)'=1 D CREATE G CLSQ:'DGCI
|
---|
68 | S DR="7////"_DUZ_";8///T",DA=DGCI,DIE="^DGPT(" D ^DIE K DIE,DR
|
---|
69 | S (X,DINUM)=DGCI,DIC(0)="L",DIC="^DGP(45.84,",DIC("DR")="2///NOW;3////"_DUZ
|
---|
70 | K DD,DO D FILE^DICN K DIC,DINUM
|
---|
71 | F I=0,.11,.52,.321,.32,57,.3 S:$D(^DPT(DFN,I)) ^DGP(45.84,DGCI,$S(I=0:10,1:I))=^DPT(DFN,I)
|
---|
72 | W !,"****** CENSUS CLOSED OUT ******" D HANG^DGPTUTL
|
---|
73 | S DGCST=1
|
---|
74 | CLSQ S DGPTFMT=DGPTFMTX K DGPTFMTX,DGFEE Q
|
---|
75 | ;
|
---|
76 | CREATE ; -- create census record
|
---|
77 | W !,"Creating Census Record..."
|
---|
78 | S Y=$P(^DGPT(PTF,0),U,2) D CREATE^DGPTFCR G CREATEQ:Y<0 S DGCI=+Y W "#",DGCI
|
---|
79 | S DGEND=+^DG(45.86,DGCN,0)_".2359",DGBEG=+$P(^(0),U,5)
|
---|
80 | S ^DGPT(DGCI,0)=$P(^DGPT(PTF,0),U,1,10)_"^2^"_PTF_"^"_DGCN,DGCSUF=$P(^(0),U,5)
|
---|
81 | ;S ^DGPT(DGCI,0)=$P(^DGPT(PTF,0),U,1,5)_"^1^"_$P(^DGPT(PTF,0),U,7,10)_"^2^"_PTF_"^"_DGCN,DGCSUF=$P(^(0),U,5)
|
---|
82 | S Y=DGEND D BS^DGPTC2 S X="",$P(X,U)=DGEND,$P(X,U,14)=Y
|
---|
83 | I $D(^DGPT(PTF,70)) S Y=^(70) F I=8,9,10 S $P(X,U,I)=$P(Y,U,I)
|
---|
84 | S ^DGPT(DGCI,70)=X D ASIH
|
---|
85 | I $D(^DGPT(PTF,101)) S ^DGPT(DGCI,101)=^DGPT(PTF,101)
|
---|
86 | F NODE="M","P","S",535 F I=0:0 S I=$O(^DGPT(PTF,NODE,I)) Q:'I I $D(^DGPT(PTF,NODE,I,0)) S X=^(0) D @("SET"_NODE_"^DGPTC2")
|
---|
87 | K DA,DIKLM S DA=DGCI,DIK="^DGPT(" D IX1^DIK
|
---|
88 | CREATEQ K X,Y,DGCSUF,DGBEG,DGEND Q
|
---|
89 | ;
|
---|
90 | FEE1 ; -- create census record for fee record
|
---|
91 | W !,"Creating Census Record..."
|
---|
92 | S Y=$P(^DGPT(PTF,0),U,2) D CREATE^DGPTFCR G CREATEQ:Y<0 S DGCI=+Y W "#",DGCI
|
---|
93 | S DGEND=+^DG(45.86,DGCN,0)_".2359",DGBEG=+$P(^(0),U,5)
|
---|
94 | S ^DGPT(DGCI,0)=$P(^DGPT(PTF,0),U,1,10)_"^2^"_PTF_"^"_DGCN,DGCSUF=$P(^(0),U,5)
|
---|
95 | I $D(^DGPT(PTF,70)) S ^DGPT(DGCI,70)=^DGPT(PTF,70)
|
---|
96 | S $P(^DGPT(DGCI,70),U)=DGEND
|
---|
97 | I $D(^DGPT(PTF,101)) S ^DGPT(DGCI,101)=^DGPT(PTF,101)
|
---|
98 | F NODE="M","P","S",535 F I=0:0 S I=$O(^DGPT(PTF,NODE,I)) Q:'I I $D(^DGPT(PTF,NODE,I,0)) S X=^(0) D @("SET"_NODE_"^DGPTC2")
|
---|
99 | K DA,DIKLM S DA=DGCI,DIK="^DGPT(" D IX1^DIK
|
---|
100 | FEE1Q K X,Y,DGCSUF,DGBEG,DGEND Q
|
---|
101 | OPEN ; -- re-open census rec by deleting
|
---|
102 | S DGPTIFN=DGCI D OPEN^DGPTFDEL S (DGCI,DGCST)=0
|
---|
103 | K DGPTIFN Q
|
---|
104 | ;
|
---|
105 | WARD ; -- ward @ census d/t for an adm(even if nhcu/dom adm that is ASIH)
|
---|
106 | ; input: DGPMCA := corres adm
|
---|
107 | ; DGPMAN := corres adm 0th node
|
---|
108 | ; output: Y := ward ptr or null
|
---|
109 | ;
|
---|
110 | N MVT,M
|
---|
111 | S Y=""
|
---|
112 | I +DGPMAN>DGT Q
|
---|
113 | I $D(^DGPM(+$P(DGPMAN,U,17),0)),+^(0)<DGT Q
|
---|
114 | F %=(9999999.9999999-DGT):0 S %=$O(^DGPM("APMV",DFN,DGPMCA,%)) Q:'% F MVT=0:0 S MVT=$O(^DGPM("APMV",DFN,DGPMCA,%,MVT)) Q:'MVT I $D(^DGPM(MVT,0)) S M=^(0) I "^13^43^44^45^"'[(U_$P(M,U,18)_U),$D(^DIC(42,+$P(M,U,6),0)) S Y=+$P(M,U,6) G WARDQ
|
---|
115 | WARDQ Q
|
---|
116 | ;
|
---|
117 | ASIH ; -- calc asih days
|
---|
118 | N DGADM,DGREC,DGBDT,DGEDT,DGMVTP
|
---|
119 | S X1=DGBEG,X2=-1 D C^%DTC S DGBDT=X
|
---|
120 | S X1=$P(DGEND,"."),X2=1 D C^%DTC S DGEDT=X
|
---|
121 | S DGADM=$P(^DGPT(DGCI,0),U,2) D ASIH^DGUTL2
|
---|
122 | S $P(^DGPT(DGCI,70),U,8)=DGREC
|
---|
123 | Q
|
---|