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

SDESGETLETTERS.m

Go to the documentation of this file.
  1. SDESGETLETTERS ;ALB/BWF - VISTA SCHEDULING RPCS ;JUNE 10, 2022
  1. ;;5.3;Scheduling;**819**;Aug 13, 1993;Build 5
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. Q
  1. ; return letter types for the LETTER TYPE file (#407.6)
  1. GETLETTERTYPES(RES,EAS) ;
  1. N X,LCNT,LETARRY,ERR
  1. D VALIDATEEAS(.ERR,$G(EAS))
  1. I $D(ERR) D Q
  1. .S ERR("LetterType",1)=""
  1. .D BUILDJSON^SDESBUILDJSON(.RES,.ERR)
  1. S X=0
  1. F S X=$O(^VA(407.6,X)) Q:'X D
  1. .S LCNT=$G(LCNT)+1
  1. .S LETARRY("LetterType",LCNT,"Type")=$$GET1^DIQ(407.6,X,.01,"E")
  1. .S LETARRY("LetterType",LCNT,"Name")=$$GET1^DIQ(407.6,X,1,"E")
  1. I '$D(LETARRY) S LETARRY("LetterType",1)=""
  1. D BUILDJSON^SDESBUILDJSON(.RES,.LETARRY)
  1. Q
  1. ; 407.5 - LETTER
  1. ; 407.6 - LETTER TYPE
  1. ; 403.52 - RECALL REMINDERS LETTERS
  1. ; get a list of all letters ,full text
  1. ; TYPE - type of letter (N - NO show, A - Appointment Cancellation, P - PreAppointment Cancellation, C - Clinic Cancelled)
  1. ; TEXT - (optional) text to match
  1. ; BRIEF - 1 for brief data return (no letter text), 0 or "" for full letter/letter text
  1. GETLETTERSBYTYPE(RES,TYPE,TEXT,BRIEF,EAS) ;
  1. N LETIEN,LCNT,LETARRY,F,ERR
  1. S F=407.5
  1. D VALLETTERTYPE(.ERR,TYPE)
  1. D VALLETTERTEXT(.ERR,TEXT)
  1. D VALIDATEEAS(.ERR,$G(EAS))
  1. I $D(ERR) D Q
  1. .S ERR("Letter",1)=""
  1. .D BUILDJSON^SDESBUILDJSON(.RES,.ERR) Q
  1. S (LETIEN,LCNT)=0
  1. F S LETIEN=$O(^VA(F,"C",TYPE,LETIEN)) Q:'LETIEN D
  1. .I $L($G(TEXT)),$E($$GET1^DIQ(F,LETIEN,.01,"E"),1,$L(TEXT))'=TEXT Q
  1. .D BUILDLETTER(.LETARRY,LETIEN,.LCNT,$G(BRIEF))
  1. I '$D(LETARRY) S LETARRY("Letter",1)=""
  1. D BUILDJSON^SDESBUILDJSON(.RES,.LETARRY)
  1. Q
  1. ;
  1. GETLETTERBYIEN(RES,IEN,EAS) ;
  1. N ERR,LETARRY,CNT
  1. D VALLETTERIEN(.ERR,IEN)
  1. D VALIDATEEAS(.ERR,$G(EAS))
  1. I $D(ERR) D Q
  1. .S ERR("Letter",1)=""
  1. .D BUILDJSON^SDESBUILDJSON(.RES,.ERR) Q
  1. S CNT=$G(CNT)+1
  1. D BUILDLETTER(.LETARRY,IEN,.CNT)
  1. I '$D(LETARRY) S LETARRY("Letter",1)=""
  1. D BUILDJSON^SDESBUILDJSON(.RES,.LETARRY)
  1. Q
  1. ; BRIEF - indicates a brief list, without the letter text
  1. BUILDLETTER(LETARRY,IEN,LCNT,BRIEF) ;
  1. N LETDATA,LIENS,LETDATA,INITSEC,FINSEC,LIENS,F,LETTERIEN,LETTERTYPE
  1. S F=407.5
  1. S LCNT=$G(LCNT)+1
  1. S LIENS=IEN_","
  1. D GETS^DIQ(F,IEN_",","**","IE","LETDATA")
  1. S LETARRY("Letter",LCNT,"ID")=IEN
  1. S LETARRY("Letter",LCNT,"Name")=$G(LETDATA(F,LIENS,.01,"E"))
  1. S TYPE=$$GET1^DIQ(407.5,IEN,1,"E")
  1. S LETTERIEN=$O(^VA(407.6,"B",TYPE,0))
  1. S LETTERTYPE=$$GET1^DIQ(407.6,LETTERIEN,1,"E")
  1. S LETARRY("Letter",LCNT,"Type")=LETTERTYPE
  1. Q:$G(BRIEF)
  1. S LETARRY("Letter",LCNT,"PrintDefaultProvider")=$G(LETDATA(F,LIENS,4,"E"))
  1. S LETARRY("Letter",LCNT,"PrintClinicLocation")=$G(LETDATA(F,LIENS,5,"E"))
  1. S INITSEC=0
  1. F S INITSEC=$O(LETDATA(F,LIENS,2,INITSEC)) Q:'INITSEC D
  1. .S LETARRY("Letter",LCNT,"InitialSection",INITSEC)=$G(LETDATA(F,LIENS,2,INITSEC))
  1. S FINSEC=0
  1. F S FINSEC=$O(LETDATA(F,LIENS,3,FINSEC)) Q:'FINSEC D
  1. .S LETARRY("Letter",LCNT,"FinalSection",FINSEC)=$G(LETDATA(F,LIENS,3,FINSEC))
  1. Q
  1. VALLETTERIEN(ERRORS,IEN) ;
  1. I '$L($G(IEN)) D ERRLOG^SDESJSON(.ERRORS,227) Q
  1. I '$D(^VA(407.5,IEN)) D ERRLOG^SDESJSON(.ERRORS,225)
  1. Q
  1. VALLETTERTYPE(ERRORS,TYPE) ;
  1. I '$L($G(TYPE)) D ERRLOG^SDESJSON(.ERRORS,228) Q
  1. I '$D(^VA(407.5,"C",TYPE)) D ERRLOG^SDESJSON(.ERRORS,226)
  1. Q
  1. VALLETTERTEXT(ERRORS,TEXT) ;
  1. I $L($G(TEXT)),$L($G(TEXT))<2 D ERRLOG^SDESJSON(.ERRORS,64)
  1. Q
  1. VALIDATEEAS(ERRORS,SDEAS) ;
  1. I $L(SDEAS) S SDEAS=$$EASVALIDATE^SDESUTIL($G(SDEAS))
  1. I $P($G(SDEAS),U)=-1 D ERRLOG^SDESJSON(.ERRORS,142)
  1. Q