- MCARSRR ;WISC/TJK,RMP-CATH SURGERY RISK COMPUTATION ;5/2/96 13:04
- ;;2.3;Medicine;;09/13/1996
- GET K MCF S DR="27;74;36;31;3;38;30;21;42;75.5",DIQ="MCV(",DIQ(0)="I" D EN^DIQ1
- I '$D(MCV(694.5)) F JJ=1:1:10 S KK=$P(DR,";",JJ),MCF(KK)=""
- I D CANT G EXIT
- F JJ=1:1:10 S KK=$S(JJ=1:27,JJ=2:74,JJ=3:36,JJ=4:31,JJ=5:3,JJ=6:38,JJ=7:30,JJ=8:21,JJ=9:42,1:75.5) S:'$D(MCV(694.5,DA,KK,"I")) MCV(694.5,DA,KK,"I")="" S @("MCV"_JJ)=MCV(694.5,DA,KK,"I") S:MCV(694.5,DA,KK,"I")="" MCF(KK)=""
- K MCV(694.5) I $D(MCF) G CANT
- PROC ;S MCP=MCV10 ;S DR=75.5 D ^DIE G EXIT:$D(Y),PROC:'$P(^MCAR(694.5,DA,4),U,11) S MCP=$P(^(4),U,11)
- S IC=-7.455009447,B1C=1.13743177,B2C=.48614314,B3C=.40570874,B4C=.46245638,B5C=.02927118,B6C=.50438306,B7C=.29901768,B8C=.28987855
- S MCVI=-7.236265396,MCB2V=.78491219,MCB4V=.71141841,MCB5V=.04832140,MCB9V=.16933566,MCD1=.62625048,MCD2=.60725905,MCD3=.72498339
- F JJ=1,4,6,7,8 S @("MCV"_JJ)=$S(@("MCV"_JJ)="N":0,1:1)
- D @MCV10,EST2 S EST=EST2/(1+EST2)*100,EST=$J(EST,3,1),DR="75///"_EST D ^DIE
- S DFN=$P(^MCAR(694.5,DA,0),U,2) D DEM^VADPT S MCARGNM=VADM(1) K VADM
- W !!,*7,"The estimated mortality for ",MCARGNM," is ",EST," %."
- W:MCV10=5 !!,*7,*7,"This mortality estimate should be interpreted with caution because of the variety of high and low risk procedures included in this group."
- R !!,"Press <RETURN> to continue",X:DTIME
- EXIT K DIQ,MCV,MCV1,MCV2,MCV3,MCV4,MCV5,MCV6,MCV7,MCV8,MCV9,JJ,KK,MCV10,MCF
- K DIC,DIE,DA,DR,EST,EST1,EST2,MCARGNM
- K %X,%Y,%Y2,B1C,B2C,B3C,B4C,B5C,B6C,B7C,B8C,MCB2V,MCB4V,MCB5V,MCB9V
- K D,D0,DFN,DI,DIPGM,DQ,DZ,IC,MCVI,MCVA,MCD1,MCD2,MCD3
- Q
- EST2 ;
- S X=EST1,E=0,B=1.4427*X\1+1 Q:B>90
- S E=.693147*B-X,A=.00132988-(.000141316*E)
- S A=((A*E-.00830136)*E+.0416574)*E
- S E=(((A-.166665)*E+.5)*E-1)*E+1,A=2
- I B'>0 S A=.5,B=-B
- F I=1:1:B S E=A*E
- S EST2=+E K A,B,I,E,X Q
- 1 S EST1=IC+(MCV1*B1C)+(MCV2*B2C)+(MCV3*B3C)+(MCV4*B4C)+(MCV5*B5C)+(MCV6*B6C)+(MCV7*B7C)+(MCV8*B8C) Q
- 2 S EST1=MCVI+(MCV2*MCB2V)+(MCV4*MCB4V)+(MCV5*MCB5V)+(MCV9*MCB9V) Q
- 3 S EST1=MCVI+MCD1+(MCV2*MCB2V)+(MCV4*MCB4V)+(MCV5*MCB5V)+(MCV9*MCB9V) Q
- 4 S EST1=MCVI+MCD2+(MCV2*MCB2V)+(MCV4*MCB4V)+(MCV5*MCB5V)+(MCV9*MCB9V) Q
- 5 S EST1=MCVI+MCD3+(MCV2*MCB2V)+(MCV4*MCB4V)+(MCV5*MCB5V)+(MCV9*MCB9V) Q
- CANT W !,*7,"Expected Mortality CAN NOT be Calculated because the following variables are missing:"
- F KK=0:0 S KK=$O(MCF(KK)) Q:KK="" W !,$P(^DD(694.5,KK,0),U)
- W !,"Please enter values for these variables in order to compute expected mortality"
- R !,"Would you like to enter these now? Yes//",ZIP:DTIME G EXIT:'$T!(ZIP=U),EXIT:ZIP["N",CANT:ZIP'["Y"&(ZIP'="")
- ;IF NOT GO EXIT
- S DR="" F K=0:0 S K=$O(MCF(K)) Q:K="" S:'$D(TST) DR=K S:$D(TST) DR=DR_";"_K S TST=""
- S DIE="^MCAR(694.5," D ^DIE K ZIP,MCF,TST G GET
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HMCARSRR 2757 printed Feb 18, 2025@23:41:01 Page 2
- MCARSRR ;WISC/TJK,RMP-CATH SURGERY RISK COMPUTATION ;5/2/96 13:04
- +1 ;;2.3;Medicine;;09/13/1996
- GET KILL MCF
- SET DR="27;74;36;31;3;38;30;21;42;75.5"
- SET DIQ="MCV("
- SET DIQ(0)="I"
- DO EN^DIQ1
- +1 IF '$DATA(MCV(694.5))
- FOR JJ=1:1:10
- SET KK=$PIECE(DR,";",JJ)
- SET MCF(KK)=""
- +2 IF $TEST
- DO CANT
- GOTO EXIT
- +3 FOR JJ=1:1:10
- SET KK=$SELECT(JJ=1:27,JJ=2:74,JJ=3:36,JJ=4:31,JJ=5:3,JJ=6:38,JJ=7:30,JJ=8:21,JJ=9:42,1:75.5)
- if '$DATA(MCV(694.5,DA,KK,"I"))
- SET MCV(694.5,DA,KK,"I")=""
- SET @("MCV"_JJ)=MCV(694.5,DA,KK,"I")
- if MCV(694.5,DA,KK,"I")=""
- SET MCF(KK)=""
- +4 KILL MCV(694.5)
- IF $DATA(MCF)
- GOTO CANT
- PROC ;S MCP=MCV10 ;S DR=75.5 D ^DIE G EXIT:$D(Y),PROC:'$P(^MCAR(694.5,DA,4),U,11) S MCP=$P(^(4),U,11)
- +1 SET IC=-7.455009447
- SET B1C=1.13743177
- SET B2C=.48614314
- SET B3C=.40570874
- SET B4C=.46245638
- SET B5C=.02927118
- SET B6C=.50438306
- SET B7C=.29901768
- SET B8C=.28987855
- +2 SET MCVI=-7.236265396
- SET MCB2V=.78491219
- SET MCB4V=.71141841
- SET MCB5V=.04832140
- SET MCB9V=.16933566
- SET MCD1=.62625048
- SET MCD2=.60725905
- SET MCD3=.72498339
- +3 FOR JJ=1,4,6,7,8
- SET @("MCV"_JJ)=$SELECT(@("MCV"_JJ)="N":0,1:1)
- +4 DO @MCV10
- DO EST2
- SET EST=EST2/(1+EST2)*100
- SET EST=$JUSTIFY(EST,3,1)
- SET DR="75///"_EST
- DO ^DIE
- +5 SET DFN=$PIECE(^MCAR(694.5,DA,0),U,2)
- DO DEM^VADPT
- SET MCARGNM=VADM(1)
- KILL VADM
- +6 WRITE !!,*7,"The estimated mortality for ",MCARGNM," is ",EST," %."
- +7 if MCV10=5
- WRITE !!,*7,*7,"This mortality estimate should be interpreted with caution because of the variety of high and low risk procedures included in this group."
- +8 READ !!,"Press <RETURN> to continue",X:DTIME
- EXIT KILL DIQ,MCV,MCV1,MCV2,MCV3,MCV4,MCV5,MCV6,MCV7,MCV8,MCV9,JJ,KK,MCV10,MCF
- +1 KILL DIC,DIE,DA,DR,EST,EST1,EST2,MCARGNM
- +2 KILL %X,%Y,%Y2,B1C,B2C,B3C,B4C,B5C,B6C,B7C,B8C,MCB2V,MCB4V,MCB5V,MCB9V
- +3 KILL D,D0,DFN,DI,DIPGM,DQ,DZ,IC,MCVI,MCVA,MCD1,MCD2,MCD3
- +4 QUIT
- EST2 ;
- +1 SET X=EST1
- SET E=0
- SET B=1.4427*X\1+1
- if B>90
- QUIT
- +2 SET E=.693147*B-X
- SET A=.00132988-(.000141316*E)
- +3 SET A=((A*E-.00830136)*E+.0416574)*E
- +4 SET E=(((A-.166665)*E+.5)*E-1)*E+1
- SET A=2
- +5 IF B'>0
- SET A=.5
- SET B=-B
- +6 FOR I=1:1:B
- SET E=A*E
- +7 SET EST2=+E
- KILL A,B,I,E,X
- QUIT
- 1 SET EST1=IC+(MCV1*B1C)+(MCV2*B2C)+(MCV3*B3C)+(MCV4*B4C)+(MCV5*B5C)+(MCV6*B6C)+(MCV7*B7C)+(MCV8*B8C)
- QUIT
- 2 SET EST1=MCVI+(MCV2*MCB2V)+(MCV4*MCB4V)+(MCV5*MCB5V)+(MCV9*MCB9V)
- QUIT
- 3 SET EST1=MCVI+MCD1+(MCV2*MCB2V)+(MCV4*MCB4V)+(MCV5*MCB5V)+(MCV9*MCB9V)
- QUIT
- 4 SET EST1=MCVI+MCD2+(MCV2*MCB2V)+(MCV4*MCB4V)+(MCV5*MCB5V)+(MCV9*MCB9V)
- QUIT
- 5 SET EST1=MCVI+MCD3+(MCV2*MCB2V)+(MCV4*MCB4V)+(MCV5*MCB5V)+(MCV9*MCB9V)
- QUIT
- CANT WRITE !,*7,"Expected Mortality CAN NOT be Calculated because the following variables are missing:"
- +1 FOR KK=0:0
- SET KK=$ORDER(MCF(KK))
- if KK=""
- QUIT
- WRITE !,$PIECE(^DD(694.5,KK,0),U)
- +2 WRITE !,"Please enter values for these variables in order to compute expected mortality"
- +3 READ !,"Would you like to enter these now? Yes//",ZIP:DTIME
- if '$TEST!(ZIP=U)
- GOTO EXIT
- if ZIP["N"
- GOTO EXIT
- if ZIP'["Y"&(ZIP'="")
- GOTO CANT
- +4 ;IF NOT GO EXIT
- +5 SET DR=""
- FOR K=0:0
- SET K=$ORDER(MCF(K))
- if K=""
- QUIT
- if '$DATA(TST)
- SET DR=K
- if $DATA(TST)
- SET DR=DR_";"_K
- SET TST=""
- +6 SET DIE="^MCAR(694.5,"
- DO ^DIE
- KILL ZIP,MCF,TST
- GOTO GET