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

SDESGETPRFGAPS.m

Go to the documentation of this file.
  1. SDESGETPRFGAPS ;ALB/ANU - VISTA SCHEDULING RPCS ;NOV 22, 2022
  1. ;;5.3;Scheduling;**831**;Aug 13, 1993;Build 4
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. ;External References
  1. ;-------------------
  1. ; Reference to $$GETS^DIQ,$$GETS1^DIQ in ICR #2056
  1. ;
  1. Q
  1. ;
  1. PREFGET(JSONRETURN,DFN,INAC) ; Get values from SDEC PREFERENCES AND SPECIAL NEEDS file
  1. ;INPUT:
  1. ; DFN = (integer) Patient ID - Pointer to the PATIENT file 2
  1. ; INAC = (optional) include inactive entries (1-Include; 0-Don't Include)
  1. ;RETURN:
  1. ; Successful Return:
  1. ; 1. (integer) Patient ID - pointer to PATIENT file
  1. ; 2. (text) Preference text
  1. ; 3. (date/time) Date/Time preference added in external format - defaults to NOW
  1. ; 4. (integer) Added by User - Pointer to NEW PERSON file - defaults to Current User
  1. ; 5. (text) Added by User Name
  1. ; 6. (date/time) Date/Time Inactivated in external format
  1. ; 7. (integer) Inactivated by user - Pointer to NEW PERSON file
  1. ; 8. (text) Inactivated by user Name
  1. ; 9. (text) Remarks
  1. ;
  1. N ISDFNVALID,ISINACVALID,RETURN,ERRORS,REQUESTIEN,REQUEST
  1. ;
  1. S ISDFNVALID=$$VALIDATEDFN(.ERRORS,$G(DFN))
  1. S ISINACVALID=$$VALIDATEINAC(.ERRORS,$G(INAC))
  1. I $D(ERRORS) M RETURN=ERRORS D BUILDJSON^SDESBUILDJSON(.JSONRETURN,.RETURN) Q
  1. ;
  1. I '$D(ERRORS) S HASFIELDS=$$PREFG(.ELGFIELDSARRAY,DFN,INAC)
  1. I HASFIELDS M RETURN=ELGFIELDSARRAY
  1. ;
  1. I '$D(RETURN("PatientPref")) S RETURN("PatientPref",1)=""
  1. D BUILDJSON^SDESBUILDJSON(.JSONRETURN,.RETURN)
  1. D CLEANUP
  1. Q
  1. ;
  1. PATWARDGET(JSONRETURN,DFN) ; Get values
  1. ;INPUT:
  1. ; DFN = (integer) Patient ID - Pointer to the PATIENT file 2
  1. ;RETURN:
  1. ; Successful Return:
  1. ; 1. (integer) Patient ID - pointer to PATIENT file
  1. ; 2. (text) Patient Name
  1. ; 3. (text) Patient Ward
  1. ;
  1. N ISDFNVALID,RETURN,ERRORS,REQUESTIEN,REQUEST
  1. ;
  1. S ISDFNVALID=$$VALIDATEDFN(.ERRORS,$G(DFN))
  1. I $D(ERRORS) M RETURN=ERRORS D BUILDJSON^SDESBUILDJSON(.JSONRETURN,.RETURN) Q
  1. ;
  1. I '$D(ERRORS) S HASFIELDS=$$PATWARD(.ELGFIELDSARRAY,DFN)
  1. I HASFIELDS M RETURN=ELGFIELDSARRAY
  1. ;
  1. I '$D(RETURN("InPatient")) S RETURN("InPatient",1)=""
  1. D BUILDJSON^SDESBUILDJSON(.JSONRETURN,.RETURN)
  1. D CLEANUP
  1. Q
  1. ;
  1. VALIDATEDFN(ERRORS,DFN) ;
  1. I DFN="" D ERRLOG^SDESJSON(.ERRORS,1) Q 0
  1. I DFN'="",'$D(^DPT(DFN,0)) D ERRLOG^SDESJSON(.ERRORS,2) Q 0
  1. Q 1
  1. ;
  1. VALIDATEINAC(ERRORS,INAC) ;
  1. I +$G(INAC)'=0,+$G(INAC)'=1 D ERRLOG^SDESJSON(.ERRORS,372) Q 0
  1. Q 1
  1. ;
  1. PREFG(ELGARRAY,DFN,INAC) ; Get values from SDEC PREFERENCES AND SPECIAL NEEDS file
  1. ;
  1. N PIEN,PIEN1,PIEN1NOD,SDESI,SDI,SDWP,SDMSG,PREFARY,ERR,SDESERR,IENS,HASDATA,X
  1. S SDESI=1
  1. ;check for existing patient entry in SDEC PREFERENCES AND SPECIAL NEEDS file
  1. S PIEN=$O(^SDEC(409.845,"B",DFN,0))
  1. I PIEN="" Q 1
  1. S PIEN1=0 F S PIEN1=$O(^SDEC(409.845,PIEN,1,PIEN1)) Q:PIEN1'>0 D
  1. .S PIEN1NOD=^SDEC(409.845,PIEN,1,PIEN1,0)
  1. .I '+$G(INAC) Q:$P(PIEN1NOD,U,4)'=""
  1. .S SDESI=SDESI+1
  1. .S IENS=PIEN1_","_PIEN_","
  1. .D GETS^DIQ(409.8451,IENS,"**","IE","PREFARY","ERR")
  1. .S ELGARRAY("PatientPref",1,"PatientDFN")=DFN
  1. .S ELGARRAY("PatientPref",1,"PatientName")=$$GET1^DIQ(2,DFN_",",.01,"E")
  1. .S ELGARRAY("PatientPref",SDESI,"Preference")=$G(PREFARY(409.8451,IENS,.01,"E"))
  1. .S ELGARRAY("PatientPref",SDESI,"AddedDateTime")=$$FMTISO^SDAMUTDT($G(PREFARY(409.8451,IENS,2,"I")))
  1. .S ELGARRAY("PatientPref",SDESI,"AddedByUserIEN")=$G(PREFARY(409.8451,IENS,3,"I"))
  1. .S ELGARRAY("PatientPref",SDESI,"AddedByUserName")=$G(PREFARY(409.8451,IENS,3,"E"))
  1. .S ELGARRAY("PatientPref",SDESI,"InactiveDate")=$$FMTISO^SDAMUTDT($G(PREFARY(409.8451,IENS,4,"I")))
  1. .S ELGARRAY("PatientPref",SDESI,"InactivatedByUserIEN")=$G(PREFARY(409.8451,IENS,5,"I"))
  1. .S ELGARRAY("PatientPref",SDESI,"InactivatedByUserName")=$G(PREFARY(409.8451,IENS,5,"E"))
  1. .;get remark
  1. .K SDWP S X=$$GET1^DIQ(409.8451,PIEN1_","_PIEN_",",6,"","SDWP","SDMSG")
  1. .S SDWP=""
  1. .S SDI=0 F S SDI=$O(SDWP(SDI)) Q:SDI="" D
  1. ..S ELGARRAY("PatientPref",SDESI,"Remarks",SDI)=$G(SDWP(SDI))
  1. S HASDATA=($D(ELGARRAY)>1)
  1. Q HASDATA
  1. ;
  1. PATWARD(ELGARRAY,DFN) ; Get values
  1. ;
  1. N HASDATA
  1. S ELGARRAY("InPatient","PatientDFN")=DFN
  1. S ELGARRAY("InPatient","PatientName")=$$GET1^DIQ(2,DFN_",",.01,"E")
  1. ;S ELGARRAY("PatientHealthInfo","MentalHealthProvider")=$$START^SCMCMHTC(DFN) ;Return Mental Health Provider
  1. ;S ELGARRAY("PatientHealthInfo","PrimaryCareProvider")=$$OUTPTPR^SDUTL3(DFN) ;Return Primary Care Provider
  1. S ELGARRAY("InPatient","PatientWard")=$$GET1^DIQ(2,DFN_",",.1,"E")
  1. S HASDATA=($D(ELGARRAY)>1)
  1. Q HASDATA
  1. ;
  1. CLEANUP ;
  1. K RETURNERROR,ERRORFLAG,ERRORS,ISRGIENVALID,ISRGNAMEVALID
  1. K RETURN,HASFIELDS,ELGFIELDSARRAY,ELGRETURN
  1. Q
  1. ;