source: Scheduling/trunk/m/BSDX35.m@ 1449

Last change on this file since 1449 was 1449, checked in by Sam Habiel, 12 years ago

Much more automated Unit Tests for BSDX07 relying on code in BSDX35

File size: 5.2 KB
Line 
1BSDX35 ; IHS/OIT/HMW - WINDOWS SCHEDULING RPCS ; 6/18/12 2:27pm
2 ;;1.7T1;BSDX;;Aug 31, 2011;Build 18
3 ; Licensed under LGPL
4 ;
5 ;
6 Q
7 ;
8RSRCLTRD(BSDXY,BSDXLIST) ;EP
9 ;Entry point for debugging
10 ;
11 ;D DEBUG^%Serenji("RSRCLTR^BSDX35(.BSDXY,BSDXLIST)")
12 Q
13 ;
14RSRCLTR(BSDXY,BSDXLIST) ;EP
15 ;
16 ;Return recordset of RESOURCES and associated LETTERS
17 ;Used in generating rebook letters for a clinic
18 ;BSDXLIST is a |-delimited list of BSDX RESOURCE iens. (The last |-piece is null, so discard it.)
19 ;Called by BSDX RESOURCE LETTERS
20 ;
21 ;
22 S X="ERROR^BSDX35",@^%ZOSF("TRAP")
23 S BSDXY="^BSDXTMP("_$J_")"
24 N BSDXIEN,BSDX,BSDXLTR,BSDXNOS,BSDXCAN,BSDXIEN1
25 S BSDXI=0
26 S ^BSDXTMP($J,BSDXI)="I00010RESOURCEID^T00030RESOURCE_NAME^T00030LETTER_TEXT^T00030NO_SHOW_LETTER^T00030CLINIC_CANCELLATION_LETTER"_$C(30)
27 ;
28 ;
29 ;If BSDXLIST is a list of resource NAMES, look up each name and convert to IEN
30 F BSDXJ=1:1:$L(BSDXLIST,"|")-1 S BSDX=$P(BSDXLIST,"|",BSDXJ) D S $P(BSDXLIST,"|",BSDXJ)=BSDY
31 . S BSDY=""
32 . I BSDX]"",$D(^BSDXRES(BSDX,0)) S BSDY=BSDX Q
33 . I BSDX]"",$D(^BSDXRES("B",BSDX)) S BSDY=$O(^BSDXRES("B",BSDX,0)) Q
34 . Q
35 ;
36 ;Get letter text from wp fields
37 S BSDXIEN=0
38 F BSDX=1:1:$L(BSDXLIST,"|")-1 S BSDXIEN=$P(BSDXLIST,"|",BSDX) D
39 . Q:'$D(^BSDXRES(BSDXIEN))
40 . S BSDXNAM=$P(^BSDXRES(BSDXIEN,0),U)
41 . S BSDXLTR=""
42 . I $D(^BSDXRES(BSDXIEN,1)) D
43 . . S BSDXIEN1=0 F S BSDXIEN1=$O(^BSDXRES(BSDXIEN,1,BSDXIEN1)) Q:'+BSDXIEN1 D
44 . . . S BSDXLTR=BSDXLTR_$G(^BSDXRES(BSDXIEN,1,BSDXIEN1,0))
45 . . . S BSDXLTR=BSDXLTR_$C(13)_$C(10)
46 . S BSDXNOS=""
47 . I $D(^BSDXRES(BSDXIEN,12)) D
48 . . S BSDXIEN1=0 F S BSDXIEN1=$O(^BSDXRES(BSDXIEN,12,BSDXIEN1)) Q:'+BSDXIEN1 D
49 . . . S BSDXNOS=BSDXNOS_$G(^BSDXRES(BSDXIEN,12,BSDXIEN1,0))
50 . . . S BSDXNOS=BSDXNOS_$C(13)_$C(10)
51 . S BSDXCAN=""
52 . I $D(^BSDXRES(BSDXIEN,13)) D
53 . . S BSDXIEN1=0 F S BSDXIEN1=$O(^BSDXRES(BSDXIEN,13,BSDXIEN1)) Q:'+BSDXIEN1 D
54 . . . S BSDXCAN=BSDXCAN_$G(^BSDXRES(BSDXIEN,13,BSDXIEN1,0))
55 . . . S BSDXCAN=BSDXCAN_$C(13)_$C(10)
56 . S BSDXI=BSDXI+1
57 . S ^BSDXTMP($J,BSDXI)=BSDXIEN_U_BSDXNAM_U_BSDXLTR_U_BSDXNOS_U_BSDXCAN_$C(30)
58 ;
59 S BSDXI=BSDXI+1
60 S ^BSDXTMP($J,BSDXI)=$C(31)
61 Q
62 ;
63ERROR ;
64 D ERR("RPMS Error")
65 Q
66 ;
67ERR(ERRNO) ;Error processing
68 S:'$D(BSDXI) BSDXI=999
69 I +ERRNO S BSDXERR=ERRNO+134234112 ;vbObjectError
70 E S BSDXERR=ERRNO
71 S BSDXI=BSDXI+1
72 S ^BSDXTMP($J,BSDXI)="^^^^"_$C(30)
73 S BSDXI=BSDXI+1
74 S ^BSDXTMP($J,BSDXI)=$C(31)
75 Q
76UTCR(RESNAM) ; $$ - Create Unit Test Clinic and Resource Pair ; Private
77 ; Input: Resource Name By Value
78 ; Output: -1^Error or HLIEN^RESIEN for Success (file 44 IEN^file 9002018.1 IEN)
79 ; DO NOT USE IN A PRODUCTION ENVIRONTMENT. INTENDED FOR TESTING ONLY
80 N HLIEN S HLIEN=$$UTCR44(RESNAM)
81 I +HLIEN=-1 QUIT HLIEN
82 ;
83 N RESIEN S RESIEN=$$UTCRRES(RESNAM,HLIEN)
84 I +RESIEN=-1 QUIT RESIEN
85 E QUIT HLIEN_U_RESIEN
86 ;
87UTCR44(HLNAME) ; $$ - Create Unit Test Clinic in File 44; Private ; TESTING ONLY CODE
88 ; Output: -1^Error or IEN for Success
89 ; Input: Hosp Location Name by Value
90 ; DO NOT USE IN A PRODUCTION ENVIRONTMENT. INTENDED FOR TESTING ONLY
91 ;
92 I $D(^SC("B",HLNAME)) Q $O(^(HLNAME,""))
93 ;
94 N SAM
95 S SAM(44,"?+1,",.01)=HLNAME ; Name
96 S SAM(44,"?+1,",2)="C" ; Type = Clinic
97 S SAM(44,"?+1,",2.1)=1 ; Type Extension (not used)
98 S SAM(44,"?+1,",3.5)=$O(^DG(40.8,0)) ; Division (not yet used)
99 S SAM(44,"?+1,",8)=295 ; Stop Code Number (not used)
100 S SAM(44,"?+1,",9)="M" ; Service (not used)
101 S SAM(44,"?+1,",1912)=15 ; Length of Appt (not used)
102 S SAM(44,"?+1,",1917)=4 ; Display increments per hour (not used)
103 S SAM(44,"?+1,",1918)=8 ; Overbooks/day max (not used)
104 S SAM(44,"?+1,",2000.5)=0 ; Require Action Profiles: Yes (not used)
105 S SAM(44,"?+1,",2001)=999 ; Allowable consecutive no-shows (not used)
106 S SAM(44,"?+1,",2002)=999 ; Max # days for Future Booking (not used)
107 S SAM(44,"?+1,",2005)=365 ; Max # days for Auto Rebook (not used)
108 S SAM(44,"?+1,",2502)="N" ; Non-Count Clinic (not used)
109 S SAM(44,"?+1,",2504)="Y" ; Clinic meets at this Facility? (not used)
110 S SAM(44,"?+1,",2507)=9 ; Appointment Type (not used)
111 ;
112 N BSDXERR,BSDXIEN
113 D UPDATE^DIE("",$NA(SAM),$NA(BSDXIEN),$NA(BSDXERR))
114 Q $S($D(BSDXERR):-1_U_BSDXERR("DIERR",1,"TEXT",1),1:BSDXIEN(1))
115 ;
116UTCRRES(NAME,HLIEN) ; $$ - Create Unit Test Resource in 9002018.1 (BSDX RESOURCE); Private
117 ; Input: Hospital Location IEN
118 ; Output: -1^Error or IEN for Success
119 ; DO NOT USE IN A PRODUCTION ENVIRONTMENT. INTENDED FOR TESTING ONLY
120 I $D(^BSDXRES("B",NAME)) Q $O(^(NAME,""))
121 D RSRC^BSDX16(.RES,"|"_NAME_"||"_HLIEN)
122 N RTN S RTN=@$Q(^BSDXTMP($J,0)) ; return array next value
123 Q $S(RTN=0:-1_U_RTN,1:+RTN) ; 0 means an error has occurred; 1 means IEN returned
124 ;
125TIMES() ; $$ - Create a next available appointment time^ending time; Private
126 N NOW S NOW=$$NOW^XLFDT() ; Now time
127 N LAST S LAST=$O(^BSDXAPPT("B"," "),-1) ; highest time in file
128 N TIME2USE S TIME2USE=$S(NOW>LAST:NOW,1:LAST) ; Which time to use?
129 S TIME2USE=$E(TIME2USE,1,12) ; Strip away seconds
130 N APPTIME S APPTIME=$$FMADD^XLFDT(TIME2USE,0,0,15,0) ; Add 15 min
131 N ENDTIME S ENDTIME=$$FMADD^XLFDT(APPTIME,0,0,15,0) ; Add 15 more min
132 Q APPTIME_U_ENDTIME ; quit with apptime^endtime
Note: See TracBrowser for help on using the repository browser.