Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: VENPCC1K

VENPCC1K.m

Go to the documentation of this file.
  1. VENPCC1K ; IHS/OIT/GIS - SPECIAL DISPLAY OF PROBLEMS AND POVS ;
  1. ;;2.6;PCC+;;NOV 12, 2007
  1. ;
  1. ; SPECIAL PROBLEM DISPLAY FOR VER 2.5
  1. ;
  1. PROB(DFN,DEPTIEN) ; EP - SPECIAL PROBLEM DISPLAY
  1. N TMP
  1. S TMP="^TMP(""VEN PRNT"",$J)"
  1. D APL(DFN) ; ACTIVE PROBLEMS
  1. I $G(DEFEF),$P($G(^VEN(7.41,DEFEF,5)),U,17)>1,$L($T(PCCPLUS^APCHSPRN)) D PCCPLUS^APCHSPRN(DFN,DEFEF) ; PROBLEM NARRATIVE LOOKUP FOR ANMC
  1. D POV(DFN) ; ALL RECENT POVS
  1. N CSIEN
  1. S CSIEN=$P($G(^VEN(7.95,DEPTIEN,0)),U,4) I 'CSIEN Q
  1. D CSPOV(DFN,CSIEN) ; CLINIC SPECIFIC POVS
  1. Q
  1. ;
  1. APL(DFN) ; EP-GET UP TO 25 ACTIVE PROBLEMS STORED IN pb1-pb25 AND CODES IN pb1c-pb25c
  1. NEW TOT,PIEN,X,NIEN,IIEN,STAT,TYPE,NARR,VAR,VAR1,ICD,MAXNARR
  1. S TOT=0,PIEN=0,MAXNARR=$$MAXNARR^VENPCCU(+$G(DEFEF))
  1. F S PIEN=$O(^AUPNPROB("AC",DFN,PIEN)) Q:'PIEN D I TOT>24 Q
  1. . S X=$G(^AUPNPROB(PIEN,0)),NIEN=$P(X,U,5),IIEN=+X,STAT=$P(X,U,12),TYPE=$P(X,4,U)
  1. . I NIEN,IIEN,STAT="A",TYPE=""
  1. . E Q
  1. . S NARR=$G(^AUTNPOV(NIEN,0)),ICD=$P($G(^ICD9(IIEN,0)),U),ICD9(IIEN)=""
  1. . S TOT=TOT+1
  1. . S VAR="pb"_TOT,VAR1=VAR_"c"
  1. . S @TMP@(1,VAR)=$E(NARR,1,MAXNARR),@TMP@(1,VAR1)=ICD
  1. . Q
  1. Q
  1. ;
  1. POV(DFN) ; EP-GET UP TO 30 MOST RECENT POVS
  1. ; DATA STORED IN MAIL MERGE FIELD PAIRS pv1 - pv30
  1. N PIEN,X,NIEN,IIEN,TOT,NARR,VAR,VAR1,ICD,DATE,Y,VISIT,MAXNARR,VCN
  1. S TOT=0,PIEN=999999999,MAXNARR=$$MAXNARR^VENPCCU(+$G(DEFEF))
  1. F S PIEN=$O(^AUPNVPOV("AC",DFN,PIEN),-1) Q:'PIEN D I TOT>29 Q
  1. . S VISIT=$P($G(^AUPNVPOV(PIEN,0)),U,3) I 'VISIT Q
  1. . S Y=+$G(^AUPNVSIT(VISIT,0))
  1. . S DATE=$E(Y,4,5)_"/"_$E(Y,6,7)_"/"_$E(Y,2,3) I '$L(DATE) Q
  1. . S X=$G(^AUPNVPOV(PIEN,0)),NIEN=$P(X,U,4),IIEN=+X
  1. . S NARR=$G(^AUTNPOV(+$G(NIEN),0)),ICD=$$FVICD^VENPCCU(PIEN)
  1. . I '$L(NARR) S NARR=$P($G(^ICD9(IIEN,0)),U,3) I '$L(NARR) S NARR="<missing narrative>"
  1. . S TOT=TOT+1
  1. . S VAR1="pv"_TOT
  1. . S VCN="" ; VCN MAY BE APPENDED TO OUTPUT IF EF FLD 5.21 = 2
  1. . I $P($G(^VEN(7.41,+$G(DEFEF),5)),U,21) S %=$P($G(^AUPNVSIT(VISIT,11)),U,3) I $L(%) S VCN=" "_%
  1. . S @TMP@(1,VAR1)=DATE_" "_$E(NARR,1,MAXNARR)_" ["_ICD_"]"_VCN
  1. . Q
  1. Q
  1. ;
  1. CSPOV(DFN,CSIEN) ; EP-GET UP TO 30 MOST RECENT POVS FOR THIS CLINIC
  1. ; DATA STORED IN MAIL MERGE FIELD pv1C THRU pv30C
  1. N PIEN,X,NIEN,IIEN,TOT,NARR,VAR,ICD,VISIT,VCS,DATE,Y,MAXNARR,VCN
  1. S TOT=0,PIEN=999999999,MAXNARR=$$MAXNARR^VENPCCU(+$G(DEFEF))
  1. F S PIEN=$O(^AUPNVPOV("AC",DFN,PIEN),-1) Q:'PIEN D I TOT>29 Q
  1. . S VISIT=$P($G(^AUPNVPOV(PIEN,0)),U,3) I 'VISIT Q
  1. . S VCS=$P($G(^AUPNVSIT(VISIT,0)),U,8) I VCS'=CSIEN Q ; CLINIC STOP FILTER
  1. . S Y=+$G(^AUPNVSIT(VISIT,0)) I '$L(Y) Q
  1. . S DATE=$E(Y,4,5)_"/"_$E(Y,6,7)_"/"_$E(Y,2,3)
  1. . S X=$G(^AUPNVPOV(PIEN,0)),NIEN=$P(X,U,4),IIEN=+X
  1. . S NARR=$G(^AUTNPOV(+$G(NIEN),0)),ICD=$$FVICD^VENPCCU(PIEN)
  1. . I '$L(NARR) S NARR=$P($G(^ICD9(IIEN,0)),U,3) I '$L(NARR) S NARR="<missing narrative>"
  1. . S TOT=TOT+1
  1. . S VAR="pv"_TOT_"c"
  1. . S VCN="" ; VCN MAY BE APPENDED TO OUTPUT IF EF FLD 5.21 = 2
  1. . I $P($G(^VEN(7.41,+$G(DEFEF),5)),U,21) S %=$P($G(^AUPNVSIT(VISIT,11)),U,3) I $L(%) S VCN=" "_%
  1. . S @TMP@(1,VAR)=DATE_" "_$E(NARR,1,MAXNARR)_" ["_ICD_"]"_VCN
  1. . Q
  1. Q
  1. ;
  1. MH(DFN) ; EP-GET 15 MOST RECENT MENTAL HEALTH VISITS
  1. ; DATA IS STORED IN mh1-mh15
  1. N PIEN,X,NIEN,IIEN,TOT,NARR,VAR,ICD,VISIT,VCS,DATE,Y,MAXNARR
  1. S TOT=0,PIEN=999999999,MAXNARR=$$MAXNARR^VENPCCU(+$G(DEFEF))
  1. F S PIEN=$O(^AUPNVPOV("AC",DFN,PIEN),-1) Q:'PIEN D I TOT>14 Q
  1. . S VISIT=$P($G(^AUPNVPOV(PIEN,0)),U,3) I 'VISIT Q
  1. . S Y=+$G(^AUPNVSIT(VISIT,0))
  1. . S DATE=$E(Y,4,5)_"/"_$E(Y,6,7)_"/"_$E(Y,2,3) I '$L(DATE) Q
  1. . S X=$G(^AUPNVPOV(PIEN,0)),NIEN=$P(X,U,4),IIEN=+X I 'IIEN Q
  1. . S ICD=$$FVICD^VENPCCU(PIEN) I '$L(ICD) Q
  1. . I +ICD<290!(+ICD>319.999999) Q ; FILTER OUT NON MENTAL HEALTH DXS
  1. . S NARR=$G(^AUTNPOV(+$G(NIEN),0))
  1. . I '$L(NARR) S NARR=$P($G(^ICD9(IIEN,0)),U,3) I '$L(NARR) S NARR="<missing narrative>"
  1. . S NARR=NARR
  1. . S TOT=TOT+1
  1. . S VAR="mh"_TOT
  1. . S @TMP@(1,VAR)=DATE_" "_$E(NARR,1,MAXNARR)_" ["_ICD_"]"
  1. . Q
  1. Q
  1. ;
  1. ORLOG(DFN) ; EP-SURGERY HX BASED ON ANMC OR LOG
  1. ; FOR ANMC ONLY
  1. I '$D(^AZAORM(1,+$G(DFN),1)) Q "" ; MUST HAVE A VALID DFN
  1. N DN,SN,PN,DATE,TOT,SURGEON,PNARR,ICD,DATE,X,Y,%,GBL,OUT,SIEN,STG
  1. S GBL="^AZAORM(1,"_DFN_",1)",TOT=0,DN=999999999,OUT=""
  1. F S DN=$O(@GBL@(DN),-1) Q:'DN D
  1. . S Y=$P($G(@GBL@(DN,0)),U)\1 I 'Y Q
  1. . X ^DD("DD") S DATE=Y
  1. . S SN=0
  1. . F S SN=$O(@GBL@(DN,1,SN)) Q:'SN D
  1. .. S SIEN=+$G(@GBL@(DN,1,SN,0)) I 'SIEN Q
  1. .. S %=U_"DIC("_16_")",SURGEON=$P($G(@%@(SIEN,0)),U) I '$L(SURGEON) Q
  1. .. S PN=0
  1. .. F S PN=$O(@GBL@(DN,1,SN,4,PN)) Q:'PN D
  1. ... S STG=$G(@GBL@(DN,1,SN,4,PN,0)) I '$L(STG) Q
  1. ... S PNARR=$P(STG,U) I '$L(PNARR) Q
  1. ... S %=$P(STG,U,2)
  1. ... S ICD=$P($G(^ICD0(+%,0)),U)
  1. ... S TOT=TOT+1
  1. ... S $P(OUT,U,TOT)=(DATE_";"_PNARR_";"_ICD_";"_SURGEON)
  1. ... Q
  1. .. Q
  1. . Q
  1. Q OUT
  1. ;
  1. SURG(DFN,DEFEF) ; EP - PRINT THE SURGICAL HX FROM THE OR LOG ON THE PCC+ FORM IN MERGE FIELDS u1-u15
  1. ; FOR ANMC ONLY
  1. I '$D(^AZAORM(1,+$G(DFN))) Q ; MUST HAVE A VILD ER LOG DFN
  1. N VAR,STG,X,Y,%,TOT,CASE,I,MAX
  1. S STG=$$ORLOG(DFN) I '$L(STG) Q
  1. S MAX=$L(STG,U) I MAX>15 S MAX=15
  1. F TOT=1:1:MAX S CASE=$P(STG,U,TOT) I $L(CASE) D
  1. . S X=$P(CASE,";")_" "_$P(CASE,";",2) ; PRINT DATE AND PROCEDURE NARRATIVE
  1. . I $P($G(^VEN(7.41,DEFEF,5)),U,19) S X=X_" "_$P(CASE,";",3) ; PRINT THE ICD PROCEDURE CODE
  1. . I $P($G(^VEN(7.41,DEFEF,5)),U,20) S Y=$P(CASE,";"),X=X_" DR. "_$E($P(Y,",",2))_". "_$P(Y,",") ; PRINT THE SURGEON
  1. . S VAR="u"_TOT
  1. . S @TMP@(1,VAR)=X
  1. . Q
  1. Q
  1. ;