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

VENPCC2A.m

Go to the documentation of this file.
  1. VENPCC2A ; IHS/OIT/GIS - HEALTH SUMMARY GENERATOR ;
  1. ;;2.6;PCC+;;NOV 12, 2007
  1. ;
  1. ; VER 2.2 HS GENERATOR
  1. ; SUPPORTS OUTPUT FOR NEW PRINT SERVICE
  1. ;
  1. HS(APCHSPAT,APCHSTYP,VISIT,DEPTIEN) ; EP-GENERATE A HEALTH SUMMARY
  1. N PATH2,PATH3
  1. I $D(^AUPNPAT(+$G(APCHSPAT),0)),$D(^APCHSCTL(+$G(APCHSTYP),0)),$D(^VEN(7.95,+$G(DEPTIEN),0))
  1. E Q
  1. I '$L($T(EN1^APCHS)) N ERR S ERR="Missing APCHS/APCHS0 patches. Can't print health summary!" D ERR^VENPCC1(ERR) Q
  1. S %=$G(^VEN(7.5,+$G(CFIGIEN),2)) I %="" D ERR7^VENPCC1 Q
  1. S PATH2=%,%=$G(^VEN(7.5,+$G(CFIGIEN),3)) I %="" D ERR7^VENPCC1 Q
  1. S PATH3=%
  1. NEW NEW %,%FN,%I,%T,%Y,APCHSFNM,APCHSIC,APCHSICD,APCHSICL,APCHSIR,APCHSNRQ,APCHSPDN,APCHSSGY,APCHSMTY,APCHSTAT,ARRAY,FILE,HEAD,I,POP,STOP,TAB,TMP,X,Y,APCHSERR,APCHSBWR
  1. S TMP="^TMP(""VEN HS"",$J)",FILE="T"_VISIT_".TXT" K @TMP
  1. S IOST="P-PRINTER",IOSL=99999,IOM=80
  1. D DEL^VENPCCP1(PATH3,FILE) ; CLEAN UP THE TMP FILE ; PATCHED BY GIS 2/20/07
  1. S POP=$$OPN^VENPCCP(PATH3,FILE,"W","N IO S IO=DEV D EN1^APCHS") K ^TMP($J,"APCHSMED") I POP Q
  1. S POP=$$OPN^VENPCCP(PATH3,FILE,"R","D LINE^VENPCC2A") I POP Q
  1. D DEL^VENPCCP1(PATH3,FILE) ; CLEAN UP THE TMP FILE AGAIN
  1. PASS ; FIRST PASS THROUGH THE ARRAY
  1. NEW %,I,PATIENT,SCNT,SNO,STOP,X
  1. S SCNT=0
  1. S %=$G(@TMP@(0,2)) I '$L(%) S ERR="Unable to generate health summary. Directory may be full!" D ERR^VENPCC1(ERR) Q ; /usr directory or descendent is full
  1. S %=$P(%,"** ",2),%=$P(%," **") S @TMP@(2,"H1")=%
  1. S %=$P(@TMP@(0,3),"** ",2),@TMP@(2,"H2")=" "_$P(%,"pg")
  1. S @TMP@(2,"HEADER")="HS",@TMP@(2,"TEMPLATE")="HS2",@TMP@(2,"PRINTER")=""
  1. S (%,PATIENT)=$P($G(^DPT(APCHSPAT,0)),U) I '$L(%) D ERR3^VENPCC1 S STOP=1 Q
  1. S X=$P(%,",",2,99)_" "_$P(%,",")
  1. I $G(DFN),$G(DEPTIEN) S X=X_" #"_$$CHART^VENPCC1A(DEPTIEN,DFN)
  1. S @TMP@(2,"FOOTER")=X
  1. S I=0 F S I=$O(@TMP@(0,I)) Q:'I S X=^(I) D
  1. . I X["** END" K @TMP@(0,I-1),^(I),^(I+1)
  1. . I X[("**"_$E(PATIENT,1,20)) K @TMP@(0,I) Q
  1. . I X["CONFIDENTIAL PATIENT" K @TMP@(0,I) Q
  1. . I $L(X)>50,$E(X)="-",$E(X,$L(X))="-" S %=$$STRIP^VENPCCU(X) S @TMP@(1,I)=% K @TMP@(0,I-1),^(I+1)
  1. . Q
  1. S SNO=0 F S SNO=$O(@TMP@(1,SNO)) Q:'SNO D SEC(SNO) I $G(STOP) Q
  1. D EXP
  1. K @TMP
  1. D AUDIT(APCHSPAT,DUZ,$G(DEPTIEN),$G(VISIT))
  1. Q
  1. ;
  1. LINE F I=1:1 R X:30 Q:$$STATUS^%ZISH!(X["** END ") S @TMP@(0,I)=X
  1. Q
  1. ;
  1. SEC(SNO) ; EP-PROCESS A SECTION
  1. NEW %,COMP,INO,NAME,REF,X,Y,LINE,LNO,STOP
  1. S NAME=@TMP@(1,SNO),COMP=$P(NAME," (")
  1. S SCNT=SCNT+1,STOP=0
  1. SEC1 S @TMP@(2,("S"_SCNT))=NAME,INO=0,LNO=SNO
  1. F S LNO=$O(@TMP@(0,LNO)) Q:'LNO S LINE=^(LNO) D I STOP Q
  1. . I $E(LINE)="-",$E(LINE,$L(LINE))="-" S STOP=1 Q ; QUIT WHEN YOU REACH THE START OF NEXT SECTION
  1. . D SET($C(9)_LINE) ; ATTACH A VALUE TO A FIELD. ALL FIELDS MUST START WITH A TAB CHARACTER
  1. . Q
  1. D SET($C(9))
  1. Q
  1. ;
  1. SET(X) ; EP-SAVE TMP GLOBALS
  1. I X[U S X=$TR(X,U,"")
  1. S INO=INO+1
  1. I INO=44,SCNT=10 S @TMP@(2,"S1044")="",INO=45 ; FIXES PRINT SERVICE PROBLEM
  1. ; I INO>50 S:INO=51 @TMP@(2,("S"_(SCNT*100+50)))="<<Space constraints prevent display of additional lines in this section!!!>>" Q
  1. S @TMP@(2,("S"_(SCNT*100+INO)))=X
  1. I INO=50 S SCNT=SCNT+1,INO=0 ; OVERLAP INTO THE NEXT SECTION
  1. Q
  1. ;
  1. EXP ; EP-EXPORT THE MAIL MERGE FILE
  1. I $P($G(^VEN(7.5,CFIGIEN,13)),U) D Q ; IN VER 2.5, GO DIRECTLY DATA FILE BUILDER
  1. . N VER25,HSFLAG
  1. . S VER25=1 S HSFLAG=1
  1. . D TCP^VENPCC1 Q
  1. . Q
  1. ; TRADITIONAL HS EXPORT...
  1. NEW %,%FN,FILE,I,LINE,LNO,NAME,X,Y,Z,PATH
  1. S @TMP@(3,1)="HEADER",^(2)="TEMPLATE",^(3)="GROUP",^(4)="PRINTER",^(5)="H1",^(6)="H2"
  1. S I=6 F X=1:1:25 F Y=1:1:50 D
  1. . I Y=1 S I=I+1,@TMP@(3,I)="S"_X,Z=X*100
  1. . S I=I+1,@TMP@(3,I)="S"_(Z+Y)
  1. . Q
  1. S @TMP@(3,I+1)="FOOTER"
  1. N HSFLAG S HSFLAG=1
  1. D TCP^VENPCC1 ; TCP PRINT SERVICE
  1. Q
  1. ;
  1. AUDIT(PAT,USER,SITE,VISIT) ; EP-UPDATE AUDIT FILE
  1. NEW %,%DT,%I,%Q,%Y,D,D0,DA,DI,DIC,DIE,DQ,DR,X,Y,DLAYGO
  1. D NOW^%DTC S X=%
  1. S DIC="^VEN(7.8,",DIC(0)="L",DLAYGO=19707.8 D ^DIC
  1. I Y=-1 Q
  1. S DIE=DIC,DA=+Y
  1. S DR=".02////^ S X=$G(PAT);.03////^S X=$G(SITE);.04////^S X=USER"
  1. I '$G(VFLAG),$L($G(VISIT)),'$G(NOVISIT) S DR=DR_";.05////^S X=VISIT"
  1. I $G(APPDATE) S DR=DR_";.06////^S X=APPDATE"
  1. L +^VEN(7.8):0 I $T D ^DIE L -^VEN(7.8)
  1. Q
  1. ;