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

SDECEPT.m

Go to the documentation of this file.
  1. SDECEPT ;SPFO/RT,MGD,LAB,ANU - SCHEDULING ENHANCEMENTS VSE EP API ;JUN 08,2023
  1. ;;5.3;Scheduling;**669,671,694,794,809,813,823,846**;Aug 13 1993;Build 12
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. ;The API provides Extended Profile Appt info the VS GUI.
  1. ;INPUT - DFN required
  1. ; APP appointment date/time required
  1. Q
  1. ;
  1. INIT ;
  1. S (PAT0,PAM0,CLIEN,HLF0,HLAPIEN,HLAP0)=""
  1. ;
  1. ; PAT0=Global location 0 from Patient file
  1. ; PAM0=Global location 0 from Patient Appointment Multiple
  1. ; CLIEN=Clinic IEN
  1. ; HLF0=Global location 0 from Hospital Location File
  1. ; HLAPIEN=Hospital Location Appointment Multiple IEN
  1. ; HLAP0=Global location 0 from Hospital Appointment Multiple
  1. ;
  1. ; SET HELPERS
  1. ;
  1. S PAT0=$G(^DPT(DFN,0))
  1. S PAM0=$G(^DPT(DFN,"S",ADT,0)) I PAM0'="" D
  1. .S CLIEN=$P($G(PAM0),U,1) I CLIEN'="" D
  1. ..S HLF0=$G(^SC(CLIEN,0))
  1. ..S HLAPIEN=+$$FIND^SDAM2(DFN,ADT,CLIEN) I HLAPIEN'="" D
  1. ...S HLAP0=$G(^SC(CLIEN,"S",ADT,1,HLAPIEN,0))
  1. Q
  1. ;
  1. GETDEM(RET,DFN,ADT,SDAPPTIEN) ;
  1. ; REQUIRE DFN AND APPOINTMENT DATE TIME
  1. Q:'$G(DFN)
  1. Q:'$G(ADT)
  1. S SDAPPTIEN=$G(SDAPPTIEN)
  1. S SDRET=$$SDEXPST(.SDRET,DFN,ADT,SDAPPTIEN)
  1. I +SDRET=-1 D Q RET
  1. . S RET="-1^The detail for the selected record is no longer available in VistA. Select the more recent record for Expanded Entry."
  1. ;
  1. S ADT=+ADT ;strip off extra zeros on time pwc SD*5.3*694
  1. D INIT
  1. ;
  1. ; INITIALIZE VARIABLES
  1. S (PATN,SSN,LAB,XRAY,EKG,PCODE,POV,ATIEN)=""
  1. S (PAMAT,CCODE,COLL,CLN,LOA,OTH,ECODE,EGIL,PAMSC)=""
  1. S (ENROLC,STAT,OCODE)=""
  1. N TIMEZONE
  1. N APPTDATA,PATCMNTS,COUNT
  1. ;
  1. ;PATN=Patient Name - Patient File [0,1]
  1. ;SSN=Formatted Social Security Number
  1. ;STAT=Status Patient Appointment Multiple - CURRENT STATUS (2.98,100)
  1. ;LAB=Date/Time of Labs - PATIENT/APPOINTMENT MULTIPLE [0,3]
  1. ;XRAY=Date/Time of x-ray - PATIENT/APPOINTMENT MULTIPLE [0,4]
  1. ;EKG=Date/Time of EKG - PATIENT/APPOINTMENT MULTIPLE [0,5]
  1. ;PCODE=Purpose of Visit Code - PATIENT/APPOINTMENT MULTIPLE [0,7]
  1. ;POV=Purpose of Visit
  1. ;ATIEN=Appointment Type IEN - PATIENT/APPOINTMENT MULTIPLE [0,16]
  1. ;PAMAT=Patient Appointment Multiple Appointment Type
  1. ;CCODE=Collateral Code - PATIENT/APPOINTMENT MULTIPLE [0,11]
  1. ;COLL=Collateral Yes or No
  1. ;CLN=Clinic Name - Hospital Location File [0,1]
  1. ;LOA=Length of Appointment - Hospital Location Appointment Multiple [0,2]
  1. ;ECODE=Eligibility Code - Hospital Location Appointment Multiple [0,10]
  1. ;EGIL=Eligibility of Appointment
  1. ;OCODE=Overbook Code - Hospital Location Appointment Multiple [QB]
  1. ;OVB=Overbook
  1. ;PATEN0=Patient Enrollment Clinic - Patient File Enrollment Clinic Multiple [B]
  1. ;ENROLC=Enrolled in Clinic Yes/No
  1. ;ERCNUM=Enrolled Clinic Number
  1. ;LPNUM=Loop Number
  1. ;
  1. ; -PATIENT FILE GLOBAL LOCATION 0
  1. I PAT0'="" D
  1. .S PATN=$P($G(PAT0),U,1)
  1. .S SSN=$$LAST4SSN^SDESINPUTVALUTL(DFN)
  1. ;
  1. ; -PATIENT/APPOINTMENT MULTIPLE GLOBAL LOCATION 0
  1. I PAM0'="" D
  1. .S STAT=$$STATUS^SDAM1(DFN,ADT,CLIEN,PAM0) I STAT'="" D
  1. ..S STAT=$P(STAT,";",2)
  1. .S LAB=$P($G(PAM0),U,3)
  1. .S XRAY=$P($G(PAM0),U,4)
  1. .S EKG=$P($G(PAM0),U,5)
  1. .S PCODE=$P($G(PAM0),U,7) I PCODE'="" D
  1. ..S POV=$S(PCODE=1:"C&P",PCODE=2:"10-10",PCODE=3:"SCHEDULED",PCODE=4:"UNSCHEDULED",1:"UNKNOWN")
  1. .S ATIEN=$P($G(PAM0),U,16) I ATIEN'="" D
  1. ..S PAMAT=$$GET1^DIQ(409.1,ATIEN,.01)
  1. .S CCODE=$P($G(PAM0),U,11)
  1. .S COLL="No" I CCODE=1 S COLL="Yes"
  1. ;
  1. ; -HOSPITAL LOCATION FILE GLOBAL LOCATION 0
  1. I HLF0'="" D
  1. .S CLN=$P($G(HLF0),U,1)
  1. ;
  1. ; -HOSPITAL LOCATION/APPOINTMENT/PATIENT MULTIPLE GLOBAL LOCATION 0
  1. I HLAP0'="" D
  1. .S LOA=+$P($G(HLAP0),U,2)
  1. .S OTH=$P($G(HLAP0),U,4)
  1. .S ECODE=$P($G(HLAP0),U,10) I ECODE'="" D
  1. ..S EGIL=$$GET1^DIQ(8,ECODE,.01)
  1. .I ECODE="" S EGIL=$P($G(^DIC(8,+$G(^DPT(DFN,.36)),0)),U)
  1. ;
  1. ; -HOSPITAL LOCATION/APPOINTMENT/PATIENT MULTIPLE GLOBAL LOCATION OB
  1. I HLAPIEN'="" S OCODE=$G(^SC(CLIEN,"S",ADT,1,HLAPIEN,"OB")) ; pwc added check for HLAPIEN SD*5.3*694
  1. S OVB="" I OCODE="O" S OVB="OVERBOOK"
  1. ;
  1. ; -PATIENT FILE ENROLLMENT CLINIC MULTIPLE
  1. S ENROLC="No"
  1. S LPNUM=0 F S LPNUM=$O(^DPT(DFN,"DE",LPNUM)) Q:LPNUM="" D
  1. .S ERCNUM=$P($G(^DPT(DFN,"DE",LPNUM,0)),"^",1)
  1. .Q:ERCNUM'=CLIEN
  1. .I $P($G(^DPT(DFN,"DE",LPNUM,0)),"^",2)="" D
  1. ..S ENROLC="Yes"
  1. ..Q
  1. ;
  1. ; -CONVERT DATES TO EXTERNAL
  1. ;
  1. ; Change date/time conversion so midnight is handled properly. wtc 694 5/7/18
  1. ;
  1. ;S Y=ADT D D^DIQ S ADT=Y
  1. S ADT=$$FMTONET^SDECDATE(ADT) ;
  1. ;I LAB'="" S Y=LAB D D^DIQ S LAB=Y
  1. I LAB'="" S LAB=$$FMTONET^SDECDATE(LAB) ;
  1. ;I XRAY'="" S Y=XRAY D D^DIQ S XRAY=Y
  1. I XRAY'="" S XRAY=$$FMTONET^SDECDATE(XRAY) ;
  1. ;I EKG'="" S Y=EKG D D^DIQ S EKG=Y
  1. I EKG'="" S EKG=$$FMTONET^SDECDATE(EKG) ;
  1. ;
  1. S TIMEZONE=$$TIMEZONEDATA^SDESUTIL($G(CLIEN)),TIMEZONE=$P($G(TIMEZONE),U)
  1. ;
  1. ;ANU
  1. D GETPATCOMMENTS^SDESAPPTDATA(.APPTDATA,SDAPPTIEN)
  1. S COUNT=1
  1. S PATCMNTS=APPTDATA("PatientComments",1)
  1. F S COUNT=$O(APPTDATA("PatientComments",COUNT)) Q:'COUNT D
  1. .S PATCMNTS=PATCMNTS_U_APPTDATA("PatientComments",COUNT)
  1. ;
  1. S RET=PATN_U_CLN_U_SSN_U_ADT_U_STAT_U_POV_U_LOA_U_PAMAT_U_LAB_U_EGIL_U_XRAY_U_OVB_U_EKG_U_COLL_U_OTH_U_ENROLC_U_TIMEZONE_U_$G(PATCMNTS)_U
  1. ;
  1. D EXIT
  1. Q
  1. ;
  1. SDEXPST(SDRET,DFN,ADT,SDAPPTIEN) ;
  1. N SDAPPT,SDRTN,SDNEXTIEN,SDCAN
  1. S SDRTN="" ; Appt can be expanded
  1. S SDAPPT="",ADT=+ADT
  1. F S SDAPPT=$O(^SDEC(409.84,"APTDT",DFN,ADT,SDAPPT)) Q:'SDAPPT D Q:SDRTN'=""
  1. . Q:SDAPPT'=SDAPPTIEN
  1. . S SDCAN=($$GET1^DIQ(409.84,SDAPPT,.12,"I")'="")
  1. . S SDNEXTIEN=$O(^SDEC(409.84,"APTDT",DFN,ADT,SDAPPT))
  1. . ; Current Appt is cancelled and there is another APPT
  1. . I SDCAN,SDNEXTIEN S SDRTN=-1 Q
  1. . ; Current Appt is cancelled & no other Appt
  1. . I SDCAN,'SDNEXTIEN S SDRTN=0 Q
  1. . ; Current Appt is NOT cancelled so there can't be other Appt for same Date/Time
  1. . I 'SDCAN,'SDNEXTIEN S SDRTN=0 Q
  1. S SDRET=SDRTN
  1. Q SDRET
  1. ;
  1. GETEVT(RET,DFN,ADT) ;
  1. ; REQUIRE DFN AND APPOINTMENT DATE TIME
  1. Q:'$G(DFN)
  1. Q:'$G(ADT)
  1. ;
  1. S ADT=+ADT ;strip off extra zeros on time pwc SD*5.3*694
  1. D INIT
  1. ;
  1. ; INITIALIZE VARIABLES
  1. S (AMUIEN,AMU,AMD,HLAPC,CID,CIUIEN,CIUN,COD,COUIEN,CREAC)=""
  1. S (COUN,COED,NCD,NCUIEN,NCUN,CANREA,RBD,CANREM,AMUN,HLPAC)=""
  1. ;
  1. ;AMUIEN=Appointment Made User IEN - Hospital Location Appointment Multiple [0,6]
  1. ;AMUN=Appointment Made User Name - New Person File Field .01
  1. ;AMD=Appointment Made Date - Hospital Location Appointment Multiple [0,7]
  1. ;HLAPC=Global location C from Hospital Location Appointment Multiple
  1. ;CID=Check-in Date - Hospital Location Appointment Multiple [C,1]
  1. ;CIUIEN=Check-in User IEN - Hospital Location Appointment Multiple [C,2]
  1. ;CIUN=Check-in User Name - New Person File Field .01
  1. ;COD=Check Out Date - Hospital Location Appointment Multiple [C,3]
  1. ;COUIEN=Check Out User IEN - Hospital Location Appointment Multiple [C,4]
  1. ;COUN=Check Out User Name - New Person File Field .01
  1. ;COED=Check Out Entered Date - Hospital Location Appointment Multiple [C,3]
  1. ;NCD=No-Show/Cancel Date - PATIENT/APPOINTMENT MULTIPLE [0,14]
  1. ;NCUIEN=No-Show/Cancel User IEN - PATIENT/APPOINTMENT MULTIPLE [0,12]
  1. ;NCUN=No-Show/Cancel User Name - New Person File Field .01
  1. ;CREAC=Cancel Reason Code - PATIENT/APPOINTMENT MULTIPLE [0,15]
  1. ;CANREA=Cancel Reason - CANCELLATION REASONS [0,1]
  1. ;RBD=Rebook Date - PATIENT/APPOINTMENT MULTIPLE [0,10]
  1. ;CANREM=Cancel Remarks - PATIENT/APPOINTMENT MULTIPLE [R,1]
  1. ;
  1. ; -HOSPITAL LOCATION/APPOINTMENT/PATIENT MULTIPLE GLOBAL LOCATION 0
  1. I HLAP0'="" D
  1. .S AMUIEN=$P($G(HLAP0),U,6) I AMUIEN'="" D
  1. ..S AMUN=$$GET1^DIQ(200,AMUIEN,.01,"E")
  1. .S AMD=$P($G(HLAP0),U,7)
  1. ;
  1. ; -HOSPITAL LOCATION/APPOINTMENT/PATIENT MULTIPLE GLOBAL LOCATION C
  1. I HLAPIEN'="" S HLAPC=$G(^SC(CLIEN,"S",ADT,1,HLAPIEN,"C")) I HLAPC'="" D
  1. .S CID=$P($G(HLAPC),U,1) I CID'="" D
  1. ..S CIUIEN=$P($G(HLAPC),U,2) I CIUIEN'="" D
  1. ...S CIUN=$$GET1^DIQ(200,CIUIEN,.01,"E")
  1. .S COD=$P($G(HLAPC),U,3) I COD'="" D
  1. ..S COUIEN=$P($G(HLAPC),U,4) I COUIEN'="" D
  1. ...S COUN=$$GET1^DIQ(200,COUIEN,.01,"E")
  1. ..S COED=$P($G(HLAPC),U,6)
  1. ;
  1. ; -PATIENT/APPOINTMENT MULTIPLE GLOBAL LOCATION 0
  1. I PAM0'="" D
  1. .S NCD=$P($G(PAM0),U,14) I NCD'="" D
  1. ..S NCUIEN=$P($G(PAM0),U,12) I NCUIEN'="" D
  1. ...S NCUN=$$GET1^DIQ(200,NCUIEN,.01,"E")
  1. .S CREAC=$P($G(PAM0),U,15) I NCUIEN'="" D
  1. ..S CANREA=$$GET1^DIQ(409.2,CREAC,.01)
  1. .S RBD=$P($G(PAM0),U,10)
  1. I AMUN="" D
  1. .S AMUIEN=$P($G(PAM0),U,18) I AMUIEN'="" D
  1. ..S AMUN=$$GET1^DIQ(200,AMUIEN,.01,"E")
  1. I AMD="" D
  1. .S AMD=$P($G(PAM0),U,19)
  1. ;
  1. ; -PATIENT/APPOINTMENT MULTIPLE GLOBAL LOCATION R
  1. S PAMR=$G(^DPT(DFN,"S",ADT,"R")) I PAMR'="" D
  1. .S CANREM=$P($G(PAMR),U,1)
  1. ;
  1. ; -CONVERT DATES TO EXTERNAL
  1. ;
  1. ; Change date/time conversion so midnight is handled properly. wtc 694 5/7/18
  1. ;
  1. ;I AMD'="" S Y=AMD D D^DIQ S AMD=Y
  1. I AMD'="" S AMD=$$FMTONET^SDECDATE(AMD) ;
  1. ;I CID'="" S Y=CID D D^DIQ S CID=Y
  1. I CID'="" S CID=$$FMTONET^SDECDATE(CID) ;
  1. ;I COD'="" S Y=COD D D^DIQ S COD=Y
  1. I COD'="" S COD=$$FMTONET^SDECDATE(COD) ;
  1. ;I COED'="" S Y=COED D D^DIQ S COED=Y
  1. I COED'="" S COED=$$FMTONET^SDECDATE(COED) ;
  1. ;I NCD'="" S Y=NCD D D^DIQ S NCD=Y
  1. I NCD'="" S NCD=$$FMTONET^SDECDATE(NCD) ;
  1. ;
  1. S RET=AMD_U_AMUN_U_CID_U_CIUN_U_COD_U_COUN_U_COED_U_NCD_U_NCUN_U_CANREA_U_CANREM_U_RBD
  1. ;
  1. D EXIT
  1. Q
  1. ;
  1. GETWT(RET,DFN,ADT) ;
  1. ; REQUIRE DFN AND APPOINTMENT DATE TIME
  1. Q:'$G(DFN)
  1. Q:'$G(ADT)
  1. ;
  1. S ADT=+ADT ;strip off extra zeros on time pwc SD*5.3*694
  1. D INIT
  1. ;
  1. S (REQTC,REQT,NATCODE,NAT,AMD,PAM1,CID,FUVCODE,FUV,CWT1,CWT2)=""
  1. ;
  1. ;REQTC=Request Type Code - Patient File Appointment Multiple [0,25]
  1. ;REQT=Request Type
  1. ;NATCODE=Next Available Type Code - Patient File Appointment Multiple [0,26]
  1. ;NAT=Next Available Type
  1. ;AMD=Appointment Made Date - Patient File Appointment Multiple [0,19]
  1. ;PAM1=Global Location 1 of the Patient File Appointment Multiple
  1. ;CID=Clinic Indicated Date/Preferred Date - Patient File Appointment Multiple [1,1]
  1. ;FUVCODE=Follow-Up Visit Code 1=Yes 0=No - Patient File Appointment Multiple [1,2]
  1. ;FUV=Follow-Up Visit
  1. ;CWT1=Clinic Wait Time 1
  1. ;CWT2=Clinic Wait Time 2
  1. ;
  1. ; -PATIENT/APPOINTMENT MULTIPLE GLOBAL LOCATION 0
  1. I PAM0'="" D
  1. .S REQTC=$P($G(PAM0),U,25) I REQTC'="" D
  1. ..I REQTC="N" S REQT="'NEXT AVAILABLE' APPT."
  1. ..I REQTC="C" S REQT="OTHER THAN 'NEXT AVA.' (CLINICIAN REQ.)"
  1. ..I REQTC="P" S REQT="OTHER THAN 'NEXT AVA.' (PATIENT REQ.)"
  1. ..I REQTC="W" S REQT="WALKIN APPT."
  1. ..I REQTC="M" S REQT="MULTIPLE APPT. BOOKING"
  1. ..I REQTC="A" S REQT="AUTO REBOOK"
  1. ..I REQTC="O" S REQT="OTHER THAN 'NEXT AVA.' APPT."
  1. .S NATCODE=$P($G(PAM0),U,26) I NATCODE'="" D
  1. ..I NATCODE=0 S NAT="NOT INDICATED TO BE A 'NEXT AVA.' APPT."
  1. ..I NATCODE=1 S NAT="'NEXT AVA.' APPT. INDICATED BY USER"
  1. ..I NATCODE=3 S NAT="'NEXT AVA.' APPT. INDICATED BY CALCULATION"
  1. ..I NATCODE=4 S NAT="'NEXT AVA.' APPT. INDICATED BY USER & CALCULATION"
  1. .S AMD=$P($G(PAM0),U,19)
  1. ;
  1. ; -PATIENT/APPOINTMENT MULTIPLE GLOBAL LOCATION 1
  1. S PAM1=$G(^DPT(DFN,"S",ADT,1)) I PAM1'="" D
  1. .S CID=$P($G(PAM1),U,1)
  1. .S FUVCODE=$P($G(PAM1),U,2)
  1. .S FUV="No" I FUVCODE=1 S FUV="Yes"
  1. ;
  1. ; CALULATE WAIT TIMES
  1. S (X,X1,X2)=""
  1. I AMD'="" D
  1. .S X1=ADT S X2=AMD D ^%DTC S CWT1=X
  1. I CID'="" D
  1. .S X1=ADT S X2=CID D ^%DTC S CWT2=X
  1. ;
  1. ; -CONVERT DATES TO EXTERNAL
  1. ;
  1. ; Change date/time conversion so midnight is handled properly. wtc 694 5/7/18
  1. ;
  1. ;I CID'="" S Y=CID D D^DIQ S CID=Y
  1. I CID'="" S CID=$$FMTONET^SDECDATE(CID) ;
  1. ;
  1. S RET=REQT_U_NAT_U_CID_U_FUV_U_CWT1_U_CWT2
  1. ;
  1. D EXIT
  1. Q
  1. ;
  1. ;STATUS, LAST ADMIT/LODGER DATE, LAST DISCHARGE/LODGER DATE
  1. INP ;
  1. Q:'$G(DFN)
  1. ;
  1. S (LADMT,LDIS,DNUM,STAT,SDST,SDSTA,REN,A)=""
  1. I '$D(^DGPM("C",DFN)) S LSTAT="NO INPT./LOD. ACT." Q
  1. ;
  1. S VAIP("D")="L",VAIP("L")="" D INP^DGPMV10
  1. S A=$S("^3^5^"[("^"_+DGPMVI(2)_"^"):0,1:+DGPMVI(2)),SDST=$S('A:"IN",1:"")_"ACTIVE ",SDSTA=$S("^4^5^"[("^"_+DGPMVI(2)_"^"):"LODGER",1:"INPATIENT")
  1. S STAT="" S STAT=SDST_SDSTA
  1. S LADMT="" S LADMT=$P($G(DGPMVI(13,1)),"^",2)
  1. S DNUM="" S DNUM=$G(DGPMV1(17)) I DNUM'="" D
  1. .S LDIS="" S LDIS=$$GET1^DIQ(405,DNUM,.01)
  1. Q
  1. GETPTIN(RET,DFN,ADT) ;
  1. ;REQUIRE DFN AND APPOINTMENT DATE TIME
  1. Q:'$G(DFN)
  1. Q:'$G(ADT)
  1. ;
  1. S ADT=+ADT ;strip off extra zeros on time pwc SD*5.3*694
  1. D INIT
  1. ;
  1. S (DOB,SSN,SEX,MARSIEN,MARS,RELGP,PAT36,PELIG,POS,SADDR1,SWASIAC)=""
  1. S (SADDR2,SADDR3,CITY,STATEN,STATE,CNTY,ADDR,PHN,CPHN,PGER,EMAIL,RADEXC)=""
  1. S (RADEX,STAT,POW,LADMT,AOEXLC,AOEXL,LDIS,CMBTVC,CMBTV,CMBTVED,PROJ112)=""
  1. S (PROCODE,SWASIA,PAT36,PAT11,PAT13,PAT36,PAT52,PAT321,PAT322,POWCODE)=""
  1. S (RELGPN,PELIGN,POSN)=""
  1. ;
  1. ;DOB=Date Of Birth - Patient File [0,3]
  1. ;SSN=Formatted Social Security Number
  1. ;SEX=Male or Female - Patient File [0,2]
  1. ;MARSIEN=Marital Status IEN - Patient File [0,5]
  1. ;MARS=Marital Status - Marital Status File (11) Field .01
  1. ;RELGPN=Religious Preference IEN - Patient File [0,8]
  1. ;RELGP=Religious Preference - file 13 field .01 (Name)
  1. ;PELIGN=Primary Eligibility IEN - Patient File [.36,1]
  1. ;PELIG=Primary Eligibility - File 8 field .01 (name)
  1. ;POSN=Period of Service IEN
  1. ;POS=Period of Service - File 21 Field .01 (Name)
  1. ;SADDR1=Street Address 1 - Patient File [.11,1]
  1. ;SADDR2=Street Address 2 - Patient File [.11,2]
  1. ;SADDR3=Street Address 2 - Patient File [.11,3]
  1. ;CITY=City - Patient File [.11,4]
  1. ;STATEN=State IEN - Patient File [.11,5]
  1. ;STATE=State - State File (5) Field .01
  1. ;CNTYIEN=Country IEN - Patient File [.11,10]
  1. ;CNTY=Country - Country Code File (779.004) Field .01
  1. ;ADDR=Address
  1. ;PHN=Phone Number - Patient File [.13,1]
  1. ;CPHN=Cell Phone Number - Patient File [.13,4]
  1. ;PGER=Pager Number - Patient File [.13,5]
  1. ;EMAIL=Email Address - Patient File [.13,3]
  1. ;RADEXC=Radiation Exposure CODE Y=Yes N=No U=Unknown - Patient File [.321,3]
  1. ;RADEX=Radiation Exposure
  1. ;
  1. ;STAT=Status ???
  1. ;
  1. ;POWCODE=Prisoner Of War CODE Y=Yes N=No U=Unknown - Patient File [.52,5]
  1. ;POW=Prisoner Of War
  1. ;
  1. ;LADMT=Last Admit/Lodger Date ???
  1. ;
  1. ;AOEXLC=Agent Orange Exposure Location CODE K=Korean DMZ V=Vietnam O=Other - Patient File [.321,13]
  1. ;AOEXL=Agent Orange Exposure Location
  1. ;
  1. ;LDIS=Last Discharge/Lodger Date ???
  1. ;
  1. ;CMBTVC=Combat Veteran CODE Y=Yes N=No - Patient File [.52,11]
  1. ;CMBTV=Combat Veteran
  1. ;CMBTVED=Combat Veteran End Date - Patient File [.52,14]
  1. ;PROCODE=Project 112/SHAD CODE 0=No 1=Yes - Patient File [.321,15]
  1. ;PROJ112=Project 112/SHAD
  1. ;SWASIAC=SW Asia Conditions Code Y=Yes N=No U=Unknown - Patient File [.322,13]
  1. ;SWASIA=SW Asia Conditions
  1. ;
  1. ; -PATIENT FILE GLOBAL LOCATION 0
  1. I PAT0'="" D
  1. .S DOB=$P($G(PAT0),U,3)
  1. .S SSN=$$LAST4SSN^SDESINPUTVALUTL(DFN)
  1. .S SEXCODE=$P($G(PAT0),U,2) I SEXCODE'="" D
  1. ..I SEXCODE="M" S SEX="Male"
  1. ..I SEXCODE="F" S SEX="Female"
  1. .S MARSIEN=$P($G(PAT0),U,5) I MARSIEN'="" D
  1. ..S MARS=$$GET1^DIQ(11,MARSIEN,.01)
  1. .S RELGPN=$P($G(PAT0),U,8) I RELGPN'="" D
  1. ..S RELGP=$$GET1^DIQ(13,RELGPN,.01)
  1. ;
  1. ; -PATIENT FILE GLOBAL LOCATION .11
  1. S PAT11=$G(^DPT(DFN,.11)) I PAT11'="" D
  1. .S SADDR1=$P($G(PAT11),U,1)
  1. .S SADDR2=$P($G(PAT11),U,2)
  1. .S SADDR3=$P($G(PAT11),U,3)
  1. .S CITY=$P($G(PAT11),U,4)
  1. .S STATEN=$P($G(PAT11),U,5) I STATEN'="" D
  1. ..S STATE=$$GET1^DIQ(5,STATEN,.01)
  1. .S ZCODE=$P($G(PAT11),U,6)
  1. .S CNTYIEN=$P($G(PAT11),U,10) I CNTYIEN'="" D
  1. ..S CNTY=$$GET1^DIQ(779.004,CNTYIEN,.01)
  1. .S SADDR=SADDR1 I SADDR2'="" D
  1. ..S SADDR=SADDR1_" "_SADDR2 I SADDR3'="" D
  1. ...S SADDR=SADDR1_" "_SADDR2_" "_SADDR3
  1. .S ADDR=SADDR_" "_CITY_", "_STATE_" "_ZCODE_" "_CNTY
  1. ;
  1. ; -PATIENT FILE GLOBAL LOCATION .13
  1. S PAT13=$G(^DPT(DFN,.13)) I PAT13'="" D
  1. .S PHN=$P($G(PAT13),U,1)
  1. .S CPHN=$P($G(PAT13),U,4)
  1. .S PGER=$P($G(PAT13),U,5)
  1. .S EMAIL=$P($G(PAT13),U,3)
  1. ;
  1. ; -PATIENT FILE GLOBAL LOCATION .36
  1. S PAT36=$G(^DPT(DFN,.36)) I PAT36'="" D
  1. .S PELIGN=$P($G(PAT36),U,1) I PELIGN'="" D
  1. ..S PELIG=$$GET1^DIQ(8,PELIGN,.01)
  1. ;
  1. ; -PATIENT FILE GLOBAL LOCATION .52
  1. S PAT52=$G(^DPT(DFN,.52)) I PAT52'="" D
  1. .S POWCODE=$P($G(PAT52),U,5) I POWCODE'="" D
  1. ..I POWCODE="Y" S POW="Yes"
  1. ..I POWCODE="N" S POW="No"
  1. ..I POWCODE="U" S POW="Unknown"
  1. .S CMBTVC=$P($G(PAT52),U,11) I CMBTVC'="" D
  1. ..S CMBTV="No"
  1. ..I CMBTVC="Y" S CMBTV="Yes"
  1. .S CMBTVED=$P($G(PAT52),U,14) I CMBTV="No" D
  1. ..S CMBTVED="N/A"
  1. ;
  1. ; -PATIENT FILE GLOBAL LOCATION .321
  1. S PAT321=$G(^DPT(DFN,.52)) I PAT321'="" D
  1. .S RADEXC=$P($G(PAT321),U,3) I RADEXC'="" D
  1. ..I RADEXC="Y" S RADEX="Yes"
  1. ..I RADEXC="N" S RADEX="No"
  1. ..I RADEXC="U" S RADEX="Unknown"
  1. .S AOEXLC=$P($G(PAT321),U,13) I AOEXLC'="" D
  1. ..I AOEXLC="K" S AOEXL="Korean DMZ"
  1. ..I AOEXLC="V" S AOEXL="Vietnam"
  1. ..I AOEXLC="O" S AOEXL="Other (Not Korean DMZ or Vietnam)"
  1. .S PROCODE=$P($G(PAT321),U,15) I PROCODE'="" D
  1. ..I PROCODE=2 S PROJ112="No"
  1. ..I PROCODE=1 S PROJ112="Yes"
  1. ;
  1. ; -PATIENT FILE GLOBAL LOCATION .322
  1. S PAT322=$G(^DPT(DFN,.52)) I PAT322'="" D
  1. .S SWASIAC=$P($G(PAT322),U,13) I SWASIAC'="" D
  1. ..I SWASIAC="Y" S SWASIA="Yes"
  1. ..I SWASIAC="N" S SWASIA="No"
  1. ..I SWASIAC="U" S SWASIA="Unknown"
  1. ;
  1. ; -CONVERT DATES TO EXTERNAL
  1. I DOB'="" S Y=DOB D D^DIQ S DOB=Y
  1. ;
  1. ; -PERIOD OF SERVICE
  1. S (POSN,POS)="" S POSN=$$GET1^DIQ(2,DFN_",",.323,"I") I POSN'="" S POS=$$GET1^DIQ(21,POSN,.01,"E")
  1. ;
  1. ; -GET STAT, LADMT, LDIS
  1. D INP
  1. ;
  1. S RET=DOB_U_SSN_U_SEX_U_MARS_U_RELGP_U_PELIG_U_POS_U_ADDR_U_PHN_U_CPHN_U_PGER_U_EMAIL_U_RADEX_U_STAT_U_POW_U_LADMT_U_AOEXL_U_LDIS_U_CMBTV_U_CMBTVED_U_PROJ112_U_SWASIA
  1. ;
  1. D EXIT
  1. Q
  1. ;
  1. EXIT ;
  1. K PAT0,PAM0,CLIEN,HLF0,HLAPIEN,HLAP0,PAMS,PCODE,ATIEN,CCODE,ECODE,PAMSC
  1. K AMUIEN,AMU,HLAPC,CIUIEN,COUIEN,NCUIEN,PAT36,SADDR1,SWASIAC,SADDR2,SADDR3
  1. K CITY,STATEN,STATE,CNTY,RADEXC,AOEXLC,CMBTVC,PROCODE,PAT36,PAT11,PAT13,PAT52
  1. K PAT321,PAT322,ENROLC
  1. Q