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

SDEC52.m

Go to the documentation of this file.
  1. SDEC52 ;ALB/SAT,CT,LAB,BWF - VISTA SCHEDULING RPCS ;OCT 19, 2022
  1. ;;5.3;Scheduling;**627,642,651,658,745,813,827**;Aug 13, 1993;Build 10
  1. ;
  1. Q
  1. ;
  1. RECGET(SDECY,DFN,SDBEG,SDEND,MAXREC,LASTSUB,RECIEN,SDSTOP,SDFLAGS,SDCLL) ; GET entries from the RECALL REMINDERS file 403.5 for a given Patient and Recall Date range. ;alb/sat 658 add SDCLL
  1. RECGETA ;
  1. N SDCL,SDDATA,SDECI,SDDEMO,SDMSG,SDTMP ;alb/sat 658 added SDCL
  1. N ACCESION,APPTLEN,CLINIEN,CLINNAME,COMM,DAPTDT,DATE,DATE1,DATE2,DATE3,DOB,ELIGIEN,ELIGNAME,ERR,FASTING ;alb/sat 658 added ERR
  1. N GAF,GENDER,HRN,IEN,INSTIEN,INSTNAME,NAME,PD,PM,PRIGRP,RRAPPTYP,RRPROVNAME,PTINFO,RRPROVIEN,SSN
  1. N SVCCONNP,SVVCCONN,SDDFN
  1. N PADDRES1,PADDRES2,PADDRES3,PCITY,PSTATE,PCOUNTRY,PTPHONE,PZIP4
  1. N SDCNT,SDI,SDJ,SDSENS,SDSUB,TYPEIEN,TYPENAME,USERIEN,USERNAME,X,Y,%DT
  1. N BADADD,OPHONE,NOK,KNAME,KREL,KPHONE,KSTREET,KSTREET2,KSTREET3,KCITY,KSTATE,KZIP
  1. N NOK2,K2NAME,K2REL,K2PHONE,K2STREET,S2STREE2,K2STREET3,K2CITY,K2STATE,K2ZIP,PCOUNTY
  1. N PMARITAL,PRELIGION,PTACTIVE,PTADDRESS1,PTADDRESS2,PTADDRESS3,PTCITY,PTSTATE,PTZIP,PTZIP4
  1. N PTCOUNTRY,PTCOUNTY,PTMPHONE,PTSTART,PTEND,PCELL,PPAGER,PEMAIL,PFFFF,PFVCD,PFNATIONAL,PFLOCAL
  1. ;
  1. S ERR=0 ;alb/sat 658
  1. S SDSUB=""
  1. S SDECY="^TMP(""SDEC52"","_$J_",""RECGET"")"
  1. K @SDECY
  1. S SDECI=0
  1. D HDR
  1. ;validate SDFLAGS (optional) ;alb/sat 651
  1. S SDFLAGS=$G(SDFLAGS)
  1. ;validate RECIEN (optional)
  1. S RECIEN=$G(RECIEN)
  1. I RECIEN'="" I '$D(^SD(403.5,RECIEN,0)) D ERR1^SDECERR(-1,"Invalid Recall Reminders ID.",SDECI,SDECY) Q
  1. I RECIEN'="" D RECIEN1 G RECX
  1. S SDCNT=0
  1. ;validate SDBEG
  1. S SDBEG=$G(SDBEG)
  1. I $G(SDBEG)'="" S %DT="" S X=$P($G(SDBEG),"@",1) D ^%DT S SDBEG=Y I Y=-1 S SDBEG=$$FMADD^XLFDT($P($$NOW^XLFDT,".",1),-1825)
  1. I $G(SDBEG)="" S SDBEG=$$FMADD^XLFDT($P($$NOW^XLFDT,".",1),-1825)
  1. ;validate SDEND (optional)
  1. S SDEND=$G(SDEND)
  1. I SDEND'="" S %DT="" S X=$P($G(SDEND),"@",1) D ^%DT S SDEND=Y I Y=-1 S SDEND=$$FMADD^XLFDT($P($$NOW^XLFDT,".",1),-90)
  1. I SDEND="" S SDEND=$$FMADD^XLFDT($P($$NOW^XLFDT,".",1),-90)
  1. ;validate SDSTOP (optional)
  1. S SDSTOP=$G(SDSTOP)
  1. ;validate DFN (optional)
  1. S DFN=$G(DFN)
  1. I DFN'="" I '$D(^DPT(DFN,0)) S DFN=""
  1. ;get all records for a specific patient
  1. I +DFN D RECGET1(DFN,,SDBEG,SDEND,SDFLAGS) G RECX ;alb/sat 651 - add SDFLAGS
  1. ;get records in specified date range
  1. ;validate MAXREC (optional)
  1. S MAXREC=$G(MAXREC) I 'MAXREC S MAXREC=9999999
  1. ;validate LASTSUB (optional)
  1. S LASTSUB=$G(LASTSUB)
  1. ;validate SDCLL (optional) ;alb/sat 658
  1. S SDCLL=$G(SDCLL)
  1. I SDCLL'="" D
  1. .F SDJ=1:1:$L(SDCLL,U) S SDCL=+$P(SDCLL,U,SDJ) D Q:ERR
  1. ..I '$D(^SD(403.5,SDCL,0)) S @SDECY@(1)="-1^Invalid clinic ID."_$C(30,31),ERR=1 Q
  1. .D RECSDCL
  1. Q:ERR
  1. G:SDCLL'="" RECX
  1. ;get Recalls for date range
  1. D RECGETD
  1. RECX S SDTMP=@SDECY@(SDECI) S SDTMP=$P(SDTMP,$C(30),1)
  1. S:$G(SDSUB)'="" $P(SDTMP,U,42)=SDSUB
  1. S @SDECY@(SDECI)=SDTMP_$C(30,31)
  1. Q
  1. ;
  1. HDR ;Print out the header
  1. S SDTMP="T00030IEN^T00030DFN^T00030NAME^T00030HRN^T00030DOB^T00030SSN^T00030GENDER^T00030INSTIEN^T00030INSTNAME"
  1. S SDTMP=SDTMP_"^T00030ACCESION^T00080COMM^T00030FASTING^T00030RRAPPTYP"
  1. S SDTMP=SDTMP_"^T00030RRPROVIEN^T00030PROVNAME^T00030CLINIEN^T00030CLINNAME^T00030APPTLEN"
  1. S SDTMP=SDTMP_"^T00030DATE^T00030DATE1^T00030DAPTDT^T00030USERIEN^T00030USERNAME^T00030DATE2"
  1. S SDTMP=SDTMP_"^T00030PRIGRP^T00030ELIGIEN^T00030ELIGNAME^T00030SVCCONN^T00030SVCCONNP"
  1. S SDTMP=SDTMP_"^T00030TYPEIEN^T00030TYPENAME^T00030DATE3^T00030PADDRES1^T00030PADDRES2^T00030PADDRES3"
  1. S SDTMP=SDTMP_"^T00030PCITY^T00030PSTATE^T00030PCOUNTRY^T00030PZIP4^T00030GAF^T00100SENSITIVE^T00030LASTSUB^T00030PTPHONE"
  1. S SDTMP=SDTMP_"^T00030PRACE^T00030PRACEN^T00030PETH^T00030PETHN^T00030PRHBLOC"
  1. S SDTMP=SDTMP_"^T00030BADDADD^T00030OPHONE^T00030NOK^T00030KNAME^T00030KREL^T00030KPHONE"
  1. S SDTMP=SDTMP_"^T00030KSTREET^T00030KSTREET2^T00030KSTREET3^T00030KCITY^T00030KSTATE^T00030KZIP"
  1. S SDTMP=SDTMP_"^T00030NOK2^T00030K2NAME^T00030N2REL^T00030K2PHONE"
  1. S SDTMP=SDTMP_"^T00030K2STREET^T00030K2STREET2^T00030K2STREET3^T00030K2CITY^T00030K2STATE^T00030K2ZIP"
  1. S SDTMP=SDTMP_"^T00030PCOUNTY^T00030PMARITAL^T00030PRELIGION^T00030PTACTIVE"
  1. S SDTMP=SDTMP_"^T00030PTADDRESS1^T00030PTADDRESS2^T00030PTADDRESS3^T00030PTCITY^T00030PTSTATE^T00030PTZIP^T00030PTZIP+4"
  1. S SDTMP=SDTMP_"^T00030PTCOUNTRY^T00030PTCOUNTY^T00030PTMPHONE^T00030PTSTART^T00030PTEND"
  1. S SDTMP=SDTMP_"^T00030PCELL^T00030PPAGER^T00030PEMAIL^T00030PF_FFF^T00030PF_VCD^T00030PFNATIONAL^T00030PFLOCAL"
  1. S SDTMP=SDTMP_"^T00030SUBGRP^T00030CAT8G^T01000SIMILAR^T00030CPHONE^T00030CLET" ;added call phone & letter *745 5/14/20
  1. S SDTMP=SDTMP_"^T00030CEMAIL^T00030CTEXT^T00030CSEC" ;added call phone & letter *745 5/14/20
  1. S @SDECY@(SDECI)=SDTMP_$C(30)
  1. Q
  1. ;
  1. RECGET1(DFN,IEN,SDBEG,SDEND,SDFLAGS) ;get all recall data for 1 patient ;alb/sat 651 - add SDFLAGS
  1. ; DFN = (required) patient ID pointer to PATIENT file 2
  1. ; IEN - (optional) recall ID pointer to RECALL REMINDERS file
  1. ; all records in date range will be return if IEN=""
  1. N X,Y,%DT
  1. S SDFLAGS=$G(SDFLAGS) ;alb/sat 651
  1. ;check for valid Patient (required)
  1. I '$D(^DPT(+$G(DFN),0)) D ERR1^SDECERR(-1,"Invalid Patient ID",SDECI,SDECY) Q
  1. ;check begin date (optional)
  1. I $G(SDBEG)'="" S %DT="" S X=$P($G(SDBEG),"@",1) D ^%DT S SDBEG=Y I Y=-1 S SDBEG=1410102 ;alb/sat 658 use valid FM range instead of 1000101
  1. I $G(SDBEG)="" S SDBEG=1410102 ;alb/sat 658 use valid FM range instead of 1000101
  1. ;check end date (optional)
  1. I $G(SDEND)'="" S %DT="" S X=$P($G(SDEND),"@",1) D ^%DT S SDEND=Y I Y=-1 S SDEND=$$FMADD^XLFDT($P($$NOW^XLFDT,".",1),-90)
  1. I $G(SDEND)="" S SDEND=$$FMADD^XLFDT($P($$NOW^XLFDT,".",1),-90)
  1. ;get RECALL REMINDERS data
  1. S IEN=$G(IEN)
  1. I IEN'="" D GET1 Q
  1. I IEN="" F S IEN=$O(^SD(403.5,"B",DFN,IEN)) Q:IEN="" D GET1
  1. Q
  1. ;
  1. RECGETD ;get recall data for date range
  1. S SDFLAGS=$G(SDFLAGS) ;alb/sat 651
  1. I 'SDSTOP D
  1. .S SDI=$S($P(LASTSUB,"|",1)'="":$P(LASTSUB,"|",1)-1,1:SDBEG-1) F S SDI=$O(^SD(403.5,"D",SDI)) Q:SDI'>0 Q:SDI>$P(SDEND,".",1) D I SDECI>(MAXREC-1) S SDSUB=SDI_"|"_$S(SDDFN>0:SDDFN,1:"") Q
  1. ..S SDDFN=$S($P(LASTSUB,"|",2)'="":$P(LASTSUB,"|",2),1:"") S LASTSUB="" F S SDDFN=$O(^SD(403.5,"D",SDI,SDDFN)) Q:SDDFN'>0 D Q:SDECI>(MAXREC-1)
  1. ...S DFN=$$GET1^DIQ(403.5,SDDFN_",",.01,"I") D RECGET1(DFN,SDDFN,SDBEG,SDEND,SDFLAGS) ;alb/sat 651 - add SDFLAGS
  1. I +SDSTOP D
  1. .S SDI=$S($P(LASTSUB,"|",1)'="":$P(LASTSUB,"|",1)+1,1:SDEND+1) F S SDI=$O(^SD(403.5,"D",SDI),-1) Q:SDI'>0 Q:SDI<$P(SDBEG,".",1) D I SDECI>(MAXREC-1) S SDSUB=SDI_"|"_$S(SDDFN>0:SDDFN,1:"") Q
  1. ..S SDDFN=$S($P(LASTSUB,"|",2)'="":$P(LASTSUB,"|",2),1:999999999) S LASTSUB="" F S SDDFN=$O(^SD(403.5,"D",SDI,SDDFN),-1) Q:SDDFN'>0 D Q:SDECI>(MAXREC-1)
  1. ...S DFN=$$GET1^DIQ(403.5,SDDFN_",",.01,"I") D RECGET1(DFN,SDDFN,SDBEG,SDEND,SDFLAGS) ;alb/sat 651 - add SDFLAGS
  1. Q
  1. RECSDCL ;get recall data for clinics ;alb/sat 658
  1. N SDCL,IEN,SDJ
  1. ;LASTSUB=clinic | ien
  1. I 'SDSTOP D
  1. .S SDCL=$S($P(LASTSUB,"|",1)'="":$P(LASTSUB,"|",1),1:"")
  1. .S SDJ=$S(SDCL'="":$$PF(SDCLL,SDCL,U),1:1)
  1. .F SDJ=SDJ:1:$L(SDCLL,U) S SDCL=$P(SDCLL,U,SDJ) D I SDECI>(MAXREC-1) S SDSUB=SDCL_"|"_IEN Q
  1. ..S IEN=$S($P(LASTSUB,"|",2)'="":$P(LASTSUB,"|",2)-1,1:"") S LASTSUB=""
  1. ..F S IEN=$O(^SD(403.5,"E",SDCL,IEN)) Q:IEN'>0 D I SDECI>(MAXREC-1) S SDSUB=SDCL_"|"_IEN Q
  1. ...S DFN="" D GET1
  1. I +SDSTOP D
  1. .S SDCL=$S($P(LASTSUB,"|",1)'="":$P(LASTSUB,"|",1),1:"")
  1. .S SDJ=$S(SDCL'="":$$PF(SDCLL,SDCL,U),1:1)
  1. .F SDJ=SDJ:1:$L(SDCLL,U) S SDCL=$P(SDCLL,U,SDJ) D I SDECI>(MAXREC-1) S SDSUB=SDCL_"|"_IEN Q
  1. ..S IEN=$S($P(LASTSUB,"|",2)'="":$P(LASTSUB,"|",2)-1,1:999999999) S LASTSUB=""
  1. ..F S IEN=$O(^SD(403.5,"E",SDCL,IEN),-1) Q:IEN'>0 D I SDECI>(MAXREC-1) S SDSUB=SDCL_"|"_IEN Q
  1. ...D GET1
  1. Q
  1. ;
  1. RECIEN(SDECY,RECIEN) ;Get recall data for one entry
  1. RECIEN1 ;
  1. ;Input is IEN to retieve data on
  1. N ACCESION,APPTLEN,CLINIEN,CLINNAME,COMM,DAPTDT,DATE,DATE1,DATE2,DATE3,DOB,ELIGIEN,ELIGNAME,FASTING
  1. N GAF,GENDER,HRN,IEN,INSTIEN,INSTNAME,NAME,PD,PM,PRIGRP,RRAPPTYP,RRPROVNAME,PTINFO,RRPROVIEN,SSN
  1. N CAT8G,SIMILAR,SUBGRP,SVCCONNP,SVVCCONN,SDBEG,SDEND,SDREC
  1. N PADDRES1,PADDRES2,PADDRES3,PCITY,PSTATE,PCOUNTRY,PZIP4
  1. N SDCNT,SDI,SDSENS,SDSUB,TYPEIEN,TYPENAME,USERIEN,USERNAME,X,Y,%DT
  1. S SDSUB=""
  1. S SDECY="^TMP(""SDEC52"","_$J_",""RECGET"")"
  1. K @SDECY
  1. S SDECI=0
  1. D HDR
  1. S SDBEG=1410102 ;alb/sat 658 use valid FM range instead of 1000101
  1. S SDEND=4141015 ;alb/sat 658 use valid FM range instead of 9991231
  1. S DFN=$$GET1^DIQ(403.5,RECIEN_",",.01,"I") I +DFN D
  1. .D RECGETP(DFN)
  1. .D RECGET1(DFN,RECIEN,SDBEG,SDEND)
  1. Q
  1. ;
  1. RECGETP(DFN) ;get patient data
  1. ;collect demographics
  1. D PDEMO^SDECU3(.SDDEMO,DFN) ;alb/sat 658 PDEMO moved ot SDECU3
  1. S NAME=SDDEMO("NAME")
  1. S DOB=SDDEMO("DOB")
  1. S GENDER=SDDEMO("GENDER")
  1. S HRN=SDDEMO("HRN")
  1. S SSN=SDDEMO("SSN")
  1. S INSTIEN=SDDEMO("INSTIEN")
  1. S INSTNAME=SDDEMO("INSTNAME")
  1. S PRIGRP=SDDEMO("PRIGRP") ;25
  1. S ELIGIEN=SDDEMO("ELIGIEN") ;26
  1. S ELIGNAME=SDDEMO("ELIGNAME") ;27
  1. S SVVCCONN=SDDEMO("SVCCONN") ;28
  1. S SVCCONNP=SDDEMO("SVCCONNP") ;29
  1. S TYPEIEN=SDDEMO("TYPEIEN") ;30
  1. S TYPENAME=SDDEMO("TYPENAME") ;31
  1. S PADDRES1=SDDEMO("PADDRES1") ;33 - Patient Address line 1
  1. S PADDRES2=SDDEMO("PADDRES2") ;34 - Patient Address line 2
  1. S PADDRES3=SDDEMO("PADDRES3") ;35 - Patient Address line 3
  1. S PCITY=SDDEMO("PCITY") ;36 - Patient City
  1. S PSTATE=SDDEMO("PSTATE") ;37 - Patient state name
  1. S PCOUNTRY=SDDEMO("PCOUNTRY") ;38 - Patient country name
  1. S PZIP4=SDDEMO("PZIP+4") ;39 - Patient Zip+4
  1. S PTPHONE=SDDEMO("HPHONE") ;43 - Patient Phone
  1. S GAF=$$GAF^SDECU2(DFN) ;40
  1. S SDSENS=$$PTSEC^SDECUTL(DFN) ;41
  1. ;
  1. S BADADD=SDDEMO("BADADD")
  1. S OPHONE=SDDEMO("OPHONE")
  1. S NOK=SDDEMO("NOK")
  1. S KNAME=SDDEMO("KNAME")
  1. S KREL=SDDEMO("KREL")
  1. S KPHONE=SDDEMO("KPHONE")
  1. S KSTREET=SDDEMO("KSTREET")
  1. S KSTREET2=SDDEMO("KSTREET2")
  1. S KSTREET3=SDDEMO("KSTREET3")
  1. S KCITY=SDDEMO("KCITY")
  1. S KSTATE=SDDEMO("KSTATE")
  1. S KZIP=SDDEMO("KZIP")
  1. S NOK2=SDDEMO("NOK2")
  1. S K2NAME=SDDEMO("K2NAME")
  1. S K2REL=SDDEMO("K2REL")
  1. S K2PHONE=SDDEMO("K2PHONE")
  1. S K2STREET=SDDEMO("K2STREET")
  1. S S2STREE2=SDDEMO("K2STREET2")
  1. S K2STREET3=SDDEMO("K2STREET3")
  1. S K2CITY=SDDEMO("K2CITY")
  1. S K2STATE=SDDEMO("K2STATE")
  1. S K2ZIP=SDDEMO("K2ZIP")
  1. S PCOUNTY=SDDEMO("PCOUNTY")
  1. S PMARITAL=SDDEMO("PMARITAL")
  1. S PRELIGION=SDDEMO("PRELIGION")
  1. S PTACTIVE=SDDEMO("PTACTIVE")
  1. S PTADDRESS1=SDDEMO("PTADDRESS1")
  1. S PTADDRESS2=SDDEMO("PTADDRESS2")
  1. S PTADDRESS3=SDDEMO("PTADDRESS3")
  1. S PTCITY=SDDEMO("PTCITY")
  1. S PTSTATE=SDDEMO("PTSTATE")
  1. S PTZIP=SDDEMO("PTZIP")
  1. S PTZIP4=SDDEMO("PTZIP+4")
  1. S PTCOUNTRY=SDDEMO("PTCOUNTRY")
  1. S PTCOUNTY=SDDEMO("PTCOUNTY")
  1. S PTMPHONE=SDDEMO("PTPHONE")
  1. S PTSTART=SDDEMO("PTSTART")
  1. S PTEND=SDDEMO("PTEND")
  1. S PCELL=SDDEMO("PCELL")
  1. S PPAGER=SDDEMO("PPAGER")
  1. S PEMAIL=SDDEMO("PEMAIL")
  1. S PFFFF=SDDEMO("PF_FFF")
  1. S PFVCD=SDDEMO("PF_VCD")
  1. S PFNATIONAL=SDDEMO("PFNATIONAL")
  1. S PFLOCAL=SDDEMO("PFLOCAL")
  1. S SUBGRP=$G(SDDEMO("SUBGRP"))
  1. S CAT8G=(PRIGRP="GROUP 8")&(SUBGRP="g")
  1. S SIMILAR=SDDEMO("SIMILAR")
  1. Q
  1. ;
  1. GET1 ;
  1. N PRACE,PRACEN,PETH,PETHN,PRHBLOC,PROVNAME
  1. K SDDATA,SDMSG
  1. S SDFLAGS=$G(SDFLAGS) ;alb/sat 651
  1. S PRHBLOC=0
  1. D GETS^DIQ(403.5,IEN,"**","IE","SDDATA","SDMSG")
  1. ; if there is an error (SDMSG), clean up dangling cross references - SD*827
  1. I $D(SDMSG),'$D(^SD(403.5,IEN)) D
  1. .N D0,I,STR,X,N3,N4
  1. .S D0=IEN D KXREF^SDRRTSK
  1. ; quit if there is an error
  1. Q:$D(SDMSG)
  1. S DATE=SDDATA(403.5,IEN_",",5,"I")
  1. Q:(DATE<SDBEG)!(DATE>SDEND)
  1. S:$G(DFN)="" DFN=SDDATA(403.5,IEN_",",.01,"I") ;alb/sat 658 get Patient
  1. ;get PATIENT data
  1. D RECGETP(DFN)
  1. S ACCESION=SDDATA(403.5,IEN_",",2,"E") ; 10. Accession # (free-text 1-25 characters)
  1. S COMM=SDDATA(403.5,IEN_",",2.5,"E") ; 11. COMMENT (free-text 1-80 characters)
  1. S FASTING=SDDATA(403.5,IEN_",",2.6,"I") ; 12. FASTING/NON-FASTING
  1. S RRAPPTYP=SDDATA(403.5,IEN_",",3,"I") ; 13. Test/App pointer to RECALL REMINDERS APPT TYPE file 403.51
  1. S RRPROVIEN=SDDATA(403.5,IEN_",",4,"I") ; 14. Pointer to RECALL REMINDERS PROVIDERS file 403.54
  1. S PROVNAME=SDDATA(403.5,IEN_",",4,"E") ; 15. Provider NAME of Provider in RECALL REMINDERS PROVIDERS file
  1. S CLINIEN=SDDATA(403.5,IEN_",",4.5,"I") ; 16. Clinic pointer to HOSPITAL LOCATION file
  1. I CLINIEN="",+$E(SDFLAGS) Q ; do not return if no clinic defined ;alb/sat 651
  1. S CLINNAME=SDDATA(403.5,IEN_",",4.5,"E") ; 17. Clinic NAME from HOSPITAL LOCATION file
  1. I CLINIEN'="",$$GET1^DIQ(44,CLINIEN_",",50.01,"I")=1 Q ;check OOS?
  1. S:CLINIEN'="" PRHBLOC=$S($$GET1^DIQ(44,+CLINIEN_",",2500,"I")="Y":1,1:0)
  1. S APPTLEN=SDDATA(403.5,IEN_",",4.7,"E") ; 18. Length of Appointment numeric between 10 and 120
  1. S DATE=SDDATA(403.5,IEN_",",5,"I") S DATE=$$FMTE^XLFDT(DATE) ;19. Recall Date in external format (no time)
  1. S DATE1=SDDATA(403.5,IEN_",",5.5,"I") S DATE1=$$FMTE^XLFDT(DATE1) ;20. Recall Date (Per patient) in external format (no time)
  1. S DAPTDT=SDDATA(403.5,IEN_",",6,"I") S DAPTDT=$$FMTE^XLFDT(DAPTDT) ;21. Date Reminder Sent in external format (no time)
  1. S USERIEN=SDDATA(403.5,IEN_",",7,"I") ; 22. User Who Entered Recall pointer to NEW PERSON file
  1. S USERNAME=SDDATA(403.5,IEN_",",7,"E") ; 23. User Who Entered Recall NAME from NEW PERSON file
  1. S DATE3=SDDATA(403.5,IEN_",",7.5,"E") ; 32. DATE/TIME RECALL ADDED
  1. S:DATE3="" DATE3=DATE
  1. S DATE2=SDDATA(403.5,IEN_",",8,"I") S DATE2=$$FMTE^XLFDT(DATE2) ;24. Second Print Date in external format (no time)
  1. D RACELST^SDECU2(DFN,.PRACE,.PRACEN)
  1. D ETH^SDECU2(DFN,.PETH,.PETHN) ;get ethnicity
  1. S SDTMP=IEN_U_DFN_U_NAME_U_HRN_U_DOB_U_SSN_U_GENDER_U_INSTIEN_U_INSTNAME ; 9
  1. S SDTMP=SDTMP_U_ACCESION_U_COMM_U_FASTING_U_RRAPPTYP ;13
  1. S SDTMP=SDTMP_U_RRPROVIEN_U_PROVNAME_U_CLINIEN_U_CLINNAME_U_APPTLEN ;18
  1. S SDTMP=SDTMP_U_DATE_U_DATE1_U_DAPTDT_U_USERIEN_U_USERNAME_U_DATE2 ;24
  1. S SDTMP=SDTMP_U_PRIGRP_U_ELIGIEN_U_ELIGNAME_U_SVVCCONN_U_SVCCONNP ;29
  1. S SDTMP=SDTMP_U_TYPEIEN_U_TYPENAME_U_DATE3_U_PADDRES1_U_PADDRES2_U_PADDRES3 ;35
  1. S SDTMP=SDTMP_U_PCITY_U_PSTATE_U_PCOUNTRY_U_PZIP4_U_GAF_U_SDSENS ;41
  1. S SDTMP=SDTMP_U_U_PTPHONE_U_PRACE_U_PRACEN_U_PETH_U_PETHN_U_PRHBLOC ;48
  1. S $P(SDTMP,U,49)=BADADD
  1. S $P(SDTMP,U,50)=OPHONE
  1. S $P(SDTMP,U,51)=NOK
  1. S $P(SDTMP,U,52)=KNAME
  1. S $P(SDTMP,U,53)=KREL
  1. S $P(SDTMP,U,54)=KPHONE
  1. S $P(SDTMP,U,55)=KSTREET
  1. S $P(SDTMP,U,56)=KSTREET2
  1. S $P(SDTMP,U,57)=KSTREET3
  1. S $P(SDTMP,U,58)=KCITY
  1. S $P(SDTMP,U,59)=KSTATE
  1. S $P(SDTMP,U,60)=KZIP
  1. S $P(SDTMP,U,61)=NOK2
  1. S $P(SDTMP,U,62)=K2NAME
  1. S $P(SDTMP,U,63)=K2REL
  1. S $P(SDTMP,U,64)=K2PHONE
  1. S $P(SDTMP,U,65)=K2STREET
  1. S $P(SDTMP,U,66)=S2STREE2
  1. S $P(SDTMP,U,67)=K2STREET3
  1. S $P(SDTMP,U,68)=K2CITY
  1. S $P(SDTMP,U,69)=K2STATE
  1. S $P(SDTMP,U,70)=K2ZIP
  1. S $P(SDTMP,U,71)=PCOUNTY
  1. S $P(SDTMP,U,72)=PMARITAL
  1. S $P(SDTMP,U,73)=PRELIGION
  1. S $P(SDTMP,U,74)=PTACTIVE
  1. S $P(SDTMP,U,75)=PTADDRESS1
  1. S $P(SDTMP,U,76)=PTADDRESS2
  1. S $P(SDTMP,U,77)=PTADDRESS3
  1. S $P(SDTMP,U,78)=PTCITY
  1. S $P(SDTMP,U,79)=PTSTATE
  1. S $P(SDTMP,U,80)=PTZIP
  1. S $P(SDTMP,U,81)=PTZIP4
  1. S $P(SDTMP,U,82)=PTCOUNTRY
  1. S $P(SDTMP,U,83)=PTCOUNTY
  1. S $P(SDTMP,U,84)=PTMPHONE
  1. S $P(SDTMP,U,85)=PTSTART
  1. S $P(SDTMP,U,86)=PTEND
  1. S $P(SDTMP,U,87)=PCELL
  1. S $P(SDTMP,U,88)=PPAGER
  1. S $P(SDTMP,U,89)=PEMAIL
  1. S $P(SDTMP,U,90)=PFFFF
  1. S $P(SDTMP,U,91)=PFVCD
  1. S $P(SDTMP,U,92)=PFNATIONAL
  1. S $P(SDTMP,U,93)=PFLOCAL
  1. S $P(SDTMP,U,94)=SUBGRP
  1. S $P(SDTMP,U,95)=CAT8G
  1. S $P(SDTMP,U,96)=SIMILAR
  1. S SDREC=$$RECALL^SDECAR1A(DFN,RECIEN),$P(SDTMP,U,97)=$P(SDREC,U,1),$P(SDTMP,U,98)=$P(SDREC,U,2) ; SDECALL_U_SDECLET 97^98 GET CALL AND LETTER DATA ;CT - *745 5/12/20
  1. S $P(SDTMP,U,99)=$P(SDREC,U,3) ;813 CEMAIL
  1. S $P(SDTMP,U,100)=$P(SDREC,U,4) ;813 CTEXT
  1. S $P(SDTMP,U,101)=$P(SDREC,U,5) ;813 CSEC
  1. S SDECI=SDECI+1 S @SDECY@(SDECI)=SDTMP_$C(30)
  1. Q
  1. ;
  1. PF(STRING,SUB,DI) ;piece find
  1. N SDI
  1. S STRING=$G(STRING) Q:STRING="" ""
  1. S SUB=$G(SUB) Q:SUB="" ""
  1. S DI=$G(DI) S:DI="" DI=U
  1. F SDI=1:1:$L(STRING,DI) Q:$P(STRING,DI,SDI)=SUB
  1. Q SDI