Commit d6839add0043034e36e7e1f995581388deadd439
1 parent
86398ac2
Exists in
master
and in
5 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 | ... | ... |