Skip to content

Commit e54c4d9

Browse files
committed
Parse successfully D99B, ignore EDMDI files
1 parent 2d64fe9 commit e54c4d9

File tree

5 files changed

+30
-4
lines changed

5 files changed

+30
-4
lines changed

EDCDParser.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ private function process ($filePath) {
2828
$fileLines = preg_replace('/[\xC4]/', '-', $fileLines);
2929

3030
$edcdArr = preg_split('/[-]{70}/', $fileLines);
31-
31+
3232
unset($edcdArr[0]);
3333

3434
foreach ($edcdArr as $edcdElm) {
@@ -50,7 +50,7 @@ private function process ($filePath) {
5050

5151
// segment name, change indicator
5252
if ($segmentCode === '') {
53-
$result = preg_match("/[\s]{4}.{1}[\s]{2}([A-Z0-9]{4})\s+([A-Z\s]+)/", $row, $codeArr);
53+
$result = preg_match("/[\s]{4}.{1,3}[\s]{0,2}([A-Z0-9]{4})\s+([A-Z\s]+)/", $row, $codeArr);
5454
$segmentCode = $codeArr[1];
5555
$segmentTitle = $codeArr[2];
5656
$i++;

EDEDParser.php

+12
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,18 @@ private function process ($filePath) {
5858

5959
if ($elementCode === '') {
6060
$result = preg_match("/^(.{5})([0-9\s]{6})(.{56})\[([A-Z]?)\]/", $row, $codeArr);
61+
if(!isset($codeArr[1])) {
62+
$result = preg_match("/^(.{5})([0-9\s]{6})(.*)/", $row, $codeArr);
63+
$elementStatus = trim($codeArr[1]);
64+
$elementCode = trim($codeArr[2]);
65+
$elementTitle = trim($codeArr[3]);
66+
$i++;
67+
$result = preg_match("/^[\s]{11}(.*)\[([A-Z]?)\]/", $elmArr[$i], $codeArr2);
68+
$elementTitle .= " ".trim($codeArr2[1]);
69+
$elementUse = $codeArr2[2];
70+
$i++;
71+
continue;
72+
}
6173
$elementStatus = trim($codeArr[1]);
6274
$elementCode = trim($codeArr[2]);
6375
$elementTitle = trim($codeArr[3]);

EDSDParser.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ private function process ($filePath) {
5151
// segment name
5252
if ($segmentCode === '') {
5353
$result = preg_match("/[\s]{4}.{1,3}[\s]{0,2}([A-Z]{3})\s+(.+)/", $row, $codeArr);
54-
if(!isset($codeArr[1])) {var_dump($row);die();}
54+
if(!isset($codeArr[1])) {var_dump($row);}
5555
$segmentCode = $codeArr[1];
5656
$segmentTitle = $codeArr[2];
5757
$i++;

UNCLParser.php

+12
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,18 @@ private function process ($filePath) {
5858

5959
if ($elementCode === '') {
6060
$result = preg_match("/^(.{5})([0-9\s]{6})(.{56})\[([A-Z]?)\]/", $row, $codeArr);
61+
if(!isset($codeArr[1])) {
62+
$result = preg_match("/^(.{5})([0-9\s]{6})(.*)/", $row, $codeArr);
63+
$elementStatus = trim($codeArr[1]);
64+
$elementCode = trim($codeArr[2]);
65+
$elementTitle = trim($codeArr[3]);
66+
$i++;
67+
$result = preg_match("/^[\s]{11}(.*)\[([A-Z]?)\]/", $elmArr[$i], $codeArr2);
68+
$elementTitle .= " ".trim($codeArr2[1]);
69+
$elementUse = $codeArr2[2];
70+
$i++;
71+
continue;
72+
}
6173
$elementStatus = trim($codeArr[1]);
6274
$elementCode = trim($codeArr[2]);
6375
$elementTitle = trim($codeArr[3]);

runner.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
} else {
4949
echo 'failed edcd';
5050
}
51-
5251
$p = new EDCDParser($edition."/EDCD.".$y);
5352
file_put_contents($edition."/composite_data_elements.xml", $p->getXML());
5453
}
@@ -117,6 +116,9 @@
117116
continue;
118117
}
119118
$name = substr($file, 0, 6);
119+
if ($name == "EDMDI1" || $name == "EDMDI2") {
120+
continue;
121+
}
120122
$p = new EDMDParser($edition."/EDMD/".$file);
121123
$data = $p->getXML();
122124
if(!file_exists($edition."/messages")) {

0 commit comments

Comments
 (0)