image annotateImages

Grenzfall: Verarbeitung medizinischer Bilder mit fehlenden und ungültigen Annotationsdaten

Scénario de test & Cas d'usage

Geschäftskontext

Ein Krankenhaus analysiert Röntgenbilder, um Anomalien zu identifizieren. Die Daten zur Markierung dieser Anomalien (als Punkte) werden manuell von verschiedenen Teams erfasst, was zu Inkonsistenzen führt. Einige Datensätze enthalten fehlende Koordinaten, und manche Annotationsdaten verweisen auf nicht existierende Bilder. Dieser Test soll die Robustheit der `annotateImages`-Aktion überprüfen und sicherstellen, dass sie bei fehlerhaften Eingabedaten nicht abbricht, sondern die gültigen Daten korrekt verarbeitet.
Über das Set : image

Bildverarbeitung, -manipulation und -analyse.

Entdecken Sie alle Aktionen von image
Datenaufbereitung

Erstellt eine Bildtabelle und eine Annotationstabelle mit inkonsistenten Daten: eine Annotation mit fehlender Y-Koordinate, eine Annotation für ein nicht existentes Bild und eine gültige Annotation.

Kopiert!
1/* Bildtabelle: Enthält zwei gültige Bilder */
2DATA casuser.roentgenbilder;
3 LENGTH _name_ $50;
4 _name_ = 'patient_101_scan_A.dcm'; OUTPUT;
5 _name_ = 'patient_102_scan_B.dcm'; OUTPUT;
6RUN;
7 
8/* Annotationstabelle mit fehlerhaften Daten */
9DATA casuser.anomalie_punkte;
10 LENGTH _name_ $50;
11 INFILE DATALINES DLM=',';
12 INPUT _name_ $ x y;
13 DATALINES;
14patient_101_scan_A.dcm,150,200
15patient_102_scan_B.dcm,250,.
16patient_999_scan_C.dcm,300,350
17;
18RUN;

Étapes de réalisation

1
Ausführen der Annotation mit `annotationType='POINTS'` auf den inkonsistenten Daten. Die Aktion sollte Fehler für ungültige Zeilen protokollieren, aber nicht abbrechen.
Kopiert!
1PROC CAS;
2 image.annotateImages /
3 images={TABLE={name='roentgenbilder', caslib='CASUSER'}}
4 annotations={{
5 annotation={annotationType='POINTS', TABLE={name='anomalie_punkte', caslib='CASUSER'}, r=255, g=0, b=0, radius=10}
6 }}
7 copyVars={'_name_'}
8 casOut={name='annotierte_roentgenbilder', caslib='CASUSER', replace=true};
9RUN;

Erwartetes Ergebnis


Die Ausgabetabelle 'annotierte_roentgenbilder' wird erstellt. Das Bild 'patient_101_scan_A.dcm' enthält einen roten Punkt an den korrekten Koordinaten (150,200). Das Bild 'patient_102_scan_B.dcm' wird ohne Annotation in die Ausgabetabelle kopiert, da die zugehörige Y-Koordinate fehlte. Die Annotation für das nicht existente Bild 'patient_999_scan_C.dcm' wird ignoriert. Die Aktion wird ohne Abbruch abgeschlossen, und im SAS-Log sollten Warnungen über die ignorierten ungültigen Zeilen erscheinen.