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

SDEC52CRMVJSON.m

Go to the documentation of this file.
  1. SDEC52CRMVJSON ;ALB/BLB,LEG,LAB - VIA RECALL REMINDER REMOVE FILE (#403.56) ;MAR 23, 2022@10:48
  1. ;;5.3;Scheduling;**790,799,813**;Aug 13, 1993;Build 6
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. ;Reference is made to ICR #10035
  1. Q
  1. ;
  1. RECGETJSON(SDECY,DFN) ;Return a list of REMOVED recall appointment types for patient
  1. ;INPUT - DFN (Data File Number) Pointer to PATIENT (#2) File.
  1. ;RETURN PARMETER:
  1. ;List of recalls associated with a given patient
  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. ; Number of Email Contacts
  1. ; Number of Text Contacts
  1. ; Number of Secure Messages
  1. ;
  1. N SDRECALLRMV,IEN,NUM,ERR,IENS,SDESJSONERR
  1. S DFN=$G(DFN),SDESJSONERR=0
  1. I DFN="" S SDESJSONERR=1 D ERRLOG^SDESJSON(.SDRECALLRMV,1)
  1. S ERR=0,IEN=0,NUM=0
  1. I DFN'="",'$D(^DPT(DFN,0)) S SDESJSONERR=1 D ERRLOG^SDESJSON(.SDRECALLRMV,2)
  1. I 'SDESJSONERR D
  1. . F S IEN=$O(^SD(403.56,"B",DFN,IEN)) Q:IEN="" D
  1. . . S NUM=NUM+1
  1. . . D RECDATA(DFN,IEN)
  1. . . D PATDATA(DFN,IEN)
  1. .I '$D(SDRECALLRMV("Recall")) S SDRECALLRMV("Recall")=""
  1. D BUILDER
  1. Q
  1. ;
  1. RECDATA(DFN,IEN) ;
  1. N F,DAPTDT,DATE,DATE1,DATE2,DATE3,RECARY
  1. D GETS^DIQ(403.56,IEN,"**","IE","RECARY","SDMSG")
  1. S F=403.56
  1. S IENS=IEN_","
  1. S SDRECALLRMV("Recall",NUM,"RecallIEN")=IEN
  1. S SDRECALLRMV("Recall",NUM,"Accession")=$G(RECARY(F,IENS,2,"E"))
  1. S SDRECALLRMV("Recall",NUM,"Comment")=$G(RECARY(F,IENS,2.5,"E"))
  1. S SDRECALLRMV("Recall",NUM,"FastingNonFasting")=$G(RECARY(F,IENS,2.6,"I"))
  1. S SDRECALLRMV("Recall",NUM,"TestApp")=$G(RECARY(F,IENS,3,"I"))
  1. S SDRECALLRMV("Recall",NUM,"ProviderIEN")=$G(RECARY(F,IENS,4,"I"))
  1. S SDRECALLRMV("Recall",NUM,"ProviderName")=$$GET1^DIQ(403.54,SDRECALLRMV("Recall",NUM,"ProviderIEN"),.01,"E")
  1. S SDRECALLRMV("Recall",NUM,"ClinicIEN")=$G(RECARY(F,IENS,4.5,"I"))
  1. S SDRECALLRMV("Recall",NUM,"ClinicName")=$G(RECARY(F,IENS,4.5,"E"))
  1. S SDRECALLRMV("Recall",NUM,"AppointmentLength")=$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.56,IENS,7.5,"E")) S DATE3=$$FMTE^XLFDT(DATE3)
  1. S SDRECALLRMV("Recall",NUM,"RecallDate")=DATE
  1. S SDRECALLRMV("Recall",NUM,"RecallDatePerPatient")=DATE1
  1. S SDRECALLRMV("Recall",NUM,"DateReminderSent")=DAPTDT
  1. S SDRECALLRMV("Recall",NUM,"SecondPrint")=DATE2
  1. S SDRECALLRMV("Recall",NUM,"DateTimeRecallAdded")=DATE3
  1. Q
  1. ;
  1. PATDATA(DFN,IEN) ;
  1. N SDREC
  1. S SDRECALLRMV("Recall",NUM,"GAFScore")=$$GAF^SDECU2(DFN)
  1. S SDRECALLRMV("Recall",NUM,"PatientSensitiveRecordAccessChecks")=$$PTSEC^SDECUTL(DFN)
  1. S SDRECALLRMV("Recall",NUM,"SimilarPatientData")=$$SIM^SDECU3(DFN)
  1. S SDREC=$$RECALL^SDECAR1A(DFN,IEN)
  1. S SDRECALLRMV("Recall",NUM,"NumberOfCallAttempts")=$P(SDREC,U)
  1. S SDRECALLRMV("Recall",NUM,"RecallRemindersLetterDate")=$P(SDREC,U,2)
  1. S SDRECALLRMV("Recall",NUM,"NumberOfEmailContact")=$P(SDREC,U,3)
  1. S SDRECALLRMV("Recall",NUM,"NumberOfTextContact")=$P(SDREC,U,4)
  1. S SDRECALLRMV("Recall",NUM,"NumberOfSecureMessages")=$P(SDREC,U,5)
  1. Q
  1. ;
  1. BUILDER ;
  1. D ENCODE^XLFJSON("SDRECALLRMV","SDECY","ERR")
  1. Q
  1. ;
  1. RECGETONERMVJSON(SDECY,DFN) ;Return the latest REMOVED RECALL REMINDER info in JSON format based on the patient DFN
  1. ;INPUT - DFN (Data File Number) Pointer to PATIENT (#2) File.
  1. ;RETURN PARAMETER: recall based on DFN being passed
  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,SDESJSONERR
  1. N CLINNAME,APPTLEN,DATE,DATE1,DAPTDT,DATE2,DATE3,MSGTYP,GAF,SENSITIVE,SIMILAR,SDREC,CPHONE,CLET,SDRECALLRMV
  1. S SDESJSONERR=0
  1. ; VSE-1066;LEG;6/25/2021 ;
  1. N SDRECALLRMV,IEN
  1. S DFN=$G(DFN)
  1. ; check if no DFN
  1. I DFN="" S SDESJSONERR=1 D ERRLOG^SDESJSON(.SDRECALLRMV,1)
  1. S ERR=0,NUM=0
  1. ; check for defined DFN
  1. I DFN,'$D(^DPT(DFN,0)) S SDESJSONERR=1 D ERRLOG^SDESJSON(.SDRECALLRMV,2)
  1. ; find latest REMOVED RECALL REMINDER info because patient has no entry in the RECALL REMINDERS File (#403.5)
  1. I 'SDESJSONERR S IEN=$O(^SD(403.56,"B",DFN,""),-1)
  1. ;
  1. S IEN=$G(IEN)
  1. I IEN,'$D(^SD(403.56,IEN)) S SDESJSONERR=1 D ERRLOG^SDESJSON(.SDRECALLRMV,17) ; send error and quit if patient has no entry in the RECALL REMINDERS REMOVE File (#403.56)
  1. I 'IEN S SDESJSONERR=1 D ERRLOG^SDESJSON(.SDRECALLRMV,16)
  1. I 'SDESJSONERR D
  1. . D RECDATAONEJSON(IEN) ; build out recall data
  1. . D PATDATAONEJSON(IEN) ; build out required patient data
  1. D BUILDER ; build return
  1. Q
  1. ;
  1. RECDATAONEJSON(IEN) ;
  1. N RECARY
  1. D GETS^DIQ(403.56,IEN,"**","IE","RECARY","SDMSG")
  1. S F=403.56
  1. S IENS=IEN_","
  1. S NUM=NUM+1
  1. S SDRECALLRMV("Recall",NUM,"RecallIEN")=IEN
  1. S SDRECALLRMV("Recall",NUM,"EASTrackingNumber")=$G(RECARY(F,IENS,100,"E"))
  1. S SDRECALLRMV("Recall",NUM,"Accession")=$G(RECARY(F,IENS,2,"E"))
  1. S SDRECALLRMV("Recall",NUM,"Comment")=$G(RECARY(F,IENS,2.5,"E"))
  1. S SDRECALLRMV("Recall",NUM,"FastingNonFasting")=$G(RECARY(F,IENS,2.6,"I"))
  1. S SDRECALLRMV("Recall",NUM,"TestApp")=$G(RECARY(F,IENS,3,"I"))
  1. S SDRECALLRMV("Recall",NUM,"ProviderIEN")=$G(RECARY(F,IENS,4,"I"))
  1. S SDRECALLRMV("Recall",NUM,"ProviderName")=$$GET1^DIQ(403.54,SDRECALLRMV("Recall",NUM,"ProviderIEN"),.01,"E")
  1. S SDRECALLRMV("Recall",NUM,"ClinicIEN")=$G(RECARY(F,IENS,4.5,"I"))
  1. S SDRECALLRMV("Recall",NUM,"ClinicName")=$G(RECARY(F,IENS,4.5,"E"))
  1. S SDRECALLRMV("Recall",NUM,"AppointmentLength")=$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.56,IENS,7.5,"E")) S DATE3=$$FMTE^XLFDT(DATE3)
  1. S SDRECALLRMV("Recall",NUM,"RecallDate")=DATE
  1. S SDRECALLRMV("Recall",NUM,"RecallDatePerPatient")=DATE1
  1. S SDRECALLRMV("Recall",NUM,"DateReminderSent")=DAPTDT
  1. S SDRECALLRMV("Recall",NUM,"SecondPrint")=DATE2
  1. S SDRECALLRMV("Recall",NUM,"DateTimeRecallAdded")=DATE3
  1. Q
  1. ;
  1. PATDATAONEJSON(IEN) ;
  1. N SDECALL,SDECLET
  1. S DFN=$$GET1^DIQ(403.56,IEN,.01,"I")
  1. S SDRECALLRMV("Recall",NUM,"GAFScore")=$$GAF^SDECU2(DFN)
  1. S SDRECALLRMV("Recall",NUM,"PatientSensitiveRecordAccessChecks")=$$PTSEC^SDECUTL(DFN)
  1. S SDRECALLRMV("Recall",NUM,"SimilarPatientData")=$$SIM^SDECU3(DFN)
  1. S SDREC=$$RECALL^SDECAR1A(DFN,IEN)
  1. S SDRECALLRMV("Recall",NUM,"NumberOfCallAttempts")=$P(SDREC,U)
  1. S SDRECALLRMV("Recall",NUM,"RecallRemindersLetterDate")=$P(SDREC,U,2)
  1. S SDRECALLRMV("Recall",NUM,"NumberOfEmailContact")=$P(SDREC,U,3)
  1. S SDRECALLRMV("Recall",NUM,"NumberOfTextContact")=$P(SDREC,U,4)
  1. S SDRECALLRMV("Recall",NUM,"NumberOfSecureMessages")=$P(SDREC,U,5)
  1. Q