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

APCDEF.m

Go to the documentation of this file.
  1. APCDEF ; IHS/CMI/LAB - APCD Auto Print PCC Encounter Form Sort ;
  1. ;;2.0;IHS PCC SUITE;**4**;MAY 14, 2009
  1. ;
  1. ;This routine will print out an automated PCC encounter form for
  1. ;a particular visit. The visit IEN needs to be passed in for it
  1. ;to run. This will typically be called after data entry.
  1. ;
  1. ;
  1. ASK ;-- ask the visit and either call this routine or visit display
  1. D XIT
  1. D GETPAT^APCDDISP
  1. I APCDPAT="" W !,"No Patient Selected!" D XIT Q
  1. D GETVISIT^APCDDISP
  1. I APCDVSIT="" W !,"No Visit Selected!" D XIT Q
  1. S DIR(0)="SB^D:Display Mode;F:Form Mode"
  1. S DIR("A")="Would you like to see the visit in Display or Form Mode: "
  1. S DIR("B")="F"
  1. D ^DIR
  1. G XIT:$D(DIRUT)
  1. S APCDFD=Y
  1. K DIR,Y
  1. I APCDFD="D" D ^APCDVD,EOJ^APCDDISP Q
  1. D EN(APCDVSIT)
  1. Q
  1. ;
  1. EN(APCDVIEN) ;-- this is the entry point from external packages
  1. I '$G(APCDVIEN) W !,"No Visit Selected for PCC Encounter Form Print" Q
  1. D VST,VFL,ZIS
  1. Q
  1. ;
  1. VST ;EP -- get the visit information
  1. S APCDVREC=$G(^AUPNVSIT(APCDVIEN,0))
  1. S APCDPAT=$$VAL^XBDIQ1(9000010,APCDVIEN,.05)
  1. S APCDVDT=$$FMTE^XLFDT($$VALI^XBDIQ1(9000010,APCDVIEN,.01))
  1. S APCDVCLN=$S($P(APCDVREC,U,8)'="":$$VAL^XBDIQ1(9000010,APCDVIEN,.08),1:"Not Specified")
  1. S APCDVLOC=$$VAL^XBDIQ1(9000010,APCDVIEN,.06)
  1. S APCDVEM=$$VAL^XBDIQ1(9000010,APCDVIEN,.17)
  1. S APCDVSC=$$VAL^XBDIQ1(9000010,APCDVIEN,.07)
  1. S APCDVHL=$$VAL^XBDIQ1(9000010,APCDVIEN,.22)
  1. S APCDVDP=$$VAL^XBDIQ1(9000010,APCDVIEN,.33)
  1. S APCDVCC=$$VAL^XBDIQ1(9000010,APCDVIEN,1401)
  1. S APCDVFLG=$$VAL^XBDIQ1(9000010,APCDVIEN,1601)
  1. Q
  1. ;
  1. VFL ;EP -- let's loop through the v files and get the info
  1. NEW DA,D0,DIC,DIQ,DR,DI
  1. S APCDJ=$J,APCDH=$H
  1. S APCDTMP="^XTMP(APCDJ,APCDH,""APCDEF"",APCDCTR,APCDVFA)"
  1. S APCDCNT=1
  1. S APCDVFLE=9000010 F S APCDVFLE=$O(^DIC(APCDVFLE)) Q:APCDVFLE>9000010.99 D
  1. . S APCDCTR=""
  1. . I APCDVFLE=9000010.01 S APCDCTR=1
  1. . I APCDVFLE=9000010.13 S APCDCTR=2
  1. . I APCDVFLE=9000010.07 S APCDCTR=3
  1. . I APCDVFLE=9000010.14 S APCDCTR=4
  1. . I APCDCTR="" S APCDCTR=$P(APCDVFLE,".",2)+10000
  1. . S APCDVNM=$P(^DIC(APCDVFLE,0),U)
  1. . S APCDVDG=^DIC(APCDVFLE,0,"GL")
  1. . S APCDVDGA=$P(APCDVDG,"(")
  1. . S APCDVFA=$E(APCDVDGA,6,9)
  1. . S APCDVIGR=APCDVDG_"""AD"",APCDVIEN,APCDVDFN)"
  1. . S APCDVDFN=""
  1. . F APCDVI=1:1 S APCDVDFN=$O(@APCDVIGR) Q:APCDVDFN="" D
  1. .. I APCDVFLE=9000010.01 Q:$P($G(^AUPNVMSR(APCDVDFN,2)),U,1) ;skip measurements entered in error
  1. .. I APCDVFLE=9000010.04 D Q
  1. ... K @APCDTMP@(APCDCNT)
  1. ... S @APCDTMP@(APCDCNT)=$G(@APCDVDGA@(APCDVDFN,19))
  1. ... S APCDCNT=APCDCNT+1
  1. .. I APCDVFLE=9000010.13!(APCDVFLE=9000010.07)!(APCDVFLE=9000010.16)!(APCDVFLE=9000010.01) D Q
  1. ... S @APCDTMP@(APCDCNT)=APCDVDFN
  1. ... S APCDCNT=APCDCNT+1
  1. .. I APCDVFLE=9000010.32 D Q
  1. ... S @APCDTMP@(APCDCNT)=APCDVDFN
  1. ... S APCDCNT=APCDCNT+1
  1. .. I APCDVFLE=9000010.34 D Q
  1. ... S @APCDTMP@(APCDCNT)=APCDVDFN
  1. ... S APCDCNT=APCDCNT+1
  1. .. S @APCDTMP@(APCDCNT)=$G(@APCDVDGA@(APCDVDFN,0))
  1. .. S APCDCNT=APCDCNT+1
  1. Q
  1. ;
  1. ZIS ;-- device call
  1. S XBRC="^APCDEFC",XBRP="^APCDEFP",XBNS="APCD",XBRX="XIT^APCDEF"
  1. D ^XBDBQUE
  1. ;
  1. XIT ;-- kill the variables and quit
  1. D EN^XBVK("APCD")
  1. Q
  1. ;