comparison src/kaigo/Perori/perori.go @ 42:c58172a59534

bug fix.
author pyon@macmini
date Tue, 10 Mar 2020 21:12:29 +0900
parents 34a474fb83c3
children 77dd877929f5
comparison
equal deleted inserted replaced
41:34a474fb83c3 42:c58172a59534
18 ) 18 )
19 19
20 var debug_log bool 20 var debug_log bool
21 21
22 // Constants 22 // Constants
23 const version = "0.2" 23 const version = "0.3"
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>
203 var recentdata []Sinsei 203 var recentdata []Sinsei
204 prevhash := make(map[string]PrevSinsei) 204 prevhash := make(map[string]PrevSinsei)
205 hhscnt := make(map[string]int) 205 hhscnt := make(map[string]int)
206 for _, ss := range dbdata { 206 for _, ss := range dbdata {
207 ss.Humanize() 207 ss.Humanize()
208 if n := hhscnt[ss.Hhsno]; n == 1 { 208 switch hhscnt[ss.Hhsno] {
209 case 0:
210 recentdata = append(recentdata, ss)
211 hhscnt[ss.Hhsno]++;
212 case 1:
209 prevhash[ss.Hhsno] = PrevSinsei{ 213 prevhash[ss.Hhsno] = PrevSinsei{
210 Biko: ss.Biko, 214 Biko: ss.Biko,
211 DrId: ss.DrId, 215 DrId: ss.DrId,
212 Dr: ss.Dr + "(" + ss.Hp + ":" + ss.Senmon + ")", 216 Dr: ss.Dr + "(" + ss.Hp + ":" + ss.Senmon + ")",
213 IraiYmd: ss.IraiYmd, 217 IraiYmd: ss.IraiYmd,
214 Ymd: ss.Ymd, 218 Ymd: ss.Ymd,
215 Kubun: ss.Kubun, 219 Kubun: ss.Kubun,
216 } 220 }
217 } else {
218 recentdata = append(recentdata, ss)
219 hhscnt[ss.Hhsno]++;
220 } 221 }
221 } 222 }
222 print_debug_log(fmt.Sprintf("recentdata: n=%d", len(recentdata))) // 223 print_debug_log(fmt.Sprintf("recentdata: n=%d", len(recentdata))) //
223 224
224 doctorhash := make(map[string]Doctor) 225 doctorhash := make(map[string]Doctor)
246 var doctors []Doctor 247 var doctors []Doctor
247 for _, dr := range doctorhash { 248 for _, dr := range doctorhash {
248 doctors = append(doctors, dr) 249 doctors = append(doctors, dr)
249 } 250 }
250 sort.Slice(doctors, func(i, j int) bool { 251 sort.Slice(doctors, func(i, j int) bool {
251 return doctors[i].Kana < doctors[j].Kana 252 if doctors[i].Kana != doctors[j].Kana {
253 return doctors[i].Kana < doctors[j].Kana
254 }
255 if doctors[i].Id != doctors[j].Id {
256 return doctors[i].Id < doctors[j].Id
257 }
258 return false
252 }) 259 })
253 260
254 irai := struct { 261 irai := struct {
255 Ymd string 262 Ymd string
256 NHhs int 263 NHhs int
317 return sinsei, hhshash, err 324 return sinsei, hhshash, err
318 } 325 }
319 326
320 for _, record := range records { 327 for _, record := range records {
321 ss := csv2sinsei(record) 328 ss := csv2sinsei(record)
322 if ss.IraiYmd != date { 329 if ss.IraiYmd == date {
323 continue 330 hhshash[ss.Hhsno] = true
324 } 331 }
325 hhshash[ss.Hhsno] = true 332 }
326 sinsei = append(sinsei, ss) 333
334 for _, record := range records {
335 ss := csv2sinsei(record)
336 if _, ok := hhshash[ss.Hhsno]; ok {
337 sinsei = append(sinsei, ss)
338 }
327 } 339 }
328 340
329 return sinsei, hhshash, nil 341 return sinsei, hhshash, nil
330 } 342 }
331 343