Commit d6839add0043034e36e7e1f995581388deadd439
1 parent
86398ac2
Exists in
master
and in
67 other branches
FIX: Fixed problem open promed-0022
Showing
2 changed files
with
275 additions
and
56 deletions
Show diff stats
invesalius/reader/dicom.py
| ... | ... | @@ -296,7 +296,11 @@ class Parser(): |
| 296 | 296 | DICOM standard tag (0x0008,0x0022) was used. |
| 297 | 297 | """ |
| 298 | 298 | # TODO: internationalize data |
| 299 | - date = self.data_image['0008']['0022'] | |
| 299 | + try: | |
| 300 | + date = self.data_image['0008']['0022'] | |
| 301 | + except(KeyError): | |
| 302 | + return "" | |
| 303 | + | |
| 300 | 304 | if (date) and (date != ''): |
| 301 | 305 | return self.__format_date(str(date)) |
| 302 | 306 | return "" |
| ... | ... | @@ -459,7 +463,11 @@ class Parser(): |
| 459 | 463 | |
| 460 | 464 | DICOM standard tag (0x7fe0, 0x0010) was used. |
| 461 | 465 | """ |
| 462 | - data = self.data_image['7fe0']['0010'] | |
| 466 | + try: | |
| 467 | + data = self.data_image['7fe0']['0010'] | |
| 468 | + except(KeyError): | |
| 469 | + return "" | |
| 470 | + | |
| 463 | 471 | if (data): |
| 464 | 472 | return int(data.split(':')[1]) |
| 465 | 473 | return "" |
| ... | ... | @@ -473,7 +481,11 @@ class Parser(): |
| 473 | 481 | |
| 474 | 482 | DICOM standard tag (0x0020, 0x0011) was used. |
| 475 | 483 | """ |
| 476 | - data = self.data_image['0020']['0011'] | |
| 484 | + try: | |
| 485 | + data = self.data_image['0020']['0011'] | |
| 486 | + except(KeyError): | |
| 487 | + return "" | |
| 488 | + | |
| 477 | 489 | if (data) and (data != '""') and (data != "None"): |
| 478 | 490 | return int(data) |
| 479 | 491 | return "" |
| ... | ... | @@ -489,7 +501,10 @@ class Parser(): |
| 489 | 501 | |
| 490 | 502 | DICOM standard tag (0x0028, 0x0030) was used. |
| 491 | 503 | """ |
| 492 | - data = self.data_image['0028']['0030'] | |
| 504 | + try: | |
| 505 | + data = self.data_image['0028']['0030'] | |
| 506 | + except(KeyError): | |
| 507 | + return "" | |
| 493 | 508 | if (data): |
| 494 | 509 | return [eval(value) for value in data.split('\\')] |
| 495 | 510 | return "" |
| ... | ... | @@ -501,7 +516,11 @@ class Parser(): |
| 501 | 516 | |
| 502 | 517 | DICOM standard tag (0x0010, 0x1030) was used. |
| 503 | 518 | """ |
| 504 | - data = self.data_image['0010']['1030'] | |
| 519 | + try: | |
| 520 | + data = self.data_image['0010']['1030'] | |
| 521 | + except(KeyError): | |
| 522 | + return "" | |
| 523 | + | |
| 505 | 524 | if (data): |
| 506 | 525 | return float(data) |
| 507 | 526 | return "" |
| ... | ... | @@ -513,7 +532,11 @@ class Parser(): |
| 513 | 532 | |
| 514 | 533 | DICOM standard tag (0x0010, 0x1030) was used. |
| 515 | 534 | """ |
| 516 | - data = self.data_image['0010']['1020'] | |
| 535 | + try: | |
| 536 | + data = self.data_image['0010']['1020'] | |
| 537 | + except(KeyError): | |
| 538 | + return "" | |
| 539 | + | |
| 517 | 540 | if (data): |
| 518 | 541 | return float(data) |
| 519 | 542 | return "" |
| ... | ... | @@ -524,7 +547,10 @@ class Parser(): |
| 524 | 547 | |
| 525 | 548 | DICOM standard tag (0x0010, 0x1040) was used. |
| 526 | 549 | """ |
| 527 | - data = self.data_image['0010']['1040'] | |
| 550 | + try: | |
| 551 | + data = self.data_image['0010']['1040'] | |
| 552 | + except(KeyError): | |
| 553 | + return "" | |
| 528 | 554 | if (data): |
| 529 | 555 | return data |
| 530 | 556 | return "" |
| ... | ... | @@ -536,7 +562,10 @@ class Parser(): |
| 536 | 562 | |
| 537 | 563 | DICOM standard tag (0x0010, 0x1080) was used. |
| 538 | 564 | """ |
| 539 | - data = self.data_image['0010']['1080'] | |
| 565 | + try: | |
| 566 | + data = self.data_image['0010']['1080'] | |
| 567 | + except(KeyError): | |
| 568 | + return "" | |
| 540 | 569 | if (data): |
| 541 | 570 | return data |
| 542 | 571 | return "" |
| ... | ... | @@ -550,7 +579,10 @@ class Parser(): |
| 550 | 579 | |
| 551 | 580 | DICOM standard tag (0x0010, 0x1081) was used. |
| 552 | 581 | """ |
| 553 | - data = self.data_image['0010']['1081'] | |
| 582 | + try: | |
| 583 | + data = self.data_image['0010']['1081'] | |
| 584 | + except(KeyError): | |
| 585 | + return "" | |
| 554 | 586 | if (data): |
| 555 | 587 | return data |
| 556 | 588 | return "" |
| ... | ... | @@ -563,7 +595,11 @@ class Parser(): |
| 563 | 595 | |
| 564 | 596 | DICOM standard tag (0x0010, 0x2150) was used. |
| 565 | 597 | """ |
| 566 | - data = self.data_image['0010']['2150'] | |
| 598 | + try: | |
| 599 | + data = self.data_image['0010']['2150'] | |
| 600 | + except(KeyError): | |
| 601 | + return "" | |
| 602 | + | |
| 567 | 603 | if (data): |
| 568 | 604 | return data |
| 569 | 605 | return "" |
| ... | ... | @@ -576,7 +612,11 @@ class Parser(): |
| 576 | 612 | |
| 577 | 613 | DICOM standard tag (0x0010, 0x2152) was used. |
| 578 | 614 | """ |
| 579 | - data = self.data_image['0010']['2152'] | |
| 615 | + try: | |
| 616 | + data = self.data_image['0010']['2152'] | |
| 617 | + except(KeyError): | |
| 618 | + return "" | |
| 619 | + | |
| 580 | 620 | if (data): |
| 581 | 621 | return data |
| 582 | 622 | return "" |
| ... | ... | @@ -588,7 +628,11 @@ class Parser(): |
| 588 | 628 | |
| 589 | 629 | DICOM standard tag (0x0010, 0x2154) was used. |
| 590 | 630 | """ |
| 591 | - data = self.data_image['0010']['2154'] | |
| 631 | + try: | |
| 632 | + data = self.data_image['0010']['2154'] | |
| 633 | + except(KeyError): | |
| 634 | + return "" | |
| 635 | + | |
| 592 | 636 | if (data): |
| 593 | 637 | return data |
| 594 | 638 | return "" |
| ... | ... | @@ -601,7 +645,11 @@ class Parser(): |
| 601 | 645 | |
| 602 | 646 | DICOM standard tag (0x0010, 0x2297) was used. |
| 603 | 647 | """ |
| 604 | - data = self.data_image['0010']['2297'] | |
| 648 | + try: | |
| 649 | + data = self.data_image['0010']['2297'] | |
| 650 | + except(KeyError): | |
| 651 | + return "" | |
| 652 | + | |
| 605 | 653 | if (data): |
| 606 | 654 | return data |
| 607 | 655 | return "" |
| ... | ... | @@ -614,7 +662,11 @@ class Parser(): |
| 614 | 662 | |
| 615 | 663 | DICOM standard tag (0x0010, 0x2298) was used. |
| 616 | 664 | """ |
| 617 | - data = self.data_image['0010']['2298'] | |
| 665 | + try: | |
| 666 | + data = self.data_image['0010']['2298'] | |
| 667 | + except(KeyError): | |
| 668 | + return "" | |
| 669 | + | |
| 618 | 670 | if (data): |
| 619 | 671 | return data |
| 620 | 672 | return "" |
| ... | ... | @@ -627,7 +679,11 @@ class Parser(): |
| 627 | 679 | |
| 628 | 680 | DICOM standard tag (0x0010, 0x2299) was used. |
| 629 | 681 | """ |
| 630 | - data = self.data_image['0010']['2299'] | |
| 682 | + try: | |
| 683 | + data = self.data_image['0010']['2299'] | |
| 684 | + except(KeyError): | |
| 685 | + return "" | |
| 686 | + | |
| 631 | 687 | if (data): |
| 632 | 688 | return data |
| 633 | 689 | return "" |
| ... | ... | @@ -640,7 +696,11 @@ class Parser(): |
| 640 | 696 | |
| 641 | 697 | DICOM standard tag (0x0010, 0x2000) was used. |
| 642 | 698 | """ |
| 643 | - data = self.data_image['0010']['2000'] | |
| 699 | + try: | |
| 700 | + data = self.data_image['0010']['2000'] | |
| 701 | + except(KeyError): | |
| 702 | + return "" | |
| 703 | + | |
| 644 | 704 | if (data): |
| 645 | 705 | return data |
| 646 | 706 | return "" |
| ... | ... | @@ -653,7 +713,11 @@ class Parser(): |
| 653 | 713 | |
| 654 | 714 | DICOM standard tag (0x0008, 0x2110) was used. |
| 655 | 715 | """ |
| 656 | - data = self.data_image['0008']['2110'] | |
| 716 | + try: | |
| 717 | + data = self.data_image['0008']['2110'] | |
| 718 | + except(KeyError): | |
| 719 | + return "" | |
| 720 | + | |
| 657 | 721 | if (data): |
| 658 | 722 | return data |
| 659 | 723 | return "" |
| ... | ... | @@ -667,7 +731,11 @@ class Parser(): |
| 667 | 731 | |
| 668 | 732 | DICOM standard tag (0x0008, 0x0090) was used. |
| 669 | 733 | """ |
| 670 | - data = self.data_image['0008']['0090'] | |
| 734 | + try: | |
| 735 | + data = self.data_image['0008']['0090'] | |
| 736 | + except(KeyError): | |
| 737 | + return "" | |
| 738 | + | |
| 671 | 739 | if data == "None": |
| 672 | 740 | return "" |
| 673 | 741 | if (data): |
| ... | ... | @@ -682,7 +750,11 @@ class Parser(): |
| 682 | 750 | |
| 683 | 751 | DICOM standard tag (0x0008, 0x0092) was used. |
| 684 | 752 | """ |
| 685 | - data = self.data_image['0008']['0092'] | |
| 753 | + try: | |
| 754 | + data = self.data_image['0008']['0092'] | |
| 755 | + except(KeyError): | |
| 756 | + return "" | |
| 757 | + | |
| 686 | 758 | if (data): |
| 687 | 759 | return data |
| 688 | 760 | return "" |
| ... | ... | @@ -694,7 +766,11 @@ class Parser(): |
| 694 | 766 | |
| 695 | 767 | DICOM standard tag (0x0008, 0x0094) was used. |
| 696 | 768 | """ |
| 697 | - data = self.data_image['0008']['0094'] | |
| 769 | + try: | |
| 770 | + data = self.data_image['0008']['0094'] | |
| 771 | + except(KeyError): | |
| 772 | + return "" | |
| 773 | + | |
| 698 | 774 | if (data): |
| 699 | 775 | return data |
| 700 | 776 | return "" |
| ... | ... | @@ -706,7 +782,11 @@ class Parser(): |
| 706 | 782 | |
| 707 | 783 | DICOM standard tag (0x0018, 0x1030) was used. |
| 708 | 784 | """ |
| 709 | - data = self.data_image['0018']['1030'] | |
| 785 | + try: | |
| 786 | + data = self.data_image['0018']['1030'] | |
| 787 | + except(KeyError): | |
| 788 | + return None | |
| 789 | + | |
| 710 | 790 | if (data): |
| 711 | 791 | return data |
| 712 | 792 | return None |
| ... | ... | @@ -740,7 +820,11 @@ class Parser(): |
| 740 | 820 | |
| 741 | 821 | Critical DICOM tag (0x0008, 0x0016). Cannot be edited. |
| 742 | 822 | """ |
| 743 | - data = self.data_image['0008']['0016'] | |
| 823 | + try: | |
| 824 | + data = self.data_image['0008']['0016'] | |
| 825 | + except(KeyError): | |
| 826 | + return "" | |
| 827 | + | |
| 744 | 828 | if (data): |
| 745 | 829 | return data |
| 746 | 830 | return "" |
| ... | ... | @@ -753,7 +837,11 @@ class Parser(): |
| 753 | 837 | |
| 754 | 838 | Critical DICOM tag (0x0008, 0x0018). Cannot be edited. |
| 755 | 839 | """ |
| 756 | - data = self.data_image['0008']['0018'] | |
| 840 | + try: | |
| 841 | + data = self.data_image['0008']['0018'] | |
| 842 | + except(KeyError): | |
| 843 | + return "" | |
| 844 | + | |
| 757 | 845 | if (data): |
| 758 | 846 | return data |
| 759 | 847 | return "" |
| ... | ... | @@ -764,7 +852,11 @@ class Parser(): |
| 764 | 852 | |
| 765 | 853 | DICOM tag (0x0008, 0x1030). Cannot be edited. |
| 766 | 854 | """ |
| 767 | - data = self.data_image['0008']['1030'] | |
| 855 | + try: | |
| 856 | + data = self.data_image['0008']['1030'] | |
| 857 | + except(KeyError): | |
| 858 | + return "" | |
| 859 | + | |
| 768 | 860 | if (data): |
| 769 | 861 | return data |
| 770 | 862 | return "" |
| ... | ... | @@ -777,7 +869,11 @@ class Parser(): |
| 777 | 869 | |
| 778 | 870 | Critical DICOM Tag (0x0020,0x000D). Cannot be edited. |
| 779 | 871 | """ |
| 780 | - data = self.data_image['0020']['000D'] | |
| 872 | + try: | |
| 873 | + data = self.data_image['0020']['000D'] | |
| 874 | + except(KeyError): | |
| 875 | + return "" | |
| 876 | + | |
| 781 | 877 | if (data): |
| 782 | 878 | return data |
| 783 | 879 | return "" |
| ... | ... | @@ -793,7 +889,11 @@ class Parser(): |
| 793 | 889 | |
| 794 | 890 | Critical DICOM tag (0x0020,0x0037). Cannot be edited. |
| 795 | 891 | """ |
| 796 | - data = self.data_image['0020']['0037'] | |
| 892 | + try: | |
| 893 | + data = self.data_image['0020']['0037'] | |
| 894 | + except(KeyError): | |
| 895 | + return [1.0, 0.0, 0.0, 0.0, 1.0, 0.0] | |
| 896 | + | |
| 797 | 897 | if (data): |
| 798 | 898 | return [float(value) for value in data.split('\\')] |
| 799 | 899 | return [1.0, 0.0, 0.0, 0.0, 1.0, 0.0] |
| ... | ... | @@ -807,7 +907,11 @@ class Parser(): |
| 807 | 907 | |
| 808 | 908 | Critical DICOM tag (0x0020,0x0037). Cannot be edited. |
| 809 | 909 | """ |
| 810 | - data = self.data_image['0020']['0037'] | |
| 910 | + try: | |
| 911 | + data = self.data_image['0020']['0037'] | |
| 912 | + except(KeyError): | |
| 913 | + return [0.0, 1.0, 0.0] | |
| 914 | + | |
| 811 | 915 | if (data): |
| 812 | 916 | return [float(value) for value in data.split('\\')[3:6]] |
| 813 | 917 | return [0.0, 1.0, 0.0] |
| ... | ... | @@ -821,7 +925,11 @@ class Parser(): |
| 821 | 925 | |
| 822 | 926 | Critical DICOM tag (0x0020,0x0037). Cannot be edited. |
| 823 | 927 | """ |
| 824 | - data = self.data_image['0020']['0037'] | |
| 928 | + try: | |
| 929 | + data = self.data_image['0020']['0037'] | |
| 930 | + except(KeyError): | |
| 931 | + return [1.0, 0.0, 0.0] | |
| 932 | + | |
| 825 | 933 | if (data): |
| 826 | 934 | return [float(value) for value in data.split('\\')[0:3]] |
| 827 | 935 | return [1.0, 0.0, 0.0] |
| ... | ... | @@ -833,7 +941,11 @@ class Parser(): |
| 833 | 941 | |
| 834 | 942 | Critical DICOM tag (0x0020,0x0052). Cannot be edited. |
| 835 | 943 | """ |
| 836 | - data = self.data_image['0020']['0052'] | |
| 944 | + try: | |
| 945 | + data = self.data_image['0020']['0052'] | |
| 946 | + except(KeyError): | |
| 947 | + return "" | |
| 948 | + | |
| 837 | 949 | if (data): |
| 838 | 950 | return data |
| 839 | 951 | return "" |
| ... | ... | @@ -933,7 +1045,11 @@ class Parser(): |
| 933 | 1045 | |
| 934 | 1046 | Critical DICOM tag (0x0018, 0x0020). Cannot be edited. |
| 935 | 1047 | """ |
| 936 | - data = self.data_image['0018']['0020'] | |
| 1048 | + try: | |
| 1049 | + data = self.data_image['0018']['0020'] | |
| 1050 | + except(KeyError): | |
| 1051 | + return "" | |
| 1052 | + | |
| 937 | 1053 | if (data): |
| 938 | 1054 | return data |
| 939 | 1055 | return "" |
| ... | ... | @@ -945,7 +1061,11 @@ class Parser(): |
| 945 | 1061 | |
| 946 | 1062 | DICOM standard tag (0x0008, 0x0080) was used. |
| 947 | 1063 | """ |
| 948 | - data = self.data_image['0008']['0080'] | |
| 1064 | + try: | |
| 1065 | + data = self.data_image['0008']['0080'] | |
| 1066 | + except(KeyError): | |
| 1067 | + return "" | |
| 1068 | + | |
| 949 | 1069 | if (data): |
| 950 | 1070 | return data |
| 951 | 1071 | return "" |
| ... | ... | @@ -959,7 +1079,11 @@ class Parser(): |
| 959 | 1079 | |
| 960 | 1080 | DICOM standard tag (0x0008, 0x0081) was used. |
| 961 | 1081 | """ |
| 962 | - data = self.data_image['0008']['0081'] | |
| 1082 | + try: | |
| 1083 | + data = self.data_image['0008']['0081'] | |
| 1084 | + except(KeyError): | |
| 1085 | + return "" | |
| 1086 | + | |
| 963 | 1087 | if (data): |
| 964 | 1088 | return data |
| 965 | 1089 | return "" |
| ... | ... | @@ -972,7 +1096,11 @@ class Parser(): |
| 972 | 1096 | |
| 973 | 1097 | Critical DICOM tag (0x0020, 0x000D). Cannot be edited. |
| 974 | 1098 | """ |
| 975 | - data = self.data_image['0020']['000D'] | |
| 1099 | + try: | |
| 1100 | + data = self.data_image['0020']['000D'] | |
| 1101 | + except(KeyError): | |
| 1102 | + return "" | |
| 1103 | + | |
| 976 | 1104 | if (data): |
| 977 | 1105 | return data |
| 978 | 1106 | return "" |
| ... | ... | @@ -984,7 +1112,11 @@ class Parser(): |
| 984 | 1112 | |
| 985 | 1113 | DICOM standard tag (0x0010,0x2180) was used. |
| 986 | 1114 | """ |
| 987 | - data = self.data_image['0010']['2180'] | |
| 1115 | + try: | |
| 1116 | + data = self.data_image['0010']['2180'] | |
| 1117 | + except(KeyError): | |
| 1118 | + return "" | |
| 1119 | + | |
| 988 | 1120 | if (data): |
| 989 | 1121 | return data |
| 990 | 1122 | return "" |
| ... | ... | @@ -1018,7 +1150,11 @@ class Parser(): |
| 1018 | 1150 | #sf = gdcm.StringFilter() |
| 1019 | 1151 | #sf.SetFile(self.gdcm_reader.GetFile()) |
| 1020 | 1152 | #res = sf.ToStringPair(tag) |
| 1021 | - data = self.data_image['0028']['0100'] | |
| 1153 | + try: | |
| 1154 | + data = self.data_image['0028']['0100'] | |
| 1155 | + except(KeyError): | |
| 1156 | + return "" | |
| 1157 | + | |
| 1022 | 1158 | if (data): |
| 1023 | 1159 | return int(data) |
| 1024 | 1160 | return "" |
| ... | ... | @@ -1033,7 +1169,11 @@ class Parser(): |
| 1033 | 1169 | DICOM standard tag (0x0010,0x0030) was used. |
| 1034 | 1170 | """ |
| 1035 | 1171 | # TODO: internationalize data |
| 1036 | - data = self.data_image['0010']['0030'] | |
| 1172 | + try: | |
| 1173 | + data = self.data_image['0010']['0030'] | |
| 1174 | + except(KeyError): | |
| 1175 | + return "" | |
| 1176 | + | |
| 1037 | 1177 | if (data) and (data != 'None'): |
| 1038 | 1178 | return self.__format_date(str(data)) |
| 1039 | 1179 | return "" |
| ... | ... | @@ -1046,7 +1186,11 @@ class Parser(): |
| 1046 | 1186 | |
| 1047 | 1187 | DICOM standard tag (0x0020,0x0010) was used. |
| 1048 | 1188 | """ |
| 1049 | - data = self.data_image['0020']['0010'] | |
| 1189 | + try: | |
| 1190 | + data = self.data_image['0020']['0010'] | |
| 1191 | + except(KeyError): | |
| 1192 | + return "" | |
| 1193 | + | |
| 1050 | 1194 | if (data): |
| 1051 | 1195 | return str(data) |
| 1052 | 1196 | return "" |
| ... | ... | @@ -1059,7 +1203,11 @@ class Parser(): |
| 1059 | 1203 | |
| 1060 | 1204 | DICOM standard tag (0x0018,0x1120) was used. |
| 1061 | 1205 | """ |
| 1062 | - data = self.data_image['0018']['1120'] | |
| 1206 | + try: | |
| 1207 | + data = self.data_image['0018']['1120'] | |
| 1208 | + except(KeyError): | |
| 1209 | + return 0.0 | |
| 1210 | + | |
| 1063 | 1211 | if (data): |
| 1064 | 1212 | return float(str(data)) |
| 1065 | 1213 | return 0.0 |
| ... | ... | @@ -1074,7 +1222,11 @@ class Parser(): |
| 1074 | 1222 | |
| 1075 | 1223 | DICOM standard tag (0x0010,0x0040) was used. |
| 1076 | 1224 | """ |
| 1077 | - data = self.data_image['0010']['0040'] | |
| 1225 | + try: | |
| 1226 | + data = self.data_image['0010']['0040'] | |
| 1227 | + except(KeyError): | |
| 1228 | + return "" | |
| 1229 | + | |
| 1078 | 1230 | if (data): |
| 1079 | 1231 | return str(data) |
| 1080 | 1232 | return "" |
| ... | ... | @@ -1087,7 +1239,11 @@ class Parser(): |
| 1087 | 1239 | |
| 1088 | 1240 | DICOM standard tag (0x0010, 0x1010) was used. |
| 1089 | 1241 | """ |
| 1090 | - data = self.data_image['0010']['0010'] | |
| 1242 | + try: | |
| 1243 | + data = self.data_image['0010']['0010'] | |
| 1244 | + except(KeyError): | |
| 1245 | + return "" | |
| 1246 | + | |
| 1091 | 1247 | if (data): |
| 1092 | 1248 | age = (data.split('Y')[0]) |
| 1093 | 1249 | try: |
| ... | ... | @@ -1103,7 +1259,11 @@ class Parser(): |
| 1103 | 1259 | |
| 1104 | 1260 | DICOM standard tag (0x0010,0x0010) was used. |
| 1105 | 1261 | """ |
| 1106 | - data = self.data_image['0010']['0010'] | |
| 1262 | + try: | |
| 1263 | + data = self.data_image['0010']['0010'] | |
| 1264 | + except(KeyError): | |
| 1265 | + return "" | |
| 1266 | + | |
| 1107 | 1267 | if (data): |
| 1108 | 1268 | name = data.strip() |
| 1109 | 1269 | encoding = self.GetEncoding() |
| ... | ... | @@ -1119,7 +1279,11 @@ class Parser(): |
| 1119 | 1279 | |
| 1120 | 1280 | DICOM standard tag (0x0010,0x0020) was used. |
| 1121 | 1281 | """ |
| 1122 | - data = self.data_image['0010']['0020'] | |
| 1282 | + try: | |
| 1283 | + data = self.data_image['0010']['0020'] | |
| 1284 | + except(KeyError): | |
| 1285 | + return "" | |
| 1286 | + | |
| 1123 | 1287 | if (data): |
| 1124 | 1288 | encoding = self.GetEncoding() |
| 1125 | 1289 | # Returns a unicode decoded in the own dicom encoding |
| ... | ... | @@ -1135,7 +1299,11 @@ class Parser(): |
| 1135 | 1299 | |
| 1136 | 1300 | DICOM standard tag (0x0018,0x1151) was used. |
| 1137 | 1301 | """ |
| 1138 | - data = self.data_image['0018']['1151'] | |
| 1302 | + try: | |
| 1303 | + data = self.data_image['0018']['1151'] | |
| 1304 | + except(KeyError): | |
| 1305 | + return "" | |
| 1306 | + | |
| 1139 | 1307 | if (data): |
| 1140 | 1308 | return data |
| 1141 | 1309 | return "" |
| ... | ... | @@ -1148,7 +1316,11 @@ class Parser(): |
| 1148 | 1316 | |
| 1149 | 1317 | DICOM standard tag (0x0018, 0x1152) was used. |
| 1150 | 1318 | """ |
| 1151 | - data = self.data_image['0018']['1152'] | |
| 1319 | + try: | |
| 1320 | + data = self.data_image['0018']['1152'] | |
| 1321 | + except(KeyError): | |
| 1322 | + return "" | |
| 1323 | + | |
| 1152 | 1324 | if (data): |
| 1153 | 1325 | return float(data) |
| 1154 | 1326 | return "" |
| ... | ... | @@ -1161,7 +1333,11 @@ class Parser(): |
| 1161 | 1333 | |
| 1162 | 1334 | DICOM standard tag (0x0018,0x0060) was used. |
| 1163 | 1335 | """ |
| 1164 | - data = self.data_image['0018']['0060'] | |
| 1336 | + try: | |
| 1337 | + data = self.data_image['0018']['0060'] | |
| 1338 | + except(KeyError): | |
| 1339 | + return "" | |
| 1340 | + | |
| 1165 | 1341 | if (data): |
| 1166 | 1342 | return float(data) |
| 1167 | 1343 | return "" |
| ... | ... | @@ -1174,7 +1350,10 @@ class Parser(): |
| 1174 | 1350 | |
| 1175 | 1351 | DICOM standard tag (0x0018,0x0050) was used. |
| 1176 | 1352 | """ |
| 1177 | - data = self.data_image['0018']['0050'] | |
| 1353 | + try: | |
| 1354 | + data = self.data_image['0018']['0050'] | |
| 1355 | + except(KeyError): | |
| 1356 | + return 0 | |
| 1178 | 1357 | if (data): |
| 1179 | 1358 | return float(data) |
| 1180 | 1359 | return 0 |
| ... | ... | @@ -1189,7 +1368,11 @@ class Parser(): |
| 1189 | 1368 | |
| 1190 | 1369 | DICOM standard tag (0x0018,0x1210) was used. |
| 1191 | 1370 | """ |
| 1192 | - data = self.data_image['0018']['1210'] | |
| 1371 | + try: | |
| 1372 | + data = self.data_image['0018']['1210'] | |
| 1373 | + except(KeyError): | |
| 1374 | + return "" | |
| 1375 | + | |
| 1193 | 1376 | if (data): |
| 1194 | 1377 | return data |
| 1195 | 1378 | return "" |
| ... | ... | @@ -1202,7 +1385,11 @@ class Parser(): |
| 1202 | 1385 | |
| 1203 | 1386 | DICOM standard tag (0x0008,0x0080) was used. |
| 1204 | 1387 | """ |
| 1205 | - data = self.data_image['0008']['0080'] | |
| 1388 | + try: | |
| 1389 | + data = self.data_image['0008']['0080'] | |
| 1390 | + except(KeyError): | |
| 1391 | + return "" | |
| 1392 | + | |
| 1206 | 1393 | if (data): |
| 1207 | 1394 | return data |
| 1208 | 1395 | return "" |
| ... | ... | @@ -1215,7 +1402,11 @@ class Parser(): |
| 1215 | 1402 | |
| 1216 | 1403 | DICOM standard tag (0x0008, 0x1010) was used. |
| 1217 | 1404 | """ |
| 1218 | - data = self.data_image['0008']['1010'] | |
| 1405 | + try: | |
| 1406 | + data = self.data_image['0008']['1010'] | |
| 1407 | + except(KeyError): | |
| 1408 | + return "" | |
| 1409 | + | |
| 1219 | 1410 | if (data): |
| 1220 | 1411 | return data |
| 1221 | 1412 | return "" |
| ... | ... | @@ -1228,7 +1419,11 @@ class Parser(): |
| 1228 | 1419 | |
| 1229 | 1420 | DICOM standard tag (0x0008,0x1090) was used. |
| 1230 | 1421 | """ |
| 1231 | - data = self.data_image['0008']['1090'] | |
| 1422 | + try: | |
| 1423 | + data = self.data_image['0008']['1090'] | |
| 1424 | + except(KeyError): | |
| 1425 | + return "" | |
| 1426 | + | |
| 1232 | 1427 | if (data): |
| 1233 | 1428 | return data |
| 1234 | 1429 | return "" |
| ... | ... | @@ -1240,7 +1435,11 @@ class Parser(): |
| 1240 | 1435 | |
| 1241 | 1436 | DICOM standard tag (0x0008, 0x1010) was used. |
| 1242 | 1437 | """ |
| 1243 | - data = self.data_image['0008']['1010'] | |
| 1438 | + try: | |
| 1439 | + data = self.data_image['0008']['1010'] | |
| 1440 | + except(KeyError): | |
| 1441 | + return "" | |
| 1442 | + | |
| 1244 | 1443 | if (data): |
| 1245 | 1444 | return data |
| 1246 | 1445 | return "" |
| ... | ... | @@ -1254,7 +1453,11 @@ class Parser(): |
| 1254 | 1453 | |
| 1255 | 1454 | DICOM standard tag (0x0008,0x0060) was used. |
| 1256 | 1455 | """ |
| 1257 | - data = self.data_image['0008']['0060'] | |
| 1456 | + try: | |
| 1457 | + data = self.data_image['0008']['0060'] | |
| 1458 | + except(KeyError): | |
| 1459 | + return "" | |
| 1460 | + | |
| 1258 | 1461 | if (data): |
| 1259 | 1462 | return data |
| 1260 | 1463 | return "" |
| ... | ... | @@ -1342,7 +1545,11 @@ class Parser(): |
| 1342 | 1545 | Return the acquisition time. |
| 1343 | 1546 | DICOM standard tag (0x0008,0x032) was used. |
| 1344 | 1547 | """ |
| 1345 | - data = self.data_image['0008']['0032'] | |
| 1548 | + try: | |
| 1549 | + data = self.data_image['0008']['0032'] | |
| 1550 | + except(KeyError): | |
| 1551 | + return "" | |
| 1552 | + | |
| 1346 | 1553 | if (data): |
| 1347 | 1554 | return self.__format_time(data) |
| 1348 | 1555 | return "" |
| ... | ... | @@ -1352,7 +1559,11 @@ class Parser(): |
| 1352 | 1559 | Return the serie number |
| 1353 | 1560 | DICOM standard tag (0x0020, 0x0011) was used. |
| 1354 | 1561 | """ |
| 1355 | - data = self.data_image['0020']['0011'] | |
| 1562 | + try: | |
| 1563 | + data = self.data_image['0020']['0011'] | |
| 1564 | + except(KeyError): | |
| 1565 | + return "" | |
| 1566 | + | |
| 1356 | 1567 | if (data): |
| 1357 | 1568 | return data |
| 1358 | 1569 | return "" | ... | ... |
invesalius/reader/dicom_reader.py
| ... | ... | @@ -259,8 +259,16 @@ def GetDicomGroups(directory, recursive=True, gui=True): |
| 259 | 259 | # ------------------------------------------------------------- |
| 260 | 260 | filepath = os.path.abspath(filename) |
| 261 | 261 | dict_file[filepath] = data_dict |
| 262 | - | |
| 263 | - if (data_dict['0002']['0002'] != "1.2.840.10008.1.3.10"): #DICOMDIR | |
| 262 | + | |
| 263 | + #---------- Verify is DICOMDir ------------------------------- | |
| 264 | + is_dicom_dir = 1 | |
| 265 | + try: | |
| 266 | + if (data_dict['0002']['0002'] != "1.2.840.10008.1.3.10"): #DICOMDIR | |
| 267 | + is_dicom_dir = 0 | |
| 268 | + except(KeyError): | |
| 269 | + is_dicom_dir = 0 | |
| 270 | + | |
| 271 | + if not(is_dicom_dir): | |
| 264 | 272 | parser = dicom.Parser() |
| 265 | 273 | parser.SetDataImage(dict_file[filepath], filepath) |
| 266 | 274 | ... | ... |