def maleNames = [ 'Andrea', 'Luca', 'Marco', 'Francesco', 'Matteo', 'Alessandro', 'Davide', 'Simone', 'Federico', 'Lorenzo', 'Mattia', 'Stefano', 'Giuseppe', 'Riccardo', 'Daniele', 'Michele', 'Alessio', 'Antonio', 'Giovanni', 'Nicola', 'Gabriele', 'Fabio', 'Alberto', 'Giacomo', 'Giulio', 'Filippo', 'Gianluca', 'Paolo', 'Roberto', 'Salvatore', 'Emanuele', 'Edoardo', 'Enrico', 'Vincenzo', 'Nicolò', 'Leonardo', 'Jacopo', 'Manuel', 'Mirko', 'Tommaso', 'Pietro', 'Luigi', 'Giorgio', 'Angelo', 'Dario', 'Valerio', 'Domenico', 'Claudio', 'Alex', 'Christian' ] def femaleNames = [ 'Giulia', 'Chiara', 'Francesca', 'Federica', 'Sara', 'Martina', 'Valentina', 'Alessia', 'Silvia', 'Elisa', 'Ilaria', 'Eleonora', 'Giorgia', 'Elena', 'Laura', 'Alice', 'Alessandra', 'Jessica', 'Arianna', 'Marta', 'Veronica', 'Roberta', 'Anna', 'Giada', 'Claudia', 'Beatrice', 'Valeria', 'Michela', 'Serena', 'Camilla', 'Irene', 'Cristina', 'Simona', 'Maria', 'Noemi', 'Stefania', 'Erika', 'Sofia', 'Lucia', 'Vanessa', 'Greta', 'Debora', 'Nicole', 'Angela', 'Paola', 'Caterina', 'Monica', 'Erica', 'Lisa', 'Gaia' ] def familyNames = [ 'Rossi', 'Russo', 'Ferrari', 'Esposito', 'Bianchi', 'Romano', 'Colombo', 'Ricci', 'Marino', 'Geco', 'Bruno', 'Gallo', 'Conti', 'De luca', 'Mancini', 'Costa', 'Giordano', 'Rizzo', 'Lombardi', 'Moretti', 'Barbieri', 'Fontana', 'Santoro', 'Mariani', 'Rinaldi', 'Caruso', 'Ferrara', 'Galli', 'Martini', 'Leone', 'Longo', 'Gentile', 'Martinelli', 'Vitale', 'Lombardo', 'Serra', 'Coppola', 'De santis', 'D\'angelo', 'Marchetti', 'Parisi', 'Villa', 'Conte', 'Ferraro', 'Ferri', 'Fabbri', 'Bianco', 'Marini', 'Grasso', 'Valentini', 'Messina', 'Sala', 'De angelis', 'Gatti', 'Pellegrini', 'Palumbo', 'Sanna', 'Farina', 'Rizzi', 'Monti', 'Cattaneo', 'Morelli', 'Amato', 'Silvestri', 'Mazza', 'Testa', 'Grassi', 'Pellegrino', 'Carbone', 'Giuliani', 'Benedetti', 'Barone', 'Rossetti', 'Caputo', 'Montanari', 'Guerra', 'Palmieri', 'Bernardi', 'Martino', 'Fiore', 'De rosa', 'Ferretti', 'Bellini', 'Basile', 'Riva', 'Donati', 'Piras', 'Vitali', 'Battaglia', 'Sartori', 'Neri', 'Costantini', 'Milani', 'Pagano', 'Ruggiero', 'Sorrentino', 'D\'amico', 'Orlando', 'Damico', 'Negri' ] def locNames = [ 'Milano', 'Padova', 'Caropepe Valguarnera', 'Rivanazzano Terme', 'Curno', 'Bozen' ] (1..10).each { i -> def sex = new Random().nextInt(2)?'M':'F' def givenName = (sex == 'M')?maleNames[new Random().nextInt(maleNames.size())]:femaleNames[new Random().nextInt(femaleNames.size())] def familyName = familyNames[new Random().nextInt(familyNames.size())] def paziente = new PatientDemographic(patId:"${i}", givenName: givenName, familyName: familyName, secondoNome: (new Random().nextInt(5) > 3)?((sex == 'M')?maleNames[new Random().nextInt(maleNames.size())]:femaleNames[new Random().nextInt(femaleNames.size())]):null, birthDate: new Date(2012-i-1900,i%12+1,i%27+1), sex: sex, mpiType: 'LOC', birthPlace: locNames[new Random().nextInt(locNames.size())], deathFlag: '', deathDate: null, deathPlace: '', legalStreet: "legal street ${i}", legalNumber: "legal number ${i}", legalOther: "legal other ${i}", legalCity: "legal city ${i}", legalProvince: "legal province ${i}", legalZip: "legal zip ${i}", legalCountryCode: "legal country code ${i}", legalCityCode: "legal city code ${i}", homeStreet: "home street ${i}", homeNumber: "home number ${i}", homeOther: "home other ${i}", homeCity: "home city ${i}", homeProvince: "home province ${i}", homeZip: "home zip ${i}", homeCountryCode: "home country code ${i}", homeCityCode: "home city code ${i}", phoneHome: "${i}${i + 1}", telexHome: "${i}${i + 1}${i + 2}", emailHome: "emailhome${i}@ciaograzie.it", phoneWork: "${i}${i + 1}${i + 2}${i + 3}", telexWork: "${i}${i + 1}${i + 2}${i + 3}${i + 4}", emailWork: "emailwork${i}@ciaograzie.it", maritalStatusCode: '', citizenshipCode: "C1T1Z13NSH1PC0D3${i}", nationalityCode: "N4T10N4L1TYC0D3${i}", teamId: '', teamCountry: '', teamExpdate: null, stpCode: '', stpStartdate:null, ssnCardId: '', fiscalCode: '', altPatId: '', primaryFacId: '', primaryFacDesc: '', primaryFacDistId: '', primaryFacDistDesc: '', mmgFiscalCode: '', mmgRegCode: '', mmgFamilyName: '', mmgGivenName: '', mmgOptinDate: '', temporary: false, visible: true) paziente.save(flush:true, failOnError:true) def pXid = patientXidCryptoService.createXid(paziente).save(flush: true, failOnError: true) }