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

AGFACE.m

Go to the documentation of this file.
  1. AGFACE ; IHS/ASDS/EFG - FACE SHEET ; MAR 19, 2010
  1. ;;7.1;PATIENT REGISTRATION;**1,2,4,5,7,9,11**;AUG 25, 2005;Build 1
  1. ;IHS/OIT/NKD AG*7.1*11 MU2 MULTIPLE RACES
  1. ;IHS/OIT/NKD AG*7.1*11 MU2 PREFERRED METHOD
  1. ;
  1. NODFN ;EP - No Pre-Defined Patient Number.
  1. D PTLK^AG
  1. Q:'$D(DFN)
  1. G L1
  1. DFN ;PEP - Pre-Defined Patient Number.
  1. Q:'$D(DFN)
  1. D CHKRHI^AG
  1. I $D(RHIFLAG)&(RHIFLAG="A") W !,$$S^AGVDF("RVN"),$$S^AGVDF("BLN"),"This patient has Restricted Health Information",$$S^AGVDF("BLF"),$$S^AGVDF("RVF")
  1. L1 K AG Q:'$D(DFN) D ^AGDATCK I AG("DTOT")>0 D ^AGBADATA
  1. I AGOPT(24)="Y" D PRINTVS
  1. DEV ;
  1. ;S XBNS="AG;DFN",XBRP="START^AGFACE" D ^XBDBQUE
  1. ;IM22794 ERROR DURING ALPHA TESTING. NOT REPORTED BY SITE
  1. S %ZIS="QA"
  1. D ^%ZIS
  1. G:POP NODFN
  1. I $G(IO("Q")) D QUE D HOME^%ZIS Q
  1. U IO
  1. D START
  1. D ^%ZISC
  1. D HOME^%ZIS
  1. Q
  1. START ;PEP - From TaskMan.
  1. Q:'$G(DFN) ;IHS/SD/TPF AG*7.1*1 REPORTED BY FDIH CALL FROM CIA REMOTE
  1. ;PROCEDURE HAD DFN=0 IM18987
  1. Q:'$G(DUZ(2))
  1. D ^AGVAR,LINES^AG,NOW^AG S AG("LOC")=$P($G(^DIC(4,DUZ(2),0)),U)
  1. S AG("PAGE")=0 D HDR
  1. S DIC=9000001,DR=.02 D ^AGDICLK W "COMPUTER FILE EST: " W:$D(AG("LKPRINT")) AG("LKPRINT") S AG=$P($G(^AUPNPAT(DFN,0)),U,11) I AG,$D(^VA(200,AG,0)) W "(",$P(^(0),U,2),")"
  1. S DR=.03,AGLAST="LAST EDIT: " D ^AGDICLK
  1. S:$D(AG("LKPRINT")) AGLAST=AGLAST_AG("LKPRINT") S AG=$P($G(^AUPNPAT(DFN,0)),U,12) I AG,$D(^VA(200,AG,0)) S AGLAST=AGLAST_" ("_$P(^(0),U,2)_")"
  1. W ?78-$L(AGLAST),AGLAST,!,AG("-")
  1. ALIAS ;OTHER NAMES
  1. I $O(^DPT(DFN,.01,0)) D
  1. .W !,"OTHER NAME(S):"
  1. .N I S I=0 F S I=$O(^DPT(DFN,.01,I)) Q:'I D
  1. ..W ?16,$P(^DPT(DFN,.01,I,0),"^",1),!
  1. E W !
  1. S DR=.09,DIC=2 D ^AGDICLK
  1. ;I $D(AG("LKPRINT")) W "SSN: ",AG("LKPRINT") D
  1. ;I $$GET1^DIQ(2,DFN_",",1107.3)'="" W "SSN: ",$$GET1^DIQ(9000001,DFN_",",1107.3) D ;IHS/SD/TPF AG*7.1*4
  1. I $$GET1^DIQ(9000001,DFN_",",1107.3)'="" W "SSN: ",$$GET1^DIQ(9000001,DFN_",",1107.3) D ;IHS/SD/TPF AG*7.1*5
  1. .I $P(^AUPNPAT(DA,0),U,23) W ?40,"SSN STATUS: ",$P(^AUTTSSN($P(^(0),U,23),0),U,2)
  1. .E W ?40,"SSN STATUS UNKNOWN"
  1. W !,"CLASS: " S DR=1111,DIC=9000001 D ^AGDICLK W:$D(AG("LKPRINT")) AG("LKPRINT")
  1. W ?62,"SEX: " S DR=.02,DIC=2 D ^AGDICLK W:$D(AG("LKPRINT")) AG("LKPRINT")
  1. W !,"COMMUNITY: " S DR=1118,DIC=9000001 D ^AGDICLK W:$D(AG("LKPRINT")) AG("LKPRINT") I AGOPT(14)="Y",$D(^AUPNPAT(DFN,11)) W " (",$S($P(^(11),U,21)="Y":"Verified",1:"Unverified"),")"
  1. W ?57,"BIRTHDAY: " S DR=.03,DIC=2 D ^AGDICLK W:$D(AG("LKPRINT")) AG("LKPRINT")
  1. W !?3,"COUNTY: " S DIC=9000001.51,DR=.03,AG("DRENT")=0 D ^AGDICLK I '$D(AG("LKERR")),AG("LKDATA")]"",$D(^AUTTCOM(AG("LKDATA"),0)) S AG=$P(^(0),U,2) I AG,$D(^AUTTCTY(AG,0)) W $P(^(0),U)
  1. W ?62,"AGE: " S DR=1102.98,DIC=9000001 D ^AGDICLK I '$D(AG("LKERR")),$D(AG("LKPRINT")),+AG("LKPRINT") W AG("LKPRINT")
  1. ;W !,"HOME ADDRESS:" S DR=.111,DIC=2 D ^AGDICLK I $D(AG("LKPRINT")),AG("LKPRINT")]"" W !?5,AG("LKPRINT")
  1. W !,"CURRENT ADDRESS:" S DR=.111,DIC=2 D ^AGDICLK I $D(AG("LKPRINT")),AG("LKPRINT")]"" W !?5,AG("LKPRINT") ;AG*7.1*4
  1. F DR=.112,.113 S DIC=2 D ^AGDICLK I $D(AG("LKPRINT")),AG("LKPRINT")]"" W !?5,AG("LKPRINT") ;AG*7.1*7
  1. ;W:$$GET1^DIQ(2,DFN_",",.112,"E")'="" !?5,$$GET1^DIQ(2,DFN_",",.112,"E") ;IHS/SD/TPF FOR FOREST COUNTY H5297 NOT APPROVED BY TAG
  1. S AG="",DR=.114 D ^AGDICLK I $D(AG("LKPRINT")),AG("LKPRINT")]"" S AG=AG_AG("LKPRINT")_","
  1. F DR=.115,.116 D ^AGDICLK I $D(AG("LKPRINT")),AG("LKPRINT")]"" S AG=AG_" "_AG("LKPRINT")
  1. W:AG]"" !?5,AG
  1. W !,"PHONE NUMBERS ---"
  1. W !,"HOME: " S DR=.131 D ^AGDICLK W:$D(AG("LKPRINT")) AG("LKPRINT") W ?27,"WORK: " S DR=.132 D ^AGDICLK W:$D(AG("LKPRINT")) AG("LKPRINT") W !,"OTHER PHONE: " S DR=1801 W $$GET1^DIQ(9000001,DFN,DR)
  1. W !
  1. I $$GET1^DIQ(9009061,DUZ(2)_",",503,"I") D ;AG*7.1*9 - Added conditional display of RACE
  1. .;IHS/OIT/NKD AG*7.1*11 MU2 - CHANGED DISPLAY TO USE MULTIPLE FIELD
  1. .;W $$GET1^DID(2,.06,"","LABEL"),": ",$E($$GET1^DIQ(2,DFN,.06),1,38) ;AG*7.1*7 - Truncated field length
  1. .N AGRACE S AGRACE=$$RACE^AGUTL(DFN)
  1. .W "RACE: "_$S(+AGRACE>1:"MULTIPLE RACES SPECIFIED",1:$E($P(AGRACE,"^",2),1,38))
  1. ;BEGIN NEW CODE AG*7.1*2 ETHNICITY
  1. I $$GET1^DIQ(9009061,DUZ(2)_",",501,"I") D
  1. .S ETHNIC=$O(^DPT(DFN,.06,0))
  1. .I ETHNIC S ETHNIC=$$GET1^DIQ(10.2,ETHNIC,.01)
  1. .W ?46,"ETHNICITY: ",$G(ETHNIC)
  1. ;END NEW CODE
  1. ;IHS/OIT/NKD AG*7.1*11 MU2 - RESTRICT PREFERRED LANGUAGE TO 25 CHARS AND SHIFT PREFERRED METHOD OVER
  1. ;W !,"PREFERRED LANGUAGE: ",$P($P($$CLANG^AGED10B(DFN),U,4),":",2),?52,"PREFERRED METHOD: ",$$GET1^DIQ(9000001,DFN,4002) ;AG*7.1*9 - Added Preferred Method
  1. W !,"PREFERRED LANGUAGE: ",$E($P($P($$CLANG^AGED10B(DFN),U,4),":",2),1,25),?47,"PREFERRED METHOD: ",$$GET1^DIQ(9000001,DFN,4002)
  1. ;NEW CODE FOR EMAIL ADDRESSES AG*7.1*4
  1. W:$$GET1^DIQ(9000001,DFN_",",1802)'="" !,"CURRENT EMAIL ADDRESS: ",$$GET1^DIQ(9000001,DFN_",",1802)
  1. ;END NEW CODE FOR EMAIL ADDRESS
  1. I AGOPT(23)="Y" W !,$$GET1^DID(9000001,.35,"","LABEL"),": ",$$GET1^DIQ(9000001,DFN,.35)
  1. I AGOPT(23)="Y" W ?30,$$GET1^DID(9000001,.36,"","LABEL"),": ",$$GET1^DIQ(9000001,DFN,.36)," / ",$$GET1^DIQ(9000001,DFN_",",8701,"E")
  1. I '$D(^AUPNNPP("B",DFN)) W !,AG("-"),!,"*** NO NOTICE OF PRIVACY PRACTICES DATA ON THIS PATIENT ***"
  1. I $D(^AUPNNPP("B",DFN)) D
  1. .W !,AG("-"),!
  1. .W "NOTICE OF PRIVACY PRACTICES REC'D BY PATIENT :" W ?47,$$GET1^DIQ(9000038,DFN,.02)
  1. .W ?54,"DATE :",?61,$$GET1^DIQ(9000038,DFN,.03)
  1. .W !,"ACKNOWLEDGEMENT OF RECEIPT OF NPP SIGNED :"
  1. .W ?43,$$GET1^DIQ(9000038,DFN,.04)
  1. .I $$GET1^DIQ(9000038,DFN,.05)'="" D
  1. ..W !,"REASON :"
  1. ..W ?11,$E($$GET1^DIQ(9000038,DFN,.05),1,60)
  1. ..I $L($$GET1^DIQ(9000038,DFN,.05))>60 W ! W ?11,$E($$GET1^DIQ(9000038,DFN,.05),61,80)
  1. W !,AG("-"),!,"TRIBE: " S DR=1108,DIC=9000001 D ^AGDICLK I $D(AG("LKPRINT")),AG("LKPRINT")]"" W AG("LKPRINT") I AGOPT(14)="Y",$D(^AUPNPAT(DFN,11)) W " (",$S($P(^(11),U,19)="Y":"Verified",1:"Unverified"),")"
  1. W ?50,"INDIAN QUANTUM: " S DR=1110 D ^AGDICLK W:$D(AG("LKPRINT")) AG("LKPRINT")
  1. K AGQUIT
  1. N I F I=1,4,5,6,7,9,11 D Q:$D(AGQUIT)
  1. .I $D(AGQUIT) Q
  1. .I $Y+6>IOSL D HDR
  1. .I $D(AGQUIT) Q
  1. .D @("^AGFACE"_I)
  1. I $D(AGQUIT) K AGQUIT Q
  1. ;Write line of "-", Confidential Pat Info, If CPU do end of page
  1. END ;
  1. I $G(AG("VS"))=1 W !,AG("-"),!! F I=0:0 S I=$O(^AGFAC(DUZ(2),4,I)) Q:'I W ^(I,0),!
  1. D CPI^AG G END2:$D(AGVQQFS) D RTRN^AG W $$S^AGVDF("IOF")
  1. END1 D ^%ZISC
  1. END2 ;
  1. K AG,AGIO,AGTIME,G,AGL,AGLAST,AG("LKERR"),AG("LKDATA"),AG("LKPRINT"),AGPCC,X,Y,Z
  1. D:$D(ZTQUEUED) KILL^%ZTLOAD
  1. Q
  1. HDR ;EP - FACE SHEET HEADER
  1. ;S AG("PAGE")=AG("PAGE")+1
  1. S AG("PAGE")=$G(AG("PAGE"))+1 ;IHS/SD/TPF 12/15/2005 AG*7.1*1
  1. I AG("PAGE")>1 Q:$D(AGVQQFS) D RTRN^AG I 'Y S AGQUIT="" D END1 Q
  1. W:AG("PAGE")>1 $$S^AGVDF("IOF")
  1. D CPI^AG
  1. W !?40-($L(AG("LOC"))\2),AG("LOC"),!?26,"AMBULATORY CARE RECORD BRIEF",!?25,"------------------------------",!,AGTIME,?70,"Page: ",AG("PAGE"),!,AG("="),!
  1. I '$D(RHIFLAG) W "PATIENT: " S DIC=2,DA=DFN,DR=.01 D ^AGDICLK W:$D(AG("LKPRINT")) AG("LKPRINT") I $D(^DPT(DFN,"VET")),^("VET")="Y" W " (VETERAN)"
  1. I $D(RHIFLAG) D
  1. . I RHIFLAG="A" W "PATIENT: " S DIC=2,DA=DFN,DR=.01 D ^AGDICLK W:$D(AG("LKPRINT")) $$S^AGVDF("RVN"),AG("LKPRINT"),$$S^AGVDF("BLN")," (RHI)",$$S^AGVDF("BLF"),$$S^AGVDF("RVF")
  1. . E W "PATIENT: " S DIC=2,DA=DFN,DR=.01 D ^AGDICLK W:$D(AG("LKPRINT")) AG("LKPRINT") I $D(^DPT(DFN,"VET")),^("VET")="Y" W " (VETERAN)"
  1. W ?59,"CHART #: " W:$D(^AUPNPAT(DFN,41,DUZ(2),0)) $P(^(0),U,2) W !,AG("="),!
  1. Q
  1. QUE ;QUE TO TASKMAN
  1. K IO("Q")
  1. S ZTRTN="START^AGFACE",ZTDESC="FACE SHEET for "_$P(^DPT(DFN,0),U)_"."
  1. S ZTSAVE("DFN")=""
  1. K ZTSK D ^%ZTLOAD
  1. I $D(ZTSK)[0 W !!?5,"Report Cancelled!"
  1. E W !!?5,"Task # ",ZTSK," queued.",!
  1. H 3
  1. Q
  1. PRINTVS ;PRINT VALIDATION STATEMENT
  1. K DIR,AG("VS")
  1. S DIR(0)="Y"
  1. S DIR("A")="Print VALIDATION STATEMENT on form ?"
  1. S DIR("B")="NO"
  1. D ^DIR S AG("VS")=Y
  1. K DIR
  1. Q