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

SDEC52C.m

Go to the documentation of this file.
  1. SDEC52C ;ALB/BLB - VISTA SCHEDULING RPCS ;APR 14, 2021@10:48
  1. ;;5.3;Scheduling;**784,785**;Aug 13, 1993;Build 14
  1. ;
  1. ;Reference is made to ICR #10035
  1. Q
  1. ;
  1. RECGET(SDECY,DFN) ;Return a list of OPEN recall appointment types for patient
  1. ;INPUT - DFN (Date File Number) Pointer to PATIENT (#2) File.
  1. ;RETURN PARAMETER:
  1. ;List of recalls associated with a given patient
  1. ;Data is delimited by carat (^).
  1. ; Field List:
  1. ; (1) Internal IEN
  1. ; (2) Accession #
  1. ; (3) Comment
  1. ; (4) Fast/Non-Fasting
  1. ; (5) Test/App
  1. ; (6) Provider IEN
  1. ; (7) Provider Name
  1. ; (8) Clinic IEN
  1. ; (9) Clinic Name
  1. ; (10) Length of Appointment
  1. ; (11) Recall Date
  1. ; (12) Recall Date (Per Patient)
  1. ; (13) Date Reminder Sent
  1. ; (14) Second Print
  1. ; (15) Date/Time Recall Added
  1. ; (16) GAF Score
  1. ; (17) Patient Sensitive & Record Access Checks
  1. ; (18) Similar Patient Data
  1. ; (19) Number of Call Attempts
  1. ; (20) Recall Reminders Letter Date
  1. ;
  1. N ERR,IEN,NUM,F,IENS,ACCESION,COMM,FASTING,RRAPPTYP,RRPROVIEN,PROVNAME,CLINIEN,SDTMP,NUM,SDECI
  1. N CLINNAME,APPTLEN,DATE,DATE1,DAPTDT,DATE2,DATE3,MSGTYP,GAF,SENSITIVE,SIMILAR,SDREC,CPHONE,CLET
  1. D INIT ; initialize variables/ build header
  1. I '$D(^DPT(DFN,0)) S NUM=NUM+1 D NODATA("PATIENT") Q ; send error and quit if patient does not exist
  1. I '$D(^SD(403.5,"B",DFN)) S NUM=NUM+1 D NODATA("RECALL") Q ; send error and quit if patient has no entry in the RECALL REMINDERS File (403.5)
  1. F S IEN=$O(^SD(403.5,"B",DFN,IEN)) Q:IEN="" D
  1. .D RECDATA(DFN,IEN) ; build out recall data
  1. .D PATDATA(DFN,IEN) ; build out required patient data
  1. .D BUILDER ; build return
  1. S ^TMP("SDEC52C",$J,"RECGET",NUM)=^TMP("SDEC52C",$J,"RECGET",NUM)_$C(31)
  1. Q
  1. BUILDER ;
  1. S NUM=NUM+1
  1. S SDTMP=IEN_U_ACCESION_U_COMM_U_FASTING_U_RRAPPTYP_U_RRPROVIEN_U_PROVNAME_U_CLINIEN_U_CLINNAME_U_APPTLEN_U_DATE_U_DATE1
  1. ; internal IEN^accession^comment^fast/nonfasting^test/app^provider IEN^provider name^clinic IEN^clinic name^length of appt^recall date^recall date(per patient)
  1. S SDTMP=SDTMP_U_DAPTDT_U_DATE2_U_DATE3_U_GAF_U_SENSITIVE_U_SIMILAR_U_CPHONE_U_CLET
  1. ; date reminder sent^second print^date/time recall added^GAF score^patient sensitive^similar patient data^# call attempts^recall reminders letter date
  1. S ^TMP("SDEC52C",$J,"RECGET",NUM)=SDTMP_$C(30)
  1. Q
  1. INIT ;
  1. S DFN=$G(DFN)
  1. S ERR=0,IEN=0,NUM=0
  1. S SDECY="^TMP(""SDEC52C"","_$J_",""RECGET"")"
  1. K ^TMP("SDEC52C",$J,"RECGET")
  1. S SDTMP="T00030IEN^T00030ACCESION^T00030COMM^T00030FASTING^T00030RRAPPTYP^T00030RRPROVIEN"
  1. S SDTMP=SDTMP_"^T00030PROVNAME^T00030CLINIEN^T00030CLINNAME^T00030APPTLEN^T00030DATE"
  1. S SDTMP=SDTMP_"^T00030DATE1^T00030DAPTDT^T00030DATE2^T00030DATE3^T00030GAF^T00030SENSITIVE"
  1. S SDTMP=SDTMP_"^T00030SIMILAR^T00030CPHONE^T00030CLET"
  1. S ^TMP("SDEC52C",$J,"RECGET",NUM)=SDTMP_$C(30)
  1. Q
  1. RECDATA(DFN,IEN) ;
  1. N RECARY
  1. D GETS^DIQ(403.5,IEN,"**","IE","RECARY","SDMSG")
  1. S F=403.5
  1. S IENS=IEN_","
  1. S ACCESION=$G(RECARY(F,IENS,2,"E"))
  1. S COMM=$G(RECARY(F,IENS,2.5,"E"))
  1. S FASTING=$G(RECARY(F,IENS,2.6,"I"))
  1. S RRAPPTYP=$G(RECARY(F,IENS,3,"I"))
  1. S RRPROVIEN=$G(RECARY(F,IENS,4,"I"))
  1. S PROVNAME=$$GET1^DIQ(403.54,RRPROVIEN,.01,"E")
  1. S CLINIEN=$G(RECARY(F,IENS,4.5,"I"))
  1. S CLINNAME=$G(RECARY(F,IENS,4.5,"E"))
  1. S APPTLEN=$G(RECARY(F,IENS,4.7,"E"))
  1. S DATE=$G(RECARY(F,IENS,5,"I")) S DATE=$$FMTE^XLFDT(DATE)
  1. S DATE1=$G(RECARY(F,IENS,5.5,"I")) S DATE1=$$FMTE^XLFDT(DATE1)
  1. S DAPTDT=$G(RECARY(F,IENS,6,"I")) S DAPTDT=$$FMTE^XLFDT(DAPTDT)
  1. S DATE2=$G(RECARY(F,IENS,8,"I")) S DATE2=$$FMTE^XLFDT(DATE2)
  1. S DATE3=$G(RECARY(403.5,IENS,7.5,"E")) S DATE3=$$FMTE^XLFDT(DATE3)
  1. Q
  1. PATDATA(DFN,IEN) ;
  1. S GAF=$$GAF^SDECU2(DFN)
  1. S SENSITIVE=$$PTSEC^SDECUTL(DFN)
  1. S SIMILAR=$$SIM^SDECU3(DFN)
  1. S SDREC=$$RECALL^SDECAR1A(DFN,IEN),CPHONE=$P(SDREC,U),CLET=$P(SDREC,U,2)
  1. Q
  1. NODATA(MSGTYP) ;differentiate between error messages based on NO recall data, patient data, invalid recall IEN, and invalid patient DFN
  1. I MSGTYP="RECALL" D ERR1^SDECERR(-1,"No recall associated with this patient.",NUM,SDECY) Q
  1. ; checking for entry in recall reminder file
  1. I MSGTYP="PATIENT" D ERR1^SDECERR(-1,"Invalid Patient ID.",NUM,SDECY) Q
  1. ; checking for entry in patient file
  1. Q
  1. RECGETONE(SDECY,IEN) ;Return a single OPEN recall appointment type based on the IEN passed
  1. ;INPUT - IEN (Internal Entry Number) RECALL REMINDERS File (403.5)
  1. ;RETURN PARAMETER: recall based on IEN being passed
  1. ;Data is delimited by carat (^).
  1. ; Field List:
  1. ; (1) Internal IEN
  1. ; (2) Accession #
  1. ; (3) Comment
  1. ; (4) Fast/Non-Fasting
  1. ; (5) Test/App
  1. ; (6) Provider IEN
  1. ; (7) Provider Name
  1. ; (8) Clinic IEN
  1. ; (9) Clinic Name
  1. ; (10) Length of Appointment
  1. ; (11) Recall Date
  1. ; (12) Recall Date (Per Patient)
  1. ; (13) Date Reminder Sent
  1. ; (14) Second Print
  1. ; (15) Date/Time Recall Added
  1. ; (16) GAF Score
  1. ; (17) Patient Sensitive & Record Access Checks
  1. ; (18) Similar Patient Data
  1. ; (19) Number of Call Attempts
  1. ; (20) Recall Reminders Letter Date
  1. ;
  1. N ERR,NUM,F,IENS,ACCESION,COMM,FASTING,RRAPPTYP,RRPROVIEN,PROVNAME,CLINIEN,SDTMP,NUM,SDECI,DFN
  1. N CLINNAME,APPTLEN,DATE,DATE1,DAPTDT,DATE2,DATE3,MSGTYP,GAF,SENSITIVE,SIMILAR,SDREC,CPHONE,CLET
  1. D INITONE ; initialize variables/ build header
  1. I '$D(^SD(403.5,IEN)) S NUM=NUM+1 D NODATAONE("RECALL") Q ; send error and quit if patient has no entry in the RECALL REMINDERS File (403.5)
  1. D RECDATAONE(IEN) ; build out recall data
  1. D PATDATAONE(IEN) ; build out required patient data
  1. D BUILDERONE ; build return
  1. S ^TMP("SDEC52C",$J,"RECGET",NUM)=^TMP("SDEC52C",$J,"RECGET",NUM)_$C(31)
  1. Q
  1. BUILDERONE ;
  1. S NUM=NUM+1
  1. S SDTMP=IEN_U_ACCESION_U_COMM_U_FASTING_U_RRAPPTYP_U_RRPROVIEN_U_PROVNAME_U_CLINIEN_U_CLINNAME_U_APPTLEN_U_DATE_U_DATE1
  1. ; internal IEN^accession^comment^fast/nonfasting^test/app^provider IEN^provider name^clinic IEN^clinic name^length of appt^recall date^recall date(per patient)
  1. S SDTMP=SDTMP_U_DAPTDT_U_DATE2_U_DATE3_U_GAF_U_SENSITIVE_U_SIMILAR_U_CPHONE_U_CLET
  1. ; date reminder sent^second print^date/time recall added^GAF score^patient sensitive^similar patient data^# call attempts^recall reminders letter date
  1. S ^TMP("SDEC52C",$J,"RECGET",NUM)=SDTMP_$C(30)
  1. Q
  1. INITONE ;
  1. S ERR=0,NUM=0
  1. S SDECY="^TMP(""SDEC52C"","_$J_",""RECGET"")"
  1. K ^TMP("SDEC52C",$J,"RECGET")
  1. S SDTMP="T00030IEN^T00030ACCESION^T00030COMM^T00030FASTING^T00030RRAPPTYP^T00030RRPROVIEN"
  1. S SDTMP=SDTMP_"^T00030PROVNAME^T00030CLINIEN^T00030CLINNAME^T00030APPTLEN^T00030DATE"
  1. S SDTMP=SDTMP_"^T00030DATE1^T00030DAPTDT^T00030DATE2^T00030DATE3^T00030GAF^T00030SENSITIVE"
  1. S SDTMP=SDTMP_"^T00030SIMILAR^T00030CPHONE^T00030CLET"
  1. S ^TMP("SDEC52C",$J,"RECGET",NUM)=SDTMP_$C(30)
  1. Q
  1. RECDATAONE(IEN) ;
  1. N RECARY
  1. D GETS^DIQ(403.5,IEN,"**","IE","RECARY","SDMSG")
  1. S F=403.5
  1. S IENS=IEN_","
  1. S ACCESION=$G(RECARY(F,IENS,2,"E"))
  1. S COMM=$G(RECARY(F,IENS,2.5,"E"))
  1. S FASTING=$G(RECARY(F,IENS,2.6,"I"))
  1. S RRAPPTYP=$G(RECARY(F,IENS,3,"I"))
  1. S RRPROVIEN=$G(RECARY(F,IENS,4,"I"))
  1. S PROVNAME=$$GET1^DIQ(403.54,RRPROVIEN,.01,"E")
  1. S CLINIEN=$G(RECARY(F,IENS,4.5,"I"))
  1. S CLINNAME=$G(RECARY(F,IENS,4.5,"E"))
  1. S APPTLEN=$G(RECARY(F,IENS,4.7,"E"))
  1. S DATE=$G(RECARY(F,IENS,5,"I")) S DATE=$$FMTE^XLFDT(DATE)
  1. S DATE1=$G(RECARY(F,IENS,5.5,"I")) S DATE1=$$FMTE^XLFDT(DATE1)
  1. S DAPTDT=$G(RECARY(F,IENS,6,"I")) S DAPTDT=$$FMTE^XLFDT(DAPTDT)
  1. S DATE2=$G(RECARY(F,IENS,8,"I")) S DATE2=$$FMTE^XLFDT(DATE2)
  1. S DATE3=$G(RECARY(403.5,IENS,7.5,"E")) S DATE3=$$FMTE^XLFDT(DATE3)
  1. Q
  1. PATDATAONE(IEN) ;
  1. S DFN=$$GET1^DIQ(403.5,IEN,.01,"I")
  1. S GAF=$$GAF^SDECU2(DFN)
  1. S SENSITIVE=$$PTSEC^SDECUTL(DFN)
  1. S SIMILAR=$$SIM^SDECU3(DFN)
  1. S SDREC=$$RECALL^SDECAR1A(DFN,IEN),CPHONE=$P(SDREC,U),CLET=$P(SDREC,U,2)
  1. Q
  1. NODATAONE(MSGTYP) ;differentiate between error messages based on NO recall data, patient data, invalid recall IEN, and invalid patient DFN
  1. I MSGTYP="RECALL" D ERR1^SDECERR(-1,"No recall associated with the IEN.",NUM,SDECY) Q
  1. ; checking for entry in recall reminder file
  1. Q