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

SCCVU2.m

Go to the documentation of this file.
  1. SCCVU2 ;ALB/RMO,TMP - SCHED VISITS CONVERT/ARCHIVE UTILITIES; [ 10/10/95 2:39 PM ]
  1. ;;5.3;Scheduling;**211**;Aug 13, 1993
  1. ;
  1. VERDT(SCSTDT,SCENDT,SCLOG,SCERRMSG) ;Verify date range is valid
  1. ; Input -- SCSTDT Start date
  1. ; SCENDT End date
  1. ; SCLOG CST log IEN [optional]
  1. ; Output -- #=Error number and 0=No Error
  1. ; SCERRMSG Error message
  1. N SCERRNB,SCNVPAR
  1. S SCERRNB=0
  1. S SCNVPAR=$G(^SD(404.91,1,"CNV"))
  1. ;
  1. ;Check start date
  1. I SCSTDT D
  1. . I SCSTDT<+SCNVPAR D ;start dt cannot be before earliest encounter dt
  1. . . N SCERRIP,Y
  1. . . S SCERRNB=4049001.001
  1. . . S Y=+SCNVPAR D D^DIQ S SCERRIP(1)=Y
  1. . . D GETERR^SCCVLOG1(SCERRNB,"",.SCERRIP,$G(SCLOG),1,.SCERRMSG)
  1. ;
  1. ;Check end date
  1. I 'SCERRNB,SCENDT D
  1. . I SCENDT<+SCNVPAR D ;end dt cannot be before earliest encounter dt
  1. . . N SCERRIP,Y
  1. . . S SCERRNB=4049001.004
  1. . . S Y=+SCNVPAR D D^DIQ S SCERRIP(1)=Y
  1. . . D GETERR^SCCVLOG1(SCERRNB,"",.SCERRIP,$G(SCLOG),1,.SCERRMSG)
  1. ;
  1. ;Check date range
  1. I 'SCERRNB,SCSTDT,SCENDT D
  1. . I SCSTDT>SCENDT D ;start date cannot be after end date
  1. . . S SCERRNB=4049001.005
  1. . . D GETERR^SCCVLOG1(SCERRNB,"","",$G(SCLOG),1,.SCERRMSG)
  1. . I 'SCERRNB,SCENDT<SCSTDT D ;end date cannot be before start date
  1. . . S SCERRNB=4049001.006
  1. . . D GETERR^SCCVLOG1(SCERRNB,"","",$G(SCLOG),1,.SCERRMSG)
  1. ;
  1. ;Check for 1 year limit if parameter set
  1. I 'SCERRNB,$P(SCNVPAR,U,5),$$FMADD^XLFDT(SCSTDT,365)<SCENDT D
  1. . S SCERRNB=4049001.007
  1. . D GETERR^SCCVLOG1(SCERRNB,"","",$G(SCLOG),1,.SCERRMSG)
  1. Q SCERRNB
  1. ;
  1. CHKDUP(SCCVTYP,SCSTDT,SCENDT,SCLOG,SCERRMSG) ;Check for duplicate type and date range for conversion entry
  1. ; Input -- SCCVTYP Conversion type
  1. ; SCSTDT Start date
  1. ; SCENDT End date
  1. ; SCLOG CST log IEN
  1. ; Output -- #=Error number and 0=No Error
  1. ; SCERRMSG Error message
  1. N SCERRNB,SCLOGX,SCCV0,SCDTS,SCDTE
  1. S (SCERRNB,SCLOGX)=0
  1. F S SCLOGX=$O(^SD(404.98,"TYP",SCCVTYP,SCLOGX)) Q:'SCLOGX!(SCERRNB) I SCLOG'=SCLOGX D
  1. . S SCCV0=$G(^SD(404.98,SCLOGX,0)),SCDTS=$P(SCCV0,U,3),SCDTE=$P(SCCV0,U,4)
  1. . Q:$P(SCCV0,U,9) ;Template canceled
  1. . ;
  1. . ; -- 'IF SCDTE<SCSTDT!(SCDTS>SCENDT) Q'
  1. . ; If (end < new start) or (start > new end) then ok and quit
  1. . ; Next line is boolean negative of above 'If'
  1. . ;
  1. . I SCDTE'<SCSTDT,SCDTS'>SCENDT D ;date range overlap
  1. . . N SCERRIP
  1. . . S SCERRNB=4049001.01
  1. . . S SCERRIP(1)=SCLOGX
  1. . . D GETERR^SCCVLOG1(SCERRNB,"",.SCERRIP,$G(SCLOG),1,.SCERRMSG)
  1. ;
  1. Q SCERRNB
  1. ;
  1. PROCSEL(SCRESULT,SC) ; -- Process Archive SELECT request - not used
  1. ; Input -- SC Array:
  1. ; SC("TEMPLNO") Template number ien
  1. ; ("REQNUM") Request number ien
  1. ; Output -- SCRESULT (#=Error number | 0=No Error)^Message
  1. ;
  1. Q
  1. N SCERRMSG,SCERRNB,SCLOG,SCREQ,SCREQACT
  1. S SCERRNB=0
  1. ;
  1. S SCLOG=$G(SC("TEMPLNO"))
  1. S SCREQ=$G(SC("REQNUM"))
  1. ;
  1. ;Quit if Template number ien or request ien are not defined
  1. I 'SCLOG!('SCREQ) D
  1. . S SCERRNB=4049007.003
  1. . D GETERR^SCCVLOG1(SCERRNB,"","","",1,.SCERRMSG)
  1. ;
  1. S SCRESULT=$S('SCERRNB:0,1:SCERRNB_U_$$BLDSTR^SCCVU1(.SCERRMSG))
  1. ;
  1. G:SCERRNB PROCSELQ
  1. ;
  1. ; Set request action
  1. S SCREQACT=$P($G(^SD(404.99,SCLOG,"R",SCREQ,0)),U,2)
  1. ;
  1. ; Queue archive select request
  1. ;D QSEL^SCCVAST1(SCLOG,SCREQ)
  1. ;
  1. PROCSELQ Q
  1. ;
  1. OTHERR(ERRNO) ; Returns text of specific errors for error log
  1. N X
  1. S ERRNO=ERRNO+1
  1. S X=$P($T(ERRLIST+ERRNO),";;",3,99)
  1. Q X
  1. ;
  1. ERRLIST ; List of 'OTHER' specific errors ;;ERROR # (OFFSET-1);;ERROR TEXT
  1. ;;0;;Unknown
  1. ;;1;;Appointment does not exist in clinic file
  1. ;;2;;Encounter was not created for appointment
  1. ;;3;;Visit was not created for appointment
  1. ;;4;;Add/edit's top level 0-node does not exist
  1. ;;5;;Add/edit does not have a valid patient DFN
  1. ;;6;;Add/edit does not have a valid division
  1. ;;7;;Add/edit does not have a valid clinic stop
  1. ;;8;;Disposition does not have a valid hospital location
  1. ;;9;;Add/edit's "CS" level 0-node does not exist
  1. ;