@@ -23,16 +23,20 @@ class SpecimenItem extends React.Component<SpecimenItemProps, {}> {
2323 if ( this . props . metadata === undefined ) {
2424 return null
2525 }
26+
2627 const specimenDescription = this . props . metadata . SpecimenDescriptionSequence [
2728 this . props . index
2829 ]
30+
2931 const attributes : Attribute [ ] = [ ]
32+
3033 if ( specimenDescription . SpecimenShortDescription !== undefined ) {
3134 attributes . push ( {
3235 name : 'Description' ,
3336 value : specimenDescription . SpecimenShortDescription
3437 } )
3538 }
39+
3640 if ( specimenDescription . PrimaryAnatomicStructureSequence !== undefined ) {
3741 if ( specimenDescription . PrimaryAnatomicStructureSequence . length > 0 ) {
3842 const structures = specimenDescription . PrimaryAnatomicStructureSequence
@@ -43,10 +47,23 @@ class SpecimenItem extends React.Component<SpecimenItemProps, {}> {
4347 }
4448 }
4549
50+ const structures = specimenDescription . PrimaryAnatomicStructureSequence
51+ const modifierSequence = structures . find ( s => ( s as any ) . PrimaryAnatomicStructureModifierSequence !== undefined )
52+ if ( modifierSequence != null ) {
53+ const modifiers : dcmjs . sr . coding . CodedConcept [ ] = ( modifierSequence as any ) . PrimaryAnatomicStructureModifierSequence
54+ if ( modifiers . length > 0 ) {
55+ attributes . push ( {
56+ name : 'Primary Anatomic Structure Modifier' ,
57+ value : modifiers . map ( ( item : dcmjs . sr . coding . CodedConcept ) => item . CodeMeaning ) . join ( ', ' )
58+ } )
59+ }
60+ }
61+
4662 // TID 8001 "Specimen Preparation"
4763 const preparationSteps : dmv . metadata . SpecimenPreparation [ ] = (
4864 specimenDescription . SpecimenPreparationSequence ?? [ ]
4965 )
66+
5067 preparationSteps . forEach (
5168 ( step : dmv . metadata . SpecimenPreparation , index : number ) : void => {
5269 step . SpecimenPreparationStepContentItemSequence . forEach ( (
@@ -65,6 +82,7 @@ class SpecimenItem extends React.Component<SpecimenItemProps, {}> {
6582 item . ConceptNameCodeSequence [ 0 ] . CodingSchemeDesignator ,
6683 meaning : item . ConceptNameCodeSequence [ 0 ] . CodeMeaning
6784 } )
85+
6886 if ( item . ValueType === dcmjs . sr . valueTypes . ValueTypes . CODE ) {
6987 item = item as dcmjs . sr . valueTypes . CodeContentItem
7088 const value = new dcmjs . sr . coding . CodedConcept ( {
@@ -73,6 +91,7 @@ class SpecimenItem extends React.Component<SpecimenItemProps, {}> {
7391 item . ConceptCodeSequence [ 0 ] . CodingSchemeDesignator ,
7492 meaning : item . ConceptCodeSequence [ 0 ] . CodeMeaning
7593 } )
94+
7695 if ( ! name . equals ( SpecimenPreparationStepItems . PROCESSING_TYPE ) ) {
7796 if (
7897 name . equals ( SpecimenPreparationStepItems . COLLECTION_METHOD )
@@ -127,8 +146,17 @@ class SpecimenItem extends React.Component<SpecimenItemProps, {}> {
127146 } )
128147 }
129148 )
149+
150+ if ( ( this . props . metadata as any ) . AdmittingDiagnosesDescription !== undefined ) {
151+ attributes . push ( {
152+ name : 'Admitting Diagnoses' ,
153+ value : ( this . props . metadata as any ) . AdmittingDiagnosesDescription
154+ } )
155+ }
156+
130157 const uid = specimenDescription . SpecimenUID
131158 const identifier = specimenDescription . SpecimenIdentifier
159+
132160 return (
133161 < Item
134162 uid = { uid }
0 commit comments