- SCMCTSKG ;bpoifo/dmr PCMM Inactivation GUI Rpt.;3/18/08
- ;;5.3;PIMS;**1016**;JUN 30, 2012;Build 20
- ;;
- EN(SCRESULT,SCARRAY) ;
- S (STAT,TN,IEN,INST,INSTN,UNDATE,UNREA,TEAMPN,SSN,SSNN)="" S NUM=0
- S (TEAM,TEAMP,PROVN,PROV,BDATE,EDATE,PAT,INAME,HOLD)="" S NN=0,CC=0,CT=0
- K ^TMP("SCARRAY")
- M ^TMP("SCARRAY")=SCARRAY
- D DATE
- K ^TMP("SCRESULT","B")
- D FINAL
- S SCRESULT=$NA(^TMP("SCRESULT"))
- D EXIT
- Q
- DATE ;
- S BDATE=$G(^TMP("SCARRAY","AA")) S X=$P(BDATE,"""",2) D ^%DT S BDATE=Y
- S EDATE=$G(^TMP("SCARRAY","AB")) S X=$P(EDATE,"""",2) D ^%DT S EDATE=Y
- D START
- Q
- START ;
- S STAT="" F S STAT=$O(^SCPT(404.43,"ASTATB",STAT)) Q:STAT="" D
- .S IEN="" F S IEN=$O(^SCPT(404.43,"ASTATB",STAT,IEN)) Q:'IEN D
- ..S UNDATE="" S UNDATE=$$GET1^DIQ(404.43,IEN_",",.04,"I") IF $D(UNDATE) D
- ...I (UNDATE<BDATE)!(UNDATE>EDATE) Q
- ...S PAT="" S PAT=$$GET1^DIQ(404.43,IEN_",",.01)
- ...S (SN,SSN,SSNN)="" S SN=$$GET1^DIQ(404.43,IEN_",",.01,"I")
- ...S SSNN=$$GET1^DIQ(404.42,SN_",",.01,"I") S SSN=$$GET1^DIQ(2,SSNN_",",.09)
- ...D TEAMP
- ...Q
- Q
- TEAMP ;
- S (TEAMP,TPN,TPN2)=""
- S TPN=$$GET1^DIQ(404.43,IEN_",",.02,"I")
- S TEAMP=$$GET1^DIQ(404.43,IEN_",",.02)
- I $G(^TMP("SCARRAY","TP^0"))="""ALL^0""" D TEAM Q
- I '$D(^TMP("SCARRAY","TP^0")) D
- .S TPN2=$G(^TMP("SCARRAY","TP^"_TPN)) I TPN2'="" D
- ..S TPN2=$P(TPN2,"""",2) I $P(TPN2,"^",1)=TEAMP D TEAM
- Q
- TEAM ;
- S (TEAMN,TN,TN2,PREC)=""
- S TN=$$GET1^DIQ(404.57,TPN_",",.02,"I")
- S TEAMN=$$GET1^DIQ(404.57,TPN_",",.02)
- S PREC=$$GET1^DIQ(404.57,TPN_",",.1)
- I $G(^TMP("SCARRAY","T^0"))="""ALL^0""" D INST
- I '$D(^TMP("SCARRAY","T^0")) D
- .S TN2=$G(^TMP("SCARRAY","T^"_TN)) I TN2'="" D
- ..S TN2=$P(TN2,"""",2),TN2=$P(TN2,"^",1)
- ..I TN2=TEAMN D INST
- Q
- INST ;
- S (INST,INSTN,INUM)=""
- S INSTN=$$GET1^DIQ(404.51,TN_",",.07,"I")
- I $G(^TMP("SCARRAY","D^0"))="""ALL^0""" D
- .S INST=$$GET1^DIQ(404.51,TN_",",.07)
- .D PROV
- .Q
- I $G(^TMP("SCARRAY","D^0"))'="""ALL""" D
- .S INUM=$G(^TMP("SCARRAY","D^"_INSTN)) I INUM'="" D
- ..S INUM=$P(INUM,"""",2)
- ..I $P(INUM,"^",2)=INSTN D
- ...S INST=$$GET1^DIQ(404.51,TN_",",.07)
- ...D PROV
- ...Q
- Q
- PROV ;
- S (PROV,PROVN,J,JJ,PDATE,EFFD,SCLIST,ERROR,FILE,ST,P1,P2,P3)=""
- I $G(^TMP("SCARRAY","P^0"))'="""ALL^0""" D
- .S J="N" F S J=$O(^TMP("SCARRAY",J)) Q:J="" D
- ..Q:$P(J,"^",1)'="P" D
- ...S PROVN="" S PROVN=+$P(^TMP("SCARRAY",J),"^",2) D
- ....S JJ="" F S JJ=$O(^SCTM(404.52,"C",PROVN,JJ)) Q:'JJ D
- .....S POS="" S POS=$$GET1^DIQ(404.52,JJ_",",.01) I POS=TEAMP D
- ......S (PDATE,ST)="" S PDATE=$$GET1^DIQ(404.52,JJ_",",.02,"I"),ST=$$GET1^DIQ(404.52,JJ_",",.04,"I") D
- .......I PDATE>UNDATE Q
- .......I ST=0&(PDATE<UNDATE) Q
- .......S PROV="" S PROV=$$GET1^DIQ(404.52,JJ_",",.03)
- .......D UNREA,SAVE
- .......Q
- I $G(^TMP("SCARRAY","P^0"))="""ALL^0""" D
- .S PROVN="" F S PROVN=$O(^SCTM(404.52,"C",PROVN)) Q:PROVN="" D
- ..S JJ="" F S JJ=$O(^SCTM(404.52,"C",PROVN,JJ)) Q:'JJ D
- ...S POS="" S POS=$$GET1^DIQ(404.52,JJ_",",.01) I POS=TEAMP D
- ....S (PDATE,ST)="" S PDATE=$$GET1^DIQ(404.52,JJ_",",.02,"I"),ST=$$GET1^DIQ(404.52,JJ_",",.04,"I") D
- .....I PDATE>UNDATE Q
- .....I ST=0&(PDATE<UNDATE) Q
- .....S PROV="" S PROV=$$GET1^DIQ(404.52,JJ_",",.03)
- .....D UNREA,SAVE
- .....Q
- Q
- UNREA ;Unassign Reason
- S UNREA=""
- S UNREA=$$GET1^DIQ(404.43,IEN_",",.12,"I")
- Q
- SAVE ;
- I $G(^TMP("SCARRAY","S1"))="""ALL""" D SAVE1 Q
- I $G(^TMP("SCARRAY","S1"))'="""ALL""" D SAVE2,SAVE3
- Q
- SAVE1 ;
- S Y=UNDATE D DD^%DT S UNDATE=Y
- S NUM=NUM+1
- S ^TMP("SCRESULT",INST,PAT,NUM)=PAT_"^"_SSN_"^"_INST_"^"_TEAMN_"^"_PROV_"^"_TEAMP_"^"_PREC_"^"_UNDATE_"^"_UNREA
- Q
- SAVE2 ;
- S (S1,S2,S3,S4,S5,S6,S7)="",CC="",SORT=""
- F NN=1:1:7 S SORT=$G(^TMP("SCARRAY","S"_NN)) Q:SORT="" D
- .S SORT=$P(SORT,"""",2)
- .S XX=$S(SORT="Patient":PAT,SORT="Institution":INST,SORT="Team":TEAMN,SORT="Provider":PROV,SORT="Team Position":TEAMP,SORT="Date":UNDATE,SORT="Reason":UNREA,1:"")
- .S HOLD=NN
- .I NN=1 S S1=XX,^TMP("SCRESULT",S1)=""
- .I NN=2 S S2=XX,^TMP("SCRESULT",S1,S2)=""
- .I NN=3 S S3=XX,^TMP("SCRESULT",S1,S2,S3)=""
- .I NN=4 S S4=XX,^TMP("SCRESULT",S1,S2,S3,S4)=""
- .I NN=5 S S5=XX,^TMP("SCRESULT",S1,S2,S3,S4,S5)=""
- .I NN=6 S S6=XX,^TMP("SCRESULT",S1,S2,S3,S4,S5,S6)=""
- .I NN=7 S S7=XX,^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,S7)=""
- Q
- SAVE3 ;
- S CC=$S(HOLD=1:"SORT1",HOLD=2:"SORT2",HOLD=3:"SORT3",HOLD=4:"SORT4",HOLD=5:"SORT5",HOLD=6:"SORT6",HOLD=7:"SORT7",1:"")
- S UNDATE2="" S UNDATE2=UNDATE
- S Y=UNDATE2 D DD^%DT S UNDATE2=Y
- D @CC
- Q
- SORT1 ;
- I $D(^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)) Q
- S CT=CT+1
- S ^TMP("SCRESULT",S1,CT)=PAT_"^"_SSN_"^"_INST_"^"_TEAMN_"^"_PROV_"^"_TEAMP_"^"_PREC_"^"_UNDATE2_"^"_UNREA
- S ^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)=""
- Q
- SORT2 ;
- I $D(^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)) Q
- S CT=CT+1
- S ^TMP("SCRESULT",S1,S2,CT)=PAT_"^"_SSN_"^"_INST_"^"_TEAMN_"^"_PROV_"^"_TEAMP_"^"_PREC_"^"_UNDATE2_"^"_UNREA
- S ^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)=""
- Q
- SORT3 ;
- I $D(^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)) Q
- S CT=CT+1
- S ^TMP("SCRESULT",S1,S2,S3,CT)=PAT_"^"_SSN_"^"_INST_"^"_TEAMN_"^"_PROV_"^"_TEAMP_"^"_PREC_"^"_UNDATE2_"^"_UNREA
- S ^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)=""
- Q
- SORT4 ;
- I $D(^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)) Q
- S CT=CT+1
- S ^TMP("SCRESULT",S1,S2,S3,S4,CT)=PAT_"^"_SSN_"^"_INST_"^"_TEAMN_"^"_PROV_"^"_TEAMP_"^"_PREC_"^"_UNDATE2_"^"_UNREA
- S ^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)=""
- Q
- SORT5 ;
- I $D(^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)) Q
- S CT=CT+1
- S ^TMP("SCRESULT",S1,S2,S3,S4,S5,CT)=PAT_"^"_SSN_"^"_INST_"^"_TEAMN_"^"_PROV_"^"_TEAMP_"^"_PREC_"^"_UNDATE2_"^"_UNREA
- S ^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)=""
- Q
- SORT6 ;
- I $D(^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)) Q
- S CT=CT+1
- S ^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,CT)=PAT_"^"_SSN_"^"_INST_"^"_TEAMN_"^"_PROV_"^"_TEAMP_"^"_PREC_"^"_UNDATE2_"^"_UNREA
- S ^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)=""
- Q
- SORT7 ;
- I $D(^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)) Q
- S CT=CT+1
- S ^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,S7,CT)=PAT_"^"_SSN_"^"_INST_"^"_TEAMN_"^"_PROV_"^"_TEAMP_"^"_PREC_"^"_UNDATE2_"^"_UNREA
- S ^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)=""
- Q
- FINAL ;
- I $G(^TMP("SCARRAY","S1"))="""ALL""" D
- .S (INST,PAT,NUM)="" S CC=0,C=0
- .S INST="" F S INST=$O(^TMP("SCRESULT",INST)) Q:INST="" D
- ..S PAT="" F S PAT=$O(^TMP("SCRESULT",INST,PAT)) Q:PAT="" D
- ...S NUM="" F S NUM=$O(^TMP("SCRESULT",INST,PAT,NUM)) Q:NUM="" D
- ....S CC=CC+1 S ^TMP("SCRESULT",CC)=^TMP("SCRESULT",INST,PAT,NUM)
- ....K ^TMP("SCRESULT",INST,PAT,NUM)
- I $G(^TMP("SCARRAY","S1"))'="""ALL""" D
- .S (S1,S2,S3,S4,S5,S6,S7)="",CT=0,C=0
- .IF CC="SORT1" D
- ..S S1="" F S S1=$O(^TMP("SCRESULT",S1)) Q:S1="" D
- ...S C="" F S C=$O(^TMP("SCRESULT",S1,C)) Q:C="" D
- ....S CT=CT+1 S ^TMP("SCRESULT",CT)=^TMP("SCRESULT",S1,C)
- ....K ^TMP("SCRESULT",S1,C)
- .I CC="SORT2" D
- ..S S1="" F S S1=$O(^TMP("SCRESULT",S1)) Q:S1="" D
- ...S S2="" F S S2=$O(^TMP("SCRESULT",S1,S2)) Q:S2="" D
- ....S C="" F S C=$O(^TMP("SCRESULT",S1,S2,C)) Q:C="" D
- .....S CT=CT+1 S ^TMP("SCRESULT",CT)=^TMP("SCRESULT",S1,S2,C)
- .....K ^TMP("SCRESULT",S1,S2,C)
- .I CC="SORT3" D
- ..S S1="" F S S1=$O(^TMP("SCRESULT",S1)) Q:S1="" D
- ...S S2="" F S S2=$O(^TMP("SCRESULT",S1,S2)) Q:S2="" D
- ....S S3="" F S S3=$O(^TMP("SCRESULT",S1,S2,S3)) Q:S3="" D
- .....S C="" F S C=$O(^TMP("SCRESULT",S1,S2,S3,C)) Q:C="" D
- ......S CT=CT+1 S ^TMP("SCRESULT",CT)=^TMP("SCRESULT",S1,S2,S3,C)
- ......K ^TMP("SCRESULT",S1,S2,S3,C)
- .I CC="SORT4" D
- ..S S1="" F S S1=$O(^TMP("SCRESULT",S1)) Q:S1="" D
- ...S S2="" F S S2=$O(^TMP("SCRESULT",S1,S2)) Q:S2="" D
- ....S S3="" F S S3=$O(^TMP("SCRESULT",S1,S2,S3)) Q:S3="" D
- .....S S4="" F S S4=$O(^TMP("SCRESULT",S1,S2,S3,S4)) Q:S4="" D
- ......S C="" F S C=$O(^TMP("SCRESULT",S1,S2,S3,S4,C)) Q:C="" D
- .......S CT=CT+1 S ^TMP("SCRESULT",CT)=^TMP("SCRESULT",S1,S2,S3,S4,C)
- .......K ^TMP("SCRESULT",S1,S2,S3,S4,C)
- .I CC="SORT5" D
- ..S S1="" F S S1=$O(^TMP("SCRESULT",S1)) Q:S1="" D
- ...S S2="" F S S2=$O(^TMP("SCRESULT",S1,S2)) Q:S2="" D
- ....S S3="" F S S3=$O(^TMP("SCRESULT",S1,S2,S3)) Q:S3="" D
- .....S S4="" F S S4=$O(^TMP("SCRESULT",S1,S2,S3,S4)) Q:S4="" D
- ......S S5="" F S S5=$O(^TMP("SCRESULT",S1,S2,S3,S4,S5)) Q:S5="" D
- .......S C="" F S C=$O(^TMP("SCRESULT",S1,S2,S3,S4,S5,C)) Q:C="" D
- ........S CT=CT+1 S ^TMP("SCRESULT",CT)=^TMP("SCRESULT",S1,S2,S3,S4,S5,C)
- ........K ^TMP("SCRESULT",S1,S2,S3,S4,S5,C)
- .I CC="SORT6" D
- ..S S1="" F S S1=$O(^TMP("SCRESULT",S1)) Q:S1="" D
- ...S S2="" F S S2=$O(^TMP("SCRESULT",S1,S2)) Q:S2="" D
- ....S S3="" F S S3=$O(^TMP("SCRESULT",S1,S2,S3)) Q:S3="" D
- .....S S4="" F S S4=$O(^TMP("SCRESULT",S1,S2,S3,S4)) Q:S4="" D
- ......S S5="" F S S5=$O(^TMP("SCRESULT",S1,S2,S3,S4,S5)) Q:S5="" D
- .......S S6="" F S S6=$O(^TMP("SCRESULT",S1,S2,S3,S4,S5,S6)) Q:S6="" D
- ........S C="" F S C=$O(^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,C)) Q:C="" D
- .........S CT=CT+1 S ^TMP("SCRESULT",CT)=^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,C)
- .........K ^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,C)
- .I CC="SORT7" D
- ..S S1="" F S S1=$O(^TMP("SCRESULT",S1)) Q:S1="" D
- ...S S2="" F S S2=$O(^TMP("SCRESULT",S1,S2)) Q:S2="" D
- ....S S3="" F S S3=$O(^TMP("SCRESULT",S1,S2,S3)) Q:S3="" D
- .....S S4="" F S S4=$O(^TMP("SCRESULT",S1,S2,S3,S4)) Q:S4="" D
- ......S S5="" F S S5=$O(^TMP("SCRESULT",S1,S2,S3,S4,S5)) Q:S5="" D
- .......S S6="" F S S6=$O(^TMP("SCRESULT",S1,S2,S3,S4,S5,S6)) Q:S6="" D
- ........S S7="" F S S7=$O(^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,S7)) Q:S7="" D
- .........S C="" F S C=$O(^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,S7,C)) Q:C="" D
- ..........S CT=CT+1 S ^TMP("SCRESULT",CT)=^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,S7,C)
- ..........K ^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,S7,C)
- Q
- EXIT ;
- K STAT,TN,TPN,IEN,INST,INSTN,UNDATE,UNREA,TEAMPN,SSN,SSNN,S1,S2,S3,S4,S5,S6,S7,S8
- K TEAM,TEAMN,TEAMP,PROVN,PROV,BDATE,EDATE,PAT,INAME,HOLD,NUM,NU,CC,C,CT,XX,ST
- K TN2,TPN2,UNDATE2,DATE2,EFFD,ERROR,SORT,SN,PDATE,POS,PREC,JJ,J,INUM,NN,P1,P2,P3
- K ^TMP("SCARRAY")
- Q
- SCMCTSKG ;bpoifo/dmr PCMM Inactivation GUI Rpt.;3/18/08
- +1 ;;5.3;PIMS;**1016**;JUN 30, 2012;Build 20
- +2 ;;
- EN(SCRESULT,SCARRAY) ;
- +1 SET (STAT,TN,IEN,INST,INSTN,UNDATE,UNREA,TEAMPN,SSN,SSNN)=""
- SET NUM=0
- +2 SET (TEAM,TEAMP,PROVN,PROV,BDATE,EDATE,PAT,INAME,HOLD)=""
- SET NN=0
- SET CC=0
- SET CT=0
- +3 KILL ^TMP("SCARRAY")
- +4 MERGE ^TMP("SCARRAY")=SCARRAY
- +5 DO DATE
- +6 KILL ^TMP("SCRESULT","B")
- +7 DO FINAL
- +8 SET SCRESULT=$NAME(^TMP("SCRESULT"))
- +9 DO EXIT
- +10 QUIT
- DATE ;
- +1 SET BDATE=$GET(^TMP("SCARRAY","AA"))
- SET X=$PIECE(BDATE,"""",2)
- DO ^%DT
- SET BDATE=Y
- +2 SET EDATE=$GET(^TMP("SCARRAY","AB"))
- SET X=$PIECE(EDATE,"""",2)
- DO ^%DT
- SET EDATE=Y
- +3 DO START
- +4 QUIT
- START ;
- +1 SET STAT=""
- FOR
- SET STAT=$ORDER(^SCPT(404.43,"ASTATB",STAT))
- IF STAT=""
- QUIT
- Begin DoDot:1
- +2 SET IEN=""
- FOR
- SET IEN=$ORDER(^SCPT(404.43,"ASTATB",STAT,IEN))
- IF 'IEN
- QUIT
- Begin DoDot:2
- +3 SET UNDATE=""
- SET UNDATE=$$GET1^DIQ(404.43,IEN_",",.04,"I")
- IF $DATA(UNDATE)
- Begin DoDot:3
- +4 IF (UNDATE<BDATE)!(UNDATE>EDATE)
- QUIT
- +5 SET PAT=""
- SET PAT=$$GET1^DIQ(404.43,IEN_",",.01)
- +6 SET (SN,SSN,SSNN)=""
- SET SN=$$GET1^DIQ(404.43,IEN_",",.01,"I")
- +7 SET SSNN=$$GET1^DIQ(404.42,SN_",",.01,"I")
- SET SSN=$$GET1^DIQ(2,SSNN_",",.09)
- +8 DO TEAMP
- +9 QUIT
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +10 QUIT
- TEAMP ;
- +1 SET (TEAMP,TPN,TPN2)=""
- +2 SET TPN=$$GET1^DIQ(404.43,IEN_",",.02,"I")
- +3 SET TEAMP=$$GET1^DIQ(404.43,IEN_",",.02)
- +4 IF $GET(^TMP("SCARRAY","TP^0"))="""ALL^0"""
- DO TEAM
- QUIT
- +5 IF '$DATA(^TMP("SCARRAY","TP^0"))
- Begin DoDot:1
- +6 SET TPN2=$GET(^TMP("SCARRAY","TP^"_TPN))
- IF TPN2'=""
- Begin DoDot:2
- +7 SET TPN2=$PIECE(TPN2,"""",2)
- IF $PIECE(TPN2,"^",1)=TEAMP
- DO TEAM
- End DoDot:2
- End DoDot:1
- +8 QUIT
- TEAM ;
- +1 SET (TEAMN,TN,TN2,PREC)=""
- +2 SET TN=$$GET1^DIQ(404.57,TPN_",",.02,"I")
- +3 SET TEAMN=$$GET1^DIQ(404.57,TPN_",",.02)
- +4 SET PREC=$$GET1^DIQ(404.57,TPN_",",.1)
- +5 IF $GET(^TMP("SCARRAY","T^0"))="""ALL^0"""
- DO INST
- +6 IF '$DATA(^TMP("SCARRAY","T^0"))
- Begin DoDot:1
- +7 SET TN2=$GET(^TMP("SCARRAY","T^"_TN))
- IF TN2'=""
- Begin DoDot:2
- +8 SET TN2=$PIECE(TN2,"""",2)
- SET TN2=$PIECE(TN2,"^",1)
- +9 IF TN2=TEAMN
- DO INST
- End DoDot:2
- End DoDot:1
- +10 QUIT
- INST ;
- +1 SET (INST,INSTN,INUM)=""
- +2 SET INSTN=$$GET1^DIQ(404.51,TN_",",.07,"I")
- +3 IF $GET(^TMP("SCARRAY","D^0"))="""ALL^0"""
- Begin DoDot:1
- +4 SET INST=$$GET1^DIQ(404.51,TN_",",.07)
- +5 DO PROV
- +6 QUIT
- End DoDot:1
- +7 IF $GET(^TMP("SCARRAY","D^0"))'="""ALL"""
- Begin DoDot:1
- +8 SET INUM=$GET(^TMP("SCARRAY","D^"_INSTN))
- IF INUM'=""
- Begin DoDot:2
- +9 SET INUM=$PIECE(INUM,"""",2)
- +10 IF $PIECE(INUM,"^",2)=INSTN
- Begin DoDot:3
- +11 SET INST=$$GET1^DIQ(404.51,TN_",",.07)
- +12 DO PROV
- +13 QUIT
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +14 QUIT
- PROV ;
- +1 SET (PROV,PROVN,J,JJ,PDATE,EFFD,SCLIST,ERROR,FILE,ST,P1,P2,P3)=""
- +2 IF $GET(^TMP("SCARRAY","P^0"))'="""ALL^0"""
- Begin DoDot:1
- +3 SET J="N"
- FOR
- SET J=$ORDER(^TMP("SCARRAY",J))
- IF J=""
- QUIT
- Begin DoDot:2
- +4 IF $PIECE(J,"^",1)'="P"
- QUIT
- Begin DoDot:3
- +5 SET PROVN=""
- SET PROVN=+$PIECE(^TMP("SCARRAY",J),"^",2)
- Begin DoDot:4
- +6 SET JJ=""
- FOR
- SET JJ=$ORDER(^SCTM(404.52,"C",PROVN,JJ))
- IF 'JJ
- QUIT
- Begin DoDot:5
- +7 SET POS=""
- SET POS=$$GET1^DIQ(404.52,JJ_",",.01)
- IF POS=TEAMP
- Begin DoDot:6
- +8 SET (PDATE,ST)=""
- SET PDATE=$$GET1^DIQ(404.52,JJ_",",.02,"I")
- SET ST=$$GET1^DIQ(404.52,JJ_",",.04,"I")
- Begin DoDot:7
- +9 IF PDATE>UNDATE
- QUIT
- +10 IF ST=0&(PDATE<UNDATE)
- QUIT
- +11 SET PROV=""
- SET PROV=$$GET1^DIQ(404.52,JJ_",",.03)
- +12 DO UNREA
- DO SAVE
- +13 QUIT
- End DoDot:7
- End DoDot:6
- End DoDot:5
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +14 IF $GET(^TMP("SCARRAY","P^0"))="""ALL^0"""
- Begin DoDot:1
- +15 SET PROVN=""
- FOR
- SET PROVN=$ORDER(^SCTM(404.52,"C",PROVN))
- IF PROVN=""
- QUIT
- Begin DoDot:2
- +16 SET JJ=""
- FOR
- SET JJ=$ORDER(^SCTM(404.52,"C",PROVN,JJ))
- IF 'JJ
- QUIT
- Begin DoDot:3
- +17 SET POS=""
- SET POS=$$GET1^DIQ(404.52,JJ_",",.01)
- IF POS=TEAMP
- Begin DoDot:4
- +18 SET (PDATE,ST)=""
- SET PDATE=$$GET1^DIQ(404.52,JJ_",",.02,"I")
- SET ST=$$GET1^DIQ(404.52,JJ_",",.04,"I")
- Begin DoDot:5
- +19 IF PDATE>UNDATE
- QUIT
- +20 IF ST=0&(PDATE<UNDATE)
- QUIT
- +21 SET PROV=""
- SET PROV=$$GET1^DIQ(404.52,JJ_",",.03)
- +22 DO UNREA
- DO SAVE
- +23 QUIT
- End DoDot:5
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +24 QUIT
- UNREA ;Unassign Reason
- +1 SET UNREA=""
- +2 SET UNREA=$$GET1^DIQ(404.43,IEN_",",.12,"I")
- +3 QUIT
- SAVE ;
- +1 IF $GET(^TMP("SCARRAY","S1"))="""ALL"""
- DO SAVE1
- QUIT
- +2 IF $GET(^TMP("SCARRAY","S1"))'="""ALL"""
- DO SAVE2
- DO SAVE3
- +3 QUIT
- SAVE1 ;
- +1 SET Y=UNDATE
- DO DD^%DT
- SET UNDATE=Y
- +2 SET NUM=NUM+1
- +3 SET ^TMP("SCRESULT",INST,PAT,NUM)=PAT_"^"_SSN_"^"_INST_"^"_TEAMN_"^"_PROV_"^"_TEAMP_"^"_PREC_"^"_UNDATE_"^"_UNREA
- +4 QUIT
- SAVE2 ;
- +1 SET (S1,S2,S3,S4,S5,S6,S7)=""
- SET CC=""
- SET SORT=""
- +2 FOR NN=1:1:7
- SET SORT=$GET(^TMP("SCARRAY","S"_NN))
- IF SORT=""
- QUIT
- Begin DoDot:1
- +3 SET SORT=$PIECE(SORT,"""",2)
- +4 SET XX=$SELECT(SORT="Patient":PAT,SORT="Institution":INST,SORT="Team":TEAMN,SORT="Provider":PROV,SORT="Team Position":TEAMP,SORT="Date":UNDATE,SORT="Reason":UNREA,1:"")
- +5 SET HOLD=NN
- +6 IF NN=1
- SET S1=XX
- SET ^TMP("SCRESULT",S1)=""
- +7 IF NN=2
- SET S2=XX
- SET ^TMP("SCRESULT",S1,S2)=""
- +8 IF NN=3
- SET S3=XX
- SET ^TMP("SCRESULT",S1,S2,S3)=""
- +9 IF NN=4
- SET S4=XX
- SET ^TMP("SCRESULT",S1,S2,S3,S4)=""
- +10 IF NN=5
- SET S5=XX
- SET ^TMP("SCRESULT",S1,S2,S3,S4,S5)=""
- +11 IF NN=6
- SET S6=XX
- SET ^TMP("SCRESULT",S1,S2,S3,S4,S5,S6)=""
- +12 IF NN=7
- SET S7=XX
- SET ^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,S7)=""
- End DoDot:1
- +13 QUIT
- SAVE3 ;
- +1 SET CC=$SELECT(HOLD=1:"SORT1",HOLD=2:"SORT2",HOLD=3:"SORT3",HOLD=4:"SORT4",HOLD=5:"SORT5",HOLD=6:"SORT6",HOLD=7:"SORT7",1:"")
- +2 SET UNDATE2=""
- SET UNDATE2=UNDATE
- +3 SET Y=UNDATE2
- DO DD^%DT
- SET UNDATE2=Y
- +4 DO @CC
- +5 QUIT
- SORT1 ;
- +1 IF $DATA(^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN))
- QUIT
- +2 SET CT=CT+1
- +3 SET ^TMP("SCRESULT",S1,CT)=PAT_"^"_SSN_"^"_INST_"^"_TEAMN_"^"_PROV_"^"_TEAMP_"^"_PREC_"^"_UNDATE2_"^"_UNREA
- +4 SET ^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)=""
- +5 QUIT
- SORT2 ;
- +1 IF $DATA(^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN))
- QUIT
- +2 SET CT=CT+1
- +3 SET ^TMP("SCRESULT",S1,S2,CT)=PAT_"^"_SSN_"^"_INST_"^"_TEAMN_"^"_PROV_"^"_TEAMP_"^"_PREC_"^"_UNDATE2_"^"_UNREA
- +4 SET ^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)=""
- +5 QUIT
- SORT3 ;
- +1 IF $DATA(^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN))
- QUIT
- +2 SET CT=CT+1
- +3 SET ^TMP("SCRESULT",S1,S2,S3,CT)=PAT_"^"_SSN_"^"_INST_"^"_TEAMN_"^"_PROV_"^"_TEAMP_"^"_PREC_"^"_UNDATE2_"^"_UNREA
- +4 SET ^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)=""
- +5 QUIT
- SORT4 ;
- +1 IF $DATA(^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN))
- QUIT
- +2 SET CT=CT+1
- +3 SET ^TMP("SCRESULT",S1,S2,S3,S4,CT)=PAT_"^"_SSN_"^"_INST_"^"_TEAMN_"^"_PROV_"^"_TEAMP_"^"_PREC_"^"_UNDATE2_"^"_UNREA
- +4 SET ^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)=""
- +5 QUIT
- SORT5 ;
- +1 IF $DATA(^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN))
- QUIT
- +2 SET CT=CT+1
- +3 SET ^TMP("SCRESULT",S1,S2,S3,S4,S5,CT)=PAT_"^"_SSN_"^"_INST_"^"_TEAMN_"^"_PROV_"^"_TEAMP_"^"_PREC_"^"_UNDATE2_"^"_UNREA
- +4 SET ^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)=""
- +5 QUIT
- SORT6 ;
- +1 IF $DATA(^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN))
- QUIT
- +2 SET CT=CT+1
- +3 SET ^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,CT)=PAT_"^"_SSN_"^"_INST_"^"_TEAMN_"^"_PROV_"^"_TEAMP_"^"_PREC_"^"_UNDATE2_"^"_UNREA
- +4 SET ^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)=""
- +5 QUIT
- SORT7 ;
- +1 IF $DATA(^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN))
- QUIT
- +2 SET CT=CT+1
- +3 SET ^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,S7,CT)=PAT_"^"_SSN_"^"_INST_"^"_TEAMN_"^"_PROV_"^"_TEAMP_"^"_PREC_"^"_UNDATE2_"^"_UNREA
- +4 SET ^TMP("SCRESULT","B",PAT,SSN,INST,TEAMN)=""
- +5 QUIT
- FINAL ;
- +1 IF $GET(^TMP("SCARRAY","S1"))="""ALL"""
- Begin DoDot:1
- +2 SET (INST,PAT,NUM)=""
- SET CC=0
- SET C=0
- +3 SET INST=""
- FOR
- SET INST=$ORDER(^TMP("SCRESULT",INST))
- IF INST=""
- QUIT
- Begin DoDot:2
- +4 SET PAT=""
- FOR
- SET PAT=$ORDER(^TMP("SCRESULT",INST,PAT))
- IF PAT=""
- QUIT
- Begin DoDot:3
- +5 SET NUM=""
- FOR
- SET NUM=$ORDER(^TMP("SCRESULT",INST,PAT,NUM))
- IF NUM=""
- QUIT
- Begin DoDot:4
- +6 SET CC=CC+1
- SET ^TMP("SCRESULT",CC)=^TMP("SCRESULT",INST,PAT,NUM)
- +7 KILL ^TMP("SCRESULT",INST,PAT,NUM)
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +8 IF $GET(^TMP("SCARRAY","S1"))'="""ALL"""
- Begin DoDot:1
- +9 SET (S1,S2,S3,S4,S5,S6,S7)=""
- SET CT=0
- SET C=0
- +10 IF CC="SORT1"
- Begin DoDot:2
- +11 SET S1=""
- FOR
- SET S1=$ORDER(^TMP("SCRESULT",S1))
- IF S1=""
- QUIT
- Begin DoDot:3
- +12 SET C=""
- FOR
- SET C=$ORDER(^TMP("SCRESULT",S1,C))
- IF C=""
- QUIT
- Begin DoDot:4
- +13 SET CT=CT+1
- SET ^TMP("SCRESULT",CT)=^TMP("SCRESULT",S1,C)
- +14 KILL ^TMP("SCRESULT",S1,C)
- End DoDot:4
- End DoDot:3
- End DoDot:2
- +15 IF CC="SORT2"
- Begin DoDot:2
- +16 SET S1=""
- FOR
- SET S1=$ORDER(^TMP("SCRESULT",S1))
- IF S1=""
- QUIT
- Begin DoDot:3
- +17 SET S2=""
- FOR
- SET S2=$ORDER(^TMP("SCRESULT",S1,S2))
- IF S2=""
- QUIT
- Begin DoDot:4
- +18 SET C=""
- FOR
- SET C=$ORDER(^TMP("SCRESULT",S1,S2,C))
- IF C=""
- QUIT
- Begin DoDot:5
- +19 SET CT=CT+1
- SET ^TMP("SCRESULT",CT)=^TMP("SCRESULT",S1,S2,C)
- +20 KILL ^TMP("SCRESULT",S1,S2,C)
- End DoDot:5
- End DoDot:4
- End DoDot:3
- End DoDot:2
- +21 IF CC="SORT3"
- Begin DoDot:2
- +22 SET S1=""
- FOR
- SET S1=$ORDER(^TMP("SCRESULT",S1))
- IF S1=""
- QUIT
- Begin DoDot:3
- +23 SET S2=""
- FOR
- SET S2=$ORDER(^TMP("SCRESULT",S1,S2))
- IF S2=""
- QUIT
- Begin DoDot:4
- +24 SET S3=""
- FOR
- SET S3=$ORDER(^TMP("SCRESULT",S1,S2,S3))
- IF S3=""
- QUIT
- Begin DoDot:5
- +25 SET C=""
- FOR
- SET C=$ORDER(^TMP("SCRESULT",S1,S2,S3,C))
- IF C=""
- QUIT
- Begin DoDot:6
- +26 SET CT=CT+1
- SET ^TMP("SCRESULT",CT)=^TMP("SCRESULT",S1,S2,S3,C)
- +27 KILL ^TMP("SCRESULT",S1,S2,S3,C)
- End DoDot:6
- End DoDot:5
- End DoDot:4
- End DoDot:3
- End DoDot:2
- +28 IF CC="SORT4"
- Begin DoDot:2
- +29 SET S1=""
- FOR
- SET S1=$ORDER(^TMP("SCRESULT",S1))
- IF S1=""
- QUIT
- Begin DoDot:3
- +30 SET S2=""
- FOR
- SET S2=$ORDER(^TMP("SCRESULT",S1,S2))
- IF S2=""
- QUIT
- Begin DoDot:4
- +31 SET S3=""
- FOR
- SET S3=$ORDER(^TMP("SCRESULT",S1,S2,S3))
- IF S3=""
- QUIT
- Begin DoDot:5
- +32 SET S4=""
- FOR
- SET S4=$ORDER(^TMP("SCRESULT",S1,S2,S3,S4))
- IF S4=""
- QUIT
- Begin DoDot:6
- +33 SET C=""
- FOR
- SET C=$ORDER(^TMP("SCRESULT",S1,S2,S3,S4,C))
- IF C=""
- QUIT
- Begin DoDot:7
- +34 SET CT=CT+1
- SET ^TMP("SCRESULT",CT)=^TMP("SCRESULT",S1,S2,S3,S4,C)
- +35 KILL ^TMP("SCRESULT",S1,S2,S3,S4,C)
- End DoDot:7
- End DoDot:6
- End DoDot:5
- End DoDot:4
- End DoDot:3
- End DoDot:2
- +36 IF CC="SORT5"
- Begin DoDot:2
- +37 SET S1=""
- FOR
- SET S1=$ORDER(^TMP("SCRESULT",S1))
- IF S1=""
- QUIT
- Begin DoDot:3
- +38 SET S2=""
- FOR
- SET S2=$ORDER(^TMP("SCRESULT",S1,S2))
- IF S2=""
- QUIT
- Begin DoDot:4
- +39 SET S3=""
- FOR
- SET S3=$ORDER(^TMP("SCRESULT",S1,S2,S3))
- IF S3=""
- QUIT
- Begin DoDot:5
- +40 SET S4=""
- FOR
- SET S4=$ORDER(^TMP("SCRESULT",S1,S2,S3,S4))
- IF S4=""
- QUIT
- Begin DoDot:6
- +41 SET S5=""
- FOR
- SET S5=$ORDER(^TMP("SCRESULT",S1,S2,S3,S4,S5))
- IF S5=""
- QUIT
- Begin DoDot:7
- +42 SET C=""
- FOR
- SET C=$ORDER(^TMP("SCRESULT",S1,S2,S3,S4,S5,C))
- IF C=""
- QUIT
- Begin DoDot:8
- +43 SET CT=CT+1
- SET ^TMP("SCRESULT",CT)=^TMP("SCRESULT",S1,S2,S3,S4,S5,C)
- +44 KILL ^TMP("SCRESULT",S1,S2,S3,S4,S5,C)
- End DoDot:8
- End DoDot:7
- End DoDot:6
- End DoDot:5
- End DoDot:4
- End DoDot:3
- End DoDot:2
- +45 IF CC="SORT6"
- Begin DoDot:2
- +46 SET S1=""
- FOR
- SET S1=$ORDER(^TMP("SCRESULT",S1))
- IF S1=""
- QUIT
- Begin DoDot:3
- +47 SET S2=""
- FOR
- SET S2=$ORDER(^TMP("SCRESULT",S1,S2))
- IF S2=""
- QUIT
- Begin DoDot:4
- +48 SET S3=""
- FOR
- SET S3=$ORDER(^TMP("SCRESULT",S1,S2,S3))
- IF S3=""
- QUIT
- Begin DoDot:5
- +49 SET S4=""
- FOR
- SET S4=$ORDER(^TMP("SCRESULT",S1,S2,S3,S4))
- IF S4=""
- QUIT
- Begin DoDot:6
- +50 SET S5=""
- FOR
- SET S5=$ORDER(^TMP("SCRESULT",S1,S2,S3,S4,S5))
- IF S5=""
- QUIT
- Begin DoDot:7
- +51 SET S6=""
- FOR
- SET S6=$ORDER(^TMP("SCRESULT",S1,S2,S3,S4,S5,S6))
- IF S6=""
- QUIT
- Begin DoDot:8
- +52 SET C=""
- FOR
- SET C=$ORDER(^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,C))
- IF C=""
- QUIT
- Begin DoDot:9
- +53 SET CT=CT+1
- SET ^TMP("SCRESULT",CT)=^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,C)
- +54 KILL ^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,C)
- End DoDot:9
- End DoDot:8
- End DoDot:7
- End DoDot:6
- End DoDot:5
- End DoDot:4
- End DoDot:3
- End DoDot:2
- +55 IF CC="SORT7"
- Begin DoDot:2
- +56 SET S1=""
- FOR
- SET S1=$ORDER(^TMP("SCRESULT",S1))
- IF S1=""
- QUIT
- Begin DoDot:3
- +57 SET S2=""
- FOR
- SET S2=$ORDER(^TMP("SCRESULT",S1,S2))
- IF S2=""
- QUIT
- Begin DoDot:4
- +58 SET S3=""
- FOR
- SET S3=$ORDER(^TMP("SCRESULT",S1,S2,S3))
- IF S3=""
- QUIT
- Begin DoDot:5
- +59 SET S4=""
- FOR
- SET S4=$ORDER(^TMP("SCRESULT",S1,S2,S3,S4))
- IF S4=""
- QUIT
- Begin DoDot:6
- +60 SET S5=""
- FOR
- SET S5=$ORDER(^TMP("SCRESULT",S1,S2,S3,S4,S5))
- IF S5=""
- QUIT
- Begin DoDot:7
- +61 SET S6=""
- FOR
- SET S6=$ORDER(^TMP("SCRESULT",S1,S2,S3,S4,S5,S6))
- IF S6=""
- QUIT
- Begin DoDot:8
- +62 SET S7=""
- FOR
- SET S7=$ORDER(^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,S7))
- IF S7=""
- QUIT
- Begin DoDot:9
- +63 SET C=""
- FOR
- SET C=$ORDER(^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,S7,C))
- IF C=""
- QUIT
- Begin DoDot:10
- +64 SET CT=CT+1
- SET ^TMP("SCRESULT",CT)=^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,S7,C)
- +65 KILL ^TMP("SCRESULT",S1,S2,S3,S4,S5,S6,S7,C)
- End DoDot:10
- End DoDot:9
- End DoDot:8
- End DoDot:7
- End DoDot:6
- End DoDot:5
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +66 QUIT
- EXIT ;
- +1 KILL STAT,TN,TPN,IEN,INST,INSTN,UNDATE,UNREA,TEAMPN,SSN,SSNN,S1,S2,S3,S4,S5,S6,S7,S8
- +2 KILL TEAM,TEAMN,TEAMP,PROVN,PROV,BDATE,EDATE,PAT,INAME,HOLD,NUM,NU,CC,C,CT,XX,ST
- +3 KILL TN2,TPN2,UNDATE2,DATE2,EFFD,ERROR,SORT,SN,PDATE,POS,PREC,JJ,J,INUM,NN,P1,P2,P3
- +4 KILL ^TMP("SCARRAY")
- +5 QUIT