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

DGRPCADD.m

Go to the documentation of this file.
  1. DGRPCADD ;ALB/MRL,BAJ,TDM - REGISTRATION SCREEN 1.1/CONFIDENTIAL ADDRESS INFORMATION ; 9/29/09 1:16pm
  1. ;;5.3;PIMS;**489,624,688,1015,1016**;JUN 30, 2012;Build 20
  1. ;;**688 BAJ Jan 17,2006 Modifications to support Foreign addresses
  1. CADD ;Confidential Address
  1. N CNT,DGA1,DGA2,DGA3,DGA4,DGACT,DGBEG,DGCAN,DGCAT,DGCC,DGEND,DGTYP,DGTYPNAM,DGX,DGXX,DGZ,DGZIP,DGI,Y,Z,DGERR
  1. N DGA14,DGA15,DGA16,FORGN,DGCNTRY,DGA1315
  1. S DGRPS=1.1 D H^DGRPU
  1. S DGRP(.141)=$G(^DPT(DFN,.141))
  1. S Z=1,DGRPW=1.1 D WW^DGRPV W "Confidential Address"
  1. ; if no data or no Category, display "NO CONFIDENTIAL..."
  1. ;I DGRP(.141)=""!($P(DGRP(.141),U)="")!('$P($$CAACT(DFN),U)) D G END
  1. I DGRP(.141)=""!('$P($$CAACT(DFN),U)) D G END
  1. .W !?5,"NO CONFIDENTIAL ADDRESS"
  1. .W !!?42,"From/To: NOT APPLICABLE"
  1. S DGXX=DGRP(.141),DGA1=$P(DGXX,"^",1),DGA2=$P(DGXX,"^",2),DGA3=$P(DGXX,"^",3),DGA4=$P(DGXX,"^",4)
  1. S DGA14=$P(DGXX,"^",14),DGA15=$P(DGXX,"^",15)
  1. S DGA16=$P(DGXX,"^",16) S:'DGA16 DGA16=""
  1. S DGCNTRY=$E($$CNTRYI^DGADDUTL(DGA16),1,25),FORGN=$$FORIEN^DGADDUTL(DGA16)
  1. I DGCNTRY=-1 S DGCNTRY="UNKNOWN COUNTRY"
  1. W:DGA1'="" !?3,DGA1
  1. I 'FORGN D
  1. . ;If we didn't skip a line for Address Line 1, skip line now
  1. . I DGA1="" W !
  1. . W ?43,"County: "
  1. . I $D(^DIC(5,+$P(DGRP(.141),"^",5),1,+$P(DGRP(.141),"^",11),0)) D
  1. . . S DGCC=^DIC(5,+$P(DGRP(.141),"^",5),1,+$P(DGRP(.141),"^",11),0) W $P(DGCC,"^",1),"(",$P(DGCC,"^",3),")"
  1. S DGA1315=$P($G(^DPT(DFN,.13)),U,15) S:DGA1315="" DGA1315="UNANSWERED"
  1. I DGA2'="" W !?3,DGA2,?44,"Phone: ",DGA1315
  1. I DGA3'="" W !?3,DGA3 I DGA2="" W ?44,"Phone: ",DGA1315
  1. I FORGN W !?3,DGA15_" "_DGA4_" "_DGA14
  1. I 'FORGN W !?3,DGA4 D
  1. . I $D(^DIC(5,+$P(DGRP(.141),"^",5),0)) W ",",$P(^DIC(5,+$P(DGRP(.141),"^",5),0),"^",2)
  1. . S DGZIP=$P(DGRP(.141),"^",6) I $L(DGZIP)>5 S DGZIP=$E(DGZIP,1,5)_"-"_$E(DGZIP,6,12)
  1. . W " ",DGZIP
  1. I DGA2="",DGA3="" W ?44,"Phone: ",DGA1315
  1. W !?3,DGCNTRY
  1. W ?42,"From/To: " S (DGZ,DGX)="" F DGI=7,8 S DGZ=$P(DGRP(.141),"^",DGI),Y=DGZ D
  1. .I DGI=7 X:Y]"" ^DD("DD") S DGBEG=Y,DGX=Y
  1. .I DGI=8 X:Y]"" ^DD("DD") S DGEND=Y,DGX=DGX_"-"_$S(Y]"":Y,1:"UNANSWERED")
  1. W DGX
  1. W !!,"Categories: " I $D(^DPT(DFN,.14)) D
  1. .S DGCAT=$$GET1^DID(2.141,.01,"","POINTER","","DGERR")
  1. .S DGX="",DGCAN="" F S DGCAN=$O(^DPT(DFN,.14,DGCAN)) Q:DGCAN="" D
  1. ..Q:'$D(^DPT(DFN,.14,DGCAN,0))
  1. ..S DGTYP=$P(^DPT(DFN,.14,DGCAN,0),"^",1),DGACT=$P(^DPT(DFN,.14,DGCAN,0),"^",2)
  1. ..S DGACT=$S(DGACT="Y":"Active",DGACT="N":"Inactive",1:"Unanswered")
  1. ..S DGTYPNAM="" F DGI=1:1 S DGTYPNAM=$P(DGCAT,";",DGI) Q:DGTYPNAM="" D
  1. ...I DGTYPNAM[DGTYP S DGTYPNAM=$P(DGTYPNAM,":",2),DGX=DGTYPNAM_"("_DGACT_")"_","_DGX
  1. S DGXX="",CNT=0 F DGI=1:1 S DGXX=$P(DGX,",",DGI) Q:DGXX="" D
  1. .W:CNT>0 !
  1. .W ?13,DGXX
  1. .S CNT=CNT+1
  1. ; line feed before continuing
  1. W !
  1. END ;
  1. S DGRP(.13)=$G(^DPT(DFN,.13))
  1. S Z=2,DGRPW=1.1 D WW^DGRPV W " Cell Phone: "
  1. ;
  1. ;* Output Cell phone
  1. I $P(DGRP(.13),U,4)'="" W ?20,$P(DGRP(.13),U,4)
  1. I $P(DGRP(.13),U,4)="" W ?20,"UNANSWERED"
  1. ;
  1. ;* Output Pager
  1. W !," Pager #: "
  1. I $P(DGRP(.13),U,5)'="" W ?19,$P(DGRP(.13),U,5)
  1. I $P(DGRP(.13),U,5)="" W ?19,"UNANSWERED"
  1. ;
  1. ;* Output Email Address
  1. W !," Email Address: "
  1. I $P(DGRP(.13),U,3)'="" W ?19,$P(DGRP(.13),U,3)
  1. I $P(DGRP(.13),U,3)="" W ?19,"UNANSWERED"
  1. ;
  1. G ^DGRPP
  1. CAACT(DFN,ACTDT) ;Determines if the Confidential Address is active
  1. ;Input: DFN - Patient (#2) file internal entry number (Required)
  1. ; ACTDT - Date used to determine if address is active
  1. ; (Optional) Defaults to DT if not defined.
  1. ;
  1. ;Output:
  1. ; 1st piece 0 inactive based on start/stop dates
  1. ; 1 active based on start/stop dates
  1. ; 2nd piece 0 - no active correspondence types
  1. ; 1 - at least one active correspondence type
  1. ;
  1. N DGCA,DGCABEG,DGCAEND,DGSTAT,DGIEN,DGTYP,DGFLG
  1. S DGSTAT="0^0"
  1. I '$D(DFN) Q DGSTAT
  1. I '$D(ACTDT) S ACTDT=DT
  1. S DGCA=$G(^DPT(DFN,.141)) D
  1. .I DGCA="" Q
  1. .S DGCABEG=$P(DGCA,U,7)
  1. .S DGCAEND=$P(DGCA,U,8)
  1. .I 'DGCABEG!(DGCABEG>ACTDT)!(DGCAEND&(DGCAEND<ACTDT)) Q
  1. .S DGSTAT="1^0"
  1. ;Build array of correspondence types
  1. S (DGIEN,DGFLG)=0
  1. F S DGIEN=$O(^DPT(DFN,.14,DGIEN)) Q:'DGIEN D Q:DGFLG
  1. .S DGTYP=$G(^DPT(DFN,.14,+DGIEN,0))
  1. .I $P(DGTYP,U,2)="Y" S DGFLG=1
  1. S $P(DGSTAT,U,2)=$S(DGFLG=1:1,1:0)
  1. Q DGSTAT