Mercurial > mercurial > hgweb_golang.cgi
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 } |
