comparison src/kaigo/Perori/perori.go @ 44:b50f2a581cf8

bug fix.
author pyon@macmini
date Tue, 17 Mar 2020 18:29:20 +0900
parents 77dd877929f5
children
comparison
equal deleted inserted replaced
43:77dd877929f5 44:b50f2a581cf8
18 ) 18 )
19 19
20 var debug_log bool 20 var debug_log bool
21 21
22 // Constants 22 // Constants
23 const version = "0.3a" 23 const version = "0.3b"
24 const default_dbfile = "ikenshoirai.db" 24 const default_dbfile = "ikenshoirai.db"
25 const default_csvfile = "ikenshoirai.csv" 25 const default_csvfile = "ikenshoirai.csv"
26 26
27 const tpl = ` 27 const tpl = `
28 <!DOCTYPE html> <html> 28 <!DOCTYPE html> <html>
195 return dbdata[i].Hhsno < dbdata[j].Hhsno 195 return dbdata[i].Hhsno < dbdata[j].Hhsno
196 } 196 }
197 if dbdata[i].Ymd != dbdata[j].Ymd { 197 if dbdata[i].Ymd != dbdata[j].Ymd {
198 return dbdata[i].Ymd > dbdata[j].Ymd 198 return dbdata[i].Ymd > dbdata[j].Ymd
199 } 199 }
200 if dbdata[i].IraiYmd != dbdata[j].IraiYmd {
201 return dbdata[i].IraiYmd > dbdata[j].IraiYmd
202 }
200 return false 203 return false
201 }) 204 })
202 205
203 var recentdata []Sinsei 206 var dbdata2 []Sinsei // delete same Ymd (for changing Dr.)
207 var lasthhsno, lastymd string
208 for _, ss := range dbdata {
209 if ss.Hhsno == lasthhsno && lastymd == ss.Ymd {
210 continue
211 }
212 dbdata2 = append(dbdata2, ss)
213 lasthhsno = ss.Hhsno
214 lastymd = ss.Ymd
215 }
216
217 var lastdata []Sinsei
204 prevhash := make(map[string]PrevSinsei) 218 prevhash := make(map[string]PrevSinsei)
205 hhscnt := make(map[string]int) 219 hhscnt := make(map[string]int)
206 for _, ss := range dbdata { 220 for _, ss := range dbdata2 {
207 ss.Humanize() 221 ss.Humanize()
208 switch hhscnt[ss.Hhsno] { 222 switch hhscnt[ss.Hhsno] {
209 case 0: 223 case 0:
210 recentdata = append(recentdata, ss) 224 lastdata = append(lastdata, ss)
211 case 1: 225 case 1:
212 prevhash[ss.Hhsno] = PrevSinsei{ 226 prevhash[ss.Hhsno] = PrevSinsei{
213 Biko: ss.Biko, 227 Biko: ss.Biko,
214 DrId: ss.DrId, 228 DrId: ss.DrId,
215 Dr: ss.Dr + "(" + ss.Hp + ":" + ss.Senmon + ")", 229 Dr: ss.Dr + "(" + ss.Hp + ":" + ss.Senmon + ")",
218 Kubun: ss.Kubun, 232 Kubun: ss.Kubun,
219 } 233 }
220 } 234 }
221 hhscnt[ss.Hhsno]++; 235 hhscnt[ss.Hhsno]++;
222 } 236 }
223 print_debug_log(fmt.Sprintf("recentdata: n=%d", len(recentdata))) // 237 print_debug_log(fmt.Sprintf("lastdata: n=%d", len(lastdata))) //
224 238
225 doctorhash := make(map[string]Doctor) 239 doctorhash := make(map[string]Doctor)
226 hpcnt := make(map[string]int) 240 hpcnt := make(map[string]int)
227 var hpcntsum int 241 var hpcntsum int
228 for _, ss := range recentdata { 242 for _, ss := range lastdata {
229 ss.SetPrev(prevhash[ss.Hhsno]) 243 ss.SetPrev(prevhash[ss.Hhsno])
230 if d, ok := doctorhash[ss.DrId]; !ok { 244 if d, ok := doctorhash[ss.DrId]; !ok {
231 doctorhash[ss.DrId] = Doctor{ 245 doctorhash[ss.DrId] = Doctor{
232 Id: ss.DrId, 246 Id: ss.DrId,
233 Name: ss.Dr, 247 Name: ss.Dr,
259 }) 273 })
260 274
261 irai := struct { 275 irai := struct {
262 Ymd string 276 Ymd string
263 NHhs int 277 NHhs int
264 NSinsei int 278 //NSinsei int
265 NDr int 279 NDr int
266 Doctors []Doctor 280 Doctors []Doctor
267 Hp map[string]int 281 Hp map[string]int
268 HpSum int 282 HpSum int
269 }{ 283 }{
270 Ymd: strings.Join([]string{date[0:4], date[4:6], date[6:8]}, "."), 284 Ymd: strings.Join([]string{date[0:4], date[4:6], date[6:8]}, "."),
271 NHhs: len(hhshash), 285 NHhs: len(hhshash),
272 NSinsei: len(dbdata), 286 //NSinsei: len(dbdata),
273 NDr: len(doctors), 287 NDr: len(doctors),
274 Doctors: doctors, 288 Doctors: doctors,
275 Hp: hpcnt, 289 Hp: hpcnt,
276 HpSum: hpcntsum, 290 HpSum: hpcntsum,
277 } 291 }