- APCDVDSG ; IHS/CMI/LAB -VISIT DISPLAY ;
- ;;2.0;IHS PCC SUITE;**2,4,5,10,11,13,17**;MAY 14, 2009;Build 18
- ;
- EN(APCDVIEN,APCDARRY,APCDGUI) ;EP
- I $G(APCDARRY)="" S APCDARRY="^TMP(""APCDVDSG"",$J)"
- Q:'$D(APCDVIEN)
- Q:'APCDVIEN
- Q:'$D(^AUPNVSIT(APCDVIEN,0))
- D BUILD
- D XIT
- Q
- ;
- SET ;set array
- S APCDCTR=APCDCTR+1
- S @APCDARRY@(APCDCTR,0)=APCDSTR
- S APCDSTR=""
- Q
- BUILD ; build array
- NEW APCDAR,APCDF,APCDVREC,APCDV,APCDH,APCDSTR,APCDVFLE,APCDVNM,APCDVI,APCDNARR,APCDVDG,APCDVIGR,APCDJ,APCDF1,APCDVFC
- NEW F,F1,X,H
- K APCDAR
- D TERM^VALM0
- S APCDVREC=^AUPNVSIT(APCDVIEN,0)
- S Y=$P(APCDVREC,U,5) D ^AUPNPAT
- S APCDSTR="",APCDCTR=0
- I $G(APCDGUI) S (IOINHI,IOINORM)=""
- S APCDH="Patient Name",APCDV=IOINHI_$E($P(^DPT($P(APCDVREC,U,5),0),U),1,20)_IOINORM D BUILD1
- S APCDH="Chart #",APCDV=IOINHI_$S($D(^AUPNPAT($P(APCDVREC,U,5),41,DUZ(2),0)):$P(^(0),U,2),1:"None")_IOINORM D BUILD1
- S APCDH="Date of Birth" S Y=AUPNDOB D DD^%DT S APCDV=Y D BUILD1
- S APCDH="Sex",APCDV=AUPNSEX D BUILD1
- S APCDH="Visit IEN",APCDV=APCDVIEN D BUILD1
- S APCDSTR="" D SET
- VISIT ;
- S APCDSTR="=============== "_IOINHI_"VISIT FILE"_IOINORM_" ===============",X=(80-$L(APCDSTR)\2) D SET ;$J("",X)_APCDSTR D SET
- S F=0 F S F=$O(^DD(9000010,F)) Q:F'=+F!(F>999999) D
- .K APCDAR,APCDNARR
- .I +$P(^DD(9000010,F,0),U,2) D Q ;MULTIPLE AND WP FIELDS
- ..S APCDF=+$P(^DD(9000010,F,0),U,2)
- ..I $P($G(^DD(APCDF,.01,0)),U,2)'["W" D Q ;multiple
- ...D GETS^DIQ(9000010,APCDVIEN_",",F_"*","","APCDAR")
- ...I '$D(APCDAR) Q
- ...;S APCDSTR="" D SET
- ...S APCDJ="" F S APCDJ=$O(APCDAR(APCDF,APCDJ)) Q:APCDJ="" D
- ....S APCDF1=0 F S APCDF1=$O(APCDAR(APCDF,APCDJ,APCDF1)) Q:APCDF1="" D
- .....S APCDH=$P(^DD(APCDF,APCDF1,0),U,1) ;field name
- .....I $O(APCDAR(APCDF,APCDJ,APCDF1,0)) D Q
- ......S APCDSTR=APCDH_":" D SET
- ......S X=0 F S X=$O(APCDAR(APCDF,APCDJ,APCDF1,X)) Q:X'=+X S APCDSTR=APCDAR(APCDF,APCDJ,APCDF1,X) D SET
- .....S APCDV=APCDAR(APCDF,APCDJ,APCDF1)
- .....D BUILD1
- ..D GETS^DIQ(9000010,APCDVIEN_",",F,"","APCDAR")
- ..I $O(APCDAR(9000010,APCDVIEN_",",F,0)) D Q ;wp
- ...S APCDSTR=$P(^DD(9000010,F,0),U,1)_":" D SET
- ...S APCDNARR=""
- ...S F1=0 F S F1=$O(APCDAR(9000010,APCDVIEN_",",F,F1)) Q:F1'=+F1 D
- ....S APCDV=APCDAR(9000010,APCDVIEN_",",F,F1)
- ....D BUILD1
- .K APCDNARR
- .I '+$P(^DD(9000010,F,0),U,2) D ;SINGLE VALUED FIELD
- ..S APCDF=9000010
- ..D GETS^DIQ(APCDF,APCDVIEN_",",F,"E","APCDAR")
- ..I $G(APCDAR(APCDF,APCDVIEN_",",F,"E"))]"" D
- ...S APCDH=$P(^DD(9000010,F,0),U)
- ...S APCDV=APCDAR(APCDF,APCDVIEN_",",F,"E")
- ...D BUILD1
- ...Q
- I $O(^AUPNCANT(APCDVIEN,11,0)) D
- .S APCDSTR="" D SET
- .S APCDH=$P(^DD(9000095,1100,0),U)
- .S APCDV="" D BUILD1
- .S F=0 F S F=$O(^AUPNCANT(APCDVIEN,11,F)) Q:F'=+F D
- ..S APCDSTR=$G(^AUPNCANT(APCDVIEN,11,F,0)) D SET
- S APCDSTR="" D SET
- Q:'$P(APCDVREC,U,9)
- VFILES ;set up array of all v file entries
- NEW DA,D0,DIC,DIQ,DR,DI
- S APCDVFLE=9000010 F S APCDVFLE=$O(^DIC(APCDVFLE)) Q:APCDVFLE>9000010.99!(APCDVFLE'=+APCDVFLE) D VF2
- D XIT
- Q
- ;
- VF2 ;
- S APCDVNM=$P(^DIC(APCDVFLE,0),U),APCDVDG=^DIC(APCDVFLE,0,"GL"),APCDVIGR=APCDVDG_"""AD"",APCDVIEN,APCDVDFN)",APCDVDFN=""
- S APCDVFC=0 F APCDVI=1:1 S APCDVDFN=$O(@APCDVIGR) Q:APCDVDFN="" D VF3
- Q
- ;
- VF3 ;
- I APCDVFLE=9000010.01 Q:$P($G(^AUPNVMSR(APCDVDFN,2)),U,1) ;measurements entered in error
- I APCDVFLE=9000010.54 Q:$P($G(^AUPNVRUP(APCDVDFN,2)),U,1) ;V updated/reviewed entered in error
- I APCDVFLE=9000010.62 Q:$P($G(^AUPNVAMI(APCDVDFN,5)),U,1) ;V AMI entered in error
- I APCDVFLE=9000010.63 Q:$P($G(^AUPNVSTR(APCDVDFN,5)),U,1) ;V STROKE entered in error
- I APCDVFLE=9000010.51 Q:$P($G(^AUPNVACG(APCDVDFN,1)),U,1) ;V ANTICOAG entered in error
- I APCDVFLE=9000010.58 Q:$P($G(^AUPNVVI(APCDVDFN,0)),U,6) ;V VISIT INSTRUCTIONS entered in error
- I APCDVFLE=9000010.43 Q:$P($G(^AUPNVOB(APCDVDFN,0)),U,6) ;V OB entered in error
- S APCDVFC=APCDVFC+1
- I APCDVFC<2 S APCDSTR="" D SET S APCDSTR="=============== "_IOINHI_$P(APCDVNM,"V ",2)_"s"_IOINORM_" ===============",X=(80-$L(APCDSTR)\2) D SET ;$J("",X)_APCDSTR D SET
- ;S APCDH="IEN",APCDV=APCDVDFN D BUILD1 ;IHS/CMI/GRL
- ;K APCDAR,APCDNARR D ENP^XBDIQ1(APCDVFLE,APCDVDFN,".01:.019999;.04:999999","APCDAR(","E")
- I APCDVFC>1 S APCDSTR="" D SET
- S F=0 F S F=$O(^DD(APCDVFLE,F)) Q:F'=+F!(F>999999) D
- .K APCDAR,APCDNARR
- .Q:F=".02"
- .Q:F=".03"
- .I +$P(^DD(APCDVFLE,F,0),U,2) D Q ;MULTIPLE AND WP FIELDS
- ..S APCDF=+$P(^DD(APCDVFLE,F,0),U,2)
- ..I $P($G(^DD(APCDF,.01,0)),U,2)'["W" D Q ;multiple
- ...D GETS^DIQ(APCDVFLE,APCDVDFN_",",F_"*","","APCDAR")
- ...I '$D(APCDAR) Q
- ...;S APCDSTR="" D SET
- ...S APCDJ="" F S APCDJ=$O(APCDAR(APCDF,APCDJ)) Q:APCDJ="" D
- ....S APCDF1=0 F S APCDF1=$O(APCDAR(APCDF,APCDJ,APCDF1)) Q:APCDF1="" D
- .....S APCDH=$P(^DD(APCDF,APCDF1,0),U,1) ;field name
- .....I $O(APCDAR(APCDF,APCDJ,APCDF1,0)) D Q
- ......S APCDSTR=APCDH_":" D SET
- ......S X=0 F S X=$O(APCDAR(APCDF,APCDJ,APCDF1,X)) Q:X'=+X S APCDSTR=APCDAR(APCDF,APCDJ,APCDF1,X) D SET
- .....S APCDV=APCDAR(APCDF,APCDJ,APCDF1)
- .....D BUILD1
- ..D GETS^DIQ(APCDVFLE,APCDVDFN_",",F,"","APCDAR")
- ..I $O(APCDAR(APCDVFLE,APCDVDFN_",",F,0)) D Q ;wp
- ...S APCDSTR=$P(^DD(APCDVFLE,F,0),U,1)_":" D SET
- ...S APCDNARR=""
- ...S F1=0 F S F1=$O(APCDAR(APCDVFLE,APCDVDFN_",",F,F1)) Q:F1'=+F1 D
- ....S APCDV=APCDAR(APCDVFLE,APCDVDFN_",",F,F1)
- ....D BUILD1
- .K APCDNARR
- .I '+$P(^DD(APCDVFLE,F,0),U,2) D ;SINGLE VALUED FIELD
- ..S APCDF=APCDVFLE
- ..D GETS^DIQ(APCDF,APCDVDFN_",",F,"E","APCDAR")
- ..I $G(APCDAR(APCDF,APCDVDFN_",",F,"E"))]"" D
- ...S APCDH=$P(^DD(APCDVFLE,F,0),U)
- ...S APCDV=APCDAR(APCDF,APCDVDFN_",",F,"E")
- ...D BUILD1
- ...I APCDVFLE=9000010.07,F=.01 D MAPADV(APCDVIEN,APCDVDFN)
- ...Q
- ;I APCDVFLE=9000010.09,$O(^AUPNVLAB(APCDVDFN,21,0)) D
- ;.S APCDSTR="COMMENTS:" D SET
- ;.S F=0 F S F=$O(^AUPNVLAB(APCDVDFN,21,F)) Q:F'=+F D
- ;..S APCDSTR=" "_$P(^AUPNVLAB(APCDVDFN,21,F,0),U) D SET
- I APCDVFLE=9000010.28 S X=$P(^AUPNVNOT(APCDVDFN,0),U) D
- .I $$VAL^XBDIQ1(8925,X,.05)="RETRACTED" D
- ..S APCDH="RETRACTED DATE",APCDV=$$VAL^XBDIQ1(8925,X,1611) D BUILD1
- ..S APCDH="RETRACTED BY",APCDV=$$VAL^XBDIQ1(8925,X,1610) D BUILD1
- I APCDVFLE=9000010.01 D
- .;if entered in error, display reason
- I $G(DUZ(0))="@" S APCDH="V FILE IEN",APCDV=APCDVDFN D BUILD1 ;IHS/CMI/GRL
- Q
- BUILD1 ;
- I $D(APCDNARR) S APCDSTR="",APCDSTR=$$SETSTR^VALM1(APCDV,APCDSTR,1,$L(APCDV)) D SET Q
- S APCDSTR=$E(APCDH,1,21)_":",APCDSTR=$$SETSTR^VALM1(APCDV,APCDSTR,24,$L(APCDV))
- D SET
- Q
- I $L(APCDSTR)>39 D SET
- S APCDV=" "_APCDV_" ",X=APCDH_": "_APCDV
- I $L(APCDSTR),$L(X)>40 D SET
- I $L(APCDSTR) S APCDSTR=$$SETSTR^VALM1(X,APCDSTR,40,$L(X))
- I '$L(APCDSTR) S APCDSTR=X
- K APCDV,APCDH,X
- Q
- XIT ;
- K APCDAR,APCDARRY,APCDCTR,APCDH,APCDSTR,APCDV,APCDVDFN,APCDVDG,APCDVFLE,APCDVI,APCDVIEN,APCDVIGR,APCDFL,APCDVNM,APCDVREC,APCDH,APCDNARR
- K DO,D0,DA,DI,DIC,DIQ,DR,F,X,Y,Z,F1
- Q
- MAPADV(V,I) ;
- NEW F,D,C,APCDSMA
- S D=$$VD^APCLV(V)
- S D=$$IMP^AUPNSICD(D)
- I D'=30 Q ;ICD10 ONLY
- S C=$$VAL^XBDIQ1(9000010.07,I,1101)
- ;GET MAP ADVICE
- S D=$$I10ADV^BSTSAPI("APCDSMA",C)
- I 'D Q ;NO MAP ADVICE
- S APCDSTR="MAP ADVICE IS AVAILABLE"
- D SET
- Q
- APCDVDSG ; IHS/CMI/LAB -VISIT DISPLAY ;
- +1 ;;2.0;IHS PCC SUITE;**2,4,5,10,11,13,17**;MAY 14, 2009;Build 18
- +2 ;
- EN(APCDVIEN,APCDARRY,APCDGUI) ;EP
- +1 IF $GET(APCDARRY)=""
- SET APCDARRY="^TMP(""APCDVDSG"",$J)"
- +2 IF '$DATA(APCDVIEN)
- QUIT
- +3 IF 'APCDVIEN
- QUIT
- +4 IF '$DATA(^AUPNVSIT(APCDVIEN,0))
- QUIT
- +5 DO BUILD
- +6 DO XIT
- +7 QUIT
- +8 ;
- SET ;set array
- +1 SET APCDCTR=APCDCTR+1
- +2 SET @APCDARRY@(APCDCTR,0)=APCDSTR
- +3 SET APCDSTR=""
- +4 QUIT
- BUILD ; build array
- +1 NEW APCDAR,APCDF,APCDVREC,APCDV,APCDH,APCDSTR,APCDVFLE,APCDVNM,APCDVI,APCDNARR,APCDVDG,APCDVIGR,APCDJ,APCDF1,APCDVFC
- +2 NEW F,F1,X,H
- +3 KILL APCDAR
- +4 DO TERM^VALM0
- +5 SET APCDVREC=^AUPNVSIT(APCDVIEN,0)
- +6 SET Y=$PIECE(APCDVREC,U,5)
- DO ^AUPNPAT
- +7 SET APCDSTR=""
- SET APCDCTR=0
- +8 IF $GET(APCDGUI)
- SET (IOINHI,IOINORM)=""
- +9 SET APCDH="Patient Name"
- SET APCDV=IOINHI_$EXTRACT($PIECE(^DPT($PIECE(APCDVREC,U,5),0),U),1,20)_IOINORM
- DO BUILD1
- +10 SET APCDH="Chart #"
- SET APCDV=IOINHI_$SELECT($DATA(^AUPNPAT($PIECE(APCDVREC,U,5),41,DUZ(2),0)):$PIECE(^(0),U,2),1:"None")_IOINORM
- DO BUILD1
- +11 SET APCDH="Date of Birth"
- SET Y=AUPNDOB
- DO DD^%DT
- SET APCDV=Y
- DO BUILD1
- +12 SET APCDH="Sex"
- SET APCDV=AUPNSEX
- DO BUILD1
- +13 SET APCDH="Visit IEN"
- SET APCDV=APCDVIEN
- DO BUILD1
- +14 SET APCDSTR=""
- DO SET
- VISIT ;
- +1 ;$J("",X)_APCDSTR D SET
- SET APCDSTR="=============== "_IOINHI_"VISIT FILE"_IOINORM_" ==============="
- SET X=(80-$LENGTH(APCDSTR)\2)
- DO SET
- +2 SET F=0
- FOR
- SET F=$ORDER(^DD(9000010,F))
- IF F'=+F!(F>999999)
- QUIT
- Begin DoDot:1
- +3 KILL APCDAR,APCDNARR
- +4 ;MULTIPLE AND WP FIELDS
- IF +$PIECE(^DD(9000010,F,0),U,2)
- Begin DoDot:2
- +5 SET APCDF=+$PIECE(^DD(9000010,F,0),U,2)
- +6 ;multiple
- IF $PIECE($GET(^DD(APCDF,.01,0)),U,2)'["W"
- Begin DoDot:3
- +7 DO GETS^DIQ(9000010,APCDVIEN_",",F_"*","","APCDAR")
- +8 IF '$DATA(APCDAR)
- QUIT
- +9 ;S APCDSTR="" D SET
- +10 SET APCDJ=""
- FOR
- SET APCDJ=$ORDER(APCDAR(APCDF,APCDJ))
- IF APCDJ=""
- QUIT
- Begin DoDot:4
- +11 SET APCDF1=0
- FOR
- SET APCDF1=$ORDER(APCDAR(APCDF,APCDJ,APCDF1))
- IF APCDF1=""
- QUIT
- Begin DoDot:5
- +12 ;field name
- SET APCDH=$PIECE(^DD(APCDF,APCDF1,0),U,1)
- +13 IF $ORDER(APCDAR(APCDF,APCDJ,APCDF1,0))
- Begin DoDot:6
- +14 SET APCDSTR=APCDH_":"
- DO SET
- +15 SET X=0
- FOR
- SET X=$ORDER(APCDAR(APCDF,APCDJ,APCDF1,X))
- IF X'=+X
- QUIT
- SET APCDSTR=APCDAR(APCDF,APCDJ,APCDF1,X)
- DO SET
- End DoDot:6
- QUIT
- +16 SET APCDV=APCDAR(APCDF,APCDJ,APCDF1)
- +17 DO BUILD1
- End DoDot:5
- End DoDot:4
- End DoDot:3
- QUIT
- +18 DO GETS^DIQ(9000010,APCDVIEN_",",F,"","APCDAR")
- +19 ;wp
- IF $ORDER(APCDAR(9000010,APCDVIEN_",",F,0))
- Begin DoDot:3
- +20 SET APCDSTR=$PIECE(^DD(9000010,F,0),U,1)_":"
- DO SET
- +21 SET APCDNARR=""
- +22 SET F1=0
- FOR
- SET F1=$ORDER(APCDAR(9000010,APCDVIEN_",",F,F1))
- IF F1'=+F1
- QUIT
- Begin DoDot:4
- +23 SET APCDV=APCDAR(9000010,APCDVIEN_",",F,F1)
- +24 DO BUILD1
- End DoDot:4
- End DoDot:3
- QUIT
- End DoDot:2
- QUIT
- +25 KILL APCDNARR
- +26 ;SINGLE VALUED FIELD
- IF '+$PIECE(^DD(9000010,F,0),U,2)
- Begin DoDot:2
- +27 SET APCDF=9000010
- +28 DO GETS^DIQ(APCDF,APCDVIEN_",",F,"E","APCDAR")
- +29 IF $GET(APCDAR(APCDF,APCDVIEN_",",F,"E"))]""
- Begin DoDot:3
- +30 SET APCDH=$PIECE(^DD(9000010,F,0),U)
- +31 SET APCDV=APCDAR(APCDF,APCDVIEN_",",F,"E")
- +32 DO BUILD1
- +33 QUIT
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +34 IF $ORDER(^AUPNCANT(APCDVIEN,11,0))
- Begin DoDot:1
- +35 SET APCDSTR=""
- DO SET
- +36 SET APCDH=$PIECE(^DD(9000095,1100,0),U)
- +37 SET APCDV=""
- DO BUILD1
- +38 SET F=0
- FOR
- SET F=$ORDER(^AUPNCANT(APCDVIEN,11,F))
- IF F'=+F
- QUIT
- Begin DoDot:2
- +39 SET APCDSTR=$GET(^AUPNCANT(APCDVIEN,11,F,0))
- DO SET
- End DoDot:2
- End DoDot:1
- +40 SET APCDSTR=""
- DO SET
- +41 IF '$PIECE(APCDVREC,U,9)
- QUIT
- VFILES ;set up array of all v file entries
- +1 NEW DA,D0,DIC,DIQ,DR,DI
- +2 SET APCDVFLE=9000010
- FOR
- SET APCDVFLE=$ORDER(^DIC(APCDVFLE))
- IF APCDVFLE>9000010.99!(APCDVFLE'=+APCDVFLE)
- QUIT
- DO VF2
- +3 DO XIT
- +4 QUIT
- +5 ;
- VF2 ;
- +1 SET APCDVNM=$PIECE(^DIC(APCDVFLE,0),U)
- SET APCDVDG=^DIC(APCDVFLE,0,"GL")
- SET APCDVIGR=APCDVDG_"""AD"",APCDVIEN,APCDVDFN)"
- SET APCDVDFN=""
- +2 SET APCDVFC=0
- FOR APCDVI=1:1
- SET APCDVDFN=$ORDER(@APCDVIGR)
- IF APCDVDFN=""
- QUIT
- DO VF3
- +3 QUIT
- +4 ;
- VF3 ;
- +1 ;measurements entered in error
- IF APCDVFLE=9000010.01
- IF $PIECE($GET(^AUPNVMSR(APCDVDFN,2)),U,1)
- QUIT
- +2 ;V updated/reviewed entered in error
- IF APCDVFLE=9000010.54
- IF $PIECE($GET(^AUPNVRUP(APCDVDFN,2)),U,1)
- QUIT
- +3 ;V AMI entered in error
- IF APCDVFLE=9000010.62
- IF $PIECE($GET(^AUPNVAMI(APCDVDFN,5)),U,1)
- QUIT
- +4 ;V STROKE entered in error
- IF APCDVFLE=9000010.63
- IF $PIECE($GET(^AUPNVSTR(APCDVDFN,5)),U,1)
- QUIT
- +5 ;V ANTICOAG entered in error
- IF APCDVFLE=9000010.51
- IF $PIECE($GET(^AUPNVACG(APCDVDFN,1)),U,1)
- QUIT
- +6 ;V VISIT INSTRUCTIONS entered in error
- IF APCDVFLE=9000010.58
- IF $PIECE($GET(^AUPNVVI(APCDVDFN,0)),U,6)
- QUIT
- +7 ;V OB entered in error
- IF APCDVFLE=9000010.43
- IF $PIECE($GET(^AUPNVOB(APCDVDFN,0)),U,6)
- QUIT
- +8 SET APCDVFC=APCDVFC+1
- +9 ;$J("",X)_APCDSTR D SET
- IF APCDVFC<2
- SET APCDSTR=""
- DO SET
- SET APCDSTR="=============== "_IOINHI_$PIECE(APCDVNM,"V ",2)_"s"_IOINORM_" ==============="
- SET X=(80-$LENGTH(APCDSTR)\2)
- DO SET
- +10 ;S APCDH="IEN",APCDV=APCDVDFN D BUILD1 ;IHS/CMI/GRL
- +11 ;K APCDAR,APCDNARR D ENP^XBDIQ1(APCDVFLE,APCDVDFN,".01:.019999;.04:999999","APCDAR(","E")
- +12 IF APCDVFC>1
- SET APCDSTR=""
- DO SET
- +13 SET F=0
- FOR
- SET F=$ORDER(^DD(APCDVFLE,F))
- IF F'=+F!(F>999999)
- QUIT
- Begin DoDot:1
- +14 KILL APCDAR,APCDNARR
- +15 IF F=".02"
- QUIT
- +16 IF F=".03"
- QUIT
- +17 ;MULTIPLE AND WP FIELDS
- IF +$PIECE(^DD(APCDVFLE,F,0),U,2)
- Begin DoDot:2
- +18 SET APCDF=+$PIECE(^DD(APCDVFLE,F,0),U,2)
- +19 ;multiple
- IF $PIECE($GET(^DD(APCDF,.01,0)),U,2)'["W"
- Begin DoDot:3
- +20 DO GETS^DIQ(APCDVFLE,APCDVDFN_",",F_"*","","APCDAR")
- +21 IF '$DATA(APCDAR)
- QUIT
- +22 ;S APCDSTR="" D SET
- +23 SET APCDJ=""
- FOR
- SET APCDJ=$ORDER(APCDAR(APCDF,APCDJ))
- IF APCDJ=""
- QUIT
- Begin DoDot:4
- +24 SET APCDF1=0
- FOR
- SET APCDF1=$ORDER(APCDAR(APCDF,APCDJ,APCDF1))
- IF APCDF1=""
- QUIT
- Begin DoDot:5
- +25 ;field name
- SET APCDH=$PIECE(^DD(APCDF,APCDF1,0),U,1)
- +26 IF $ORDER(APCDAR(APCDF,APCDJ,APCDF1,0))
- Begin DoDot:6
- +27 SET APCDSTR=APCDH_":"
- DO SET
- +28 SET X=0
- FOR
- SET X=$ORDER(APCDAR(APCDF,APCDJ,APCDF1,X))
- IF X'=+X
- QUIT
- SET APCDSTR=APCDAR(APCDF,APCDJ,APCDF1,X)
- DO SET
- End DoDot:6
- QUIT
- +29 SET APCDV=APCDAR(APCDF,APCDJ,APCDF1)
- +30 DO BUILD1
- End DoDot:5
- End DoDot:4
- End DoDot:3
- QUIT
- +31 DO GETS^DIQ(APCDVFLE,APCDVDFN_",",F,"","APCDAR")
- +32 ;wp
- IF $ORDER(APCDAR(APCDVFLE,APCDVDFN_",",F,0))
- Begin DoDot:3
- +33 SET APCDSTR=$PIECE(^DD(APCDVFLE,F,0),U,1)_":"
- DO SET
- +34 SET APCDNARR=""
- +35 SET F1=0
- FOR
- SET F1=$ORDER(APCDAR(APCDVFLE,APCDVDFN_",",F,F1))
- IF F1'=+F1
- QUIT
- Begin DoDot:4
- +36 SET APCDV=APCDAR(APCDVFLE,APCDVDFN_",",F,F1)
- +37 DO BUILD1
- End DoDot:4
- End DoDot:3
- QUIT
- End DoDot:2
- QUIT
- +38 KILL APCDNARR
- +39 ;SINGLE VALUED FIELD
- IF '+$PIECE(^DD(APCDVFLE,F,0),U,2)
- Begin DoDot:2
- +40 SET APCDF=APCDVFLE
- +41 DO GETS^DIQ(APCDF,APCDVDFN_",",F,"E","APCDAR")
- +42 IF $GET(APCDAR(APCDF,APCDVDFN_",",F,"E"))]""
- Begin DoDot:3
- +43 SET APCDH=$PIECE(^DD(APCDVFLE,F,0),U)
- +44 SET APCDV=APCDAR(APCDF,APCDVDFN_",",F,"E")
- +45 DO BUILD1
- +46 IF APCDVFLE=9000010.07
- IF F=.01
- DO MAPADV(APCDVIEN,APCDVDFN)
- +47 QUIT
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +48 ;I APCDVFLE=9000010.09,$O(^AUPNVLAB(APCDVDFN,21,0)) D
- +49 ;.S APCDSTR="COMMENTS:" D SET
- +50 ;.S F=0 F S F=$O(^AUPNVLAB(APCDVDFN,21,F)) Q:F'=+F D
- +51 ;..S APCDSTR=" "_$P(^AUPNVLAB(APCDVDFN,21,F,0),U) D SET
- +52 IF APCDVFLE=9000010.28
- SET X=$PIECE(^AUPNVNOT(APCDVDFN,0),U)
- Begin DoDot:1
- +53 IF $$VAL^XBDIQ1(8925,X,.05)="RETRACTED"
- Begin DoDot:2
- +54 SET APCDH="RETRACTED DATE"
- SET APCDV=$$VAL^XBDIQ1(8925,X,1611)
- DO BUILD1
- +55 SET APCDH="RETRACTED BY"
- SET APCDV=$$VAL^XBDIQ1(8925,X,1610)
- DO BUILD1
- End DoDot:2
- End DoDot:1
- +56 IF APCDVFLE=9000010.01
- Begin DoDot:1
- +57 ;if entered in error, display reason
- End DoDot:1
- +58 ;IHS/CMI/GRL
- IF $GET(DUZ(0))="@"
- SET APCDH="V FILE IEN"
- SET APCDV=APCDVDFN
- DO BUILD1
- +59 QUIT
- BUILD1 ;
- +1 IF $DATA(APCDNARR)
- SET APCDSTR=""
- SET APCDSTR=$$SETSTR^VALM1(APCDV,APCDSTR,1,$LENGTH(APCDV))
- DO SET
- QUIT
- +2 SET APCDSTR=$EXTRACT(APCDH,1,21)_":"
- SET APCDSTR=$$SETSTR^VALM1(APCDV,APCDSTR,24,$LENGTH(APCDV))
- +3 DO SET
- +4 QUIT
- +5 IF $LENGTH(APCDSTR)>39
- DO SET
- +6 SET APCDV=" "_APCDV_" "
- SET X=APCDH_": "_APCDV
- +7 IF $LENGTH(APCDSTR)
- IF $LENGTH(X)>40
- DO SET
- +8 IF $LENGTH(APCDSTR)
- SET APCDSTR=$$SETSTR^VALM1(X,APCDSTR,40,$LENGTH(X))
- +9 IF '$LENGTH(APCDSTR)
- SET APCDSTR=X
- +10 KILL APCDV,APCDH,X
- +11 QUIT
- XIT ;
- +1 KILL APCDAR,APCDARRY,APCDCTR,APCDH,APCDSTR,APCDV,APCDVDFN,APCDVDG,APCDVFLE,APCDVI,APCDVIEN,APCDVIGR,APCDFL,APCDVNM,APCDVREC,APCDH,APCDNARR
- +2 KILL DO,D0,DA,DI,DIC,DIQ,DR,F,X,Y,Z,F1
- +3 QUIT
- MAPADV(V,I) ;
- +1 NEW F,D,C,APCDSMA
- +2 SET D=$$VD^APCLV(V)
- +3 SET D=$$IMP^AUPNSICD(D)
- +4 ;ICD10 ONLY
- IF D'=30
- QUIT
- +5 SET C=$$VAL^XBDIQ1(9000010.07,I,1101)
- +6 ;GET MAP ADVICE
- +7 SET D=$$I10ADV^BSTSAPI("APCDSMA",C)
- +8 ;NO MAP ADVICE
- IF 'D
- QUIT
- +9 SET APCDSTR="MAP ADVICE IS AVAILABLE"
- +10 DO SET
- +11 QUIT