Closed noemide closed 3 years ago
Dear @noemide, thank you for reporting your issue. This problem is already known and will hopefully be resolved soon.
The reason is that the alpha version of the ODM2FHIR mapper does not contain sufficient handling for null/empty/invalid-values. The class OnsetOfIllness
is just the first occurance of this problem.
So you are right in assuming that the mostly empty test data set is the reason.
Dear @noemide, I'm currently trying to run your CDISC ODM file, @holger-stenzhorn gave me.
After replacing all Value=""
by Value="0"
for testing purposes (to bypass the Null-Handling problem), i encountered several problems besides this:
patient_id
is not contained within your CDISC ODM (should be in krankheitsbeginn_aufnahme
, as record_id
is)geburtsdatum
(BirthDate) is not contained within your CDISC ODM (but geburtsdatum_code
is! Should be in demographie
)Your error as shown above states
Caused by: java.lang.NullPointerException: null at de.difuture.uds.odm2fhir.fhir.mapper.OnsetOfIllness.map(OnsetOfIllness.java:35) ~[classes/:0.0.1-alpha-SNAPSHOT]
which does not result from the empty values but from the missing patient_id
Item.
Which version of the DataDictionary did you use?
Mea culpa - The two fields geburtsdatum
and patient_id
are marked as "Identifying fields" in the Data Dictionary (we used the DataDictionary from 13.11.2020).
So they are not included in the export if you do not select it. I never do that and therefore I didn't think about it for the demo data.
I have now exported the data set again and this time I included the two identifying fields. The mail is on its way.
Lets give it another try. Please excuse!
@joundso Can you perhaps try and check whether version 0.0.2-alpha-SNAPSHOT
of ODM2FHIR
works with your (uncleaned) CDISC ODM export? It should now just return warnings in the log in case of missing or illegal data but not fail.
Hello, I am testing the ODM2FHIR Converter on a test dataset from our REDCap instance. Using the data dictionary from the 13.11.2020 and version 0.0.2-alpha-SNAPSHOT, I had a similar error to @noemide but different cause:
Caused by: java.lang.IllegalArgumentException: theMonth must be between 0 and 11
Once I changed the month from 12. to 11. this error did not occur again. I think the "allowable" month range should be corrected? It seems the issue with empty values (value ="") is corrected, as my dataset had missing values but did not through the same error.
However, the FHIR resource was created but not written to a file:
2020-12-07 14:05:29.571 INFO 1 --- [ main] ca.uhn.fhir.context.FhirContext : Creating new FHIR context for FHIR version [R4]
2020-12-07 14:05:30.865 WARN 1 --- [ main] ca.uhn.fhir.parser.LenientErrorHandler : Resource is missing required element: value
2020-12-07 14:05:30.973 ERROR 1 --- [ main] d.d.u.o.f.w.FhirBundleToFileWriter : Failed to write bundle to file
I'm not sure what the missing "value" is... Any ideas? FHIRResNotSaved.txt See the complete response attached.
Thanks in advance!
Dear @mia-wis,
thanks for your Issue.
I will take a look and come back to you asap.
Dear @mia-wis, i fixed the issue regarding the wring DateOfBirth-Handling. It will work within the update of the release.
EDIT: should now work with the newest package version
The warning on a missing value
does not affect writing the Bundles to a file. The app only issues this warning when a FHIR-Resource containing a value (e.g. Observation or MedicationStatement) is missing this value (which would be a mandatory property)
This will only occur if the value is (a) malformated or (b) missing and adds the Uncertainty-of-Presence
-Extension to the resource. (at least for these resources which can't be completely skipped) Therefore, this would be represented as answered with unknown
Regarding your problem with file-writing, can you please paste your docker-command when running the container? This seems like the docker-container isn't allowed to write to the given directory.
Hi @cerbelding,
I was using docker login, then the pull and run as shown on the package page:
docker run -v /home/wis/ODM.xml:/workspace/input/ODM.xml -v /home/wis/results/:/workspace/bundle-out docker.pkg.github.com/num-codex/odm2fhir/odm2fhir:0.0.2-alpha-snapshot
Can I specify the permission for the container/results folder somewhere?
Thanks!
Emilia
Dear @mia-wis,
your docker-command looks good.
But does the folder /home/wis/results/
already exist?
If you haven't created this folder in advance, the docker-daemon will create a file with the same name (in order to mount it as a volume).
The app requires a folder instead of a file, as the Bundles are written into seperate files.
I got the same error message when testing to run the container without creating the folder in advance.
results/
-File with rmdir results/
(yes, that's the remove directory command, but it's nevertheless a file)mkdir results/
Hi @cerbelding, I just tried deleted/creating the folder but still get the same error message unfortunately. Thanks in advance!
I copied the conversation related to @mia-wis's issue to Issue #3. As the original Error from this issue is solved, the issue will be closed.
When testing the converter with our ODM files, i got the following error:
(One of our datasets is mostly empty for testing purposes... Could this have caused the error?)