- SDES2EPT ;ALB/LAB,ANU/BLB,MCB,TJB - SDES2 GET PATIENT'S ExtendedProfile APPT INFO ; JUL 12,2024
- ;;5.3;Scheduling;**861,867,877,880,886**;Aug 13, 1993;Build 13
- ;;Per VHA Directive 6402, this routine should not be modified
- ;
- Q
- ;
- ; Documented API's and Integration Agreements
- ; -------------------------------------------
- ; Reference to INP^DGPMV10 supported by ICR #7035
- ; Reference to ELIG^VADPT supported by ICR #10061
- ; Reference to Patient File supported by ICR #7019
- ; #10035 - ^DPT( references (Supported)
- ;
- ; RPC: SDES2 GET PATIENT EPT
- ;
- ; SDCONTEXT("ACHERON AUDIT ID") = 36 character unique ID number. Ex: 11d9dcc6-c6a2-4785-8031-8261576fca37
- ; SDCONTEXT("USER DUZ") = The DUZ of the user taking action on the calling application.
- ; SDCONTEXT("USER NAME") = The name of the user taking action on the calling application.
- ; SDCONTEXT("PATIENT DFN") = The DFN of the patient taking action on the calling application.
- ; SDCONTEXT("PATIENT ICN") = The ICN of the patient taking action on the calling application.
- ; SDINPUT("PATIENT DFN") = Patient to pull data for
- ;
- Q
- ;
- GETPTIN(JSONRETURN,SDCONTEXT,SDINPUT) ; Get Patient's ExtendedProfile Appt Info
- N SDAPPTDT,SDDFN,SDERRORS,SDRETURN,VALRET
- ;
- ; Validate SDCONTEXT
- ;
- D VALCONTEXT^SDES2VALCONTEXT(.SDERRORS,.SDCONTEXT)
- I $D(SDERRORS) M SDRETURN=SDERRORS S SDRETURN("ExtendedProfile",1)="" D BUILDJSON^SDES2JSON(.JSONRETURN,.SDRETURN) Q
- ; Checking DFN separately, since it's required for this RPC
- D VALFILEIEN^SDES2VALUTIL(.VALRET,.SDERRORS,2,$G(SDINPUT("PATIENT DFN")),1,0,1,2)
- I 'VALRET,$D(SDERRORS) M SDRETURN=SDERRORS S SDRETURN("ExtendedProfile",1)="" D BUILDJSON^SDES2JSON(.JSONRETURN,.SDRETURN) Q
- S SDDFN=SDINPUT("PATIENT DFN")
- ;
- ;
- ; Retrieve Patient's ExtendedProfile Appt Info
- ;
- D GETPTINA(.SDRETURN,SDDFN)
- ;
- ; Build JSON return
- ;
- I '$D(SDRETURN) S SDRETURN("ExtendedProfile",1)=""
- D BUILDJSON^SDES2JSON(.JSONRETURN,.SDRETURN)
- Q
- ;
- GETPTINA(SDRETURN,SDDFN) ;
- N SDCOUNT,SDRESULT,PATIENTDATA,SDPOS,SDPOSN,SDCMBTV,SDCMBTVED,SDPOW,SDSW,DFN,VASV
- N SDSTAT,SDST,SDSTA,SDLADMT,SDA,VAEL,RADEXP,PROJ112,AOEXP,AOEXPLOC
- ; Variables from VADPT and DGPMV10 becaused they leaked into this routine
- N %,%I,%H,X,Y,VAERR,DGPMVI,DGPMDCD,DIERR,I
- S SDCOUNT=1
- S DFN=SDDFN
- ; .323 - Period of Service
- D ELIG^VADPT,SVC^VADPT
- S SDRETURN("ExtendedProfile",SDCOUNT,"Period of Service IEN")=$P(VAEL(2),U,1)
- S SDRETURN("ExtendedProfile",SDCOUNT,"Period of Service Name")=$P(VAEL(2),U,2)
- ;
- D GETS^DIQ(2,SDDFN,".01;.135;.525;.32102;.3213;.32103;.322013;.32115","IE","PATIENTDATA")
- S SDRETURN("ExtendedProfile",SDCOUNT,"DFN")=SDDFN
- S SDRETURN("ExtendedProfile",SDCOUNT,"Name")=$G(PATIENTDATA(2,SDDFN_",",.01,"E"))
- ;
- ; radiation exposure
- S RADEXP=$G(PATIENTDATA(2,SDDFN_",",.32103,"I"))
- S RADEXP=$S(RADEXP="Y":"Yes",RADEXP="N":"No",RADEXP="U":"Unknown",1:"")
- S SDRETURN("ExtendedProfile",SDCOUNT,"Radiation Exposure")=RADEXP
- ;
- ; proj 112 shad
- S PROJ112=$G(PATIENTDATA(2,SDDFN_",",.32115,"I"))
- S PROJ112=$S(PROJ112=1:"Yes",PROJ112=0:"No",1:"")
- S SDRETURN("ExtendedProfile",SDCOUNT,"Proj 112 Shad")=PROJ112
- ;
- ; agent orange
- S AOEXP=$G(PATIENTDATA(2,SDDFN_",",.32102,"I"))
- S AOEXPLOC=$G(PATIENTDATA(2,SDDFN_",",.3213,"E"))
- S AOEXP=$S(AOEXP="Y":"Yes",AOEXP="N":"No",AOEXP="U":"Unknown",1:"")
- S SDRETURN("ExtendedProfile",SDCOUNT,"Agent Orange Exposure")=AOEXP
- ;
- I AOEXP'="Yes" S SDRETURN("ExtendedProfile",SDCOUNT,"Agent Orange Exposure Location")=""
- I AOEXP="Yes" S SDRETURN("ExtendedProfile",SDCOUNT,"Agent Orange Exposure Location")=AOEXPLOC
- ;
- ; last discharge
- D INP^DGPMV10
- S SDRETURN("ExtendedProfile",SDCOUNT,"Last Discharge Date")=$$FMTISO^SDAMUTDT($$GET1^DIQ(405,$G(DGPMVI(17)),.01,"I"))
- ;
- ;
- ; COMBAT VETERAN
- I $G(VASV(5)) D
- . S SDCMBTV="Yes"
- . S SDCMBTVED=$P($G(VASV(5,2)),U,2) ; =$$FMTISO^SDAMUTDT($$CONVDATE^SDESCOMPPEN($G(SDCMBTVED)))
- I '$G(VASV(5)) D
- . S SDCMBTV="No"
- . S SDCMBTVED="N/A"
- S SDRETURN("ExtendedProfile",SDCOUNT,"Combat Veteran")=$G(SDCMBTV)
- S SDRETURN("ExtendedProfile",SDCOUNT,"Combat Veteran End Date")=$G(SDCMBTVED)
- ;
- ; PRISONER OF WAR - VADPT is not handling Unknown value
- I $G(PATIENTDATA(2,SDDFN_",",.525,"I"))="Y" S SDPOW="Yes"
- I $G(PATIENTDATA(2,SDDFN_",",.525,"I"))="N" S SDPOW="No"
- I $G(PATIENTDATA(2,SDDFN_",",.525,"I"))="U" S SDPOW="Unknown"
- S SDRETURN("ExtendedProfile",SDCOUNT,"Prisoner of War")=$G(SDPOW)
- ;
- ; PAGER NUMBER
- S SDRETURN("ExtendedProfile",SDCOUNT,"Pager Number")=$G(PATIENTDATA(2,SDDFN_",",.135,"I"))
- ; SW ASIA CONDITIONS
- I $G(PATIENTDATA(2,SDDFN_",",.322013,"I"))="Y" S SDSW="Yes"
- I $G(PATIENTDATA(2,SDDFN_",",.322013,"I"))="N" S SDSW="No"
- I $G(PATIENTDATA(2,SDDFN_",",.322013,"I"))="U" S SDSW="Unknown"
- S SDRETURN("ExtendedProfile",SDCOUNT,"SW Asia Conditions")=$G(SDSW)
- ; STATUS, LAST ADMIT/LODGER DATE
- S (SDLADMT,SDSTAT,SDST,SDSTA,SDA)=""
- S SDRETURN("ExtendedProfile",SDCOUNT,"Status")=$G(SDSTAT)
- S SDRETURN("ExtendedProfile",SDCOUNT,"Last Admit/Lodger Date")=$G(SDLADMT)
- I '$D(^DGPM("C",SDDFN)) S SDSTAT="NO INPT./LOD. ACT." Q
- ;
- S VAIP("D")="L",VAIP("L")="" D INP^DGPMV10
- S SDA=$S("^3^5^"[("^"_+DGPMVI(2)_"^"):0,1:+DGPMVI(2)),SDST=$S('SDA:"IN",1:"")_"ACTIVE ",SDSTA=$S("^4^5^"[("^"_+DGPMVI(2)_"^"):"LODGER",1:"INPATIENT")
- S SDSTAT="" S SDSTAT=SDST_SDSTA
- S SDLADMT="" S SDLADMT=$P($G(DGPMVI(13,1)),"^",2)
- S SDRETURN("ExtendedProfile",SDCOUNT,"Status")=$G(SDSTAT)
- ;867
- ;S SDRETURN("ExtendedProfile",SDCOUNT,"Last Admit/Lodger Date")=$G(SDLADMT)
- S SDRETURN("ExtendedProfile",SDCOUNT,"Last Admit/Lodger Date")=$$FMTISO^SDAMUTDT($$CONVDATE^SDESCOMPPEN($G(SDLADMT)))
- K DGPMVI,VAIP
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSDES2EPT 5711 printed Mar 13, 2025@21:58:53 Page 2
- SDES2EPT ;ALB/LAB,ANU/BLB,MCB,TJB - SDES2 GET PATIENT'S ExtendedProfile APPT INFO ; JUL 12,2024
- +1 ;;5.3;Scheduling;**861,867,877,880,886**;Aug 13, 1993;Build 13
- +2 ;;Per VHA Directive 6402, this routine should not be modified
- +3 ;
- +4 QUIT
- +5 ;
- +6 ; Documented API's and Integration Agreements
- +7 ; -------------------------------------------
- +8 ; Reference to INP^DGPMV10 supported by ICR #7035
- +9 ; Reference to ELIG^VADPT supported by ICR #10061
- +10 ; Reference to Patient File supported by ICR #7019
- +11 ; #10035 - ^DPT( references (Supported)
- +12 ;
- +13 ; RPC: SDES2 GET PATIENT EPT
- +14 ;
- +15 ; SDCONTEXT("ACHERON AUDIT ID") = 36 character unique ID number. Ex: 11d9dcc6-c6a2-4785-8031-8261576fca37
- +16 ; SDCONTEXT("USER DUZ") = The DUZ of the user taking action on the calling application.
- +17 ; SDCONTEXT("USER NAME") = The name of the user taking action on the calling application.
- +18 ; SDCONTEXT("PATIENT DFN") = The DFN of the patient taking action on the calling application.
- +19 ; SDCONTEXT("PATIENT ICN") = The ICN of the patient taking action on the calling application.
- +20 ; SDINPUT("PATIENT DFN") = Patient to pull data for
- +21 ;
- +22 QUIT
- +23 ;
- GETPTIN(JSONRETURN,SDCONTEXT,SDINPUT) ; Get Patient's ExtendedProfile Appt Info
- +1 NEW SDAPPTDT,SDDFN,SDERRORS,SDRETURN,VALRET
- +2 ;
- +3 ; Validate SDCONTEXT
- +4 ;
- +5 DO VALCONTEXT^SDES2VALCONTEXT(.SDERRORS,.SDCONTEXT)
- +6 IF $DATA(SDERRORS)
- MERGE SDRETURN=SDERRORS
- SET SDRETURN("ExtendedProfile",1)=""
- DO BUILDJSON^SDES2JSON(.JSONRETURN,.SDRETURN)
- QUIT
- +7 ; Checking DFN separately, since it's required for this RPC
- +8 DO VALFILEIEN^SDES2VALUTIL(.VALRET,.SDERRORS,2,$GET(SDINPUT("PATIENT DFN")),1,0,1,2)
- +9 IF 'VALRET
- IF $DATA(SDERRORS)
- MERGE SDRETURN=SDERRORS
- SET SDRETURN("ExtendedProfile",1)=""
- DO BUILDJSON^SDES2JSON(.JSONRETURN,.SDRETURN)
- QUIT
- +10 SET SDDFN=SDINPUT("PATIENT DFN")
- +11 ;
- +12 ;
- +13 ; Retrieve Patient's ExtendedProfile Appt Info
- +14 ;
- +15 DO GETPTINA(.SDRETURN,SDDFN)
- +16 ;
- +17 ; Build JSON return
- +18 ;
- +19 IF '$DATA(SDRETURN)
- SET SDRETURN("ExtendedProfile",1)=""
- +20 DO BUILDJSON^SDES2JSON(.JSONRETURN,.SDRETURN)
- +21 QUIT
- +22 ;
- GETPTINA(SDRETURN,SDDFN) ;
- +1 NEW SDCOUNT,SDRESULT,PATIENTDATA,SDPOS,SDPOSN,SDCMBTV,SDCMBTVED,SDPOW,SDSW,DFN,VASV
- +2 NEW SDSTAT,SDST,SDSTA,SDLADMT,SDA,VAEL,RADEXP,PROJ112,AOEXP,AOEXPLOC
- +3 ; Variables from VADPT and DGPMV10 becaused they leaked into this routine
- +4 NEW %,%I,%H,X,Y,VAERR,DGPMVI,DGPMDCD,DIERR,I
- +5 SET SDCOUNT=1
- +6 SET DFN=SDDFN
- +7 ; .323 - Period of Service
- +8 DO ELIG^VADPT
- DO SVC^VADPT
- +9 SET SDRETURN("ExtendedProfile",SDCOUNT,"Period of Service IEN")=$PIECE(VAEL(2),U,1)
- +10 SET SDRETURN("ExtendedProfile",SDCOUNT,"Period of Service Name")=$PIECE(VAEL(2),U,2)
- +11 ;
- +12 DO GETS^DIQ(2,SDDFN,".01;.135;.525;.32102;.3213;.32103;.322013;.32115","IE","PATIENTDATA")
- +13 SET SDRETURN("ExtendedProfile",SDCOUNT,"DFN")=SDDFN
- +14 SET SDRETURN("ExtendedProfile",SDCOUNT,"Name")=$GET(PATIENTDATA(2,SDDFN_",",.01,"E"))
- +15 ;
- +16 ; radiation exposure
- +17 SET RADEXP=$GET(PATIENTDATA(2,SDDFN_",",.32103,"I"))
- +18 SET RADEXP=$SELECT(RADEXP="Y":"Yes",RADEXP="N":"No",RADEXP="U":"Unknown",1:"")
- +19 SET SDRETURN("ExtendedProfile",SDCOUNT,"Radiation Exposure")=RADEXP
- +20 ;
- +21 ; proj 112 shad
- +22 SET PROJ112=$GET(PATIENTDATA(2,SDDFN_",",.32115,"I"))
- +23 SET PROJ112=$SELECT(PROJ112=1:"Yes",PROJ112=0:"No",1:"")
- +24 SET SDRETURN("ExtendedProfile",SDCOUNT,"Proj 112 Shad")=PROJ112
- +25 ;
- +26 ; agent orange
- +27 SET AOEXP=$GET(PATIENTDATA(2,SDDFN_",",.32102,"I"))
- +28 SET AOEXPLOC=$GET(PATIENTDATA(2,SDDFN_",",.3213,"E"))
- +29 SET AOEXP=$SELECT(AOEXP="Y":"Yes",AOEXP="N":"No",AOEXP="U":"Unknown",1:"")
- +30 SET SDRETURN("ExtendedProfile",SDCOUNT,"Agent Orange Exposure")=AOEXP
- +31 ;
- +32 IF AOEXP'="Yes"
- SET SDRETURN("ExtendedProfile",SDCOUNT,"Agent Orange Exposure Location")=""
- +33 IF AOEXP="Yes"
- SET SDRETURN("ExtendedProfile",SDCOUNT,"Agent Orange Exposure Location")=AOEXPLOC
- +34 ;
- +35 ; last discharge
- +36 DO INP^DGPMV10
- +37 SET SDRETURN("ExtendedProfile",SDCOUNT,"Last Discharge Date")=$$FMTISO^SDAMUTDT($$GET1^DIQ(405,$GET(DGPMVI(17)),.01,"I"))
- +38 ;
- +39 ;
- +40 ; COMBAT VETERAN
- +41 IF $GET(VASV(5))
- Begin DoDot:1
- +42 SET SDCMBTV="Yes"
- +43 ; =$$FMTISO^SDAMUTDT($$CONVDATE^SDESCOMPPEN($G(SDCMBTVED)))
- SET SDCMBTVED=$PIECE($GET(VASV(5,2)),U,2)
- End DoDot:1
- +44 IF '$GET(VASV(5))
- Begin DoDot:1
- +45 SET SDCMBTV="No"
- +46 SET SDCMBTVED="N/A"
- End DoDot:1
- +47 SET SDRETURN("ExtendedProfile",SDCOUNT,"Combat Veteran")=$GET(SDCMBTV)
- +48 SET SDRETURN("ExtendedProfile",SDCOUNT,"Combat Veteran End Date")=$GET(SDCMBTVED)
- +49 ;
- +50 ; PRISONER OF WAR - VADPT is not handling Unknown value
- +51 IF $GET(PATIENTDATA(2,SDDFN_",",.525,"I"))="Y"
- SET SDPOW="Yes"
- +52 IF $GET(PATIENTDATA(2,SDDFN_",",.525,"I"))="N"
- SET SDPOW="No"
- +53 IF $GET(PATIENTDATA(2,SDDFN_",",.525,"I"))="U"
- SET SDPOW="Unknown"
- +54 SET SDRETURN("ExtendedProfile",SDCOUNT,"Prisoner of War")=$GET(SDPOW)
- +55 ;
- +56 ; PAGER NUMBER
- +57 SET SDRETURN("ExtendedProfile",SDCOUNT,"Pager Number")=$GET(PATIENTDATA(2,SDDFN_",",.135,"I"))
- +58 ; SW ASIA CONDITIONS
- +59 IF $GET(PATIENTDATA(2,SDDFN_",",.322013,"I"))="Y"
- SET SDSW="Yes"
- +60 IF $GET(PATIENTDATA(2,SDDFN_",",.322013,"I"))="N"
- SET SDSW="No"
- +61 IF $GET(PATIENTDATA(2,SDDFN_",",.322013,"I"))="U"
- SET SDSW="Unknown"
- +62 SET SDRETURN("ExtendedProfile",SDCOUNT,"SW Asia Conditions")=$GET(SDSW)
- +63 ; STATUS, LAST ADMIT/LODGER DATE
- +64 SET (SDLADMT,SDSTAT,SDST,SDSTA,SDA)=""
- +65 SET SDRETURN("ExtendedProfile",SDCOUNT,"Status")=$GET(SDSTAT)
- +66 SET SDRETURN("ExtendedProfile",SDCOUNT,"Last Admit/Lodger Date")=$GET(SDLADMT)
- +67 IF '$DATA(^DGPM("C",SDDFN))
- SET SDSTAT="NO INPT./LOD. ACT."
- QUIT
- +68 ;
- +69 SET VAIP("D")="L"
- SET VAIP("L")=""
- DO INP^DGPMV10
- +70 SET SDA=$SELECT("^3^5^"[("^"_+DGPMVI(2)_"^"):0,1:+DGPMVI(2))
- SET SDST=$SELECT('SDA:"IN",1:"")_"ACTIVE "
- SET SDSTA=$SELECT("^4^5^"[("^"_+DGPMVI(2)_"^"):"LODGER",1:"INPATIENT")
- +71 SET SDSTAT=""
- SET SDSTAT=SDST_SDSTA
- +72 SET SDLADMT=""
- SET SDLADMT=$PIECE($GET(DGPMVI(13,1)),"^",2)
- +73 SET SDRETURN("ExtendedProfile",SDCOUNT,"Status")=$GET(SDSTAT)
- +74 ;867
- +75 ;S SDRETURN("ExtendedProfile",SDCOUNT,"Last Admit/Lodger Date")=$G(SDLADMT)
- +76 SET SDRETURN("ExtendedProfile",SDCOUNT,"Last Admit/Lodger Date")=$$FMTISO^SDAMUTDT($$CONVDATE^SDESCOMPPEN($GET(SDLADMT)))
- +77 KILL DGPMVI,VAIP
- +78 QUIT