1 | SCCVU2 ;ALB/RMO,TMP - SCHED VISITS CONVERT/ARCHIVE UTILITIES; [ 10/10/95 2:39 PM ]
|
---|
2 | ;;5.3;Scheduling;**211**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | VERDT(SCSTDT,SCENDT,SCLOG,SCERRMSG) ;Verify date range is valid
|
---|
5 | ; Input -- SCSTDT Start date
|
---|
6 | ; SCENDT End date
|
---|
7 | ; SCLOG CST log IEN [optional]
|
---|
8 | ; Output -- #=Error number and 0=No Error
|
---|
9 | ; SCERRMSG Error message
|
---|
10 | N SCERRNB,SCNVPAR
|
---|
11 | S SCERRNB=0
|
---|
12 | S SCNVPAR=$G(^SD(404.91,1,"CNV"))
|
---|
13 | ;
|
---|
14 | ;Check start date
|
---|
15 | I SCSTDT D
|
---|
16 | . I SCSTDT<+SCNVPAR D ;start dt cannot be before earliest encounter dt
|
---|
17 | . . N SCERRIP,Y
|
---|
18 | . . S SCERRNB=4049001.001
|
---|
19 | . . S Y=+SCNVPAR D D^DIQ S SCERRIP(1)=Y
|
---|
20 | . . D GETERR^SCCVLOG1(SCERRNB,"",.SCERRIP,$G(SCLOG),1,.SCERRMSG)
|
---|
21 | ;
|
---|
22 | ;Check end date
|
---|
23 | I 'SCERRNB,SCENDT D
|
---|
24 | . I SCENDT<+SCNVPAR D ;end dt cannot be before earliest encounter dt
|
---|
25 | . . N SCERRIP,Y
|
---|
26 | . . S SCERRNB=4049001.004
|
---|
27 | . . S Y=+SCNVPAR D D^DIQ S SCERRIP(1)=Y
|
---|
28 | . . D GETERR^SCCVLOG1(SCERRNB,"",.SCERRIP,$G(SCLOG),1,.SCERRMSG)
|
---|
29 | ;
|
---|
30 | ;Check date range
|
---|
31 | I 'SCERRNB,SCSTDT,SCENDT D
|
---|
32 | . I SCSTDT>SCENDT D ;start date cannot be after end date
|
---|
33 | . . S SCERRNB=4049001.005
|
---|
34 | . . D GETERR^SCCVLOG1(SCERRNB,"","",$G(SCLOG),1,.SCERRMSG)
|
---|
35 | . I 'SCERRNB,SCENDT<SCSTDT D ;end date cannot be before start date
|
---|
36 | . . S SCERRNB=4049001.006
|
---|
37 | . . D GETERR^SCCVLOG1(SCERRNB,"","",$G(SCLOG),1,.SCERRMSG)
|
---|
38 | ;
|
---|
39 | ;Check for 1 year limit if parameter set
|
---|
40 | I 'SCERRNB,$P(SCNVPAR,U,5),$$FMADD^XLFDT(SCSTDT,365)<SCENDT D
|
---|
41 | . S SCERRNB=4049001.007
|
---|
42 | . D GETERR^SCCVLOG1(SCERRNB,"","",$G(SCLOG),1,.SCERRMSG)
|
---|
43 | Q SCERRNB
|
---|
44 | ;
|
---|
45 | CHKDUP(SCCVTYP,SCSTDT,SCENDT,SCLOG,SCERRMSG) ;Check for duplicate type and date range for conversion entry
|
---|
46 | ; Input -- SCCVTYP Conversion type
|
---|
47 | ; SCSTDT Start date
|
---|
48 | ; SCENDT End date
|
---|
49 | ; SCLOG CST log IEN
|
---|
50 | ; Output -- #=Error number and 0=No Error
|
---|
51 | ; SCERRMSG Error message
|
---|
52 | N SCERRNB,SCLOGX,SCCV0,SCDTS,SCDTE
|
---|
53 | S (SCERRNB,SCLOGX)=0
|
---|
54 | F S SCLOGX=$O(^SD(404.98,"TYP",SCCVTYP,SCLOGX)) Q:'SCLOGX!(SCERRNB) I SCLOG'=SCLOGX D
|
---|
55 | . S SCCV0=$G(^SD(404.98,SCLOGX,0)),SCDTS=$P(SCCV0,U,3),SCDTE=$P(SCCV0,U,4)
|
---|
56 | . Q:$P(SCCV0,U,9) ;Template canceled
|
---|
57 | . ;
|
---|
58 | . ; -- 'IF SCDTE<SCSTDT!(SCDTS>SCENDT) Q'
|
---|
59 | . ; If (end < new start) or (start > new end) then ok and quit
|
---|
60 | . ; Next line is boolean negative of above 'If'
|
---|
61 | . ;
|
---|
62 | . I SCDTE'<SCSTDT,SCDTS'>SCENDT D ;date range overlap
|
---|
63 | . . N SCERRIP
|
---|
64 | . . S SCERRNB=4049001.01
|
---|
65 | . . S SCERRIP(1)=SCLOGX
|
---|
66 | . . D GETERR^SCCVLOG1(SCERRNB,"",.SCERRIP,$G(SCLOG),1,.SCERRMSG)
|
---|
67 | ;
|
---|
68 | Q SCERRNB
|
---|
69 | ;
|
---|
70 | PROCSEL(SCRESULT,SC) ; -- Process Archive SELECT request - not used
|
---|
71 | ; Input -- SC Array:
|
---|
72 | ; SC("TEMPLNO") Template number ien
|
---|
73 | ; ("REQNUM") Request number ien
|
---|
74 | ; Output -- SCRESULT (#=Error number | 0=No Error)^Message
|
---|
75 | ;
|
---|
76 | Q
|
---|
77 | N SCERRMSG,SCERRNB,SCLOG,SCREQ,SCREQACT
|
---|
78 | S SCERRNB=0
|
---|
79 | ;
|
---|
80 | S SCLOG=$G(SC("TEMPLNO"))
|
---|
81 | S SCREQ=$G(SC("REQNUM"))
|
---|
82 | ;
|
---|
83 | ;Quit if Template number ien or request ien are not defined
|
---|
84 | I 'SCLOG!('SCREQ) D
|
---|
85 | . S SCERRNB=4049007.003
|
---|
86 | . D GETERR^SCCVLOG1(SCERRNB,"","","",1,.SCERRMSG)
|
---|
87 | ;
|
---|
88 | S SCRESULT=$S('SCERRNB:0,1:SCERRNB_U_$$BLDSTR^SCCVU1(.SCERRMSG))
|
---|
89 | ;
|
---|
90 | G:SCERRNB PROCSELQ
|
---|
91 | ;
|
---|
92 | ; Set request action
|
---|
93 | S SCREQACT=$P($G(^SD(404.99,SCLOG,"R",SCREQ,0)),U,2)
|
---|
94 | ;
|
---|
95 | ; Queue archive select request
|
---|
96 | ;D QSEL^SCCVAST1(SCLOG,SCREQ)
|
---|
97 | ;
|
---|
98 | PROCSELQ Q
|
---|
99 | ;
|
---|
100 | OTHERR(ERRNO) ; Returns text of specific errors for error log
|
---|
101 | N X
|
---|
102 | S ERRNO=ERRNO+1
|
---|
103 | S X=$P($T(ERRLIST+ERRNO),";;",3,99)
|
---|
104 | Q X
|
---|
105 | ;
|
---|
106 | ERRLIST ; List of 'OTHER' specific errors ;;ERROR # (OFFSET-1);;ERROR TEXT
|
---|
107 | ;;0;;Unknown
|
---|
108 | ;;1;;Appointment does not exist in clinic file
|
---|
109 | ;;2;;Encounter was not created for appointment
|
---|
110 | ;;3;;Visit was not created for appointment
|
---|
111 | ;;4;;Add/edit's top level 0-node does not exist
|
---|
112 | ;;5;;Add/edit does not have a valid patient DFN
|
---|
113 | ;;6;;Add/edit does not have a valid division
|
---|
114 | ;;7;;Add/edit does not have a valid clinic stop
|
---|
115 | ;;8;;Disposition does not have a valid hospital location
|
---|
116 | ;;9;;Add/edit's "CS" level 0-node does not exist
|
---|
117 | ;
|
---|