Scrubbing PatientAge header over a certain value

66 views
Skip to first unread message

dh92...@gmail.com

unread,
May 22, 2017, 10:57:25 AM5/22/17
to RSNA MIRC CTP/TFS User Group
HIPPA standards for de-identification require that patient ages over a certain value are modified:
https://www.hhs.gov/hipaa/for-professionals/privacy/special-topics/de-identification/index.html#dates

Is there a way to achieve this in CTP? We have a set of studies we are de-identifying and want to keep the patient age.

I've looked here (http://mircwiki.rsna.org/index.php?title=The_MIRC_DICOM_Anonymizer#Conditional_Functions) but don't see a way to compare values numerically (greater than/less than)
I'm looking for somthing like: @if(@contents(PatientAge), greaterthan, 89) {90} {@contents(PatientAge)}

John Perry

unread,
May 22, 2017, 1:14:30 PM5/22/17
to rsnas-ctpmir...@googlegroups.com
I put a new CTP on the RSNA site:
 
 
This one has a DicomAnonymizer greaterthan conditional function:
 
 
By the way, you can do it without the new function using a regex conditional, like this:
 
@if(PatientAge,matches,"0*((9[0-9])|(1[0-9][0-9]))Y?"){90}{@keep()}
 
I don't guarantee that it works properly in any but the latest CTP version; in testing, I found an error in the way it was handling parentheses inside a function argument. It is fixed in the new version.
 
JP
--
You received this message because you are subscribed to the Google Groups "RSNA MIRC CTP/TFS User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rsnas-ctpmirc-user...@googlegroups.com.
To post to this group, send email to rsnas-ctpmir...@googlegroups.com.
Visit this group at https://groups.google.com/group/rsnas-ctpmirc-user-group.
For more options, visit https://groups.google.com/d/optout.

dh92...@gmail.com

unread,
May 22, 2017, 3:16:14 PM5/22/17
to RSNA MIRC CTP/TFS User Group
Awesome thanks! It's working great.

Here's the full conditional:
@if(PatientAge, greaterthan, 89) {090Y} {@contents(PatientAge)}


On Monday, May 22, 2017 at 1:14:30 PM UTC-4, John Perry wrote:
I put a new CTP on the RSNA site:
 
 
This one has a DicomAnonymizer greaterthan conditional function:
 
 
By the way, you can do it without the new function using a regex conditional, like this:
 
@if(PatientAge,matches,"0*((9[0-9])|(1[0-9][0-9]))Y?"){90}{@keep()}
 
I don't guarantee that it works properly in any but the latest CTP version; in testing, I found an error in the way it was handling parentheses inside a function argument. It is fixed in the new version.
 
JP
 
Sent: Monday, May 22, 2017 9:57 AM
Subject: [MIRC CTP/TFS User Group] Scrubbing PatientAge header over a certain value
 
HIPPA standards for de-identification require that patient ages over a certain value are modified:
https://www.hhs.gov/hipaa/for-professionals/privacy/special-topics/de-identification/index.html#dates

Is there a way to achieve this in CTP? We have a set of studies we are de-identifying and want to keep the patient age.

I've looked here (http://mircwiki.rsna.org/index.php?title=The_MIRC_DICOM_Anonymizer#Conditional_Functions) but don't see a way to compare values numerically (greater than/less than)
I'm looking for somthing like: @if(@contents(PatientAge), greaterthan, 89) {90} {@contents(PatientAge)}
--
You received this message because you are subscribed to the Google Groups "RSNA MIRC CTP/TFS User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rsnas-ctpmirc-user-group+unsub...@googlegroups.com.
To post to this group, send email to rsnas-ctpmirc-user-group@googlegroups.com.

John Perry

unread,
May 22, 2017, 4:21:30 PM5/22/17
to rsnas-ctpmir...@googlegroups.com
If you are processing the element that you are testing, then you can use the this keyword and the keep function:
 
@if(this, greaterthan, 89) {090Y} {@keep()}
 
Using this is slightly faster than the lookup of the element name.
 
@keep() is faster than the contents lookup since it doesn't do anything.
 
Of course, if you are using the script to create contents for another element, then your script is correct, except that I would precede it with a call to the always function, to guarantee that the script is always executed, even when the target element is missing from the object:
@always()@if(PatientAge, greaterthan, 89) {090Y} {@contents(PatientAge)}
To unsubscribe from this group and stop receiving emails from it, send an email to rsnas-ctpmirc-user...@googlegroups.com.
To post to this group, send email to rsnas-ctpmir...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages