Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # anonymization of dicom tags issue
- * add deny or allow list of dicom tags to study configuration yml
- * upon upload of study configuration remove list of dicom tags included in the deny list
- * the removed list should not be part of the dicom metadata information
- def apply_tag_deny_list!(dicom)
- deny_list = study.locked_configuration.dig("filtered_dicom_tags", "deny_list") || []
- all_tags = deny_list + ["0010,0010"]
- all_tags.each do |tag|
- tag_existed = dicom.exists?(tag)
- dicom.delete_element(tag) if tag_existed
- next unless tag_existed
- original_attributes_seq = dicom[DICOM::Tag.OriginalAttributesSequence]
- original_attributes_seq ||= DICOM::Sequence.new(DICOM::Tag.OriginalAttributesSequence, parent: dicom)
- original_attributes = original_attributes_seq.add_item
- original_attributes.add_element(
- DICOM::Tag.AttributeModificationDateTime,
- DateTime.now.utc.strftime("%Y%m%d%H%M%S.%6N")
- )
- original_attributes.add_element(DICOM::Tag.ModifyingSystem, "Pharmtrace ERICA SaaS #{ERICA.version}")
- original_attributes.add_element(DICOM::Tag.ReasonForTheAttributeModification, "COERCE")
- modified_attributes_seq = DICOM::Sequence.new(DICOM::Tag.ModifiedAttributesSequence, parent: original_attributes)
- modified_attributes = modified_attributes_seq.add_item
- modified_attributes.add_element(tag, "")
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement