|
20 | 20 | </elementProp> |
21 | 21 | </ThreadGroup> |
22 | 22 | <hashTree> |
23 | | - <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Generate cohort row" enabled="true"> |
| 23 | + <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Generate cohort row"> |
24 | 24 | <stringProp name="cacheKey">true</stringProp> |
25 | 25 | <stringProp name="filename"></stringProp> |
26 | 26 | <stringProp name="parameters"></stringProp> |
@@ -59,6 +59,7 @@ def CHILD_SCHOOL_URN =[] |
59 | 59 |
|
60 | 60 | def startDate = Date.parse('yyyy-MM-dd','2011-09-01') |
61 | 61 | def endDate = Date.parse('yyyy-MM-dd','2012-08-31') |
| 62 | +def newNHSNumbers = [] |
62 | 63 |
|
63 | 64 | try { |
64 | 65 | reader = new BufferedReader(new FileReader(vars.get("BaseDirectory") + vars.get("SourceCohort"))); |
@@ -105,42 +106,49 @@ writer.println("CHILD_ADDRESS_LINE_1,CHILD_ADDRESS_LINE_2,CHILD_POSTCODE,CH |
105 | 106 | rowcount=vars.get("RowCount").toInteger() |
106 | 107 |
|
107 | 108 | for(outrow=1;outrow<=rowcount;outrow++){ |
108 | | -vars.put("CHILD_ADDRESS_LINE_1",r.nextInt(100000).toString() + " " + CHILD_ADDRESS_LINE_1.get(r.nextInt(CHILD_ADDRESS_LINE_1.size())).tokenize(' ')[-2] + " " + CHILD_ADDRESS_LINE_1.get(r.nextInt(CHILD_ADDRESS_LINE_1.size())).tokenize(' ').last()) |
109 | | -vars.put("CHILD_ADDRESS_LINE_2",CHILD_ADDRESS_LINE_2.get(r.nextInt(CHILD_ADDRESS_LINE_2.size())).tokenize(' ').first() + " " + CHILD_ADDRESS_LINE_2.get(r.nextInt(CHILD_ADDRESS_LINE_2.size())).tokenize(' ').last()) |
110 | | -vars.put("CHILD_POSTCODE",CHILD_POSTCODE.get(r.nextInt(CHILD_POSTCODE.size())).tokenize(' ').first() + " " + CHILD_POSTCODE.get(r.nextInt(CHILD_POSTCODE.size())).tokenize(' ').last()) |
111 | | -vars.put("CHILD_TOWN",CHILD_TOWN.get(r.nextInt(CHILD_TOWN.size()))) |
112 | | -vars.put("CHILD_PREFERRED_GIVEN_NAME","") |
113 | | -vars.put("CHILD_DATE_OF_BIRTH",(startDate + r.nextInt(endDate-startDate)).format('yyyy-MM-dd')) |
114 | | -vars.put("CHILD_FIRST_NAME",CHILD_FIRST_NAME.get(r.nextInt(CHILD_FIRST_NAME.size()))) |
115 | | -vars.put("CHILD_LAST_NAME",CHILD_LAST_NAME.get(r.nextInt(CHILD_LAST_NAME.size()))) |
116 | | - |
117 | | -checkdigit="10" |
118 | | -while(checkdigit=="10"){ |
119 | | - nhsnumber=(r.nextInt(999999) + 999000000).toString() |
120 | | - checkdigit = (11-(nhsnumber[0].toInteger()*10 + nhsnumber[1].toInteger()*9 + nhsnumber[2].toInteger()*8 + nhsnumber[3].toInteger()*7 + nhsnumber[4].toInteger()*6 + nhsnumber[5].toInteger()*5 + nhsnumber[6].toInteger()*4 + nhsnumber[7].toInteger()*3 + nhsnumber[8].toInteger()*2) % 11).toString() |
121 | | - if(checkdigit=="11"){ |
122 | | - checkdigit="0" |
| 109 | + vars.put("CHILD_ADDRESS_LINE_1",r.nextInt(100000).toString() + " " + CHILD_ADDRESS_LINE_1.get(r.nextInt(CHILD_ADDRESS_LINE_1.size())).tokenize(' ')[-2] + " " + CHILD_ADDRESS_LINE_1.get(r.nextInt(CHILD_ADDRESS_LINE_1.size())).tokenize(' ').last()) |
| 110 | + vars.put("CHILD_ADDRESS_LINE_2",CHILD_ADDRESS_LINE_2.get(r.nextInt(CHILD_ADDRESS_LINE_2.size())).tokenize(' ').first() + " " + CHILD_ADDRESS_LINE_2.get(r.nextInt(CHILD_ADDRESS_LINE_2.size())).tokenize(' ').last()) |
| 111 | + vars.put("CHILD_POSTCODE",CHILD_POSTCODE.get(r.nextInt(CHILD_POSTCODE.size())).tokenize(' ').first() + " " + CHILD_POSTCODE.get(r.nextInt(CHILD_POSTCODE.size())).tokenize(' ').last()) |
| 112 | + vars.put("CHILD_TOWN",CHILD_TOWN.get(r.nextInt(CHILD_TOWN.size()))) |
| 113 | + vars.put("CHILD_PREFERRED_GIVEN_NAME","") |
| 114 | + vars.put("CHILD_DATE_OF_BIRTH",(startDate + r.nextInt(endDate-startDate)).format('yyyy-MM-dd')) |
| 115 | + vars.put("CHILD_FIRST_NAME",CHILD_FIRST_NAME.get(r.nextInt(CHILD_FIRST_NAME.size()))) |
| 116 | + vars.put("CHILD_LAST_NAME",CHILD_LAST_NAME.get(r.nextInt(CHILD_LAST_NAME.size()))) |
| 117 | + |
| 118 | + checkdigit="10" |
| 119 | + while(checkdigit=="10"){ |
| 120 | + nhsnumber=(r.nextInt(999999) + 999000000).toString() |
| 121 | + checkdigit = (11-(nhsnumber[0].toInteger()*10 + nhsnumber[1].toInteger()*9 + nhsnumber[2].toInteger()*8 + nhsnumber[3].toInteger()*7 + nhsnumber[4].toInteger()*6 + nhsnumber[5].toInteger()*5 + nhsnumber[6].toInteger()*4 + nhsnumber[7].toInteger()*3 + nhsnumber[8].toInteger()*2) % 11).toString() |
| 122 | + if(checkdigit=="11"){ |
| 123 | + checkdigit="0" |
| 124 | + } |
| 125 | + nhsnumber=nhsnumber + checkdigit |
| 126 | + // Check the NHS number hasn't been used before |
| 127 | + if(newNHSNumbers.contains(nhsnumber)){ |
| 128 | + log.error("found a duplicate " + nhsnumber) |
| 129 | + checkdigit="10" //force the while loop to retry |
| 130 | + } |
123 | 131 | } |
124 | | - nhsnumber=nhsnumber + checkdigit |
125 | | -} |
126 | | -vars.put("CHILD_NHS_NUMBER",nhsnumber) |
127 | | - |
128 | | -vars.put("PARENT_1_NAME",PARENT_1_NAME.get(r.nextInt(PARENT_1_NAME.size())).tokenize(' ').first() + " " + vars.get("CHILD_LAST_NAME")) |
129 | | -vars.put("PARENT_2_NAME",PARENT_2_NAME.get(r.nextInt(PARENT_2_NAME.size())).tokenize(' ').first() + " " + vars.get("CHILD_LAST_NAME")) |
130 | | -vars.put("PARENT_1_EMAIL",vars.get("PARENT_1_NAME").replaceAll(' ','.') + "@example.com") |
131 | | -vars.put("PARENT_2_EMAIL",vars.get("PARENT_2_NAME").replaceAll(' ','.') + "@example.com") |
132 | | -vars.put("PARENT_1_PHONE",PARENT_1_PHONE.get(r.nextInt(PARENT_1_PHONE.size()))) |
133 | | -vars.put("PARENT_2_PHONE",PARENT_2_PHONE.get(r.nextInt(PARENT_2_PHONE.size()))) |
134 | | -vars.put("PARENT_1_RELATIONSHIP",PARENT_1_RELATIONSHIP.get(r.nextInt(PARENT_1_RELATIONSHIP.size()))) |
135 | | -vars.put("PARENT_2_RELATIONSHIP",PARENT_2_RELATIONSHIP.get(r.nextInt(PARENT_2_RELATIONSHIP.size()))) |
136 | | - |
137 | | -vars.put("CHILD_SCHOOL_URN",vars.get("URN")) |
138 | | - |
139 | | -rowPartOne=(vars.get("CHILD_ADDRESS_LINE_1") + "," + vars.get("CHILD_ADDRESS_LINE_2") + "," + vars.get("CHILD_POSTCODE") + "," + vars.get("CHILD_TOWN") + "," + vars.get("CHILD_PREFERRED_GIVEN_NAME") + "," + vars.get("CHILD_DATE_OF_BIRTH") + "," + vars.get("CHILD_FIRST_NAME") + "," + vars.get("CHILD_LAST_NAME") + "," + vars.get("CHILD_NHS_NUMBER") + ",") |
140 | | -rowPartTwo=(vars.get("PARENT_1_EMAIL") + "," + vars.get("PARENT_1_NAME") + "," + vars.get("PARENT_1_PHONE") + "," + vars.get("PARENT_1_RELATIONSHIP") + "," + vars.get("PARENT_2_EMAIL") + "," + vars.get("PARENT_2_NAME") + "," + vars.get("PARENT_2_PHONE") + "," + vars.get("PARENT_2_RELATIONSHIP") + "," + vars.get("CHILD_SCHOOL_URN")) |
141 | | - |
142 | | -writer.println(rowPartOne + rowPartTwo) |
143 | | -log.info(vars.get("CHILD_FIRST_NAME") + "," + vars.get("CHILD_LAST_NAME")) |
| 132 | + //Add the unique nhs number to the array |
| 133 | + newNHSNumbers.add(nhsnumber) |
| 134 | + vars.put("CHILD_NHS_NUMBER",nhsnumber) |
| 135 | + |
| 136 | + vars.put("PARENT_1_NAME",PARENT_1_NAME.get(r.nextInt(PARENT_1_NAME.size())).tokenize(' ').first() + " " + vars.get("CHILD_LAST_NAME")) |
| 137 | + vars.put("PARENT_2_NAME",PARENT_2_NAME.get(r.nextInt(PARENT_2_NAME.size())).tokenize(' ').first() + " " + vars.get("CHILD_LAST_NAME")) |
| 138 | + vars.put("PARENT_1_EMAIL",vars.get("PARENT_1_NAME").replaceAll(' ','.') + "@example.com") |
| 139 | + vars.put("PARENT_2_EMAIL",vars.get("PARENT_2_NAME").replaceAll(' ','.') + "@example.com") |
| 140 | + vars.put("PARENT_1_PHONE",PARENT_1_PHONE.get(r.nextInt(PARENT_1_PHONE.size()))) |
| 141 | + vars.put("PARENT_2_PHONE",PARENT_2_PHONE.get(r.nextInt(PARENT_2_PHONE.size()))) |
| 142 | + vars.put("PARENT_1_RELATIONSHIP",PARENT_1_RELATIONSHIP.get(r.nextInt(PARENT_1_RELATIONSHIP.size()))) |
| 143 | + vars.put("PARENT_2_RELATIONSHIP",PARENT_2_RELATIONSHIP.get(r.nextInt(PARENT_2_RELATIONSHIP.size()))) |
| 144 | + |
| 145 | + vars.put("CHILD_SCHOOL_URN",vars.get("URN")) |
| 146 | + |
| 147 | + rowPartOne=(vars.get("CHILD_ADDRESS_LINE_1") + "," + vars.get("CHILD_ADDRESS_LINE_2") + "," + vars.get("CHILD_POSTCODE") + "," + vars.get("CHILD_TOWN") + "," + vars.get("CHILD_PREFERRED_GIVEN_NAME") + "," + vars.get("CHILD_DATE_OF_BIRTH") + "," + vars.get("CHILD_FIRST_NAME") + "," + vars.get("CHILD_LAST_NAME") + "," + vars.get("CHILD_NHS_NUMBER") + ",") |
| 148 | + rowPartTwo=(vars.get("PARENT_1_EMAIL") + "," + vars.get("PARENT_1_NAME") + "," + vars.get("PARENT_1_PHONE") + "," + vars.get("PARENT_1_RELATIONSHIP") + "," + vars.get("PARENT_2_EMAIL") + "," + vars.get("PARENT_2_NAME") + "," + vars.get("PARENT_2_PHONE") + "," + vars.get("PARENT_2_RELATIONSHIP") + "," + vars.get("CHILD_SCHOOL_URN")) |
| 149 | + |
| 150 | + writer.println(rowPartOne + rowPartTwo) |
| 151 | +// log.info(vars.get("CHILD_FIRST_NAME") + "," + vars.get("CHILD_LAST_NAME")) |
144 | 152 | } |
145 | 153 |
|
146 | 154 | writer.flush(); |
|
0 commit comments